Files
etf/docs/experiments/002_ndx_vs_spx_replacement.md
aszerW 6b59855c28 experiment(rotation): 同大类扩充与纳指vs标普替换对比实验
技术修复:
- SOCKS5代理IPv6问题:socks5:// → socks5h:// (hybrid_source.py, yfinance_source.py)

目录整理:
- scripts/ → 仅保留策略入口(daily_scheduler, run_rotation, run_cci_screener)
- 实验脚本移至 tests/experiments/
- 工具脚本移至 tests/utils/
- 实验记录新增 docs/experiments/
- results/ 添加到 gitignore

实验结果:

实验001 - 同大类扩充(添加标普500):
├─ 累计收益: 1467.35% → 1176.26% (-291%)
├─ CAGR: 48.10% → 43.82% (-4.28%)
├─ 调仓次数: 459 → 501 (+42次)
└─ 结论: 添加同大类标的不增加跨类分散,反而侵蚀收益

实验002 - 纳指vs标普替换对比:
├─ 累计收益: 1467.35% → 1118.77% (-348%)
├─ CAGR: 48.10% → 42.87% (-5.22%)
├─ Sharpe: 2.21 → 2.08 (-0.13)
├─ MaxDD: -17.33% → -15.14% (+2.18%)
└─ 结论: 纳指100优于标普500,成长风格更适合动量策略

策略建议:
- 保持纳指100作为美股大类代表
- 不添加同大类新标的(避免类内切换成本)
- 新增标的应优先考虑新大类(增加跨类分散)
2026-05-06 20:43:38 +08:00

171 lines
4.2 KiB
Markdown
Raw Permalink 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.

# 实验记录 002: 纳指100 vs 标普500 替换对比
## 实验信息
| 项目 | 内容 |
|------|------|
| 实验编号 | 002 |
| 实验日期 | 2026-05-06 |
| 实验类型 | A/B对比测试替换场景 |
| 研究问题 | 将美股大类代表从纳指100替换为标普500后的绩效变化 |
---
## 1. 实验背景
### 与001实验的区别
| 实验 | 操作 | 类内竞争 | 标的数量 |
|------|------|---------|---------|
| 001 | **添加**标普500 | 有纳指vs标普 | 11→12 |
| 002 | **替换**纳指为标普 | 无 | 11→11 |
**002实验聚焦**:评估标的特性变化对策略绩效的影响(无类内切换干扰)
### 理论假设
```
纳指100 (NDX)
├─ 成分股100只科技龙头
├─ 风格:纯成长、高波动
├─ 动量特性:趋势强、涨跌幅大
└─ 与动量策略匹配度:高
标普500 (SPX)
├─ 成分股500只大盘股
├─ 风格:价值+成长混合、中波动
├─ 动量特性:趋势相对平缓
└─ 与动量策略匹配度:中
```
---
## 2. 实验设计
### A/B组配置
| 组别 | 美股大类标的 | 其他大类 |
|------|-------------|---------|
| **A组对照组** | 纳指100 (NDX) → 513100.SH | A股2、港股2、日本1、欧洲1、商品3、固收1 |
| **B组实验组** | 标普500 (SPX) → 513500.SH | 同A组 |
---
## 3. 回测结果
### 绩效对比
| 指标 | A组纳指100 | B组标普500 | 差异 |
|------|---------------|---------------|------|
| 美股标的 | 纳指100 | 标普500 | 替换 |
| **累计收益** | **1467.35%** | 1118.77% | **-348.58%** |
| **CAGR** | **48.10%** | 42.87% | **-5.22%** |
| **Sharpe** | **2.21** | 2.08 | **-0.13** |
| MaxDD | -17.33% | **-15.14%** | **+2.18%** ✓ |
| Calmar | 2.78 | **2.83** | +0.06 |
| 日胜率 | 56.45% | 56.22% | -0.23% |
| 调仓次数 | 459次 | 475次 | +16次 |
---
## 4. 关键发现
### 发现1纳指100累计收益显著更高
```
差距分析:
├─ 累计收益差距348.58%
├─ CAGR差距5.22%
└─ 原因纳指100成长性强动量信号更明显
```
### 发现2标普500回撤控制更好
```
风险指标:
├─ MaxDD改善2.18%(标普更稳定)
├─ Calmar略优+0.06
└─ 原因标普500波动率更低成分股更多元
```
### 发现3纳指100风险调整收益更优
```
Sharpe对比
├─ 纳指1002.21
├─ 标普5002.08
└─ 纳指虽波动大,但收益补偿足够
```
### 发现4调仓次数差异不大
```
替换场景(无类内竞争):
├─ 调仓次数差:仅+16次vs 001实验+42次
└─ 证明:替换比添加更稳定
```
---
## 5. 实验结论
### 核心结论
| 维度 | 结论 |
|-----|------|
| 收益能力 | 纳指100 **显著优于** 标普500 (+348%) |
| 风险控制 | 标普500 **略优于** 纳指100 (+2.18%) |
| 风险调整收益 | 纳指100 **优于** 标普500 (Sharpe +0.13) |
| 综合评价 | **保持纳指100** |
### 策略建议
```
当前策略建议保持纳指100作为美股大类代表
理由:
1. 动量策略本质是捕捉强趋势
2. 纳指100成长股特性使其动量信号更强
3. 累计收益差距显著1467% vs 1118%
4. 标普500虽更稳定但牺牲收益太大
例外情况可能考虑标普500
├─ 风险偏好极低,优先回撤控制
├─ 牛市末期或市场不确定性高时
└─ 需要降低组合整体波动率
```
---
## 6. 与001实验对比
| 实验 | 操作 | 收益变化 | 调仓变化 |
|------|------|---------|---------|
| 001添加 | 纳指 + 标普 | -291% | +42次 |
| 002替换 | 纳指 → 标普 | -348% | +16次 |
**洞察**
- 替换场景调仓更稳定(+16 vs +42
- 但收益损失更大(无纳指成长性补偿)
---
## 7. 相关文件
| 文件 | 说明 |
|-----|------|
| `tests/experiments/ab_test_ndx_vs_spx.py` | A/B测试脚本 |
| `results/ab_test_ndx_vs_spx.csv` | 测试结果数据 |
---
## 8. 后续研究方向
1. **纳指100 vs 其他美股成长指数**如罗素1000成长、MSCI美国成长
2. **不同市场周期表现**:牛市、熊市分别测试纳指和标普效果
3. **动态切换机制**:根据市场状态动态选择纳指或标普
---
*实验记录版本: v1.0*
*最后更新: 2026-05-06*