Files
etf/rotation/experiments/output/diagnosis_report.md
aszerW 04b858ff09 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
- 但改善幅度有限,信号质量是根本瓶颈
2026-06-06 15:00:28 +08:00

118 lines
2.9 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 轮动策略深度诊断报告
生成时间: 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** |