Files
etf/docs/experiments/轮动策略改进版回测分析报告.md
aszerW c782830f75 docs(experiments): 轮动策略改进版回测分析报告
新增改进版策略分析报告,展示空仓机制和大类冠军二次过滤后的表现:

核心内容:
- 策略改进说明:空仓机制、大类冠军二次过滤、min_score配置化
- 版本对比分析:累计收益+2708%、最大回撤改善10.8%
- 月度收益详细表格:2000-2026年完整数据
- 空仓天数统计:131天(1.6%),集中在2000-2002年

关键对比:
| 指标 | 原版 | 改进版 | 改善 |
|------|------|--------|------|
| 累计收益 | 11872% | 14580% | +2708% |
| 最大回撤 | -71.9% | -61.1% | +10.8% |
| 空仓天数 | 4天 | 131天 | +127天 |
2026-05-16 20:49:23 +08:00

208 lines
8.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.

# ETF轮动策略改进版回测分析报告
## 策略改进说明
### 本次修改内容
本报告展示添加**空仓机制**和**大类冠军二次过滤**后的策略表现。
#### 核心改进
| 改进项 | 原逻辑 | 新逻辑 | 效果 |
|--------|--------|--------|------|
| **空仓机制** | target为空时继续持有current_held持仓惯性 | target为空时设置`current_held=''`清仓 | 避免负动量期间的持仓惯性亏损 |
| **大类冠军二次过滤** | 每大类选Top1后直接跨类排序 | 大类冠军必须>=min_score才入选得分不足跳过 | 组合中每个标的动量都达标 |
| **min_score配置化** | 固定值0.0 | 从config.yaml读取可动态调整 | 支持策略参数调优 |
#### 代码修改
1. **selectors.py** - `_apply_rebalance_control`函数:
- 添加else分支处理target为空的情况
- 设置`current_held=''`触发清仓
2. **selectors.py** - `_grouped_selection`函数:
- 大类冠军得分不足时跳过该大类
- 持仓数量动态调整最多select_num最少0
3. **strategy.py** - min_score参数
- 从配置文件读取,支持动态调整
4. **config.yaml** - 新增参数:
- `min_score: 0.0`(过滤负动量标的)
---
## 版本对比分析
### 总体指标对比
| 指标 | 原版(无空仓机制) | 改进版(空仓+二次过滤) | 改善幅度 |
|------|-------------------|----------------------|---------|
| **累计收益** | 11872.2% | **14580.5%** | +2708.3% (+22.9%) |
| **年化收益** | 23.2% | **25.2%** | +2.0% |
| **最大回撤** | -71.9% | **-61.1%** | +10.8% (回撤减少) |
| **空仓天数** | 4天 (0.05%) | **131天 (1.6%)** | +127天 |
| **回测区间** | 2000-01 ~ 2026-05 | 2000-01 ~ 2026-05 | 相同 |
### 关键年份对比
| 年份 | 原版年收益 | 改进版年收益 | 改善幅度 | 原版空仓 | 改进版空仓 |
|------|-----------|-------------|---------|---------|-----------|
| 2000 | -26.0% | **-8.3%** | +17.7% | 0天 | **77天 (24.8%)** |
| 2001 | -48.7% | **-41.1%** | +7.6% | 0天 | **31天 (9.9%)** |
| 2002 | -10.5% | **3.0%** | +13.5% | 0天 | **10天 (3.2%)** |
| 2008 | -36.2% | **-22.5%** | +13.7% | 0天 | 0天 |
| 2007 | 136.7% | **132.8%** | -3.9% | 0天 | 3天 |
### 决策说明
**min_score设置为0.0**,原因:
- 阈值选择比较"trick",难以确定最优值
- min_score=0.02虽能改善2001年回撤但2000年恶化空仓过多错过机会
- 保持简单稳健的策略更好,避免过度优化
- 空仓机制已能有效改善回撤(-71.9% → -61.1%
---
## 回测概况(改进版)
| 指标 | 值 |
|------|-----|
| **回测区间** | 2000-01-06 ~ 2026-05-15 |
| **总天数** | 8109天22.2年) |
| **累计收益** | 14580.46% |
| **年化收益** | 25.2% |
| **最大回撤** | -61.1% |
| **月胜率** | 63.0%199正/117负 |
| **空仓天数** | 131天1.6% |
---
## 年度收益汇总
| 年份 | 年收益率 | 正月数 | 负月数 | 月均收益 |
|------|---------|--------|--------|---------|
| 2000 | -8.3% | 5 | 6 | -0.7% |
| 2001 | **-41.1%** | 3 | 8 | -3.4% |
| 2002 | 3.0% | 5 | 6 | 0.2% |
| 2003 | 33.3% | 7 | 5 | 1.6% |
| 2004 | 45.8% | 8 | 4 | 2.4% |
| 2005 | 12.8% | 6 | 5 | 1.1% |
| 2006 | 29.9% | 7 | 3 | 2.5% |
| 2007 | **132.8%** | 10 | 1 | 11.1% |
| 2008 | **-22.5%** | 7 | 5 | -1.5% |
| 2009 | **70.3%** | 10 | 2 | 4.6% |
| 2010 | 12.3% | 7 | 5 | 0.9% |
| 2011 | 18.3% | 6 | 6 | 1.4% |
| 2012 | 27.3% | 6 | 6 | 1.6% |
| 2013 | 46.6% | 8 | 4 | 3.1% |
| 2014 | 15.8% | 9 | 3 | 1.3% |
| 2015 | 5.9% | 7 | 5 | 0.8% |
| 2016 | 5.7% | 8 | 4 | 0.6% |
| 2017 | 6.2% | 7 | 5 | 0.4% |
| 2018 | -6.7% | 5 | 7 | -0.8% |
| 2019 | 38.9% | 10 | 2 | 2.6% |
| 2020 | 27.6% | 7 | 5 | 2.8% |
| 2021 | 20.4% | 7 | 5 | 1.5% |
| 2022 | 27.7% | 9 | 3 | 1.9% |
| 2023 | 9.8% | 7 | 5 | 0.6% |
| 2024 | **82.1%** | 5 | 7 | 4.8% |
| 2025 | 35.5% | 8 | 4 | 2.9% |
| 2026* | 18.1% | 4 | 1 | 3.9% |
> *2026年数据截止5月15日
---
## 月度收益详细表格2000-2026
| 年份 | 年收益 | 1月 | 2月 | 3月 | 4月 | 5月 | 6月 | 7月 | 8月 | 9月 | 10月 | 11月 | 12月 |
|------|--------|-----|-----|-----|-----|-----|-----|-----|-----|-----|------|------|------|
| 2000 | -8.3% | 3.8% | -1.9% | 8.6% | -8.4% | 7.7% | -1.6% | -2.5% | 3.7% | **-15.1%** | 3.7% | **-13.1%** | 3.7% |
| 2001 | **-41.1%** | 5.5% | **-18.0%** | **-18.2%** | 5.3% | -9.8% | -4.7% | 0.1% | -8.1% | -4.3% | -6.0% | 11.8% | -3.0% |
| 2002 | 3.0% | -1.9% | 5.5% | 11.4% | **-13.8%** | -2.2% | -6.4% | 6.6% | -1.4% | 0.8% | -4.8% | 7.4% | -0.2% |
| 2003 | 33.3% | -5.9% | -1.5% | **-11.6%** | 8.2% | 10.6% | 3.7% | 3.2% | 3.3% | -2.0% | 3.3% | -0.7% | 8.4% |
| 2004 | 45.8% | 6.2% | 10.5% | -1.1% | -3.8% | 4.0% | -1.4% | 3.3% | 5.1% | 0.8% | 1.2% | 7.2% | -2.6% |
| 2005 | 12.8% | -4.3% | 2.2% | 3.4% | -4.2% | -2.3% | 2.9% | 4.6% | 1.1% | -4.6% | -4.2% | 12.9% | 2.5% |
| 2006 | 29.9% | 4.2% | -6.8% | 3.0% | 17.7% | 7.0% | -1.7% | -5.8% | 2.4% | 1.9% | 3.7% | -0.8% | 3.2% |
| 2007 | **132.8%** | 10.3% | 7.5% | 11.9% | 15.7% | 11.5% | 1.9% | 8.0% | 9.7% | 3.0% | 8.7% | -5.3% | 7.9% |
| 2008 | **-22.5%** | -2.0% | 2.4% | -8.1% | 4.6% | 3.2% | 1.5% | -4.6% | -9.0% | 1.5% | **-15.8%** | 3.9% | 4.8% |
| 2009 | **70.3%** | -5.0% | 0.3% | 7.0% | 13.0% | 19.5% | 1.0% | 6.5% | 4.0% | 3.0% | 1.0% | 6.6% | -1.7% |
| 2010 | 12.3% | -8.5% | 0.6% | 5.9% | -3.1% | -1.7% | -1.0% | 6.0% | 2.3% | 4.9% | 4.8% | 0.7% | -0.2% |
| 2011 | 18.3% | -0.6% | -1.1% | 1.5% | 7.3% | -3.2% | 1.2% | 4.3% | 4.6% | -6.3% | 13.0% | -3.1% | -0.9% |
| 2012 | 27.3% | 3.9% | 5.4% | 3.4% | -3.5% | -6.5% | -0.7% | -0.5% | 6.3% | 7.6% | -0.1% | -0.5% | 4.6% |
| 2013 | 46.6% | 12.2% | -1.2% | 2.0% | 0.2% | 12.9% | -0.6% | 8.6% | -3.5% | 0.8% | 4.5% | 4.2% | -2.5% |
| 2014 | 15.8% | 1.2% | 3.6% | -4.7% | -5.2% | 5.7% | 2.7% | 1.2% | 1.9% | 2.8% | -1.7% | 5.0% | 2.6% |
| 2015 | 5.9% | 0.6% | 7.1% | 11.1% | 11.3% | 4.2% | **-13.3%** | -1.3% | -8.2% | -6.8% | 8.9% | 3.2% | -6.6% |
| 2016 | 5.7% | -6.5% | 0.6% | 6.8% | -4.3% | 0.2% | -5.7% | 1.9% | 2.2% | 1.1% | -3.4% | 10.8% | 4.0% |
| 2017 | 6.2% | -0.0% | 0.9% | -0.1% | -3.7% | 0.1% | -1.9% | 2.5% | 0.7% | 0.2% | 3.0% | 4.3% | -1.0% |
| 2018 | -6.7% | 8.4% | **-10.0%** | -0.2% | 0.4% | 0.4% | -2.0% | -2.5% | 2.4% | 5.2% | -5.2% | -2.7% | -4.3% |
| 2019 | 38.9% | 9.3% | 4.4% | 3.8% | 4.2% | -1.8% | 3.5% | 1.3% | 0.8% | 0.1% | 4.0% | -0.3% | 2.0% |
| 2020 | 27.6% | -3.6% | -2.8% | -6.8% | 12.7% | 9.1% | 6.5% | 8.6% | 0.7% | -3.3% | -2.4% | 6.9% | 7.5% |
| 2021 | 20.4% | 3.4% | 1.2% | -1.0% | 8.7% | 4.4% | 4.1% | -3.3% | 3.5% | -1.3% | 6.3% | -5.5% | -2.1% |
| 2022 | 27.7% | 4.5% | 4.9% | 3.9% | -6.1% | 6.2% | 9.7% | 2.3% | -3.1% | 2.1% | -9.6% | 7.3% | 0.7% |
| 2023 | 9.8% | 12.2% | -5.9% | 0.6% | -2.0% | 7.2% | 0.9% | 6.2% | -5.4% | 0.2% | -4.8% | -2.4% | 0.6% |
| 2024 | **82.1%** | -0.5% | 8.0% | -0.6% | -1.2% | 2.3% | -0.7% | -5.0% | 2.3% | **28.5%** | **30.3%** | -5.3% | -0.0% |
| 2025 | 35.5% | 4.4% | 10.1% | 1.6% | -0.3% | 5.6% | 6.6% | -6.5% | 15.7% | 13.2% | -9.1% | -7.0% | 0.9% |
| 2026 | 18.1% | -0.2% | 1.7% | 7.3% | 4.8% | 5.3% | - | - | - | - | - | - | - |
> 注:**粗体** 标注年收益超过50%或跌幅超过20%、月度跌幅超过10%或涨幅超过20%
---
## 空仓天数统计
### 总体空仓情况
| 指标 | 原版 | 改进版 |
|------|------|--------|
| 空仓总天数 | 4天 | **131天** |
| 空仓占比 | 0.05% | **1.6%** |
### 各年度空仓天数
| 年份 | 空仓天数 | 占比 |
|------|---------|------|
| 2000 | **77天** | **24.8%** |
| 2001 | **31天** | **9.9%** |
| 2002 | 10天 | 3.2% |
| 2003-2026 | 0天 | 0.0% |
> 空仓集中在2000-2002年主要因为互联网泡沫期间股票标的动量普遍为负
---
## 策略特点总结
### 优势
1. **长期收益稳定**年化25.2%26年周期
2. **分散配置**:跨市场、跨资产类别
3. **动量信号有效**:牛市捕捉上涨趋势
4. **空仓机制**:负动量期间自动清仓,避免持仓惯性亏损
5. **大类冠军过滤**:组合中每个标的动量达标,不强制持有弱正动量标的
### 弱点
1. **系统性风险暴露**:全球股灾时难以完全规避
2. **早期数据限制**2000-2005年标的池不足
3. **2001年回撤仍较大**-41.1%,短期动量陷阱问题未完全解决
---
## 数据文件
- 月度收益详细数据: `results/rotation_improved_monthly_returns.csv`
- 净值曲线: `results/rotation_improved_nav.csv`
- 调仓信号: `results/rotation_improved_signals.csv`
---
## Git提交记录
```
a475e1b feat(strategy): 分组选股增强-大类冠军二次过滤确保组合动量达标
```
修改文件:
- `strategies/shared/signals/selectors.py`
- `strategies/rotation/strategy.py`
- `strategies/rotation/config.yaml`