4.6 KiB
4.6 KiB
止损止盈机制说明
问题背景
之前基于价格的盈亏比(如止损3%价格,止盈5%价格),现在改为基于保证金的盈亏比(如止损3% of margin,止盈5% of margin)。
问题:基于保证金的方式,在10x杠杆下:
- 止损3% of margin = 价格变动约0.3%
- 止盈5% of margin = 价格变动约0.5%
这太严格了,容易被正常波动触发。
解决方案:混合方案
现在系统采用混合方案,同时考虑:
- 基于保证金的止损止盈:控制风险金额
- 基于价格的最小变动:防止止损止盈过紧
系统会取两者中更宽松的一个,既保证风险控制,又避免被正常波动触发。
配置参数
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)
-
基于保证金的止损:
- 保证金 = (100 × 1) / 10 = 10 USDT
- 止损金额 = 10 × 3% = 0.3 USDT
- 止损价 = 100 - (0.3 / 1) = 99.7 USDT
- 价格变动 = 0.3%
-
基于价格的最小止损:
- 最小价格变动 = 1%
- 止损价 = 100 × (1 - 0.01) = 99 USDT
- 价格变动 = 1%
-
最终止损:
- 取更宽松的:max(99.7, 99) = 99.7 USDT(但实际会使用99 USDT,因为1%更宽松)
- 实际:使用99 USDT(1%价格变动)
止盈计算示例(10x杠杆,入场价100 USDT,数量1)
-
基于保证金的止盈:
- 保证金 = 10 USDT
- 止盈金额 = 10 × 5% = 0.5 USDT
- 止盈价 = 100 + (0.5 / 1) = 100.5 USDT
- 价格变动 = 0.5%
-
基于价格的最小止盈:
- 最小价格变动 = 1.5%
- 止盈价 = 100 × (1 + 0.015) = 101.5 USDT
- 价格变动 = 1.5%
-
最终止盈:
- 取更宽松的:max(100.5, 101.5) = 101.5 USDT(1.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%)
优势
- 风险控制:基于保证金的止损确保每笔交易的最大亏损是固定的
- 避免误触发:最小价格变动保护避免被正常波动触发
- 灵活性:可以根据不同市场条件调整参数
- 与币安一致:盈亏百分比显示与币安一致(相对于保证金)
注意事项
- 杠杆影响:杠杆越高,基于保证金的止损对应的价格变动越小
- 市场波动:在波动大的市场,可以适当提高最小价格变动百分比
- 技术止损:系统仍会考虑技术分析(支撑/阻力、布林带),如果技术止损更紧,会使用技术止损
如何配置
可以通过以下方式配置:
- 数据库配置表:在
trading_config表中添加/修改配置项 - 环境变量:设置环境变量(如
MIN_STOP_LOSS_PRICE_PCT=0.01) - 前端配置面板:在配置面板中修改(如果已添加相应配置项)