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

121 lines
4.6 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 止损止盈机制说明
## 问题背景
之前基于价格的盈亏比如止损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. **前端配置面板**:在配置面板中修改(如果已添加相应配置项)