# 创业板50指数 - 趋势跟踪策略方案详解

## 一、策略概述

**策略名称**：多均线趋势跟踪策略  
**标的**：创业板50指数 (sz.399673)  
**交易频率**：日频  
**策略类型**：右侧趋势跟踪，中长期持仓

**核心思想**：
- 只在上升趋势中持仓，回避下跌趋势
- 利用多均线系统确认趋势强度
- 突破新高确认动量，避免假突破

---

## 二、入场信号（买入条件）

### 条件1：均线多头排列
```
当前价格 > MA10 > MA30
```
- MA10：短期趋势（10日均线）
- MA30：中期趋势（30日均线）
- 含义：短期趋势强于中期，确认上升趋势

### 条件2：突破近期高点
```
当前价格 >= 20日最高价 × 0.995
```
- 20日最高价：过去20个交易日的最高价
- 0.995：允许0.5%的误差（避免过于敏感）
- 含义：价格创近期新高，确认突破有效

### 条件3：短期动量为正
```
10日涨幅 = (当前价 / 10日前收盘价 - 1) > 2%
```
- 含义：排除横盘震荡，确保有上涨动能
- 2%：过滤小幅波动

### 入场逻辑
```python
if (当前价 > MA10 > MA30) and (当前价 >= 20日高 × 0.995) and (10日涨幅 > 2%):
    买入信号 = True
    目标仓位 = 100%
```

---

## 三、出场信号（卖出条件）

### 条件1：跌破中期均线
```
当前价格 < MA30
```
- 含义：中期趋势转弱，离场观望
- 这是最主要的出场条件

### 条件2：创近期新低
```
当前价格 <= 20日最低价 × 1.005
```
- 含义：价格创近期新低，趋势可能反转
- 1.005：允许0.5%的误差

### 出场逻辑
```python
if (当前价 < MA30) or (当前价 <= 20日低 × 1.005):
    卖出信号 = True
    目标仓位 = 0%
```

---

## 四、风险控制

### 1. 移动止损
- **触发条件**：从持仓期间最高价回撤 **10%**
- **逻辑**：
  ```python
  if 持仓中:
      if 当前价 > 持仓最高价:
          持仓最高价 = 当前价  # 更新最高点
      if 当前价 < 持仓最高价 × 0.90:
          强制卖出 = True  # 回撤10%止损
  ```
- **作用**：保护利润，防止大幅回吐

### 2. 最小调仓幅度
- 仅当目标仓位与当前仓位差异 > 20% 时才执行交易
- 减少无效交易，降低摩擦成本

---

## 五、参数设置

| 参数 | 数值 | 说明 |
|------|------|------|
| **短期均线** | 10日 | 捕捉短期趋势 |
| **中期均线** | 30日 | 确认中期趋势 |
| **突破周期** | 20日 | 突破近20日高点 |
| **动量周期** | 10日 | 计算10日涨幅 |
| **动量阈值** | 2% | 最小入场动量 |
| **移动止损** | 10% | 从最高点回撤止损 |
| **最小调仓** | 20% | 避免频繁交易 |

---

## 六、交易示例

### 示例1：成功交易（2019年初）
```
日期: 2019-02-11
价格: 1080点
MA10: 1050点
MA30: 1040点
20日高: 1075点
10日涨幅: 5.2%

条件检查:
✓ 1080 > 1050 > 1040 (均线多头排列)
✓ 1080 >= 1075 × 0.995 = 1070 (突破新高)
✓ 5.2% > 2% (动量足够)

→ 买入信号触发，满仓入场
```

### 示例2：止损出场（2020年3月）
```
日期: 2020-03-09
持仓最高价: 2100点
当前价: 1850点

回撤计算: (1850 - 2100) / 2100 = -11.9%

→ 回撤超过10%，触发移动止损，清仓离场
```

---

## 七、策略特点

### 优势
1. **熊市保护**：2018年熊市策略+1.8%，指数-38.7%
2. **回撤控制**：历史最大回撤约-13% ~ -20%
3. **简单易执行**：规则清晰，无需复杂计算
4. **高胜率**：9年中有7年跑赢指数(78%)

### 劣势
1. **牛市踏空**：极端疯牛年份跑输指数（如2020、2025）
2. **震荡磨损**：横盘震荡期可能频繁进出
3. **滞后性**：右侧交易，底部和顶部都有延迟

---

## 八、回测绩效

| 指标 | 训练集(2018-23) | 验证集(2024-25) |
|------|----------------|----------------|
| **年化收益** | 17.87% | 37.59% |
| **最大回撤** | -13.28% | -20.59% |
| **夏普比率** | 0.87 | 1.15 |
| **胜率** | 17.8% | - |
| **交易次数** | 年均4-6次 | 年均4次 |

---

## 九、适用场景

### 推荐使用
- ✅ 震荡市和熊市（策略核心优势）
- ✅ 无法承受大幅回撤的投资者
- ✅ 希望规避系统性风险的配置

### 谨慎使用
- ⚠️ 单边疯牛市（会踏空）
- ⚠️ 极度低波动市场（信号减少）

---

## 十、代码实现核心

```python
class TrendStrategy:
    def generate_signal(self, data):
        close = data['close'].values
        high = data['high'].values
        low = data['low'].values
        
        # 计算指标
        ma10 = np.mean(close[-10:])
        ma30 = np.mean(close[-30:])
        ret10 = (close[-1] / close[-10] - 1)
        high_20 = np.max(high[-20:])
        low_20 = np.min(low[-20:])
        curr = close[-1]
        
        # 买入条件
        buy = (curr > ma10 > ma30) and (curr >= high_20 * 0.995) and (ret10 > 0.02)
        
        # 卖出条件
        sell = (curr < ma30) or (curr <= low_20 * 1.005)
        
        # 移动止损
        if self.pos > 0 and curr < self.peak * 0.90:
            sell = True
        
        return buy, sell
```

---

**总结**：这是一个经典的双均线+突破的趋势跟踪策略，核心是在 "均线多头排列 + 突破新高 + 正向动量" 三重确认下入场，在 "跌破均线" 或 "移动止损" 时离场。简单有效，特别适合高波动的创业板市场。
