豆浆投资
09-14 周一 · 收盘 16:10RSS
9/14 收盘
上证3885.33−0.07%
深成13384.57−0.64%
创业板3285.58−1.10%
恒指24917.60+0.45%
恒科≈4296−0.05%
两市成交1.64万亿−3383亿
涨/跌3126/2224
红涨 绿跌
/rotation/

轮动方案

两条风格轴的 tilt → 四只工具 ETF 的目标权重。每个交易日试算一次,只在每周最后一个交易日(按真实交易日历,不是「周五」)落为正式指令;纸面成交价用下一交易日收盘。规则原文与阈值从 pipeline/config.json 渲染,和引擎同源;台账从上线后的第一个指令日起算,不回填历史。

本期
试算2026-09-15
本周指令日
2026-09-18每周最后一个交易日
下一个指令日
2026-09-18
漂移监测
待观察

最新收盘是 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。本页仅为个人研究记录,不构成投资建议。