aszerW
6749f8cf61
feat(v2): GlobalRotationStrategy 使用 CrossMarketAligner 进行数据对齐
核心改进:
- 替换手动对齐逻辑为框架标准的 CrossMarketAligner
- 修复收益率计算顺序:先对齐价格 → 再计算收益率
- 修复首日收益率 NaN 问题(填充为 0%)
- 添加 Pydantic Schema 验证(数据质量保证)
对齐逻辑变更:
修复前(错误):
1. returns = close_df.pct_change() # 在原始日历计算
2. returns = returns[returns.index.isin(trading_calendar)] # 过滤
修复后(正确):
1. aligner = CrossMarketAligner(target_calendar)
2. returns_df = aligner.align_multi_asset(close_dict)
- 内部:先 ffill 价格到 A 股日历
- 内部:再计算收益率(休市日 = 0%)
- 内部:填充首日 NaN 为 0%
- 内部:Pydantic Schema 验证
回测验证(2020-01-10 ~ 2026-05-22):
- 修复前:总收益 135.63%,年化 15.07%,夏普 1.15
- 修复后:总收益 137.88%,年化 15.25%,夏普 1.16
- 收益提升:+2.25%(修复首日 NaN 和跨日收益率问题)
关键修复:
1. 首日收益率从 NaN 改为 0%(避免收益丢失)
2. 休市日收益率正确 = 0%(价格 ffill 后不变)
3. 消除跨多日收益率被当作单日收益率的 bug
4. 统一使用框架标准组件(CrossMarketAligner)
2026-05-25 00:29:49 +08:00
..
2026-05-24 22:54:21 +08:00
2026-05-24 22:53:45 +08:00
2026-05-25 00:29:49 +08:00
2026-05-24 22:53:45 +08:00