# 实验记录 005: select_num 参数对策略表现的影响

## 实验信息

| 项目 | 内容 |
|------|------|
| 实验编号 | 005 |
| 实验日期 | 2026-06-02 |
| 实验类型 | A/B/C 对比测试 |
| 研究问题 | `diversified=true` 模式下，`select_num` 取 1/2/3 时对策略收益与风险的影响 |
| 配置文件 | `rotation/config_simple.yaml` (L133 `select_num`) |
| 实验脚本 | `rotation/experiment_select_num.py` |

---

## 1. 实验背景

### 策略选股流程

```
Step 1: 类内竞争 → 每个 market 大类只保留得分最高的1只标的（大类冠军）
Step 2: 跨类排序 → 从大类冠军中按得分从高到低选 Top select_num
```

### 核心问题

`select_num` 控制最终持仓标的数量，直接影响集中度和分散度：
- `select_num=1`：单标的集中持仓，无分散化效果
- `select_num=2`：持有 2 个大类的冠军标的
- `select_num=3`：持有 3 个大类的冠军标的（当前默认配置）

**理论预期**：
- 持仓数量越少，集中度越高，潜在收益和波动均放大
- 持仓数量越多，分散化效果越好，回撤更小，但可能引入边际收益较低的标的

---

## 2. 实验设计

### A/B/C 组配置

| 组别 | select_num | 持仓数量 | 其他配置 |
|------|-----------|---------|---------|
| **A组** | 1 | 单标的 | 同对照组 |
| **B组** | 2 | 双标的 | 同对照组 |
| **C组** | 3 | 三标的 | 同对照组（当前默认） |

### 固定配置（三组相同）

```yaml
factor:
  type: "weighted_momentum"
  n_days: 25

rotation:
  diversified: true
  threshold:
    mode: "dynamic"
    reference: "931862.CSI"    # 短债动量基准
```

### 回测区间

2020-01-10 ~ 2026-06-02，共 **1546 个交易日**

---

## 3. 回测结果

### 核心指标对比

| 指标 | Top-1（A组） | Top-2（B组） | Top-3（C组） |
|------|------------|------------|------------|
| 累计收益 | **600.31%** | 369.88% | 302.14% |
| 年化收益 | **37.34%** | 28.69% | 25.46% |
| 最大回撤 | -25.53% | -16.93% | **-14.74%** |
| 夏普比率 | 1.11 | 1.27 | **1.35** |
| Calmar比率 | 1.46 | 1.69 | **1.73** |
| 日胜率 | 54.49% | **55.35%** | 55.18% |
| 调仓次数 | 197 | 319 | 405 |

### 关键观察

**收益维度：**
- Top-1 累计收益（600%）几乎是 Top-3（302%）的 2 倍
- 集中持仓显著放大了收益，但也意味着更高的单标的依赖风险

**风险维度：**
- Top-3 最大回撤（-14.74%）比 Top-1（-25.53%）降低约 42%
- Top-2 居中（-16.93%），回撤控制效果明显

**风险调整收益（核心指标）：**
- Calmar 比率：Top-3（1.73）> Top-2（1.69）> Top-1（1.46）
- 夏普比率：Top-3（1.35）> Top-2（1.27）> Top-1（1.11）
- **分散化带来更优的风险收益比**

**调仓频率：**
- Top-1 调仓次数最少（197 次），因为持仓切换需要单标的排名大幅变动
- Top-3 调仓次数最多（405 次），持仓组合中任一标的变化都会触发调仓

---

## 4. NAV 曲线对比

![NAV 对比图](../../results/experiment_select_num/select_num_nav_comparison.png)

![指标对比图](../../results/experiment_select_num/select_num_comparison.png)

---

## 5. 结论与建议

### 核心结论

| 目标 | 推荐配置 | 原因 |
|------|---------|------|
| 追求绝对收益 | `select_num=1` | 累计收益最高，但需承受更大回撤 |
| 追求风险调整收益 | `select_num=3` | Calmar/夏普最优，回撤可控 |
| 平衡两者 | `select_num=2` | 收益与回撤的折中方案 |

### 实践建议

- **当前默认配置 `select_num=3` 是合理的选择**，Calmar 比率最优，适合长期持有
- 若资金规模较小、风险承受能力强，可考虑 `select_num=1` 追求高弹性
- `select_num=2` 的 Calmar（1.69）与 Top-3（1.73）非常接近，但收益更高（369% vs 302%），值得进一步观察

---

## 6. 实验数据位置

```
results/experiment_select_num/
├── select_1/
│   ├── simple_rotation_nav.csv
│   ├── simple_rotation_signals.csv
│   ├── simple_rotation_detail.json
│   └── simple_rotation_metrics.json
├── select_2/
│   └── ... (同上)
├── select_3/
│   └── ... (同上)
├── select_num_comparison.png      # 指标对比柱状图
├── select_num_nav_comparison.png  # NAV 叠加曲线图
└── experiment_metrics.json        # 三组指标汇总
```
