264 lines
8.6 KiB
Markdown
264 lines
8.6 KiB
Markdown
# 交易策略逻辑完整分析
|
||
|
||
## 📊 当前策略参数配置
|
||
|
||
### 核心参数
|
||
| 参数 | 当前值 | 说明 |
|
||
|------|--------|------|
|
||
| `ATR_STOP_LOSS_MULTIPLIER` | 1.8 | ATR止损倍数(止损距离 = ATR × 1.8) |
|
||
| `ATR_TAKE_PROFIT_MULTIPLIER` | 1.5 | ATR止盈倍数(备选方法,当无止损距离时使用) |
|
||
| `RISK_REWARD_RATIO` | 1.5 | 盈亏比(止盈距离 = 止损距离 × 1.5) |
|
||
| `MIN_TAKE_PROFIT_PRICE_PCT` | 0.02 (2%) | 最小止盈价格变动保护 |
|
||
| `MIN_HOLD_TIME_SEC` | 1800 (30分钟) | 最小持仓时间锁 |
|
||
| `USE_TRAILING_STOP` | False | 移动止损(已禁用) |
|
||
|
||
## 🎯 止盈计算逻辑(优先级顺序)
|
||
|
||
### 方法1:基于止损距离和盈亏比(优先使用)
|
||
```
|
||
止盈距离 = 止损距离 × RISK_REWARD_RATIO (1.5)
|
||
止盈价 = 入场价 ± 止盈距离
|
||
```
|
||
|
||
**示例**:
|
||
- 入场价:100 USDT
|
||
- ATR:3 USDT (3%)
|
||
- 止损距离:100 × 0.03 × 1.8 = 5.4 USDT (5.4%)
|
||
- 止损价:100 - 5.4 = 94.6 USDT
|
||
- **止盈距离**:5.4 × 1.5 = **8.1 USDT (8.1%)**
|
||
- **止盈价**:100 + 8.1 = **108.1 USDT**
|
||
|
||
### 方法2:基于ATR倍数(备选,当无止损距离时)
|
||
```
|
||
止盈距离 = ATR百分比 × ATR_TAKE_PROFIT_MULTIPLIER (1.5)
|
||
止盈价 = 入场价 × (1 ± 止盈距离百分比)
|
||
```
|
||
|
||
**示例**:
|
||
- 入场价:100 USDT
|
||
- ATR:3 USDT (3%)
|
||
- **止盈距离**:0.03 × 1.5 = **4.5%**
|
||
- **止盈价**:100 × 1.045 = **104.5 USDT**
|
||
|
||
### 方法3:基于保证金百分比(兜底)
|
||
```
|
||
止盈金额 = 保证金 × TAKE_PROFIT_PERCENT (25%)
|
||
止盈价 = 入场价 ± (止盈金额 / 数量)
|
||
```
|
||
|
||
### 方法4:最小价格变动保护
|
||
```
|
||
止盈价 = 入场价 × (1 ± MIN_TAKE_PROFIT_PRICE_PCT) (2%)
|
||
```
|
||
|
||
**最终止盈价选择**:取以上方法中最宽松(最远)的价格
|
||
|
||
## 🔄 分步止盈策略
|
||
|
||
### 第一阶段:50% 仓位在 1:1 盈亏比止盈
|
||
```
|
||
第一目标价 = 入场价 ± (入场价 - 止损价)
|
||
第一目标 = 盈亏比 1:1(相对于保证金)
|
||
```
|
||
|
||
**触发条件**:
|
||
- 当前盈亏百分比(基于保证金)≥ 止损百分比(基于保证金)
|
||
- 平仓 50% 仓位
|
||
- **将剩余仓位止损移至入场价(保本)**
|
||
|
||
### 第二阶段:剩余 50% 仓位在 1.5:1 盈亏比止盈
|
||
```
|
||
第二目标价 = 原始止盈价(基于止损距离 × 1.5)
|
||
第二目标 = 盈亏比 1.5:1(相对于剩余仓位的保证金)
|
||
```
|
||
|
||
**触发条件**:
|
||
- 剩余仓位盈亏百分比(基于剩余保证金)≥ 1.5 × 止损百分比
|
||
- 平仓剩余 50% 仓位
|
||
|
||
## 📈 胜率要求分析
|
||
|
||
### 理论盈亏比计算
|
||
|
||
假设:
|
||
- 止损损失:-1 单位(基于保证金)
|
||
- 第一目标盈利(50%仓位):+1 单位(1:1)
|
||
- 第二目标盈利(50%仓位):+1.5 单位(1.5:1)
|
||
|
||
**完整交易期望收益**:
|
||
- 如果第一目标触发(概率 P1),第二目标也触发(概率 P2):
|
||
- 总盈利 = 0.5 × 1 + 0.5 × 1.5 = **1.25 单位**
|
||
- 如果第一目标触发,但第二目标未触发(概率 P1 × (1-P2)):
|
||
- 总盈利 = 0.5 × 1 + 0.5 × 0 = **0.5 单位**
|
||
- 如果第一目标未触发,直接止损:
|
||
- 总损失 = **-1 单位**
|
||
|
||
### 盈亏平衡点计算
|
||
|
||
**最理想情况**(第一目标100%触发,第二目标100%触发):
|
||
```
|
||
胜率 × 1.25 = 败率 × 1
|
||
胜率 × 1.25 = (1 - 胜率) × 1
|
||
胜率 × 2.25 = 1
|
||
胜率 = 44.4%
|
||
```
|
||
|
||
**保守情况**(第一目标100%触发,第二目标50%触发):
|
||
```
|
||
平均盈利 = 0.5 × 1.25 + 0.5 × 0.5 = 0.875 单位
|
||
胜率 × 0.875 = (1 - 胜率) × 1
|
||
胜率 × 1.875 = 1
|
||
胜率 = 53.3%
|
||
```
|
||
|
||
**最保守情况**(第一目标100%触发,第二目标0%触发):
|
||
```
|
||
平均盈利 = 0.5 单位
|
||
胜率 × 0.5 = (1 - 胜率) × 1
|
||
胜率 × 1.5 = 1
|
||
胜率 = 66.7%
|
||
```
|
||
|
||
### 实际胜率要求评估
|
||
|
||
**关键因素**:
|
||
1. **第一目标触发率**:1:1 盈亏比相对容易触发(预期 60-70%)
|
||
2. **第二目标触发率**:1.5:1 盈亏比需要趋势延续(预期 40-50%)
|
||
3. **保本保护**:第一目标触发后,剩余仓位止损移至入场价,**彻底杜绝亏损可能**
|
||
|
||
**实际期望**:
|
||
- 如果第一目标触发率 = 65%,第二目标触发率 = 45%
|
||
- 平均盈利 = 0.65 × (0.45 × 1.25 + 0.55 × 0.5) = **0.65 × 0.8375 = 0.544 单位**
|
||
- 盈亏平衡点:胜率 × 0.544 = (1 - 胜率) × 1
|
||
- **胜率 = 64.8%**
|
||
|
||
## ⚠️ 潜在问题分析
|
||
|
||
### 1. 胜率要求较高
|
||
**问题**:如果第一目标触发率低,或第二目标触发率低,需要更高的胜率才能盈利。
|
||
|
||
**缓解措施**:
|
||
- ✅ 分步止盈确保至少锁定部分利润
|
||
- ✅ 保本保护确保第一目标触发后不会亏损
|
||
- ✅ 最小持仓时间锁(30分钟)避免过早平仓
|
||
- ⚠️ **需要监控实际第一/第二目标触发率**
|
||
|
||
### 2. ATR_TAKE_PROFIT_MULTIPLIER 与 RISK_REWARD_RATIO 的关系
|
||
**当前逻辑**:
|
||
- 优先使用 `止损距离 × RISK_REWARD_RATIO (1.5)` 计算止盈
|
||
- `ATR_TAKE_PROFIT_MULTIPLIER (1.5)` 仅作为备选(当无止损距离时)
|
||
|
||
**潜在问题**:
|
||
- 如果 ATR 很小,`ATR_TAKE_PROFIT_MULTIPLIER` 可能计算出过小的止盈距离
|
||
- 但 `MIN_TAKE_PROFIT_PRICE_PCT (2%)` 提供了保护
|
||
|
||
**建议**:
|
||
- ✅ 当前逻辑合理,`ATR_TAKE_PROFIT_MULTIPLIER` 主要作为备选
|
||
- ✅ `MIN_TAKE_PROFIT_PRICE_PCT` 确保最小止盈距离
|
||
|
||
### 3. 分步止盈的保本逻辑
|
||
**当前实现**:
|
||
- 第一目标触发后,剩余仓位止损移至入场价(保本)
|
||
- **无论 `USE_TRAILING_STOP` 是否启用,都会移至保本**
|
||
|
||
**优势**:
|
||
- ✅ 彻底杜绝第一目标触发后的亏损可能
|
||
- ✅ 剩余仓位可以追求更高收益
|
||
|
||
**潜在问题**:
|
||
- ⚠️ 如果价格在入场价附近震荡,可能频繁触发保本止损
|
||
- ⚠️ 但这是可接受的,因为已经锁定了50%的利润
|
||
|
||
### 4. 止盈价选择逻辑
|
||
**当前实现**:取所有方法中最宽松(最远)的价格
|
||
|
||
**潜在问题**:
|
||
- 如果 `TAKE_PROFIT_PERCENT (25%)` 计算出的止盈价很远,可能难以触发
|
||
- 但 ATR 方法通常会给出更合理的价格
|
||
|
||
**建议**:
|
||
- ✅ 当前逻辑合理,优先使用 ATR 方法
|
||
- ⚠️ 需要监控实际止盈触发率
|
||
|
||
## 📋 策略逻辑流程图
|
||
|
||
```
|
||
开仓
|
||
↓
|
||
计算止损(ATR × 1.8)
|
||
↓
|
||
计算止盈(止损距离 × 1.5 或 ATR × 1.5)
|
||
↓
|
||
设置第一目标(1:1 盈亏比,50%仓位)
|
||
↓
|
||
设置第二目标(1.5:1 盈亏比,剩余50%仓位)
|
||
↓
|
||
监控持仓
|
||
↓
|
||
├─→ 触发止损 → 平仓(损失 -1 单位)
|
||
│
|
||
├─→ 触发第一目标 → 平仓50% → 止损移至保本 → 继续监控
|
||
│ │
|
||
│ └─→ 触发第二目标 → 平仓剩余50%(总盈利 1.25 单位)
|
||
│ └─→ 触发保本止损 → 平仓剩余50%(总盈利 0.5 单位)
|
||
│
|
||
└─→ 最小持仓时间未到 → 继续监控
|
||
```
|
||
|
||
## 🎯 优化建议
|
||
|
||
### 1. 监控关键指标
|
||
- **第一目标触发率**:目标 ≥ 60%
|
||
- **第二目标触发率**:目标 ≥ 40%
|
||
- **实际盈亏比**:目标 ≥ 1.2
|
||
- **盈利因子**:目标 ≥ 1.1
|
||
|
||
### 2. 如果胜率不足
|
||
**选项A**:提高第一目标触发率
|
||
- 降低第一目标到 0.8:1 盈亏比
|
||
- 但会降低平均盈利
|
||
|
||
**选项B**:提高第二目标触发率
|
||
- 降低第二目标到 1.2:1 盈亏比
|
||
- 但会降低平均盈利
|
||
|
||
**选项C**:提高入场信号质量
|
||
- 提高 `MIN_SIGNAL_STRENGTH`(当前 8)
|
||
- 仅在 `marketRegime=trending` 时交易
|
||
- 提高 `MIN_SIGNAL_STRENGTH` 到 9 或 10
|
||
|
||
### 3. 如果第一目标触发率低
|
||
- 检查是否因为最小持仓时间锁导致过早平仓
|
||
- 检查止损是否过紧(ATR_STOP_LOSS_MULTIPLIER = 1.8 是否合理)
|
||
- 考虑降低第一目标到 0.9:1
|
||
|
||
### 4. 如果第二目标触发率低
|
||
- 检查止盈价是否过远
|
||
- 考虑降低第二目标到 1.3:1 或 1.2:1
|
||
- 但需要权衡:降低目标会降低平均盈利
|
||
|
||
## ✅ 总结
|
||
|
||
### 当前策略的优势
|
||
1. ✅ **分步止盈**:锁定部分利润,降低风险
|
||
2. ✅ **保本保护**:第一目标触发后不会亏损
|
||
3. ✅ **动态止损**:基于 ATR,适应市场波动
|
||
4. ✅ **最小持仓时间**:避免过早平仓
|
||
|
||
### 当前策略的挑战
|
||
1. ⚠️ **胜率要求**:需要 45-65% 胜率(取决于第二目标触发率)
|
||
2. ⚠️ **第二目标触发率**:需要趋势延续,可能较低
|
||
3. ⚠️ **需要监控**:实际触发率可能与理论不符
|
||
|
||
### 建议
|
||
1. **先运行观察**:收集实际数据(第一/第二目标触发率、实际盈亏比)
|
||
2. **根据数据调整**:
|
||
- 如果第一目标触发率 < 60%:考虑降低到 0.9:1
|
||
- 如果第二目标触发率 < 40%:考虑降低到 1.3:1
|
||
- 如果胜率 < 50%:提高入场信号质量
|
||
3. **目标指标**:
|
||
- 第一目标触发率 ≥ 60%
|
||
- 第二目标触发率 ≥ 40%
|
||
- 实际盈亏比 ≥ 1.2
|
||
- 盈利因子 ≥ 1.1
|