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