Files
etf/docs/experiments/20260506_同类扩充对比实验.md

5.1 KiB
Raw Blame History

实验记录 001: 同大类扩充对轮动策略的影响

实验信息

项目 内容
实验编号 001
实验日期 2026-05-06
实验类型 A/B对比测试
研究问题 diversified=true模式下,添加同大类新标地对策略绩效的影响

1. 实验背景

理论假设

diversified=true 模式的选股逻辑:

Step 1: 类内竞争 → 每个 market 大类只保留得分最高的1只标的大类冠军
Step 2: 跨类排序 → 从大类冠军中按得分从高到低选 Top 3

核心假设

  • 添加同大类新标的不会增加跨大类分散度每大类还是只输出1只
  • 可能增加类内切换频率,导致额外调仓成本
  • 额外切换时机可能不理想,侵蚀收益

2. 实验设计

A/B组配置

组别 标的数量 美股大类标的 其他大类
A组对照组 11只 纳指100 (NDX) A股2、港股2、日本1、欧洲1、商品3、固收1
B组实验组 12只 纳指100 + 标普500 (SPX) 同A组

关键差异

B组在美股大类market="US"中添加了标普500

  • A组美股大类只有纳指100自动成为大类冠军
  • B组美股大类有纳指100和标普500需要类内竞争决定冠军

3. 回测结果

数据获取情况

修复了 socks5://socks5h:// 的代理问题后,所有 YFinance 数据成功获取:

✓ SSH 隧道已建立: socks5h://127.0.0.1:1080
下载 NDX (纳指100) - YFinance... ✓ 1845 条
下载 SPX (标普500) - YFinance... ✓ 1845 条
其他标的均成功获取

绩效对比

指标 A组无SPX B组有SPX 差异
标的数量 11只 12只 +1
累计收益 1467.35% 1176.26% -291.09%
CAGR 48.10% 43.82% -4.28%
Sharpe 2.21 2.06 -0.15
MaxDD -17.33% -17.18% +0.14%(略好)
Calmar 2.78 2.55 -0.23
日胜率 56.45% 56.11% -0.34%
调仓次数 459次 501次 +42次
年均调仓 66.0次 72.1次 +6.1次

4. 关键发现

发现1跨类分散不变

添加标普500后美股大类在最终持仓中的占比不变

  • 美股大类始终只有1只冠军进入Top3候选池
  • 跨大类分散度没有增加

发现2调仓次数增加

  • B组调仓次数增加42次从459→501
  • 类内切换更频繁纳指100 ↔ 标普500
  • 额外调仓成本侵蚀收益

发现3绩效反而变差

B组绩效全面下滑
├─ 累计收益 -291%
├─ CAGR -4.28%
├─ Sharpe -0.15
├─ Calmar -0.23
└─ 原因:类内切换时机不佳 + 额外调仓成本

发现4类内切换逻辑

美股大类竞争示例:

某日得分:
纳指100: 4.7 → 美股冠军持有纳指ETF
标普500: 3.5 → 淘汰

另一天得分:
纳指100: -1.0(下跌)
标普500: 2.5 → 美股冠军切换到标普ETF

问题:切换时机可能滞后,错过最佳窗口

5. 实验结论

核心结论

假设 实证结果
添加同大类标的不增加跨类分散 验证通过
可能增加调仓次数 验证通过+42次
额外切换可能侵蚀收益 验证通过(累计收益-291%

策略建议

diversified=true 模式下的标的池优化策略:

✗ 不要盲目添加同大类新标的
   → 可能增加切换频率,侵蚀收益
   → 每大类保持1-2只代表性标的即可

✓ 应该添加新大类(增加跨类分散)
   → 印度、越南、短债等新大类
   → 真正扩大 Top 3 候选池
   → 提升跨大类分散度

✓ 类内标的选择原则
   → 选择该大类最具代表性的标的
   → 避免风格过度细分导致频繁切换
   → 例美股选纳指100即可成长代表

6. 技术修复记录

代理问题修复

本次实验过程中发现了 SSH SOCKS5 隧道的 IPv6 问题:

问题

# 原配置(失败)
proxy_url = "socks5://127.0.0.1:1080"
# 本地DNS解析 → IPv6地址 → SSH隧道拒绝IPv6 → 连接失败

修复

# 新配置(成功)
proxy_url = "socks5h://127.0.0.1:1080"
# 'h'表示远程DNS解析 → 代理服务器只用IPv4 → 连接成功

修改文件

  • core/datasource/hybrid_source.py
  • core/datasource/yfinance_source.py

7. 相关文件

文件 说明
tests/experiments/ab_test_spx.py A/B测试脚本
results/ab_test_spx.csv 测试结果数据
docs/轮动策略核心逻辑_v2.md 策略核心逻辑文档

8. 后续研究方向

  1. 新大类扩充实验添加印度NIFTY、短债等新大类验证跨类分散效果
  2. 类内切换时机分析深入分析纳指100 vs 标普500切换的具体时间点
  3. 最佳大类数量研究:多少个大类是最优配置?

实验记录版本: v1.0 最后更新: 2026-05-06