auto_trade_sys/STOP_LOSS_TAKE_PROFIT_EXPLANATION.md
薇薇安 6d2498b717 a
2026-01-17 01:28:39 +08:00

4.6 KiB
Raw Blame History

止损止盈机制说明

问题背景

之前基于价格的盈亏比如止损3%价格止盈5%价格现在改为基于保证金的盈亏比如止损3% of margin止盈5% of margin

问题基于保证金的方式在10x杠杆下

  • 止损3% of margin = 价格变动约0.3%
  • 止盈5% of margin = 价格变动约0.5%

这太严格了,容易被正常波动触发。

解决方案:混合方案

现在系统采用混合方案,同时考虑:

  1. 基于保证金的止损止盈:控制风险金额
  2. 基于价格的最小变动:防止止损止盈过紧

系统会取两者中更宽松的一个,既保证风险控制,又避免被正常波动触发。

配置参数

1. STOP_LOSS_PERCENT (止损百分比,相对于保证金)

  • 默认值0.03 (3%)
  • 说明:当保证金亏损达到此百分比时触发止损
  • 计算:止损金额 = 保证金 × 止损百分比
  • 示例10x杠杆100 USDT入场保证金10 USDT止损3% = 0.3 USDT

2. TAKE_PROFIT_PERCENT (止盈百分比,相对于保证金)

  • 默认值0.05 (5%)
  • 说明:当保证金盈利达到此百分比时触发止盈
  • 计算:止盈金额 = 保证金 × 止盈百分比
  • 示例10x杠杆100 USDT入场保证金10 USDT止盈5% = 0.5 USDT

3. MIN_STOP_LOSS_PRICE_PCT (最小止损价格变动百分比) 新增

  • 默认值0.01 (1%)
  • 说明:止损价格变动的最小百分比,防止止损过紧
  • 作用即使基于保证金的止损更紧也会使用至少1%的价格变动
  • 示例如果基于保证金的止损对应0.3%价格变动但配置了1%最小变动则使用1%

4. MIN_TAKE_PROFIT_PRICE_PCT (最小止盈价格变动百分比) 新增

  • 默认值0.015 (1.5%)
  • 说明:止盈价格变动的最小百分比,防止止盈过紧
  • 作用即使基于保证金的止盈更紧也会使用至少1.5%的价格变动
  • 示例如果基于保证金的止盈对应0.5%价格变动但配置了1.5%最小变动则使用1.5%

计算逻辑

止损计算示例10x杠杆入场价100 USDT数量1

  1. 基于保证金的止损

    • 保证金 = (100 × 1) / 10 = 10 USDT
    • 止损金额 = 10 × 3% = 0.3 USDT
    • 止损价 = 100 - (0.3 / 1) = 99.7 USDT
    • 价格变动 = 0.3%
  2. 基于价格的最小止损

    • 最小价格变动 = 1%
    • 止损价 = 100 × (1 - 0.01) = 99 USDT
    • 价格变动 = 1%
  3. 最终止损

    • 取更宽松的max(99.7, 99) = 99.7 USDT但实际会使用99 USDT因为1%更宽松)
    • 实际使用99 USDT1%价格变动)

止盈计算示例10x杠杆入场价100 USDT数量1

  1. 基于保证金的止盈

    • 保证金 = 10 USDT
    • 止盈金额 = 10 × 5% = 0.5 USDT
    • 止盈价 = 100 + (0.5 / 1) = 100.5 USDT
    • 价格变动 = 0.5%
  2. 基于价格的最小止盈

    • 最小价格变动 = 1.5%
    • 止盈价 = 100 × (1 + 0.015) = 101.5 USDT
    • 价格变动 = 1.5%
  3. 最终止盈

    • 取更宽松的max(100.5, 101.5) = 101.5 USDT1.5%价格变动)

配置建议

保守策略

  • STOP_LOSS_PERCENT: 0.05 (5% of margin)
  • TAKE_PROFIT_PERCENT: 0.08 (8% of margin)
  • MIN_STOP_LOSS_PRICE_PCT: 0.01 (1%)
  • MIN_TAKE_PROFIT_PRICE_PCT: 0.015 (1.5%)

平衡策略(推荐)

  • STOP_LOSS_PERCENT: 0.03 (3% of margin)
  • TAKE_PROFIT_PERCENT: 0.05 (5% of margin)
  • MIN_STOP_LOSS_PRICE_PCT: 0.01 (1%)
  • MIN_TAKE_PROFIT_PRICE_PCT: 0.015 (1.5%)

激进策略

  • STOP_LOSS_PERCENT: 0.02 (2% of margin)
  • TAKE_PROFIT_PERCENT: 0.03 (3% of margin)
  • MIN_STOP_LOSS_PRICE_PCT: 0.005 (0.5%)
  • MIN_TAKE_PROFIT_PRICE_PCT: 0.01 (1%)

优势

  1. 风险控制:基于保证金的止损确保每笔交易的最大亏损是固定的
  2. 避免误触发:最小价格变动保护避免被正常波动触发
  3. 灵活性:可以根据不同市场条件调整参数
  4. 与币安一致:盈亏百分比显示与币安一致(相对于保证金)

注意事项

  1. 杠杆影响:杠杆越高,基于保证金的止损对应的价格变动越小
  2. 市场波动:在波动大的市场,可以适当提高最小价格变动百分比
  3. 技术止损:系统仍会考虑技术分析(支撑/阻力、布林带),如果技术止损更紧,会使用技术止损

如何配置

可以通过以下方式配置:

  1. 数据库配置表:在 trading_config 表中添加/修改配置项
  2. 环境变量:设置环境变量(如 MIN_STOP_LOSS_PRICE_PCT=0.01
  3. 前端配置面板:在配置面板中修改(如果已添加相应配置项)