# 精简版轮动策略(日迭代) ## 概述 从 A 股交易日历出发,逐日迭代模拟实盘信号生成流程。 **与 V2 的核心差异:** | 特性 | V2 向量化版本 | 精简版(日迭代) | |------|--------------|------------------| | 数据获取 | 一次性获取所有历史数据 | 预加载+CSV缓存 | | 因子计算 | 全量 rolling 计算 | 每日单独计算 | | 日历对齐 | 先算因子,后对齐 | 从 A 股日历出发 | | 收益计算 | 向量化 | 逐日迭代 | ## 快速使用 ```bash cd /path/to/etf FLASK_API_URL=https://k3s.tokenpluse.xyz python rotation/simple_rotation.py ``` 或作为模块导入: ```python from rotation.simple_rotation import SimpleRotationStrategy strategy = SimpleRotationStrategy('rotation/config_simple.yaml') result = strategy.run() strategy.export_results() ``` ## 策略逻辑 ### 动量计算 - 加权线性回归:`score = annualized_return * R^2` - 窗口:25 天(可配置) - 崩盘过滤:连续 3 天跌 > 5% 则清零 ### 信号生成(与 V2 完全一致) 1. 每个 group 内选 Top 1(非 BOND 组需超过短债动量) 2. 从各组 Top 1 中按动量排序选 Top 3 3. 不足用 BOND 填充 ### T+1 执行收益 - **持有日**: close-to-close - **卖出日**: close-to-open(开盘已卖出) - **买入日**: open-to-close(日内收益) - 调仓日扣除 0.1% 交易成本 ## 输出文件 ``` results/ ├── simple_rotation_nav.csv # 净值曲线 ├── simple_rotation_signals.csv # 每日信号 ├── simple_rotation_detail.json # 完整详情 └── simple_rotation_metrics.json # 绩效指标 ``` ## 数据缓存 首次运行会从 Flask API 下载数据并缓存到 `data/simple_rotation_cache/`。 后续运行直接读取缓存,速度显著提升。