/rotation/
轮动方案
两条风格轴的 tilt → 四只工具 ETF 的目标权重。每个交易日试算一次,只在每周最后一个交易日(按真实交易日历,不是「周五」)落为正式指令;纸面成交价用下一交易日收盘。规则原文与阈值从 pipeline/config.json 渲染,和引擎同源;台账从上线后的第一个指令日起算,不回填历史。
最新收盘是 2026-09-14,比数据日期 2026-09-15 早——当天的行情还没出来。
本周指令
敞口 100% · 核心仓 100% · 总变动 0.0% · 风格读数截至 2026-09-14试算指令日 2026-09-18 · 成交 下一交易日收盘
| 工具 ETF | 上期 | 目标 | 变动 | |
|---|
| 沪深300ETF510300 · 大盘 | 25.0% | 25.0% | 0.0% | |
| 中证1000ETF512100 · 小盘 | 25.0% | 25.0% | 0.0% | |
| 创业板ETF159915 · 成长 | 25.0% | 25.0% | 0.0% | |
| 红利低波ETF512890 · 价值 | 25.0% | 25.0% | 0.0% | |
- 轴 1 · 大 vs 小:维持 tilt 0。120/250 日比值 +1.4%/-0.9% 不同向;大盘 ETF 20 日净流入领先 13 亿(只展示、不压回)
- 轴 2 · 成长 vs 价值:维持 tilt 0。120/250 日比值 -1.7%/+14.5% 不同向;成长 ETF 20 日净流入领先 99 亿(只展示、不压回)
- 总敞口 E 固定 100%:总开关只展示、不进仓位(config.rotation.switch.apply_to_exposure=false)。
- 卫星仓关闭(config.rotation.satellite.enabled=false),核心仓占 100%。
规则原文
逐条从 pipeline/config.json → rotation 渲染,与引擎同一份阈值总敞口 E删除
总开关(SH000985,宽度池 sw_level1)P(破位) ≥ 0.5 时把敞口压到 50%——但 「apply_to_exposure=false」,所以只展示、不进仓位,敞口恒为 100%。裁决:删除(只展示,不进仓位):两档 3.42% vs 满仓 5.64%,最大回撤 −56.0% vs −55.8% 并没有变浅;五档 1.07%/−47.4%
核心仓与卫星仓
卫星仓 「enabled=false」,所以核心仓占 100%:四只工具 ETF 起点各 25%。方案里的 30% 卫星额度记在 config 里但本迭代不开。裁决:迭代 4 先不开(share 记 0.30 但 enabled=false):加 30% 卫星后年化 9.11% → 7.49%、回撤更深;三条件里的「ETF 20 日净流入为正」与「按净流入占规模比排序」本迭代无数据,等迭代 1 补齐后用 docs/evidence/bt_rules.py 重测达标再打开
主项 · 比值动量保留
工具比值(全收益)120/250 日相对动量同向 → ±1 档;若 20 日也同向(加速)→ ±2 档;不同向 → 0。每档把 12.5% 从一边挪到另一边。裁决:保留:120/250 同向 ±1 单独用不如等权(8.42% vs 8.63%),但 20 日加速的 ±2 档是 tilt 全部正贡献的来源(9.35%,回撤比等权浅 2.4pp)
否决 · 目标边破位待定
对比值的两个方向各跑一次状态模型,倾斜目标边的 P(破位) ≥ 0.5 → tilt 归 0。裁决:待定:收益 −0.08%/年、回撤反而深 1.2pp(都在噪声内),保留理由是结构性的;建议下次把「归 0」改成「压回一档」再测
压回 · 估值差分位待定
目标边估值差(PE 之比)滚动分位 ≥ 90%(60 个月滚动、至少 36 个月)→ 压回一档。裁决:待定:9.27% → 9.11%,回撤不变,触发次数少
资金差删除
两只工具 ETF 的 20 日净流入之差 「enabled=false」——只展示、不参与压回。裁决:删除(按现口径):2019 起 13.00% → 11.46%、回撤 −28.0% → −34.9%;迭代 1 有全市场资金流后可改成「资金差确认加档」重测
换手约束
每条轴每 28 天最多变一档(从 −2 走到 +2 要 4 次调仓、至少 4 个月,是有意的慢速设计);每周最多动 1 条轴;核心仓单周总变动 ≤ 25%。
成交口径
指令在「每周最后一个交易日」(「week_last_trading_day」,按真实交易日历,不是「周五」)收盘后生成,纸面成交价 = 下一交易日收盘(「next_trading_day_close」,ETF 后复权),单边成本 0.10%(宽基)。
基准与漂移监测
基准两个:四工具等权(周调, 全收益)、CSIH00985 中证全指全收益。每期把纸面净值与附录 A.4 的预期区间比、tilt 变动频率与回测的档数比,超出就标黄。
2011-09→2026-08:方案原样全套(含卫星)+7.49% vs 基准1 +8.63%(差 −1.14%,门槛 −1%)→ 不达标;去掉卫星的核心仓 tilt +9.11%、回撤 −53.4%(等权 −54.6%)→ 达标。详见 docs/ROTATION_DESIGN.md 附录 A.4
变动日志
每个指令日一期,台账起于 — · 共 0 期台账还没有开张——要等上线后的第一个「每周最后一个交易日」。在那之前页面上只有「若今天调仓」的试算,不会造历史。
人工否决
结构固定 {date, by, reason, overridden_weights}(方案 §2.2)还没有人工否决。站主不认同某一期的指令时,在 data/rotation/overrides.json 里写一条 {"date","by":"owner","reason","overridden_weights"},引擎下次跑到那个指令日就按 overridden 权重成交并在这里留痕——将来好统计人工干预的对错。
纸面净值
第一期成交之后才有还没有成交记录,所以没有净值曲线。纸面净值从第一个指令日的下一交易日收盘起算,两个基准(四工具等权、中证全指全收益)与它同一天起算。
漂移监测
与附录 A.4 的回测预期比;样本不够时显示「待观察」,不硬判纸面净值 vs 回测预期待观察—
纸面净值还不足 60 个交易日(现在 0 个),先不做判断。
tilt 变动频率 vs 回测待观察0.0
台账才 0 期(26 期以后才比频率),目前累计变了 0 档。
目标权重 = 四只工具 ETF 起点各 25%,每条轴的 tilt 每档把 12.5% 从一边挪到另一边;tilt 由 风格罗盘 算(pipeline/rules_lib.decide_tilt,与离线回测同一个函数),换手约束走 rules_lib.pace_step,本页只做「档位 → 权重 → 台账」。纸面净值不含冲击成本与最低佣金,小账户要注意 5 元最低佣金对 12.5% 档位的侵蚀。数据来源 cjpy+style,生成于 2026-09-15T10:09:56+08:00。本页仅为个人研究记录,不构成投资建议。