把项目自有的两套规则——宏观 v2.2 状态机(Shiller 宏观五票 any1 + E10/rr5)与 E10RR5 双档回撤熔断(DD10→exit / DD20→full_exit / 反弹 5% 恢复)——冻结规格后,重放到德鲁肯米勒入场(1999-02 做空)到被迫清盘离场(2000-04-28)的同一段历史上,与他的实际操作时间线逐月对照。规则冻结、只用当时公开数据、信号次月生效(Lag-1)。
本页不引入任何新规则,只做「拿既有规则上历史」的重放实验。三条纪律先行:
| 纪律 | 执行 |
|---|---|
| ① 规则冻结 | 两套规则逐字取自生产代码:backtest_engine.py · DrawdownFuse / apply_fuse(E10RR5)与 _run_macro_v22_us_bt.py · combo_stages_v22 + macro_votes(宏观 v2.2)。参数零调优:DD10/DD20/rr5、any1、五票阈值全部原样。 |
| ② 数据时间戳 | 全部输入为 ✅ 当时公开 档:纳指月度收益(交易所数据)、Shiller PE10/CPI/长端利率/实际价格(当月公开)。零条 ❌ 事后信息进入信号。 |
| ③ 信号滞后生效(Lag-1) | 月末信号 → 次月持仓。生产引擎原口径是「当月信号 → 当月持仓」(Lag-0,月内前视),本页以 Lag-1 为主口径,Lag-0 仅作敏感性披露(见第四节第 1 条——差距惊人)。 |
| 维度 | E10RR5(双档回撤熔断) | 宏观 v2.2(any1 状态机) |
|---|---|---|
| 信号源 | 纯价格:纳指距 12 月滚动高点回撤 | Shiller 宏观五票 + 价格兜底(同一条 E10) |
| 进入(恢复) | 自熔断低点反弹 ≥5%(右侧确认)→ hold | 同 rr5 规则 → hold |
| 退出 | 回撤 ≥10% → exit;≥20% → full_exit(粘性升级) | 宏观票和 ≥1(any1)→ wait;回撤 ≥10% → full_exit(单阈值直满退) |
| 五票定义 | — | m1 CAPE≥120月窗90分位 · m2 CPI同比>5% · m3 实际利率<−1% · m4 长端12月+1.5pp · m5 实际价24月+50% |
| 纳指持仓 | hold 70% · exit 45% · full_exit 10% | hold 85% · wait 15% · full_exit 15% |
| 非纳指部分 | 金 10–25% + 现金 20–65% | 金 15–55% + 现金 0–30% |
| 成本 | 0.15% 单边,按纳指仓位变动计(v2.2 频繁进出 wait 的换手已全部计入) | |
持仓为 Lag-1 口径(上月末信号 → 本月仓位)。dd12 = 月末日距 12 月滚动高点回撤。宏观票和见第五节明细。
| 月份 | NDX 月收益 | 月末 dd12 | E10RR5 持仓 | 宏观 v2.2 持仓 | 票和 | 德鲁肯米勒(实际) |
|---|---|---|---|---|---|---|
| 1999-02 | −8.6% | −8.6% | hold 70% | hold 85% | 2 | 入场 $2 亿做空 12 只互联网股 |
| 1999-03 | +7.7% | −1.6% | hold 70% | wait 15% | 2 | 空头亏损 $6 亿,年内 −15%,被逼平仓 |
| 1999-04 | +3.4% | 0% | hold 70% | hold 85% | 2 | 投降翻多,追赶入场 |
| 1999-05 | −2.8% | −2.8% | hold 70% | wait 15% | 2 | — |
| 1999-06 | +8.8% | 0% | hold 70% | wait 15% | 1 | — |
| 1999-07 | −1.7% | −1.7% | hold 70% | hold 85% | 1 | — |
| 1999-08 | +3.9% | 0% | hold 70% | wait 15% | 1 | — |
| 1999-09 | +0.3% | 0% | hold 70% | wait 15% | 1 | — |
| 1999-10 | +8.1% | 0% | hold 70% | wait 15% | 2 | 据当时报道量子重仓科技 |
| 1999-11 | +12.6% | 0% | hold 70% | hold 85% | 1 | — |
| 1999-12 | +22.1% | 0% | hold 70% | wait 15% | 2 | 12-29 纳指首收 4000 上方 |
| 2000-01 | −3.1% | −3.1% | hold 70% | hold 85% | 2 | 清仓「104 倍市盈率是疯狂的,全卖」 |
| 2000-02 | +19.3% | 0% | hold 70% | wait 15% | 2 | 踏空 坐视 +19.3%,煎熬观望 |
| 2000-03 | −2.6% | −2.6% | hold 70% | hold 85% | 1 | 接顶 追多 $60 亿(3-10 见顶 5048) |
| 2000-04 | −15.5% | −17.7% | hold 70% | wait 15% | 1 | 离场 六周亏 $30 亿,04-28 辞职 |
| 2000-05 | −11.8% | −27.4% | exit 45% | full_exit 15% | 1 | (已离场) |
| 2000-06 | +16.7% | −15.3% | full_exit 10% | full_exit 15% | 1 | (已离场) |
D 因 1 月清仓而在 2 月坐视 +19.3%;v2.2 因 1 月末 any1(CAPE + 加息票 m4=+1.94pp)处于 wait 15%,同样踏空。区别是:D 的痛苦来自「相对业绩落后于自己的年轻交易员」,v2.2 的「痛苦」来自规则本身——它在 1999 年就因此少赚了几十个百分点,2 月只是延续。承受踏空是任何退出规则的固定成本,人的问题不是会踏空,而是踏空之后会变形。
2 月 +19.3% 使纳指从 1 月低点反弹远超 5%,v2.2 的 rr5 规则在 2 月末把状态机拉回 hold——3 月以 85% 仓位站上历史大顶,与 D 在同一周拿起电话追多 $60 亿是同一个动作:右侧确认规则天然会在反弹末端恢复入场,情绪也天然会在 FOMO 极值处追入。区别发生在月末:CAPE 票仍亮(98 分位),any1 把 v2.2 重新推回 wait → 4 月只拿 15%,躲过 −15.5% 主跌段;而 D 没有第二道闸,满仓挨完六周 −$30 亿。也就是说:v2.2 在这里靠的是「rr5 弱点 + 估值闸门」的组合,如果 3 月末 CAPE 票没有触发,v2.2 将与 D 同归——这笔运气应该写成规则,见第六节 R2。
D 的 4 月离场是被市场强制的(margin 与赎回压力),两套模型同样是「4 月末才看见 −17.7%」:月度状态机在单月急崩里天然晚一拍——3-10 见顶时 3 月月线只 −2.6%,回撤要等到 4 月末才穿透 −10% 阈值。这不是实现 bug,是月度粒度的物理极限;E10RR5 在 6 月反弹确认后恢复、再错过 +16.7%,则是这条极限的另一面(右侧确认的双刃)。
| 口径 | 纯 NDX | E10RR5 | 宏观 v2.2 | 德鲁肯米勒(实际) |
|---|---|---|---|---|
| 1999-02 → 2000-04(战役全程) | +55.8% | +39.9% | +11.5% | —(见口径披露 ①) |
| 2000 年头四月(01→04-28) | −4.8% | −2.6% | −3.4% | −22%(YTD,量子基金) |
| 延伸至 2000-06 | +60.3% | +36.2% | +13.8% | 已离场 |
| 延伸 1999-02 → 2002-12(熊市全程) | −44.8% | +17.6% | −12.1% | — |
| 区间最大回撤(至 2000-06 / 至 2002-12) | −51.7% / −74.5% | −41.5% / −41.5% | −23.5% / −38.6% | 2000 YTD −22% 即清盘 |
| 月份 | m1 CAPE 分位 | m2 CPI 同比 | m3 实际利率 | m4 长端 12 月 Δ | m5 实际价 24 月 | 票和 |
|---|---|---|---|---|---|---|
| 1999-02 | 99% | 1.6% | +3.4% | −0.57pp | +51.5% | 2 |
| 1999-04 | 100% | 2.3% | +2.9% | −0.46pp | +68.4% | 2 |
| 1999-06 | 98% | 2.0% | +3.9% | +0.40pp | +45.6% | 1 |
| 1999-09 | 95% | 2.6% | +3.3% | +1.11pp | +35.1% | 1 |
| 1999-12 | 100% | 2.7% | +3.6% | +1.63pp | +42.3% | 2 |
| 2000-01 | 98% | 2.7% | +3.9% | +1.94pp | +41.7% | 2 |
| 2000-03 | 98% | 3.8% | +2.5% | +1.03pp | +26.9% | 1 |
| 2000-06 | 95% | 3.7% | +2.4% | +0.20pp | +24.7% | 1 |
仅列关键月份;完整 17 个月明细见 outputs/v22_vs_e10r5_druckenmiller_replay.json。五票阈值:m1≥90 分位 / m2>5% / m3<−1% / m4>+1.5pp / m5>+50%。m2、m3 全程未触发(通胀温和、实际利率为正——1999–2000 不是过热型泡沫顶,是估值型泡沫顶,所以只有 m1+m4+m5 三票轮换点亮)。
| 口径 | E10RR5 | 宏观 v2.2 |
|---|---|---|
| Lag-1(上月末信号 → 本月持仓,无前视) | +39.9% | +11.5% |
| Lag-0(当月末信号 → 当月持仓,生产引擎原口径) | +45.9% | +56.0% |
| 前视收益 | +6.0pp | +44.5pp |
v2.2 的 44.5pp 主要来自两处月内前视:Lag-0 允许 2 月末的 rr5 恢复信号作用于 2 月本身(吃满 +19.3%),以及 4 月末的 e10_escal 作用于 4 月本身(躲过 −15.5% 大半)。建议进 20 页轨道一五查协议新增 V6「Lag 对齐审计」:凡回测引擎存在当月信号当月持仓的,一律补跑 Lag-1 对照并披露差值——本案证明该差值可以大到完全改写结论(v2.2 在两种口径下分别是「大幅跑输」和「精确复制纯 NDX」两个故事)。
生产回测把 Shiller 索引限制在回测窗内(1996 起),导致 m1(CAPE≥120 月窗 90 分位)在 2006-01 之前恒为 0——规格原文「滚动 120 月窗口」本应用全历史(1881 起的全部公开数据)。本页按规格原文修正后,m1 在 1999-02 起即以 92–100 分位全程点亮,并成为 2000-03 月末把 v2.2 推回 wait 的关键一票。这属于 20 页 V3「口径钉死」的又一实例:同一票函数在不同索引域下行为完全不同。
21 页提出的 R2 约束(估值极端时不许 rr5 右侧恢复,退出只许经估值回落解锁)在本案的反事实推演:若 2000-03 月末没有 CAPE any1 救场,v2.2 将以 85% 仓位吃完 4 月 −15.5%——与 D 同归。也就是说 v2.2 本案的表现是「rr5 弱点 + 估值闸门」的运气组合;R2 把这笔运气变成规则(估值 98 分位时封死恢复通道),即可在 CAPE 票单票失效时仍保留保护。该提案仍按 D2 纪律处理:只生成假设,不直接入回测,待轨道一双轨验证。→ 定量对照实验已补做,见下节(七)。
针对「估值极端时能否不给 rr5 上锁、而是给估值票直接加 0.5 票」的轻量替代提案,做四臂对照实验。四臂共享同一数据与 Lag-1 口径(配置同本页主口径),唯一变量是规则改动:BASE=v2.2 原版;HALF=估值票亮时总票 +0.5(阈值仍 1);HALF15=同 HALF 但阈值提到 1.5;R2=棘轮封恢复(估值票亮时封死 rr5 右侧恢复,估值回落才解锁)。脚本 _replay_r2_vs_halfvote.py,结果 outputs/r2_vs_halfvote_experiment.json。
HALF 与 HALF15 的状态序列与 BASE 完全恒等(逐月断言通过),四臂收益表前三行一字不差。原因在 any1 框架的结构:wait 触发条件是「五票之和 ≥ 1」,而估值票 m1 本身就是一整票——单票即过线,+0.5 后仍是过线,不改变任何一次状态转换。半票只有在分级阈值框架(如 ≥1 / ≥1.5 档位不同)里才有咬合点;HALF15 在本案也恒等,是因为 m1 在窗口内全程常亮(见结论 3),阈值 1 与 1.5 无差别。若想让估值获得额外权重,必须先改阈值结构,加票本身无效。
| 臂 | 战役(→00-04) | 2000 YTD | →00-06 | →02-12 | MDD(→02-12) |
|---|---|---|---|---|---|
| BASE(v2.2 原版) | +11.5% | −3.4% | +13.8% | −12.1% | −38.6% |
| HALF / HALF15 | 与 BASE 完全恒等(零效应,见结论 1) | ||||
| R2(棘轮封恢复) | +8.8% | −0.4% | +11.1% | −7.7% | −33.7% |
| 纯 NDX | +55.8% | −4.8% | — | −44.8% | −74.5% |
R2 战役期 +8.8% 略低于 BASE +11.5%——差的 2.7pp 正是 BASE 的「运气组合」:靠 CAPE 票在 2000-03 月末恰好救场,外加熔化期吃到 5 个 hold 月。但 2000 YTD(−0.4% vs −3.4%)、到 2002-12(−7.7% vs −12.1%)、MDD(−33.7% vs −38.6%)三项全面更优。代价结构清晰:R2 用熔化期的仓位换崩盘段的保护。
m1(CAPE≥120 月滚动窗 90 分位)自 1996-01 起持续点亮(99 分位),直到 2000-09 才熄灭(88 分位)。这意味着 R2 棘轮若在此前生效,v2.2 会从 1996 年起就锁死在 wait 15%——整个 90 年代末熔化期(本案 NDX +55.8%)只拿 15% 仓位。R2 事件流也印证:1999-01~2000-08 连续 20 个月 recover_blocked_m1on,2000-09 首次解锁后进入 unlock/e10 循环至 2002。战役窗口内 R2 全程 wait 15% 未变。这是 21 页提出 R2 时未预见的结构性缺陷:「滚动 90 分位」是相对阈值,长扩张期会长期贴着分位线上方运行,把「极端」变成常态,棘轮的锁几乎不释放。
追问:「不加杠杆的话,纯 NDX 持有也能幸存?D 的死因是不是杠杆+赎回,而不是持仓本身——高 CAPE 或许只需作杠杆警示?」以 2000 系峰值截断(2000-02/03 月线峰)为起点,全周期(1996-01→2026-06)重放三条净值,得各自的浮亏谷底与回本日期。脚本 _replay_ndx_recovery.py,结果 outputs/ndx_recovery_analysis.json(Lag-1、含成本、价格口径无股息——总回报口径回本会更早)。
| 净值 | 峰值月 | 谷底 | 谷底浮亏 | 回本月 | 水下时长 |
|---|---|---|---|---|---|
| 纯 NDX 买入持有 | 2000-02 | 2002-09 | −74.5% | 2013-12 | 166 个月(13.8 年) |
| 纯 NDX 实际口径(CPI 平减) | 2000-02 | — | −76.0% | 2017-02 | 约 17 年 |
| E10RR5(Lag-1) | 2000-02 | 2001-03 | −36.2% | 2004-12 | 58 个月(4.8 年) |
| 宏观 v2.2(Lag-1) | 2000-02 | 2001-09 | −38.6% | 2003-12 | 46 个月(3.8 年) |
两条腿分开看:①幸存性——无杠杆纯 NDX 确实幸存:−74.5% 浮亏、名义 13.8 年、实际 17 年后回本。「浮亏」在无杠杆、无赎回、无现金提取的前提下只是时间问题。②规则的价值主张——两套模型把水下时间从 13.8 年压缩到 3.8~4.8 年、浮亏从 −74.5% 压到 −36%~−39%(v2.2 谷底 −38.6% 与上节实验 MDD 完全一致,交叉验证通过)。
| 杠杆(2000-03 峰值入场,月度再平衡,不含融资成本) | 谷底权益 | 回本 |
|---|---|---|
| 1.34x(静态生存线 L*=1/|−74.5%|) | 14.9% | 2014-11 |
| 1.50x | 11.2% | 2015-05 |
| 2.00x | 4.1% | 2017-07 |
| 3.00x | 0.3% | 2020-12 |
静态口径下杠杆超过 1.34x,谷底前权益归零;月度再平衡 2x 谷底只剩 4.1% 权益、要 17 年才回本,3x 只剩 0.3%。D 的杠杆与赎回压力恰在这个区间之上——他的死因不是「持有纳指」,是「带着杠杆和赎回压力持有到泡沫顶部」。这也是「浮亏只是时间问题」成立与否的唯一分水岭:谁在水下 14 年里有权抽走你的钱。
把 m1 的角色从「降仓位」改为「封杠杆」:m1 亮时杠杆上限 1x、仓位照常。数据结构支持这个分工——m1 自 1996-01 亮到 2000-09,恰好全程覆盖了唯一致命的杠杆窗口(杠杆 >1.34x 在此期间入场即归零);而它 2014 年后频繁开关(90/88 分位线附近抖动),作为仓位闸门会造成大量无谓降档(R2 的锁仓代价即源于此),作为杠杆帽则只损失「本可加杠杆的收益」——对无杠杆组合(本项目所有袖均为无杠杆 ETF)成本为零。与 R2 相比这是结构上更便宜的用法:R2 封的是仓位(有熔化期机会成本),此案封的是杠杆(无杠杆基准下无成本)。仍按 D2 纪律:作为假设记录,不入回测;若将来引入杠杆袖,此假设升格为门控候选。
最后一个变体:不做棘轮、不改阈值,m1 亮时直接强制 full_exit 档(覆盖状态机),m1 熄灭后回原逻辑(Lag-1:上月末 m1 亮 → 本月全退档)。脚本 _replay_m1_fullexit.py,结果 outputs/m1_fullexit_experiment.json。
| 臂(Lag-1,含成本) | 战役(→00-04) | 2000 YTD | →02-12 | 全期 96-01→26-06 | 年化 | MDD |
|---|---|---|---|---|---|---|
| v2.2 BASE | +11.5% | −3.4% | −12.1% | +1405% | +9.30% | −38.6%(00-02→01-09) |
| v2.2 M1EXIT | +8.8% | −0.4% | −2.2% | +1233% | +8.86% | −29.8% |
| E10RR5 BASE | +39.9% | −2.6% | +17.6% | +2276% | +10.95% | −36.2% |
| E10RR5 M1EXIT | +9.1% | +0.7% | +3.0% | +1002% | +8.19% | −20.0% |
| 纯 NDX | +55.8% | −4.8% | −44.8% | +3178% | +12.12% | −74.5% |
假设投资者从 1999-02 起每月初持续投入 1.0 单位(而非一次性入场),「收益覆盖亏损的节点」=账户价值重新 ≥ 累计投入本金的时点。脚本 _replay_dca_breakeven.py,结果 outputs/dca_breakeven_analysis.json(Lag-1、含成本、价格口径)。
| 臂(每月初投 1.0,1999-02 起) | 最大水下(vs 累计投入) | 水下主区间 | 回本节点 | 期末倍数(2026-06) |
|---|---|---|---|---|
| 纯 NDX | −48.9% @ 2002-09 | 2000-11 ~ 2003-12(38 个月) | 2004-01 | 9.24x(329 单位 → 3038.8) |
| E10RR5 | −13.7% @ 2001-03 | 2001-02~12、2002-04~10(两段短区间) | 2001-12 / 2002-10 附近 | 5.84x |
| 宏观 v2.2 | −26.5% @ 2001-03 | 2000-09 ~ 2002-12 | 2003-01 | 6.71x |
同是 1999-02 入场,一次性买入要扛 −51.7% 最大浮亏、等到 2010-09(11.6 年)才彻底回本;定投口径下 2000-11 进入水下、2002-09 最深 −48.9%、2004-01 收益覆盖亏损——快了 6.5 年。机制就是摊低成本:2000-2002 的每月新钱在越跌越买,底部份额的成本远低于顶部。这是「无杠杆幸存」的更强形式:不止幸存,定投的自我修复把回本节点从「下一轮牛市顶部」拉回到「熊市结束附近」。注意纯 NDX 定投在 2004/2005/2008-10~2009-07 还有三次短暂再下水,2009-08 起才永久水上——回本不是一次性事件,是一个区间。
一次性口径 E10RR5 期末 14.01x 略胜纯 NDX 13.39x;定投口径却反转为纯 NDX 9.24x > v2.2 6.71x > E10RR5 5.84x。原因:定投者的超额收益主要来自低位月份的新钱买到廉价份额,而模型的 wait/full_exit 档在底部区间只拿 10%~15% NDX——同样一笔新钱只买到 1/5~1/7 的份额。回撤保护(浮亏 −48.9% 压到 −13.7%)与低吸能力在定投口径下是同一枚硬币的两面:模型付出的不是「错过涨幅」而是「少买了便宜货」。
定投幸存靠两个 D 都没有的条件:①每月新现金流(摊低成本);②无杠杆(浮亏只是账面)。D 在顶部满仓加杠杆、且面对的是赎回流出(负现金流)——每跌一分都在被迫卖份额,方向恰好与定投相反。同一个 −74.5% 的市场,对持续投入的无杠杆者是 4 年的账面浮亏,对顶部满仓的杠杆者是归零。这与八节的杠杆生存线互为印证:决定生死的从来不是回撤深度,而是现金流方向与杠杆水平。
把定投从每月盲投改为信号指引,用预算公平设计隔离「多投钱」的假象:每月 +1.0 预算进现金池(吃现金收益),信号亮(上月末信号,Lag-1)时才把全池打入 NDX。总投入恒为 330,只比择时买入的质量。脚本 _replay_signal_dca.py,结果 outputs/signal_dca_experiment.json。
| 臂 | 期末倍数 | 部署率 | 期末闲置 | 最大水下 | 深水区间(>10%) |
|---|---|---|---|---|---|
| BLIND(每月盲投) | 9.24x | 100% | 0 | −48.9% @2002-09 | 2000-11~03-12 / 2008-10~09-07 |
| DD10(回撤≤−10% 才投) | 9.04x | 97.0% | 13.3 | −51.9% @2002-09 | 2008-10~09-07 |
| DD20(回撤≤−20% 才投) | 7.15x | 91.5% | 44.1 | −49.9% | 2000-11~04-10 / 2008-10~09-07 |
| DD30(回撤≤−30% 才投) | 8.49x | 92.4% | 44.1 | −41.3% | 2001-02~03-09 |
| CAPE30(PE10 低 30 分位才投) | 10.04x | 51.7% | 193.0 | −6.1% | 无 |
| CAPE50(PE10 低 50 分位才投) | 9.89x | 92.5% | 32.7 | −22.1% | 无 |
| M1OFF(CAPE<90 分位才投) | 9.14x | 99.9% | 2.0 | −50.9% | 两段 |
| VOTES0(五票和=0 才投) | 9.19x | 100.2% | 2.0 | −50.9% | 两段 |
CAPE30 倍数最高(10.04x)且最大水下仅 −6.1%、全程无深水区间——只买 120 月窗 30 分位以下的便宜货;CAPE50 放宽到中位以下,部署率升至 92.5%、倍数 9.89x、水下 −22.1% 仍无深水区间。阈值从紧到松:部署率升、水下加深一点、倍数微降——这是本系列里第一条证据完整的「估值信号正确用法」:低位买入(m1 的镜像)。注意 CAPE30 期末仍有 193(58%)资金闲置吃现金利息——它 2010s 长牛市几乎不买,实操需要现金池上限或 CAPE50 式放宽做兜底。
DD10/20/30 倍数 7.15~9.04x 全部低于盲投 9.24x;DD10 的最大水下 −51.9% 甚至比盲投更深。机制是接刀问题:DD 信号在结构性熊市早期(距峰值 −10% 的半山腰)把整个现金池一次性打光,之后 NDX 还要再跌 −64%;盲投的月度小额天然分散了入场时点。回撤是「正在跌」的确认信号,不是「值得买」的估值信号——它告诉你价格在跌,不告诉你价格便宜。三档深度阈值全部失败说明这不是阈值校准问题,是信号类别本身的问题。
M1OFF(9.14x)与 VOTES0(9.19x)与盲投(9.24x)几乎无差:它们从 1999 起点只躲开了顶部约 19 个月,此后信号长期常亮,与盲投同质。与追加三一致——m1 类「高位」信号亮占 34% 月份,作为「不买」的门槛过滤不掉多少高成本月份;真正筛出便宜月的只有低位绝对分位信号。
追加五证明了 CAPE30 对纯 NDX 载体是有效的定投增强(9.24x→10.04x)。本节把部署目标换成宏观 v2.2 模型组合本身(Lag-1、含调仓成本的月收益序列,同主口径):每月 +1.0 预算进现金池,信号亮(上月末,Lag-1)时全池打入 v2.2 组合并随其逐月再平衡——检验「信号 + 模型」是互相增强还是互相稀释。另设路由模式对照:信号亮时打 NDX 袖、不亮时打 v2.2 袖(两种载体各司其职)。脚本 _replay_cape30_v22_dca.py,结果 outputs/cape30_v22_dca.json。
| 臂(每月 +1.0,1999-02 起,预算公平) | 期末倍数 | 部署率 | 期末闲置 | 最大水下 | 深水区间 |
|---|---|---|---|---|---|
| 纯 NDX · 盲投(基准) | 9.24x | 100% | 0 | −48.9% | 两段 |
| 纯 NDX · CAPE30(追加五基准) | 10.04x | 51.7% | 193.0 | −6.1% | 无 |
| v2.2 · 盲投(追加四基准) | 6.71x | 100% | 0 | −26.5% | 2000-09~02-12 |
| v2.2 · CAPE30 闸门 | 6.33x | 51.7% | 193.0 | 从未水下(最差 +0.4%) | 无 |
| v2.2 · CAPE50 闸门 | 6.83x | 92.5% | 32.7 | 从未水下 | 无 |
| 路由 · CAPE30(亮→NDX,不亮→v2.2) | 8.09x | 100% | 0 | −26.5% | 2000-09~02-12 |
| 路由 · CAPE50 | 8.96x | 100% | 0 | −26.5% | 2000-09~02-12 |
CAPE30 闸门让 v2.2 定投从 6.71x 降到 6.33x(−5.7%),与纯 NDX 载体上 +8.6% 的提升方向完全相反。机制是双重防御互相稀释:CAPE30 的 73 个部署月里 41% 恰逢模型 full_exit 档(仅 15% NDX)、5% 是 wait 档——信号在说「便宜了,买!」,模型在说「还在跌,防!」,部署进来的钱买到的还是防御组合,低吸意图被模型自身的保护吃掉。更早的结构性拖累:CAPE30 从 2002-09 才首次亮灯,前 44 个月(1999-02~2002-08)现金池完全闲置吃现金利息——而 v2.2 盲投同期每月都在买 wait 档组合,至少拿到了部分反弹敞口。CAPE50 闸门 6.83x 的微弱提升同理:92.5% 的部署率几乎等于盲投,提升来自 2007-11~2011-01 长亮期恰好跨过危机低点。
v2.2 CAPE30/50 闸门臂全程 330 个月从未水下(账户始终 ≥ 累计投入,最差点是首月 +0.4%),而 v2.2 盲投最深水下 −26.5%、2000-09~2002-12 水下近三年。回本节点:盲投 2003-01,闸门臂从未需要回本。若把「收益/痛苦」做成谱系:纯 NDX 盲投(9.24x,−48.9%)与 v2.2 CAPE30(6.33x,零水下)是两个极端,v2.2 盲投(6.71x,−26.5%)居中。信号与模型叠的是同一种功能(防御),收益端稀释、风险端确实再压一档——对以「不亏本金」为硬约束的资金这是成立的用法,对以终值最大化为目标的资金不是。
路由模式(CAPE30 亮 → 新钱打 NDX 满β低吸;不亮 → 打 v2.2 让模型管防御)拿到 8.09x,较 v2.2 盲投 +1.38x(+21%),且最大水下仍是 −26.5%(2000-2002 危机期信号未亮、路由臂完全等于 v2.2,防御未被稀释);CAPE50 路由 8.96x 再进一步。路由臂仍低于纯 NDX 盲投 9.24x——追加四「模型防御在长牛里拖累定投」的结论不变,路由只是把信号的低吸价值在模型框架内兑现到最大。CAPE30 的价值在为无防御载体加装防御(NDX +0.80x),不在为有防御载体再叠一层(v2.2 −0.38x);两者结合时必须拆开职责:模型管风险状态,信号管新资金路由。
追加六只在 v2.2 载体验了闸门与路由。本节把两种模式在 E10RR5 载体上全部复跑(其退出档为 hold 70% / exit 45% / full_exit 10% 三级,防御结构与 v2.2 的 wait 15% 不同),并按要求把「本金不亏损」(全程未水下)版本定型为保守方案以备万一。脚本 _replay_cape30_e10r5_dca.py,结果 outputs/cape30_e10r5_dca.json(口径同追加六:预算公平、Lag-1、含成本、价格无股息)。
| 臂(每月 +1.0,1999-02 起) | 期末倍数 | vs 载体盲投 | 最大水下 | 回本节点 | 深水区间 |
|---|---|---|---|---|---|
| E10RR5 载体(退出档 hold 70 / exit 45 / full_exit 10) | |||||
| E10 · 盲投(基准) | 5.84x | — | −13.7% @2001-03 | 2002-11 | 2001-02~12 |
| E10 · 闸门 CAPE30 | 5.37x | −8.1% | 从未水下(最差 +0.4%) | — | 无 |
| E10 · 闸门 CAPE50 | 5.83x | −0.2%(≈零成本) | 从未水下 | — | 无 |
| E10 · 路由 CAPE30 | 7.48x | +28.2% | −13.7% @2001-03 | 2002-11 | 2001-02~12 |
| E10 · 路由 CAPE50 | 8.61x | +47.4% | −13.7% @2001-03 | 2009-03 | 2001-02~12 |
| 宏观 v2.2 载体(追加六复算,防御档 wait/full_exit 15% NDX) | |||||
| v2.2 · 盲投(基准) | 6.71x | — | −26.5% @2001-03 | 2003-05 | 2000-09~02-12 |
| v2.2 · 闸门 CAPE30 | 6.33x | −5.7% | 从未水下 | — | 无 |
| v2.2 · 闸门 CAPE50(保守方案) | 6.83x | +1.8% | 从未水下 | — | 无 |
| v2.2 · 路由 CAPE30 | 8.09x | +20.6% | −26.5% @2001-03 | 2003-01 | 2000-09~02-12 |
| v2.2 · 路由 CAPE50 | 8.96x | +33.5% | −26.5% @2001-03 | 2009-03 | 2000-09~02-12 |
| 纯 NDX 参照(追加五) | |||||
| NDX · 盲投 / 闸门 CAPE30 | 9.24x / 10.04x | +8.6% | −48.9% / −6.1% | 2009-08 / 2009-03 | 两段 / 无 |
E10RR5 闸门 CAPE30 同样降低收益(5.84x→5.37x,−8.1%,比 v2.2 的 −5.7% 更深)。部署月状态分布给出了机理的直接读数:E10RR5 部署月 22% 撞 full_exit(10% NDX)+ 19% 撞 exit(45% NDX),v2.2 是 41% 撞 full_exit——载体的防御越贴近「便宜时刚好在防守」,闸门的稀释越重。另一个共同拖累:CAPE30 从 2002-09 才首亮,两载体臂同样闲置前 44 个月。结论升级为载体无关:把低吸信号叠加在任何自带回撤防御的模型上都是负贡献。
E10 路由 CAPE30 7.48x(+28%)/ CAPE50 8.61x(+47%),均高于 v2.2 载体的对应臂(+21%/+33%)——E10RR5 盲投基准更弱(5.84x vs 6.71x),路由的相对价值更大。两载体的路由 CAPE50 臂(8.61x / 8.96x)绝对值收敛到接近——路由模式下信号决定大部分命运,载体只影响信号熄灭期的钱怎么放。路由臂的水下与各自盲投完全相同(−13.7% / −26.5% @2001-03):2000-2002 危机期信号未亮,路由臂 100% 走载体防御,保护没有被稀释。
四个闸门臂(双载体 × CAPE30/50)全部全程 330 个月从未水下,构成保守谱系:v2.2 闸门 CAPE50(6.83x)> v2.2 闸门 CAPE30(6.33x)> E10 闸门 CAPE50(5.83x)> E10 闸门 CAPE30(5.37x)。两条定型结论:①保守方案首选 v2.2 闸门 CAPE50——本金保护完整的前提下终值最高,部署率 92.5% 没有 CAPE30 的长期闲置问题,还是唯一「正收益 vs 自身盲投」(+1.8%)的保守臂;②E10 闸门 CAPE50 是「零成本保护」样本——5.83x vs 盲投 5.84x(−0.2%),等于免费把 −13.7%/13 个月水下换成全程零水下。代价必须披露:保守臂的最差读数都是首月 +0.4%,其「安全」另一面是终值排全场倒数(对照 NDX 闸门 CAPE30 10.04x)——本金保护不是免费的,是用了全场的终值去买的。