From c782830f759c8cdb84e2c65d522ead6bda94a984 Mon Sep 17 00:00:00 2001 From: aszerW Date: Sat, 16 May 2026 20:49:23 +0800 Subject: [PATCH] =?UTF-8?q?docs(experiments):=20=E8=BD=AE=E5=8A=A8?= =?UTF-8?q?=E7=AD=96=E7=95=A5=E6=94=B9=E8=BF=9B=E7=89=88=E5=9B=9E=E6=B5=8B?= =?UTF-8?q?=E5=88=86=E6=9E=90=E6=8A=A5=E5=91=8A?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 新增改进版策略分析报告,展示空仓机制和大类冠军二次过滤后的表现: 核心内容: - 策略改进说明:空仓机制、大类冠军二次过滤、min_score配置化 - 版本对比分析:累计收益+2708%、最大回撤改善10.8% - 月度收益详细表格:2000-2026年完整数据 - 空仓天数统计:131天(1.6%),集中在2000-2002年 关键对比: | 指标 | 原版 | 改进版 | 改善 | |------|------|--------|------| | 累计收益 | 11872% | 14580% | +2708% | | 最大回撤 | -71.9% | -61.1% | +10.8% | | 空仓天数 | 4天 | 131天 | +127天 | --- .../experiments/轮动策略改进版回测分析报告.md | 208 ++++++++++++++++++ 1 file changed, 208 insertions(+) create mode 100644 docs/experiments/轮动策略改进版回测分析报告.md diff --git a/docs/experiments/轮动策略改进版回测分析报告.md b/docs/experiments/轮动策略改进版回测分析报告.md new file mode 100644 index 0000000..0d45b5f --- /dev/null +++ b/docs/experiments/轮动策略改进版回测分析报告.md @@ -0,0 +1,208 @@ +# 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` \ No newline at end of file