Commit Graph

4 Commits

Author SHA1 Message Date
7121e78e70 fix(report): 修复 generate_legacy_report 数据类型处理
- benchmark_data 可能是 Series 或 DataFrame,添加类型判断
- etf_nav_data 现在是字典格式 {etf_code: DataFrame},修正解析逻辑
- 正确从 DataFrame.attrs 中提取净值和溢价率数据
2026-05-14 01:10:12 +08:00
aeb95a6f4c refactor: 配置文件迁移到策略目录(模块自包含)
迁移内容:
- config/strategies/rotation.yaml → strategies/rotation/config.yaml

路径更新(核心文件):
- strategies/rotation/strategy.py(注释示例)
- scripts/generate_legacy_report.py(config_path)
- run_rotation.py(注释和默认参数)
- datasource/hybrid_source.py(from_yaml示例和fetch_rotation_data)

保留:
- config/strategies/cci.yaml(无对应策略目录,暂保留)

设计原则:策略模块自包含,配置与实现同目录,方便移植和复制

验证:策略加载成功(候选池11只,回测区间2019-01-01 ~ 2026-05-12)
2026-05-12 22:14:35 +08:00
412177837f fix: 报告生成器数据对齐修复
修复内容:
1. 指数价格获取改用index_data而非index_close
   - 原问题:index_close对齐后N225最后几天的值为nan
   - 修复:从原始OHLCV获取close,用ffill填充缺失值

2. ETF净值数据对齐到回测日期
   - 原问题:etf_nav_data索引与backtest_result不对齐
   - 修复:用reindex(backtest_result.index, method='ffill')

3. ETF价格数据同样对齐到回测日期

修复后报告显示:
- 日经225指数最新价: 62713.65(原为nan)
- 创业板指溢价率: +3.70%⚠️
- 日经225溢价率: +0.85%
2026-05-12 01:50:30 +08:00
38a31357d1 feat: 新框架集成原引擎报告生成模块
新增 scripts/generate_legacy_report.py:
- 使用新框架运行回测
- 将数据格式转换为原引擎格式
- 调用原引擎 generate_performance_report 生成报告

输出文件:
- rotation_legacy_chart.png (净值曲线+回撤+持仓分布)
- rotation_legacy_metrics.json (策略指标JSON)
- rotation_legacy_nav.csv (净值曲线数据)

用法:python scripts/generate_legacy_report.py
2026-05-12 01:42:25 +08:00