feat: 添加ETF轮动策略诊断分析实验

新增6维度策略诊断实验脚本和报告:
- task1: 信号产生分析 (调仓频率、无效调仓率)
- task2: 收益计算分析 (T+1执行偏差、溢价问题)
- task3: 调仓逻辑分析 (最小持仓期模拟)
- task4: 资金管理分析 (止损、波动率适配)
- task5: 收益归因分析 (集中度、静态vs轮动)
- task6: 回撤诊断分析 (最大回撤复盘、尾部风险)

输出报告:
- diagnosis_report.md: 完整策略诊断报告
- rebalancing_optimization_experiment.md: 调仓频率优化实验报告

实验结论:
- 发现调仓过于频繁 (405次/1549天)
- No-Trade Region方案可提升年化3%、夏普0.11
- 但改善幅度有限,信号质量是根本瓶颈
This commit is contained in:
2026-06-06 15:00:28 +08:00
parent f3ba6eb799
commit 04b858ff09
11 changed files with 2702 additions and 0 deletions

View File

@@ -0,0 +1,118 @@
# ETF 轮动策略深度诊断报告
生成时间: 2026-06-06 13:51:49
回测期间: 2020-01-10 ~ 2026-06-05
## 策略表现快照
| 指标 | 数值 |
|---|---|
| 累计收益 | +181.89% |
| 年化收益 | +18.36% |
| 最大回撤 | -16.36% |
| 夏普比率 | 1.02 |
| Calmar 比率 | 1.12 |
| 日胜率 | 54.0% |
| 调仓次数 | 405 |
## Task 1: 信号产生问题诊断
状态: OK | 耗时: 0.2s
### 诊断结论
- 调仓频率: 每 3.8 天一次,无效调仓率 43.0%
- 短期抖动事件: 141 次
- 债券持有占比: 32.9%
## Task 2: 收益计算问题诊断
状态: OK | 耗时: 0.1s
### 诊断结论
- 首日 NAV = 0.997823,存在轻微逻辑瑕疵
- 极端日共 7 次
## Task 3: 调仓逻辑问题诊断
状态: OK | 耗时: 0.1s
### 诊断结论
- 最小持仓期模拟结果:
- 1天: 年化=+19.93%, 回撤=-16.02%, 夏普=1.10
- 3天: 年化=+21.92%, 回撤=-15.68%, 夏普=1.19
- 5天: 年化=+22.85%, 回撤=-15.68%, 夏普=1.23
- 10天: 年化=+24.14%, 回撤=-15.42%, 夏普=1.29
## Task 4: 资金管理问题诊断
状态: OK | 耗时: 0.1s
### 诊断结论
- 止损机制可减少极端回撤,但频繁止损可能拖累长期收益
- 高波动期减仓有助于控制回撤
## Task 5: 整体收益归因分析
状态: OK | 耗时: 0.1s
### 诊断结论
- 收益依赖度: 最好5天贡献了 25.7% 的最终净值
## Task 6: 回撤诊断
状态: OK | 耗时: 0.1s
### 诊断结论
- 最大回撤 -16.36% 发生在 2022-05-10
- CVaR(5%): -2.6196%
- 最大连续亏损: 6 天
## 综合优化建议
### 优先级 P0预期影响最大
1. **降低调仓频率**
- 引入最小持仓期约束(建议 5 天起步)
-`_generate_signals` 中加入 `min_hold_days` 检查
2. **启用溢价控制**
- 对 QDII ETFNDX/N225/GDAXI/HSI/HSTECH启用溢价过滤
- 建议 threshold=5%,避免高溢价买入
### 优先级 P1显著改善回撤
3. **组合级止损机制**
- 建议回撤 > 8% 时触发止损,转债券持有 10 天
4. **修复首日 NAV 逻辑**
- 首日 `current_holdings` 为空时不应计算收益
### 优先级 P2提升风险调整收益
5. **波动率加权配置**
- 替代等权,使用波动率倒数加权平衡风险贡献
6. **波动率适配仓位**
- 高波动期滚动20日波动率 > 20%)减仓至 2/3
### 优先级 P3进一步优化
7. **评估分组机制**
- 对比取消分组 vs 当前分组的收益差异
8. **优化动态阈值**
- 调整 bond_ratio测试不同阈值对防御效果的影响
## 执行统计
| Task | 状态 | 耗时 |
|---|---|---|
| Task 1: 信号产生问题诊断 | OK | 0.2s |
| Task 2: 收益计算问题诊断 | OK | 0.1s |
| Task 3: 调仓逻辑问题诊断 | OK | 0.1s |
| Task 4: 资金管理问题诊断 | OK | 0.1s |
| Task 5: 整体收益归因分析 | OK | 0.1s |
| Task 6: 回撤诊断 | OK | 0.1s |
| **总计** | | **0.6s** |