auto_trade_sys/docs/排查账户未下单问题指南.md
薇薇安 86b85c2609 a
2026-01-25 11:19:39 +08:00

9.5 KiB
Raw Blame History

排查账户未下单问题指南

🔍 问题描述

account3 和 account4 今天一直没有下单,没有看到明显的报错日志。

📋 排查步骤

1. 检查进程是否在运行

# 检查 supervisor 状态
supervisorctl status auto_sys_acc3
supervisorctl status auto_sys_acc4

# 或者查看所有进程
supervisorctl status all | grep -E "acc3|acc4"

# 检查实际运行的进程
ps aux | grep -E "trading_system.*main" | grep -E "acc3|acc4"

预期结果

  • RUNNING 状态,有 PID
  • FATALEXITEDBACKOFF 表示进程异常

如果进程未运行

# 查看启动错误
supervisorctl tail -200 auto_sys_acc3 stderr
supervisorctl tail -200 auto_sys_acc4 stderr

# 尝试手动启动
supervisorctl start auto_sys_acc3
supervisorctl start auto_sys_acc4

2. 检查日志文件

# 查看最近的日志最后100行
tail -n 100 /www/wwwroot/autosys_new/logs/trading_3.log
tail -n 100 /www/wwwroot/autosys_new/logs/trading_4.log

# 查看今天的错误
grep -i "error" /www/wwwroot/autosys_new/logs/trading_3.log | tail -n 20
grep -i "error" /www/wwwroot/autosys_new/logs/trading_4.log | tail -n 20

# 查看警告
grep -i "warning" /www/wwwroot/autosys_new/logs/trading_3.log | tail -n 20
grep -i "warning" /www/wwwroot/autosys_new/logs/trading_4.log | tail -n 20

关键日志检查点

  • 进程启动成功:交易系统启动成功币安客户端连接成功
  • 配置加载:交易配置(当前策略)单笔最大仓位杠杆配置
  • API 错误:API密钥未配置API权限验证失败连接失败
  • 配置错误:配置加载失败配置管理器初始化失败

3. 检查市场扫描是否正常

# 查看最近的扫描活动
grep -E "开始扫描|扫描完成|等待.*秒后进行下次扫描" /www/wwwroot/autosys_new/logs/trading_3.log | tail -n 10
grep -E "开始扫描|扫描完成|等待.*秒后进行下次扫描" /www/wwwroot/autosys_new/logs/trading_4.log | tail -n 10

# 查看扫描到的交易对
grep -E "扫描到.*个交易对|处理交易对" /www/wwwroot/autosys_new/logs/trading_3.log | tail -n 20
grep -E "扫描到.*个交易对|处理交易对" /www/wwwroot/autosys_new/logs/trading_4.log | tail -n 20

预期结果

  • SCAN_INTERVAL默认3600秒=1小时有一次扫描
  • 扫描到交易对并进行分析
  • 如果没有扫描日志,说明扫描循环可能卡住或未启动

如果扫描未执行

  • 检查 SCAN_INTERVAL 配置是否过大
  • 检查是否有异常导致扫描循环中断
  • 查看是否有 等待 {SCAN_INTERVAL} 秒后进行下次扫描 的日志

4. 检查交易信号生成

# 查看技术指标分析
grep -E "技术指标分析|交易信号|should_trade" /www/wwwroot/autosys_new/logs/trading_3.log | tail -n 30
grep -E "技术指标分析|交易信号|should_trade" /www/wwwroot/autosys_new/logs/trading_4.log | tail -n 30

# 查看为什么跳过交易
grep -E "跳过自动交易|仅生成推荐|不自动交易" /www/wwwroot/autosys_new/logs/trading_3.log | tail -n 20
grep -E "跳过自动交易|仅生成推荐|不自动交易" /www/wwwroot/autosys_new/logs/trading_4.log | tail -n 20

常见跳过原因

  1. 趋势过滤❌ 4H趋势中性为提升胜率仅生成推荐不自动交易

    • 原因AUTO_TRADE_ONLY_TRENDING=True 且 4H 趋势不是明确上涨/下跌
    • 解决:检查 AUTO_TRADE_ALLOW_4H_NEUTRAL 配置,或降低 MIN_SIGNAL_STRENGTH
  2. 信号强度不足信号强度: X < MIN_SIGNAL_STRENGTH

    • 原因:交易信号强度低于 MIN_SIGNAL_STRENGTH默认7
    • 解决:降低 MIN_SIGNAL_STRENGTH 或提高信号质量
  3. 成交量不足成交量确认失败

    • 原因24小时成交量低于 MIN_VOLUME_24HMIN_VOLUME_24H_STRICT
    • 解决:检查成交量配置是否过严格

5. 检查风险控制是否阻止交易

# 查看风险检查结果
grep -E "风险检查|余额不足|仓位限制|最大持仓|每日限额" /www/wwwroot/autosys_new/logs/trading_3.log | tail -n 20
grep -E "风险检查|余额不足|仓位限制|最大持仓|每日限额" /www/wwwroot/autosys_new/logs/trading_4.log | tail -n 20

# 查看账户余额
grep -E "账户余额|余额|balance|可用余额" /www/wwwroot/autosys_new/logs/trading_3.log | tail -n 10
grep -E "账户余额|余额|balance|可用余额" /www/wwwroot/autosys_new/logs/trading_4.log | tail -n 10

常见阻止原因

  1. 余额不足余额不足,无法开仓可用余额: X USDT < 最小保证金

    • 解决:检查账户余额,确保有足够的保证金
  2. 持仓数量限制已达到最大持仓数量当前持仓: X >= MAX_OPEN_POSITIONS

    • 解决:检查 MAX_OPEN_POSITIONS 配置,或平掉部分持仓
  3. 每日限额今日已开仓 X 次,达到每日限额

    • 解决:检查 MAX_DAILY_ENTRIES 配置
  4. 总仓位限制总仓位已超过上限

    • 解决:检查 MAX_TOTAL_POSITION_PERCENT 配置

6. 检查配置是否正确

前端检查

  1. 登录前端,进入 account3 和 account4 的配置页面
  2. 检查以下关键配置项:
    • BINANCE_API_KEYBINANCE_API_SECRET 是否已配置
    • MIN_SIGNAL_STRENGTH(信号强度阈值)
    • MAX_OPEN_POSITIONS(最大持仓数)
    • MAX_DAILY_ENTRIES(每日最大开仓次数)
    • AUTO_TRADE_ONLY_TRENDING(是否只交易趋势行情)
    • AUTO_TRADE_ALLOW_4H_NEUTRAL是否允许4H中性趋势交易
    • SCAN_INTERVAL扫描间隔默认3600秒

日志检查

# 查看启动时的配置输出
grep -A 50 "交易配置(当前策略)" /www/wwwroot/autosys_new/logs/trading_3.log | head -n 60
grep -A 50 "交易配置(当前策略)" /www/wwwroot/autosys_new/logs/trading_4.log | head -n 60

7. 检查API连接和权限

# 查看API连接状态
grep -E "币安客户端|API|连接|权限|密钥" /www/wwwroot/autosys_new/logs/trading_3.log | tail -n 20
grep -E "币安客户端|API|连接|权限|密钥" /www/wwwroot/autosys_new/logs/trading_4.log | tail -n 20

# 查看API错误
grep -iE "api.*error|api.*fail|连接失败|权限" /www/wwwroot/autosys_new/logs/trading_3.log | tail -n 10
grep -iE "api.*error|api.*fail|连接失败|权限" /www/wwwroot/autosys_new/logs/trading_4.log | tail -n 10

常见API问题

  1. API密钥未配置API密钥未配置API密钥未正确加载

    • 解决:在前端配置页面设置 API 密钥
  2. API权限不足API权限验证失败API密钥权限不足

    • 解决检查币安API密钥是否启用了"合约交易"权限
  3. IP白名单IP地址不在白名单中

    • 解决在币安API设置中添加服务器IP到白名单

8. 使用自动化排查脚本

# 运行自动化排查脚本
chmod +x check_accounts_no_trades.sh
./check_accounts_no_trades.sh

脚本会自动检查:

  • 进程状态
  • 最近日志
  • 配置项
  • 市场扫描活动
  • 风险控制
  • API连接
  • 持仓状态

🎯 常见问题及解决方案

问题1进程运行但没有任何日志输出

可能原因

  • 日志文件路径错误
  • 日志级别设置过高只记录ERROR
  • 进程卡在某个地方

解决

# 检查日志文件是否存在
ls -lh /www/wwwroot/autosys_new/logs/trading_*.log

# 检查进程是否真的在运行
ps aux | grep trading_system | grep -E "acc3|acc4"

# 重启进程
supervisorctl restart auto_sys_acc3
supervisorctl restart auto_sys_acc4

问题2有扫描日志但没有交易信号

可能原因

  • 市场条件不满足交易策略
  • MIN_SIGNAL_STRENGTH 设置过高
  • AUTO_TRADE_ONLY_TRENDING=True 且市场趋势不明确

解决

  1. 查看信号分析日志,确认是否有交易信号但被过滤
  2. 临时降低 MIN_SIGNAL_STRENGTH 测试
  3. 检查 AUTO_TRADE_ALLOW_4H_NEUTRAL 配置

问题3有交易信号但被风险控制阻止

可能原因

  • 余额不足
  • 已达到最大持仓数
  • 已达到每日开仓限额

解决

  1. 检查账户余额
  2. 检查 MAX_OPEN_POSITIONS 和当前持仓数
  3. 检查 MAX_DAILY_ENTRIES 和今日已开仓次数

问题4配置已修改但未生效

可能原因

  • Redis缓存未更新
  • 进程未重启
  • 配置项名称错误

解决

  1. 重启交易进程:supervisorctl restart auto_sys_acc3
  2. 检查启动日志中的配置输出,确认配置已加载
  3. 确认配置项名称正确(参考 config.py 中的定义)

📞 进一步排查

如果以上步骤都无法解决问题,请提供以下信息:

  1. 进程状态supervisorctl status auto_sys_acc3 auto_sys_acc4
  2. 最近100行日志tail -n 100 /www/wwwroot/autosys_new/logs/trading_3.log
  3. 配置输出:从启动日志中提取"交易配置(当前策略)"部分
  4. 错误日志grep -i error /www/wwwroot/autosys_new/logs/trading_3.log | tail -n 20

检查清单

  • 进程是否在运行(supervisorctl status
  • 日志文件是否存在且有新内容
  • API密钥是否已配置
  • 账户余额是否充足
  • 市场扫描是否正常执行
  • 是否有交易信号生成
  • 风险控制是否阻止交易
  • 配置是否正确加载
  • 是否有错误或警告日志