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

8.6 KiB
Raw Blame History

交易策略逻辑完整分析

📊 当前策略参数配置

核心参数

参数 当前值 说明
ATR_STOP_LOSS_MULTIPLIER 1.8 ATR止损倍数止损距离 = ATR × 1.8
ATR_TAKE_PROFIT_MULTIPLIER 1.5 ATR止盈倍数备选方法当无止损距离时使用
RISK_REWARD_RATIO 1.5 盈亏比(止盈距离 = 止损距离 × 1.5
MIN_TAKE_PROFIT_PRICE_PCT 0.02 (2%) 最小止盈价格变动保护
MIN_HOLD_TIME_SEC 1800 (30分钟) 最小持仓时间锁
USE_TRAILING_STOP False 移动止损(已禁用)

🎯 止盈计算逻辑(优先级顺序)

方法1基于止损距离和盈亏比优先使用

止盈距离 = 止损距离 × RISK_REWARD_RATIO (1.5)
止盈价 = 入场价 ± 止盈距离

示例

  • 入场价100 USDT
  • ATR3 USDT (3%)
  • 止损距离100 × 0.03 × 1.8 = 5.4 USDT (5.4%)
  • 止损价100 - 5.4 = 94.6 USDT
  • 止盈距离5.4 × 1.5 = 8.1 USDT (8.1%)
  • 止盈价100 + 8.1 = 108.1 USDT

方法2基于ATR倍数备选当无止损距离时

止盈距离 = ATR百分比 × ATR_TAKE_PROFIT_MULTIPLIER (1.5)
止盈价 = 入场价 × (1 ± 止盈距离百分比)

示例

  • 入场价100 USDT
  • ATR3 USDT (3%)
  • 止盈距离0.03 × 1.5 = 4.5%
  • 止盈价100 × 1.045 = 104.5 USDT

方法3基于保证金百分比兜底

止盈金额 = 保证金 × TAKE_PROFIT_PERCENT (25%)
止盈价 = 入场价 ± (止盈金额 / 数量)

方法4最小价格变动保护

止盈价 = 入场价 × (1 ± MIN_TAKE_PROFIT_PRICE_PCT) (2%)

最终止盈价选择:取以上方法中最宽松(最远)的价格

🔄 分步止盈策略

第一阶段50% 仓位在 1:1 盈亏比止盈

第一目标价 = 入场价 ± (入场价 - 止损价)
第一目标 = 盈亏比 1:1相对于保证金

触发条件

  • 当前盈亏百分比(基于保证金)≥ 止损百分比(基于保证金)
  • 平仓 50% 仓位
  • 将剩余仓位止损移至入场价(保本)

第二阶段:剩余 50% 仓位在 1.5:1 盈亏比止盈

第二目标价 = 原始止盈价(基于止损距离 × 1.5
第二目标 = 盈亏比 1.5:1相对于剩余仓位的保证金

触发条件

  • 剩余仓位盈亏百分比(基于剩余保证金)≥ 1.5 × 止损百分比
  • 平仓剩余 50% 仓位

📈 胜率要求分析

理论盈亏比计算

假设:

  • 止损损失:-1 单位(基于保证金)
  • 第一目标盈利50%仓位):+1 单位1:1
  • 第二目标盈利50%仓位):+1.5 单位1.5:1

完整交易期望收益

  • 如果第一目标触发(概率 P1第二目标也触发概率 P2
    • 总盈利 = 0.5 × 1 + 0.5 × 1.5 = 1.25 单位
  • 如果第一目标触发,但第二目标未触发(概率 P1 × (1-P2)
    • 总盈利 = 0.5 × 1 + 0.5 × 0 = 0.5 单位
  • 如果第一目标未触发,直接止损:
    • 总损失 = -1 单位

盈亏平衡点计算

最理想情况第一目标100%触发第二目标100%触发):

胜率 × 1.25 = 败率 × 1
胜率 × 1.25 = (1 - 胜率) × 1
胜率 × 2.25 = 1
胜率 = 44.4%

保守情况第一目标100%触发第二目标50%触发):

平均盈利 = 0.5 × 1.25 + 0.5 × 0.5 = 0.875 单位
胜率 × 0.875 = (1 - 胜率) × 1
胜率 × 1.875 = 1
胜率 = 53.3%

最保守情况第一目标100%触发第二目标0%触发):

平均盈利 = 0.5 单位
胜率 × 0.5 = (1 - 胜率) × 1
胜率 × 1.5 = 1
胜率 = 66.7%

实际胜率要求评估

关键因素

  1. 第一目标触发率1:1 盈亏比相对容易触发(预期 60-70%
  2. 第二目标触发率1.5:1 盈亏比需要趋势延续(预期 40-50%
  3. 保本保护:第一目标触发后,剩余仓位止损移至入场价,彻底杜绝亏损可能

实际期望

  • 如果第一目标触发率 = 65%,第二目标触发率 = 45%
  • 平均盈利 = 0.65 × (0.45 × 1.25 + 0.55 × 0.5) = 0.65 × 0.8375 = 0.544 单位
  • 盈亏平衡点:胜率 × 0.544 = (1 - 胜率) × 1
  • 胜率 = 64.8%

⚠️ 潜在问题分析

1. 胜率要求较高

问题:如果第一目标触发率低,或第二目标触发率低,需要更高的胜率才能盈利。

缓解措施

  • 分步止盈确保至少锁定部分利润
  • 保本保护确保第一目标触发后不会亏损
  • 最小持仓时间锁30分钟避免过早平仓
  • ⚠️ 需要监控实际第一/第二目标触发率

2. ATR_TAKE_PROFIT_MULTIPLIER 与 RISK_REWARD_RATIO 的关系

当前逻辑

  • 优先使用 止损距离 × RISK_REWARD_RATIO (1.5) 计算止盈
  • ATR_TAKE_PROFIT_MULTIPLIER (1.5) 仅作为备选(当无止损距离时)

潜在问题

  • 如果 ATR 很小,ATR_TAKE_PROFIT_MULTIPLIER 可能计算出过小的止盈距离
  • MIN_TAKE_PROFIT_PRICE_PCT (2%) 提供了保护

建议

  • 当前逻辑合理,ATR_TAKE_PROFIT_MULTIPLIER 主要作为备选
  • MIN_TAKE_PROFIT_PRICE_PCT 确保最小止盈距离

3. 分步止盈的保本逻辑

当前实现

  • 第一目标触发后,剩余仓位止损移至入场价(保本)
  • 无论 USE_TRAILING_STOP 是否启用,都会移至保本

优势

  • 彻底杜绝第一目标触发后的亏损可能
  • 剩余仓位可以追求更高收益

潜在问题

  • ⚠️ 如果价格在入场价附近震荡,可能频繁触发保本止损
  • ⚠️ 但这是可接受的因为已经锁定了50%的利润

4. 止盈价选择逻辑

当前实现:取所有方法中最宽松(最远)的价格

潜在问题

  • 如果 TAKE_PROFIT_PERCENT (25%) 计算出的止盈价很远,可能难以触发
  • 但 ATR 方法通常会给出更合理的价格

建议

  • 当前逻辑合理,优先使用 ATR 方法
  • ⚠️ 需要监控实际止盈触发率

📋 策略逻辑流程图

开仓
  ↓
计算止损ATR × 1.8
  ↓
计算止盈(止损距离 × 1.5 或 ATR × 1.5
  ↓
设置第一目标1:1 盈亏比50%仓位)
  ↓
设置第二目标1.5:1 盈亏比剩余50%仓位)
  ↓
监控持仓
  ↓
  ├─→ 触发止损 → 平仓(损失 -1 单位)
  │
  ├─→ 触发第一目标 → 平仓50% → 止损移至保本 → 继续监控
  │     │
  │     └─→ 触发第二目标 → 平仓剩余50%(总盈利 1.25 单位)
  │     └─→ 触发保本止损 → 平仓剩余50%(总盈利 0.5 单位)
  │
  └─→ 最小持仓时间未到 → 继续监控

🎯 优化建议

1. 监控关键指标

  • 第一目标触发率:目标 ≥ 60%
  • 第二目标触发率:目标 ≥ 40%
  • 实际盈亏比:目标 ≥ 1.2
  • 盈利因子:目标 ≥ 1.1

2. 如果胜率不足

选项A:提高第一目标触发率

  • 降低第一目标到 0.8:1 盈亏比
  • 但会降低平均盈利

选项B:提高第二目标触发率

  • 降低第二目标到 1.2:1 盈亏比
  • 但会降低平均盈利

选项C:提高入场信号质量

  • 提高 MIN_SIGNAL_STRENGTH(当前 8
  • 仅在 marketRegime=trending 时交易
  • 提高 MIN_SIGNAL_STRENGTH 到 9 或 10

3. 如果第一目标触发率低

  • 检查是否因为最小持仓时间锁导致过早平仓
  • 检查止损是否过紧ATR_STOP_LOSS_MULTIPLIER = 1.8 是否合理)
  • 考虑降低第一目标到 0.9:1

4. 如果第二目标触发率低

  • 检查止盈价是否过远
  • 考虑降低第二目标到 1.3:1 或 1.2:1
  • 但需要权衡:降低目标会降低平均盈利

总结

当前策略的优势

  1. 分步止盈:锁定部分利润,降低风险
  2. 保本保护:第一目标触发后不会亏损
  3. 动态止损:基于 ATR适应市场波动
  4. 最小持仓时间:避免过早平仓

当前策略的挑战

  1. ⚠️ 胜率要求:需要 45-65% 胜率(取决于第二目标触发率)
  2. ⚠️ 第二目标触发率:需要趋势延续,可能较低
  3. ⚠️ 需要监控:实际触发率可能与理论不符

建议

  1. 先运行观察:收集实际数据(第一/第二目标触发率、实际盈亏比)
  2. 根据数据调整
    • 如果第一目标触发率 < 60%:考虑降低到 0.9:1
    • 如果第二目标触发率 < 40%:考虑降低到 1.3:1
    • 如果胜率 < 50%:提高入场信号质量
  3. 目标指标
    • 第一目标触发率 ≥ 60%
    • 第二目标触发率 ≥ 40%
    • 实际盈亏比 ≥ 1.2
    • 盈利因子 ≥ 1.1