/framework/evidence/
回测证据台账
轮动方案 §3 每条规则的离线回测证据,每月第一个交易日重跑一次。计算与 docs/evidence/bt.py / bt_rules.py 共用pipeline/evidence_lib.py,每条规则的裁决与 pipeline/config.json 同源,所以这一页与 轮动方案 上跑的是同一套口径。
回测窗口
2011-09-01→ 2026-08-31
数据截至
2026-09-14上次重跑 2026-09-15
这是证据台账,不是收益预期。样本 16 年、风格周期不到十个,统计上不够下强结论——这些表回答的是「哪一层适合做骨架」「哪条规则明显有害」,不是「能赚多少」。
- 这是证据台账,不是收益预期:下面每个数字都来自离线回测,不是实盘,也不是对未来的预测。
- 样本只有 16 年、风格周期不到十个,两条轴一年才切换一两次——有效独立决策不到 30 次。所有 ±1%/年 级别的差异都在噪声里,只能当作「这条规则没有明显帮助/明显有害」的排除性证据,不能当作「哪条规则更好」的证据。
- 「留任率」「符号连续月数」两列在随机游走下得到几乎相同的数(右侧基准列),2026-09-14 的对抗性审查已经把它们证伪,保留只为记录,不作论据。
- 申万 31 行业指数是 2021 版分类的回填,2021 年前的行业序列是事后构造,行业层只作定性参考。
- 小盘 2011-09→2014-10、价值 2011-09→2013-12 的全收益是拼接出来的(价格指数 × 代理分红因子的形状,见 rules_lib.extend_tr),约占样本的 20% / 15%,这两段的结论要打折。
- 卫星层测的是「按动量选行业」的退化版:条件 2「行业 ETF 20 日净流入为正」与「按净流入排序」要等 ETF 资金流数据攒够历史才能补上。
净值曲线
2011-09-01 起 · 单边成本 0.10%(宽基)/ 0.15%(行业)只核心仓 tilt(主项+否决+估值压回)全套(核心 + 30% 卫星,开关只展示)基准1 四工具等权(周调,全收益)基准2 中证全指全收益
| 策略 | 年化 | 波动 | 夏普 | 最大回撤 | 年换手 |
|---|
| 只核心仓 tilt(主项+否决+估值压回) | +9.11% | 23.4% | 0.39 | −53.4% | 2.56 |
| 全套(核心 + 30% 卫星,开关只展示) | +7.49% | 23.2% | 0.32 | −54.4% | 3.51 |
| 基准1 四工具等权(周调,全收益) | +8.63% | 22.3% | 0.39 | −54.6% | 0.36 |
| 基准2 中证全指全收益 | +5.64% | 22.5% | 0.25 | −55.8% | 0.00 |
全收益序列的真实起点:大盘 2011-07-04、小盘 2014-10-17、成长 2010-06-01、价值 2013-12-19;更早的区间是价格指数 × 代理分红因子拼接出来的(rules_lib.extend_tr),那几段的结论要打折。
§3 逐条规则与裁决
逐条从 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
A.4 (a) 总敞口开关
P(破位) ≥ 0.5 的交易日占 17.3% · 换档 50 次| 策略 | 年化 | 波动 | 夏普 | 最大回撤 | 年换手 |
|---|
| 满仓 | +5.64% | 22.5% | 0.25 | −55.8% | 0.00 |
| 两档开关 P破位≥0.5→0.5 | +3.42% | 19.6% | 0.17 | −56.0% | 1.67 |
| 五档开关 E=tier | +1.07% | 15.9% | 0.07 | −47.4% | 4.37 |
| 策略 | 2011–2015 年化 | 2011–2015 回撤 | 2016–2020 年化 | 2016–2020 回撤 | 2021–2026 年化 | 2021–2026 回撤 |
|---|
| 满仓 | +14.3% | −46.5% | +1.6% | −33.7% | +2.9% | −37.1% |
| 两档开关 P破位≥0.5→0.5 | +13.3% | −39.6% | −0.7% | −35.5% | 0.0% | −34.1% |
| 五档开关 E=tier | +9.1% | −30.0% | −2.7% | −37.6% | −1.4% | −32.2% |
A.4 (b) 核心仓 tilt 逐项消融
四只工具 ETF,不含卫星、不含开关| 策略 | 年化 | 波动 | 夏普 | 最大回撤 | 年换手 | tilt≠0 占比 |
|---|
| 等权不倾斜(基准) | +8.63% | 22.3% | 0.39 | −54.6% | 0.36 | 0% |
| 主项 120/250 only(±1) | +8.42% | 22.8% | 0.37 | −55.5% | 1.40 | 92% |
| 主项 +20日加速(±2) | +9.35% | 23.7% | 0.39 | −52.2% | 2.49 | 95% |
| 主项 + 否决 | +9.27% | 23.8% | 0.39 | −53.4% | 2.56 | 92% |
| 主项 + 否决 + 估值压回 | +9.11% | 23.4% | 0.39 | −53.4% | 2.56 | 90% |
| 主项 + 否决 + 估值(不限节奏) | +10.06% | 23.6% | 0.43 | −55.4% | 3.76 | 91% |
| 策略 | 2011–2015 年化 | 2011–2015 回撤 | 2016–2020 年化 | 2016–2020 回撤 | 2021–2026 年化 | 2021–2026 回撤 |
|---|
| 等权不倾斜(基准) | +20.6% | −46.3% | +2.4% | −32.6% | +5.7% | −32.0% |
| 主项 120/250 only(±1) | +17.7% | −50.1% | +4.7% | −32.9% | +5.0% | −26.9% |
| 主项 +20日加速(±2) | +17.8% | −49.8% | +6.3% | −31.0% | +5.9% | −25.8% |
| 主项 + 否决 | +17.7% | −51.8% | +7.0% | −31.2% | +5.2% | −30.6% |
| 主项 + 否决 + 估值压回 | +18.1% | −49.7% | +5.7% | −31.3% | +5.6% | −28.0% |
| 主项 + 否决 + 估值(不限节奏) | +20.1% | −50.9% | +5.8% | −28.9% | +6.6% | −24.1% |
单轴口径(另一条轴固定不倾斜):
| 策略 | 年化 | 波动 | 夏普 | 最大回撤 | 年换手 |
|---|
| 轴 1 · 大 vs 小 | +7.59% | 22.6% | 0.34 | −54.2% | 1.54 |
| 轴 2 · 成长 vs 价值 | +10.48% | 23.0% | 0.46 | −53.6% | 1.42 |
20 日资金差压回(四只工具 ETF 齐备后:2019-01-01 起,份额截至 2026-09-14):
| 策略 | 年化 | 波动 | 夏普 | 最大回撤 | 年换手 |
|---|
| 主项+否决+估值 | +13.00% | 21.3% | 0.61 | −28.0% | 2.56 |
| 主项+否决+估值+资金压回 | +11.46% | 20.7% | 0.55 | −34.9% | 2.53 |
A.4 (c) 卫星仓
只测了条件 1(动量 + 未破位)与条件 3(所属风格边未破位);条件 2「行业 ETF 20 日净流入为正」还没有足够历史| 策略 | 年化 | 波动 | 夏普 | 最大回撤 | 年换手 |
|---|
| 核心仓 only | +9.11% | 23.4% | 0.39 | −53.4% | 2.56 |
| 核心 + 卫星 30% | +7.49% | 23.2% | 0.32 | −54.4% | 3.51 |
| 策略 | 2011–2015 年化 | 2011–2015 回撤 | 2016–2020 年化 | 2016–2020 回撤 | 2021–2026 年化 | 2021–2026 回撤 |
|---|
| 核心仓 only | +18.1% | −49.7% | +5.7% | −31.3% | +5.6% | −28.0% |
| 核心 + 卫星 30% | +16.4% | −49.8% | +5.0% | −32.4% | +3.3% | −35.1% |
满足条件 1+3 的行业数均值 13.8,为 0 的周占 11%,不足 3 个的周占 21%;实际持有卫星数均值 2.60,非空周占 92%。所以「卫星仓常常是空的」这个说法在本口径下不成立——稀缺的是「有钱跟」的卫星。
A.4 (d) 全套规则 vs 两个基准
分段窗口由数据给:2011-09–2015-12 · 2016-01–2020-12 · 2021-01–2026-08| 策略 | 年化 | 波动 | 夏普 | 最大回撤 | 年换手 |
|---|
| 基准1 四工具等权(周调) | +8.63% | 22.3% | 0.39 | −54.6% | 0.36 |
| 基准2 中证全指全收益 | +5.64% | 22.5% | 0.25 | −55.8% | 0.00 |
| 全套(开关只展示 E=1) | +7.49% | 23.2% | 0.32 | −54.4% | 3.51 |
| 全套 + 两档开关进仓位 | +5.65% | 20.5% | 0.27 | −53.3% | 3.73 |
| 策略 | 2011–2015 年化 | 2011–2015 回撤 | 2016–2020 年化 | 2016–2020 回撤 | 2021–2026 年化 | 2021–2026 回撤 |
|---|
| 基准1 四工具等权(周调) | +20.6% | −46.3% | +2.4% | −32.6% | +5.7% | −32.0% |
| 基准2 中证全指全收益 | +14.3% | −46.5% | +1.6% | −33.7% | +2.9% | −37.1% |
| 全套(开关只展示 E=1) | +16.4% | −49.8% | +5.0% | −32.4% | +3.3% | −35.1% |
| 全套 + 两档开关进仓位 | +15.6% | −42.3% | +3.1% | −32.5% | +0.7% | −34.2% |
验收标准:年化 ≥ 四工具等权 −1% 且回撤 ≤ 等权。
| 配置 | 年化 | 基准1 年化 | 差(门槛 −1%) | 回撤 | 基准1 回撤 |
|---|
| 全套(开关只展示 E=1)不达标 | +7.49% | +8.63% | −1.14% | −54.4% | −54.6% |
| 全套 + 两档开关进仓位不达标 | +5.65% | +8.63% | −2.98% | −53.3% | −54.6% |
| 核心仓 only达标 | +9.11% | +8.63% | +0.48% | −53.4% | −54.6% |
A.1 月频动量轮动(风格层 vs 行业层)
月频、等权、单边 0.1% 成本;右侧「留任率(随机游走)」是零假设基准| 组合 | 回看 | 年化(净) | 年化(等权) | 超额 | 夏普 | 最大回撤 | 月换手 | 月胜率 | 留任率 | 留任率(随机游走) | 超额 2010-2015 | 超额 2016-2020 | 超额 2021-2026 |
|---|
| 风格4角·选1 | 3m | −3.6% | +4.1% | −7.7% | −0.14 | −67.5% | 45% | 43% | 55% | 56% | −7.5% | +2.1% | −15.6% |
| 风格4角·选2 | 3m | +1.8% | +4.1% | −2.3% | 0.08 | −50.1% | 27% | 47% | 73% | 72% | −3.3% | +2.7% | −5.5% |
| 风格6格·选2 | 3m | −2.6% | +3.7% | −6.3% | −0.11 | −65.8% | 41% | 44% | 59% | 61% | −7.3% | −0.3% | −10.3% |
| 申万31·选5 | 3m | +2.3% | +4.0% | −1.6% | 0.09 | −60.8% | 45% | 47% | 55% | 48% | −0.5% | +4.8% | −8.1% |
| 申万31·选8 | 3m | +2.6% | +4.0% | −1.4% | 0.11 | −59.9% | 40% | 45% | 60% | 57% | −1.8% | +0.9% | −3.0% |
| 风格4角·选1 | 6m | +4.3% | +4.6% | −0.2% | 0.19 | −45.6% | 27% | 52% | 73% | 67% | −9.2% | +9.0% | +0.2% |
| 风格4角·选2 | 6m | +3.4% | +4.6% | −1.2% | 0.16 | −43.9% | 17% | 50% | 83% | 79% | −5.4% | +3.5% | −1.5% |
| 风格6格·选2 | 6m | +3.2% | +4.1% | −0.9% | 0.14 | −46.7% | 27% | 47% | 73% | 72% | −4.6% | +2.3% | −0.4% |
| 申万31·选5 | 6m | +2.0% | +4.3% | −2.3% | 0.08 | −61.0% | 36% | 49% | 64% | 63% | −3.4% | +2.5% | −5.6% |
| 申万31·选8 | 6m | +4.2% | +4.3% | −0.2% | 0.17 | −51.9% | 28% | 53% | 72% | 69% | −2.3% | +5.6% | −3.3% |
| 风格4角·选1 | 12m 跳1 | +6.4% | +3.8% | +2.6% | 0.27 | −44.6% | 18% | 51% | 82% | 76% | 0.0% | +8.8% | −0.6% |
| 风格4角·选2 | 12m 跳1 | +5.0% | +3.8% | +1.2% | 0.22 | −48.4% | 13% | 53% | 87% | 85% | −1.9% | +3.5% | +1.6% |
| 风格6格·选2 | 12m 跳1 | +3.4% | +3.2% | +0.2% | 0.15 | −48.3% | 18% | 54% | 82% | 81% | −2.2% | +5.3% | −2.2% |
| 申万31·选5 | 12m 跳1 | +3.6% | +3.3% | +0.4% | 0.14 | −52.7% | 24% | 48% | 76% | 74% | −4.3% | +5.7% | −0.6% |
| 申万31·选8 | 12m 跳1 | +4.7% | +3.3% | +1.4% | 0.19 | −54.6% | 19% | 52% | 81% | 78% | −2.1% | +5.4% | +0.7% |
注:申万 31 行业指数为 2021 版分类**回填**,2021 年前的行业序列是事后构造(美容护理、石油石化等当年并不存在),所有含「申万31」的行只作定性参考。
A.2 持续性与逐年领涨
「符号连续月数」与随机游走基准几乎相同 —— 只作记录,不作论据| 相对强弱 | 6 月符号平均连续(月) | 随机游走基准 | 1 月自相关 |
|---|
| 小盘/大盘 | 5.1 | 5.4 | −0.03 |
| 成长/价值 | 8.4 | 5.4 | +0.02 |
| 红利/沪深300 | 7.2 | 5.5 | +0.05 |
| 创业板/沪深300 | 5.7 | 5.4 | −0.01 |
| 中证1000/沪深300 | 5.7 | 5.5 | −0.03 |
| 申万31行业(相对等权) | 5.6 | 5.4 | −0.01 |
逐年领涨(风格角为价格指数口径;行业为 2021 版分类回填):
| 年份 | 领涨风格角 | 领涨行业前三(回填口径) |
|---|
| 2026 | 小盘成长 | 通信 / 电子 / 煤炭 |
| 2025 | 小盘成长 | 有色金属 / 通信 / 电子 |
| 2024 | 大盘价值 | 银行 / 非银金融 / 通信 |
| 2023 | 大盘价值 | 通信 / 传媒 / 计算机 |
| 2022 | 大盘价值 | 煤炭 / 综合 / 社会服务 |
| 2021 | 小盘成长 | 电力设备 / 有色金属 / 煤炭 |
| 2020 | 大盘成长 | 社会服务 / 电力设备 / 食品饮料 |
| 2019 | 大盘成长 | 电子 / 食品饮料 / 家用电器 |
| 2018 | 大盘价值 | 社会服务 / 银行 / 食品饮料 |
| 2017 | 大盘价值 | 食品饮料 / 家用电器 / 钢铁 |
| 2016 | 大盘价值 | 食品饮料 / 煤炭 / 建筑材料 |
| 2015 | 小盘成长 | 计算机 / 轻工制造 / 纺织服饰 |
| 2014 | 大盘价值 | 非银金融 / 建筑装饰 / 钢铁 |
| 2013 | 小盘成长 | 传媒 / 计算机 / 环保 |
| 2012 | 大盘价值 | 房地产 / 非银金融 / 美容护理 |
| 2011 | 大盘价值 | 银行 / 食品饮料 / 房地产 |
本页数据由 pipeline/evidence.py 在每月第一个交易日重跑,回测实现 pipeline/evidence_lib.py 与离线脚本 docs/evidence/bt.py、docs/evidence/bt_rules.py 共用,所以这里的数字与附录 A 在同一截止日下逐格相同。数据来源 cjpy+rotation_v2,生成于 2026-09-15T10:58:47+08:00。回测不是实盘,也不构成任何投资建议。