# 止损止盈机制说明 ## 问题背景 之前基于价格的盈亏比(如止损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 USDT(1%价格变动) ### 止盈计算示例(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 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%) ## 优势 1. **风险控制**:基于保证金的止损确保每笔交易的最大亏损是固定的 2. **避免误触发**:最小价格变动保护避免被正常波动触发 3. **灵活性**:可以根据不同市场条件调整参数 4. **与币安一致**:盈亏百分比显示与币安一致(相对于保证金) ## 注意事项 1. **杠杆影响**:杠杆越高,基于保证金的止损对应的价格变动越小 2. **市场波动**:在波动大的市场,可以适当提高最小价格变动百分比 3. **技术止损**:系统仍会考虑技术分析(支撑/阻力、布林带),如果技术止损更紧,会使用技术止损 ## 如何配置 可以通过以下方式配置: 1. **数据库配置表**:在 `trading_config` 表中添加/修改配置项 2. **环境变量**:设置环境变量(如 `MIN_STOP_LOSS_PRICE_PCT=0.01`) 3. **前端配置面板**:在配置面板中修改(如果已添加相应配置项)