auto_trade_sys/docs/盈利单被错误标记为止损问题修复总结_2026-01-27.md
薇薇安 0a0bcd941b a
2026-02-01 20:45:18 +08:00

4.0 KiB
Raw Blame History

盈利单被错误标记为止损问题修复总结2026-01-27

🚨 问题确认

严重问题

从交易记录中发现,多笔盈利单被错误标记为"自动平仓(止损)"

  • 盈利20%+的单子至少10单
  • 全部被标记为"止损"
  • 实际止盈单仅1单2.6%

影响

  • 止盈单比例被严重低估2.6%
  • 胜率被低估38.24%
  • 盈亏比被低估1.56:1

🔍 根本原因分析

原因1移动止损逻辑错误

问题

  • 移动止损激活时,将止损移至成本价(保本)
  • 如果价格回落到成本价,会触发止损
  • 盈利20%+的单子不应该被止损

修复

  • 移动止损激活时,不应该将止损移至成本价
  • 应该设置为"保护利润"的价格如盈利5%后保护2.5%利润)

原因2同步平仓判断逻辑错误

问题

  • 同步平仓时,优先检查止损价格匹配
  • 如果平仓价接近止损价,会被标记为stop_loss
  • 没有检查盈亏情况

修复

  • 优先检查盈亏情况
  • 如果盈利,优先检查止盈价格匹配
  • 如果亏损,再检查止损价格匹配

原因3止损检查逻辑错误

问题

  • 止损检查时,没有检查盈亏情况
  • 盈利单触发止损,应该标记为trailing_stop,而不是stop_loss

修复

  • 止损检查前,先检查是否盈利
  • 如果盈利,标记为trailing_stoptake_profit_partial_then_stop

已完成的修复

修复1同步平仓判断逻辑优化

修改位置trading_system/position_manager.py:2150-2170

修复内容

  • 优先检查盈亏情况
  • 如果盈利,优先检查止盈价格匹配
  • 如果亏损,再检查止损价格匹配

效果

  • 盈利单不会被错误标记为stop_loss
  • 同步平仓时,能正确识别止盈单

修复2移动止损逻辑优化

修改位置trading_system/position_manager.py:2731-2740

修复内容

  • 移动止损激活时,不应该将止损移至成本价
  • 应该设置为"保护利润"的价格如盈利5%后保护2.5%利润)

效果

  • 移动止损激活后,止损价设置为保护利润位,而不是成本价
  • 避免盈利单被错误止损

修复3止损检查逻辑优化

修改位置trading_system/position_manager.py:2825-2840

修复内容

  • 止损检查前,先检查是否盈利
  • 如果盈利,标记为trailing_stoptake_profit_partial_then_stop

效果

  • 盈利单触发止损时,会被正确标记为trailing_stop
  • 避免盈利单被错误标记为stop_loss

📊 预期效果

修复后预期

止盈单比例

  • 当前2.6%1/39
  • 预期25%+10+/39

胜率

  • 当前38.24%
  • 预期50%+(如果盈利单被正确标记)

盈亏比

  • 当前1.56:1
  • 预期2.0:1 - 2.5:1如果盈利单被正确标记

⚠️ 注意事项

  1. 数据修复

    • 可能需要修复历史数据中的错误标记
    • 盈利单应该被标记为take_profittrailing_stop
  2. 测试验证

    • 修复后,需要测试验证
    • 确保盈利单被正确标记
  3. 监控日志

    • 关注日志中的"盈利单触发止损"警告
    • 确认修复是否生效

总结

问题

  • 多笔盈利单被错误标记为"止损"
  • 止盈单比例极低2.6%
  • 胜率被低估

原因

  • 移动止损逻辑错误(激活时将止损移至成本价)
  • 同步平仓判断逻辑错误(优先检查止损价格匹配,没有检查盈亏情况)
  • 止损检查逻辑错误(没有检查盈亏情况)

修复

  • 修复同步平仓判断逻辑(优先检查盈亏情况)
  • 优化移动止损逻辑(激活时设置为保护利润位)
  • 优化止损检查逻辑(先检查盈亏情况)

预期效果

  • 盈利单被正确标记
  • 止盈单比例提升到25%+
  • 胜率提升到50%+
  • 盈亏比提升到2.0:1-2.5:1