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

8.8 KiB
Raw Permalink Blame History

交易表现分析 - 2026-01-23

📊 今日统计

  • 总交易数35
  • 胜率44.00%
  • 总盈亏2.03 USDT
  • 平均盈亏0.08 USDT
  • 平均持仓时长35分钟
  • 平仓原因:止盈 1 / 手动 9 / 同步 15
  • 平均盈利/平均亏损1.35 : 1期望 3:1
  • 总交易量(名义)3512.05 USDT

⚠️ 严重问题分析

问题1盈亏比严重失衡1.35:1 vs 期望3:1

现状

  • 平均盈利/平均亏损 = 1.35:1
  • 胜率 = 44%
  • 期望盈亏比 = 3:1

数学分析

  • 盈亏平衡点 = 1 / (1 + 盈亏比) = 1 / (1 + 1.35) = 42.55%
  • 当前胜率 44% 仅略高于盈亏平衡点,所以总盈亏只有 2.03 USDT几乎不盈利
  • 如果盈亏比达到 3:1盈亏平衡点 = 1 / (1 + 3) = 25%
  • 在胜率 44% 的情况下,盈亏比 3:1 的期望收益 = (0.44 × 3) - (0.56 × 1) = 0.76每笔亏损赚0.76倍)

结论:盈亏比 1.35:1 太低了,必须提升到至少 2:1 才能稳定盈利。


问题2大额亏损30-50%)说明止损失效

具体案例

  • #1138 DUSKUSDT: -31.28%(同步平仓)
  • #1135 RIVERUSDT: -49.06%(同步平仓)
  • #1133 BDXNUSDT: -31.69%(手动平仓)

问题分析

  1. 固定风险百分比应该限制亏损为2%但实际亏损达到30-50%
  2. 说明止损没有及时执行,或者止损价格计算错误
  3. "同步平仓" 可能是在止损触发后,系统同步币安状态时发现已经亏损很大

可能原因

  1. 止损单没有正确挂到交易所
  2. 止损价格计算错误(可能基于价格百分比而不是保证金百分比)
  3. WebSocket 监控断线,没有及时触发止损
  4. 固定风险百分比计算时,止损距离估算错误

问题3止盈太少35笔只有1笔止盈

现状

  • 35笔交易只有1笔止盈2.86%
  • 15笔同步平仓9笔手动平仓

问题分析

  1. 止盈目标可能设置太高ATR_TAKE_PROFIT_MULTIPLIER = 1.5 可能仍然太高
  2. 大部分订单被提前平仓15笔同步平仓可能是止损触发9笔手动平仓可能是用户干预
  3. 止盈单可能没有正确挂到交易所

问题4固定风险百分比可能没有生效

理论

  • 固定风险百分比 = 2%
  • 如果止损距离 = 5%,那么仓位 = (总资金 × 2%) / 5% = 总资金的 40%
  • 如果止损触发,亏损 = 总资金的 2%(符合预期)

实际情况

  • 亏损达到 30-50%,说明:
    1. 固定风险百分比没有生效
    2. 或者止损距离计算错误(止损距离太小,导致仓位过大)
    3. 或者止损没有及时触发

🔍 根本原因分析

1. 止损执行问题

可能原因

  • 止损单没有正确挂到交易所
  • WebSocket 监控断线,没有及时触发止损
  • 止损价格计算错误

验证方法

  • 查看日志,确认止损单是否成功挂到交易所
  • 检查 WebSocket 监控是否正常运行
  • 检查止损价格计算逻辑

2. 固定风险百分比可能没有生效

验证方法

  • 检查 USE_FIXED_RISK_SIZING 是否启用
  • 检查开仓日志,确认是否使用了固定风险计算
  • 检查止损距离估算是否准确

3. 止盈目标设置问题

当前配置

  • ATR_TAKE_PROFIT_MULTIPLIER = 1.5
  • TAKE_PROFIT_PERCENT = 25%(相对于保证金)

问题

  • 如果 ATR 很大1.5倍 ATR 的止盈目标可能很难达到
  • 25% 的止盈目标对于小币种可能太高

💡 解决方案

方案1确保止损正确执行最高优先级

  1. 检查止损单是否挂到交易所

    • 在开仓后立即检查止损单状态
    • 如果挂单失败,重试或报警
  2. 增强 WebSocket 监控可靠性

    • 增加心跳检测
    • 增加断线重连机制
    • 增加兜底巡检每1-2分钟检查一次
  3. 修复止损价格计算

    • 确保止损基于保证金百分比,而不是价格百分比
    • 确保止损距离估算准确

方案2验证并修复固定风险百分比

  1. 检查配置

    • 确认 USE_FIXED_RISK_SIZING = True
    • 确认 FIXED_RISK_PERCENT = 0.022%
  2. 检查计算逻辑

    • 确认止损距离估算准确
    • 确认仓位计算使用了固定风险公式
  3. 增加日志

    • 记录固定风险计算的详细过程
    • 记录实际止损距离和仓位大小

方案3调整止盈目标

  1. 降低止盈目标

    • ATR_TAKE_PROFIT_MULTIPLIER 从 1.5 降到 1.2
    • TAKE_PROFIT_PERCENT 从 25% 降到 20%
  2. 确保止盈单正确挂到交易所

    • 在开仓后立即挂止盈单
    • 检查止盈单状态

📋 立即行动清单

高优先级(立即执行)

  1. 检查止损单挂单状态

    • 在开仓后立即检查止损单是否成功挂到交易所
    • 如果失败,重试或报警
  2. 验证固定风险百分比是否生效

    • 检查开仓日志,确认是否使用了固定风险计算
    • 如果未生效,修复计算逻辑
  3. 增强止损执行可靠性

    • 增加 WebSocket 心跳检测
    • 增加兜底巡检每1-2分钟检查一次

中优先级(本周执行)

  1. 调整止盈目标

    • 降低 ATR_TAKE_PROFIT_MULTIPLIER 到 1.2
    • 降低 TAKE_PROFIT_PERCENT 到 20%
  2. 增加诊断日志

    • 记录止损单挂单状态
    • 记录固定风险计算过程
    • 记录实际止损距离

🎯 目标指标

当前表现

  • 盈亏比1.35:1
  • 胜率44%
  • 总盈亏2.03 USDT几乎不盈利

目标表现

  • 盈亏比:≥ 2.0:1理想 3:1
  • 胜率:≥ 40%
  • 单笔最大亏损:≤ 5%固定风险2% + 滑点)
  • 止盈率:≥ 30%35笔中至少10笔止盈

📝 下一步

  1. 已修复:固定风险百分比计算逻辑(已添加到代码中)
  2. 已增强:止损单挂单状态日志(成功/失败都会记录)
  3. 待验证重新运行后观察是否还有30%以上的亏损
  4. 待调整:降低止盈目标,提高止盈率

🔧 已实施的修复

1. 修复固定风险百分比计算逻辑

问题:固定风险百分比计算逻辑缺失,导致系统没有使用固定风险公式计算仓位。

修复

  • risk_manager.pycalculate_position_size() 中添加了完整的固定风险百分比计算逻辑
  • 如果 USE_FIXED_RISK_SIZING = True 且提供了 entry_priceside,会使用固定风险公式
  • 公式:quantity = (总资金 × 2%) / (入场价 - 止损价)

2. 增强止损单挂单状态日志

问题:无法知道止损单是否成功挂到交易所。

修复

  • position_manager.py_ensure_exchange_sltp_orders() 中增加了日志
  • 止损单和止盈单挂单成功/失败都会记录日志
  • 如果挂单失败会明确提示将依赖WebSocket监控

⚠️ 关键发现

为什么会出现30-50%的亏损?

根本原因

  1. 固定风险百分比没有生效(已修复)

    • 如果固定风险百分比生效每笔亏损应该限制在2%
    • 但实际亏损达到30-50%,说明固定风险百分比没有生效
  2. 止损单可能没有正确挂到交易所

    • 如果止损单挂单失败系统只能依赖WebSocket监控
    • 如果WebSocket断线止损可能无法及时执行
  3. 止损价格计算可能有问题

    • 止损可能基于价格百分比而不是保证金百分比
    • 或者止损距离估算错误

为什么盈亏比只有1.35:1

原因

  1. 止盈目标设置太高ATR_TAKE_PROFIT_MULTIPLIER = 1.5 可能仍然太高
  2. 止盈单可能没有正确挂到交易所只有1笔止盈说明大部分订单没有达到止盈目标
  3. 大部分订单被提前平仓15笔同步平仓可能是止损9笔手动平仓用户干预

🎯 预期改善

修复后,预期:

  • 单笔最大亏损从30-50%降低到≤5%固定风险2% + 滑点)
  • 盈亏比从1.35:1提升到≥2.0:1通过降低止盈目标
  • 止盈率从2.86%提升到≥30%(通过降低止盈目标)

📋 建议的配置调整

立即调整在GlobalConfig中

  1. 降低止盈目标

    • ATR_TAKE_PROFIT_MULTIPLIER: 1.5 → 1.2
    • TAKE_PROFIT_PERCENT: 25% → 20%
  2. 确保固定风险百分比启用

    • USE_FIXED_RISK_SIZING: True
    • FIXED_RISK_PERCENT: 0.02 (2%)
  3. 确保止损单挂单

    • EXCHANGE_SLTP_ENABLED: True(默认已启用)

🔍 验证方法

修复后,请观察:

  1. 开仓日志:是否显示"使用固定风险百分比计算仓位"
  2. 止损单日志:是否显示"止损单已成功挂到交易所"
  3. 实际亏损是否还有30%以上的亏损
  4. 止盈率是否提升到30%以上