4.0 KiB
4.0 KiB
盈利单被错误标记为止损问题修复总结(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_stop或take_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_stop或take_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(如果盈利单被正确标记)
⚠️ 注意事项
-
数据修复:
- 可能需要修复历史数据中的错误标记
- 盈利单应该被标记为
take_profit或trailing_stop
-
测试验证:
- 修复后,需要测试验证
- 确保盈利单被正确标记
-
监控日志:
- 关注日志中的"盈利单触发止损"警告
- 确认修复是否生效
✅ 总结
问题:
- ❌ 多笔盈利单被错误标记为"止损"
- ❌ 止盈单比例极低(2.6%)
- ❌ 胜率被低估
原因:
- 移动止损逻辑错误(激活时将止损移至成本价)
- 同步平仓判断逻辑错误(优先检查止损价格匹配,没有检查盈亏情况)
- 止损检查逻辑错误(没有检查盈亏情况)
修复:
- ✅ 修复同步平仓判断逻辑(优先检查盈亏情况)
- ✅ 优化移动止损逻辑(激活时设置为保护利润位)
- ✅ 优化止损检查逻辑(先检查盈亏情况)
预期效果:
- ✅ 盈利单被正确标记
- ✅ 止盈单比例提升到25%+
- ✅ 胜率提升到50%+
- ✅ 盈亏比提升到2.0:1-2.5:1