技术修复: - 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作为美股大类代表 - 不添加同大类新标的(避免类内切换成本) - 新增标的应优先考虑新大类(增加跨类分散)
4.2 KiB
4.2 KiB
实验记录 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对比:
├─ 纳指100:2.21
├─ 标普500:2.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. 后续研究方向
- 纳指100 vs 其他美股成长指数:如罗素1000成长、MSCI美国成长
- 不同市场周期表现:牛市、熊市分别测试纳指和标普效果
- 动态切换机制:根据市场状态动态选择纳指或标普
实验记录版本: v1.0 最后更新: 2026-05-06