auto_trade_sys/docs/check_accounts_no_trades.sh
薇薇安 86b85c2609 a
2026-01-25 11:19:39 +08:00

145 lines
5.1 KiB
Bash
Executable File
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#!/bin/bash
# 排查 account3 和 account4 没有下单的问题
echo "=========================================="
echo "排查 account3 和 account4 未下单问题"
echo "=========================================="
echo ""
# 检查进程状态
echo "【1】检查进程状态"
echo "----------------------------------------"
for acc in 3 4; do
echo ""
echo "Account $acc:"
supervisorctl status auto_sys_acc$acc 2>/dev/null || echo " ❌ supervisorctl 命令失败"
done
echo ""
# 检查日志文件
echo "【2】检查最近的日志最后50行"
echo "----------------------------------------"
PROJECT_ROOT="/www/wwwroot/autosys_new"
for acc in 3 4; do
echo ""
echo "Account $acc 日志:"
LOG_FILE="$PROJECT_ROOT/logs/trading_${acc}.log"
if [ -f "$LOG_FILE" ]; then
echo " 📄 日志文件: $LOG_FILE"
echo " 📊 最后50行:"
tail -n 50 "$LOG_FILE" | grep -E "(ERROR|WARNING|INFO|扫描|交易|下单|开仓|信号|过滤|跳过|余额|配置)" | tail -n 20
echo ""
echo " 🔍 最近的错误:"
tail -n 200 "$LOG_FILE" | grep -i "error" | tail -n 5
echo ""
echo " ⚠️ 最近的警告:"
tail -n 200 "$LOG_FILE" | grep -i "warning" | tail -n 5
else
echo " ❌ 日志文件不存在: $LOG_FILE"
fi
done
echo ""
# 检查配置
echo "【3】检查关键配置项"
echo "----------------------------------------"
echo "检查 account3 和 account4 的配置..."
echo "(需要查看数据库或前端配置页面)"
echo ""
# 检查市场扫描
echo "【4】检查市场扫描活动"
echo "----------------------------------------"
for acc in 3 4; do
echo ""
echo "Account $acc 扫描活动:"
LOG_FILE="$PROJECT_ROOT/logs/trading_${acc}.log"
if [ -f "$LOG_FILE" ]; then
echo " 最近一次扫描时间:"
tail -n 500 "$LOG_FILE" | grep -E "(开始扫描|扫描完成|等待.*秒后进行下次扫描)" | tail -n 3
echo ""
echo " 扫描到的交易对数量:"
tail -n 500 "$LOG_FILE" | grep -E "(扫描到.*个交易对|处理交易对)" | tail -n 5
echo ""
echo " 交易信号分析:"
tail -n 500 "$LOG_FILE" | grep -E "(技术指标分析|交易信号|should_trade|跳过自动交易)" | tail -n 10
fi
done
echo ""
# 检查风险控制
echo "【5】检查风险控制是否阻止交易"
echo "----------------------------------------"
for acc in 3 4; do
echo ""
echo "Account $acc 风险控制:"
LOG_FILE="$PROJECT_ROOT/logs/trading_${acc}.log"
if [ -f "$LOG_FILE" ]; then
echo " 风险检查结果:"
tail -n 500 "$LOG_FILE" | grep -E "(风险检查|余额不足|仓位限制|最大持仓|每日限额)" | tail -n 10
echo ""
echo " 账户余额:"
tail -n 500 "$LOG_FILE" | grep -E "(账户余额|余额|balance)" | tail -n 5
fi
done
echo ""
# 检查API连接
echo "【6】检查API连接状态"
echo "----------------------------------------"
for acc in 3 4; do
echo ""
echo "Account $acc API状态:"
LOG_FILE="$PROJECT_ROOT/logs/trading_${acc}.log"
if [ -f "$LOG_FILE" ]; then
echo " API连接:"
tail -n 200 "$LOG_FILE" | grep -E "(币安客户端|API|连接|权限|密钥)" | tail -n 5
echo ""
echo " 最近的API错误:"
tail -n 200 "$LOG_FILE" | grep -iE "(api.*error|api.*fail|连接失败|权限)" | tail -n 5
fi
done
echo ""
# 检查持仓
echo "【7】检查当前持仓状态"
echo "----------------------------------------"
for acc in 3 4; do
echo ""
echo "Account $acc 持仓:"
LOG_FILE="$PROJECT_ROOT/logs/trading_${acc}.log"
if [ -f "$LOG_FILE" ]; then
echo " 当前持仓数量:"
tail -n 500 "$LOG_FILE" | grep -E "(当前持仓|持仓数量|active_positions)" | tail -n 5
echo ""
echo " 最大持仓限制:"
tail -n 500 "$LOG_FILE" | grep -E "(MAX_OPEN_POSITIONS|最大持仓|持仓上限)" | tail -n 3
fi
done
echo ""
# 检查时间
echo "【8】检查进程运行时间"
echo "----------------------------------------"
for acc in 3 4; do
echo ""
echo "Account $acc:"
ps aux | grep -E "trading_system.*main.*acc$acc|auto_sys_acc$acc" | grep -v grep | head -n 1 | awk '{print " PID: "$2", 运行时间: "$10", 启动时间: "$9}'
done
echo ""
echo "=========================================="
echo "排查完成"
echo "=========================================="
echo ""
echo "💡 建议下一步操作:"
echo "1. 如果进程未运行,检查 supervisor 配置和启动日志"
echo "2. 如果进程运行但无交易,检查:"
echo " - 配置是否正确(特别是 MIN_SIGNAL_STRENGTH, MAX_OPEN_POSITIONS 等)"
echo " - 市场扫描是否正常(查看'开始扫描'日志)"
echo " - 是否有交易信号但被过滤(查看'跳过自动交易'日志)"
echo " - 风险控制是否阻止(查看'风险检查'日志)"
echo " - 账户余额是否充足"
echo "3. 查看完整日志: tail -f $PROJECT_ROOT/logs/trading_3.log"
echo "4. 检查前端配置页面,确认 account3 和 account4 的配置项"