Commit Graph

9 Commits

Author SHA1 Message Date
17e806045f experiment(rotation): 添加新兴市场大类(印度)影响验证
实验设计:
- A组:当前7大类配置(无新兴市场)
- B组:添加印度作为第8大类(EM = Emerging Market)
- 标的:^NSEI → 164824.SZ(工银瑞信印度市场LOF)

实验结果:
├─ 大类数量: 7 → 8 (+1) ✓ 跨类分散提升
├─ 累计收益: 1467.35% → 1261.83% (-205.52%)
├─ CAGR: 48.10% → 45.16% (-2.94%)
├─ Sharpe: 2.21 → 2.09 (-0.11)
├─ 日胜率: 56.45% → 57.25% (+0.80%) ✓
└─ 调仓次数: 459 → 451 (-8)

核心发现:
1. 大类数量增加确实提升跨类分散
2. 但收益反而下降205%(与预期相反)
3. 印度LOF流动性不足(日均~3000万)
4. 印度动量信号不如主流市场强
5. Top3权重被印度占用,错过其他机会

重要结论:添加新大类 ≠ 必然提升收益
- 标的本身表现能力比大类归属更重要
- 流动性、动量信号强度是关键因素

与001实验对比:
- 001(同大类添加):大类不变 → 收益-291%
- 003(新大类添加):大类+1 → 收益-205%
→ 标的质量比大类数量更重要

策略建议:
- 暂不添加印度(LOF流动性不足)
- 可测试东南亚科技ETF(513730.SH)

新增文件:
- tests/experiments/ab_test_emerging_market.py
- docs/experiments/003_emerging_market_india.md
2026-05-06 20:55:54 +08:00
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
a4e8a6050e docs: 跨市场动量策略有效性度量与资产组合优化文献综述
核心内容:
- 相关性结构:资产相关性低(ρ≈0.3),但动量收益相关性较高(ρ≈0.5)
  Moskowitz发现动量因子跨资产共同驱动
- 跨市场有效性度量框架(三层体系):
  Layer1定性:地理差异+资产类别+周期敏感度(0-9分)
  Layer2定量:分散化有效性指数DEI=(1-ρ)/(1+ρ)
  Layer3组合:综合评分Σw_i w_j Q_ij D_ij
- 选择偏差风险:池选择偏差=基于后视信息选池
  本策略恒生科技/铜存在中等偏差风险,建议随机池对照实验
- 高波动池机制:Conrad-Kaul风险补偿理论
  高波动→高动量收益(部分补偿+部分异象)
- 业界最佳实践:
  Bridgewater All Weather经济四季框架(增长/通胀四象限)
  AQR Risk Parity波动率倒数加权(风险平衡而非市值权重)
- 分散化收益公式:DR=Σwσ/σ_p,本策略≈14%
- 改进建议:
  增加债券标的(Risk Parity权重应高)
  减少A股同类冗余(创业板vs红利低波DEI=0.18)
  显式计算风险贡献而非等权

参考文献:
- Conrad & Kaul(1998)风险补偿理论
- Moskowitz et al.(2012)跨资产动量相关性
- AQR Risk Parity白皮书
- Bridgewater All Weather故事
- CFA资产配置原则

附录:5个核心公式+改进建议清单
2026-04-30 21:59:40 +08:00
336bceef92 docs: 基于动量因子的跨市场ETF轮动策略系统性文献综述
文献综述内容:
- 学术定位:资产定价、资产配置、量化投资、行为金融学、组合管理五大交叉领域
- 理论基础:Jegadeesh-Titman(1993)动量效应发现 + Barberis等(1998)行为金融解释
- 经典文献:截面动量、时间序列动量(Moskowitz 2012)、跨资产动量普遍性(Asness 2013)
- 实证证据:动量效应在股票/债券/商品/外汇等所有资产类别中显著
- 分散化依据:Markowitz(1952) MPT理论,跨大类资产低相关性降低组合波动
- 崩盘风险:Barroso-Santa-Clara(2015)动量崩盘现象与风险管理方法
- 待解决问题:动量起源之谜、因子标准化、动态窗口机制、因子衰减
- 中国A股:短期动量(1-3月)有效、行业轮动频繁、残差动量2024年表现优越

参考文献:
- 10篇经典学术论文(Jegadeesh-Titman, Moskowitz, Asness, Barberis等)
- 业界策略报告(AQR, QuantPedia, Robeco)
- 券商金工研报(华泰、东方、招商)

附录:动量因子公式对比 + 本策略V2配置摘要
2026-04-30 14:27:23 +08:00
48ff15d92a docs: 新增轮动策略核心逻辑V2文档
V2相对于V1的核心升级:
- 候选池: 22只(以A股行业为主) → 11只(全球7大类精选)
- 因子类型: slope_r2(等权回归) → weighted_momentum(加权回归,近期权重2.0)
- 选股模式: 纯Top5 → 跨大类分散化(每大类Top1→全局Top3,等权33%)
- 崩盘过滤: 无 → 有(连续3天跌>5%得分清零)
- 商品信号源: 指数价格 → 期货价格(AU.SHF/CL.NYM/CU.SHF)
- 加密货币: 保留 → 移除(全部使用A股场内ETF交易)

V2实证数据(2019-02~2026-04):
  累计收益1473%, CAGR 46.42%, Sharpe 2.22, MaxDD -17.33%, Calmar 2.68
  diversified=true全面优于false(2022年差异+17.63%)

文档包含完整配置清单、因子计算公式、分散化选股机制、
调仓控制逻辑、溢价率控制、跨市场数据对齐方案、V1 vs V2对比表
2026-04-30 13:49:42 +08:00
4df3ac4e31 chore(docs): reorganize documentation files into docs/ folder
Moved markdown documentation from root to docs/ directory to improve project structure.
2026-04-30 01:06:25 +08:00
c1fbd2c7db feat(strategy): finalize global rotation system with advanced risk controls
Summary of updates:
1. Core Logic (engine.py): Added 'score > 0' filtering to support automatic cash positions during market downturns.
2. Experimental Analysis: Added scripts/analyze_negative_scores.py, scripts/test_select_num.py, and scripts/ab_test_iterations.py.
3. Documentation: Created docs/strategy_evolution_report.md detailing the evolution from benchmark to the final 47% CAGR version.
4. Configuration: Finalized rotation.yaml with 11 core assets and optimal risk parameters.
2026-04-30 00:56:20 +08:00
48cd6dd524 docs(analysis): ETF轮动策略深度分析报告
包含:
- 收益归因分析: 高收益来源拆解、持仓分布、事件日历
- 选池偏差实验: 原始4只 vs 扩展9只 vs 反面池对比
- 后视镜偏差量化: 选池偏差仅贡献5-7% CAGR
- A股可交易全球资产完整候选池: 44个方向/5大类
- 关键结论: ETF价格优先于指数、未来预期CAGR区间
2026-04-29 22:51:15 +08:00
2829f80427 feat(backtest): 消除前视偏差,实现动态ETF池重建
消除回测前视偏差(Look-Ahead Bias):
- 新增 ETFDataCache 本地缓存系统,预下载全量ETF(含已退市)基础信息和日线数据
- 改造 ETFUniverseBuilder 支持纯历史模式,每个时间点只使用当时可获得的数据
- 动量.py 新增 dynamic 模式,回测中每60交易日动态重建ETF候选池
- momentum_experiment.py 同步支持动态重建
- 新增 ETF筛选引擎文档和动态池方案文档

无前视偏差实验结果(6组对比,2015-2026):
  A: 全仓1只       CAGR=3.32%, MaxDD=-63.19%, Sharpe=0.26
  B: 等权3只       CAGR=3.40%, MaxDD=-49.72%, Sharpe=0.30 ← 最优
  C: 反波动率3只   CAGR=1.73%, MaxDD=-38.59%, Sharpe=0.21
  D: 等权5只       CAGR=2.77%, MaxDD=-42.39%, Sharpe=0.29
  E: 反波动率5只   CAGR=-0.37%, MaxDD=-19.56%, Sharpe=-0.03
  F: 动量>0全选等权 CAGR=2.02%, MaxDD=-43.27%, Sharpe=0.24

最优方案: B(等权3只)夏普、Calmar、CAGR三项均最高
2026-04-29 22:15:01 +08:00