# 10 · A1/A2 慢变量预警闸：实盘部署与回测验证报告

> **定位**：08 号报告（A1 FRAG_country 验证）与 09 号报告（A2 信贷脉冲验证）的收官篇——把两个通过验证的慢变量预警从「回测实验」推进到「实盘嵌入」，并汇总部署当日完成的七国输入数据错位修复（影响全部七国回测口径）。
> **日期**：2026-08-27 · **数据基准**：monthly_data.json（US，1996-01~2026-06）/ intl_monthly_raw.json（七国，2026-08-27 错位修复后口径）
> **状态**：~~已部署（sandbox 8f60687c 线上 10/10 校验通过）~~ → **2026-08-27 审计撤下**：部署当日完成的过拟合+前视审计判定**不通过**（FRAG′≥6.0 全档退出档未回测且 46 年历史不可达 = 死规则；KR 启用与回测劣化结论矛盾），面板与状态机闸已从模拟盘 10 页与主站全部撤下（下架不删除，`_daily_update.py` 置 `A1A2_SHELVED=True`）。整改清单见 `模型优化记录_A1A2_过拟合前视审计_2026-08-27.html` §6。当前读数全部 gate=none，撤下不改变任何仓位。

---

## §0 摘要

| 项 | 结论 |
|---|---|
| **部署内容** | A1 FRAG'（金融脆弱性合成）与 A2 M'（货币信用合成）作为 hold 段慢变量预警闸嵌入 v2.2 状态机 |
| **US 回测增量** | 基线 22.68%/-21.7%/Sh 1.650 → FRAG' FC6/FP45·lag1 **24.31%/-21.7%/Sh 1.775**；M'≥95·wait·lag1 **24.03%/-21.7%/Sh 1.763**；MDD 均持平 |
| **七国延伸（修复后口径）** | KR 1997-01~05 正确触发（危机前 2~6 个月预警），但夏普贡献 -0.023（微弱负贡献）；六国零干扰 |
| **启用范围** | FRAG'：US + full/full_bis（cn/kr/in）；M'：仅 US（UK ≥90 候选待二次验证） |
| **当前读数** | US FRAG'=3.67 / M'=81.46 · KR 3.60 · CN 2.87 · IN 2.55 —— **全部未触发，装规则不改变仓位** |
| **数据前置修复** | intl_monthly_raw.json 七国月度标签错位（标签 M = M+1 月收盘）当日修复并重跑四个核心回测 |

---

## §1 动机与定位

### 1.1 问题：v2.2 状态机的盲区

v2.2 状态机（any1→wait / E10→full_exit / rr5→hold）的触发器全部是**价格/估值类快变量**：E10 距 12 月高点回撤、宏观五票、反弹幅度。对**累积型失衡**（国际收支恶化、信贷存量膨胀）导致的危机，价格信号出现时往往已经滞后：

- **KR 1997**：KOSPI 峰值 1996-11，E10 回撤触发在 1997 年初已来不及躲 7 月崩盘的全程；而经常账户/外债的恶化在 1996 年就已成事实；
- **US 2008**：信贷脉冲（2yrΔpp）2007Q4 见顶回落，早于雷曼 4 个季度；
- **JP 1990**：债务/GDP 平台期在 1987Q3-1990Q2 持续 ≥20pp 松动，早于泡沫破裂。

慢变量预警闸的定位因此是**尾部风险保险**而非收益增强：在价格信号尚未反应时，用累积型失衡指标提前把仓位降到 wait 档。

### 1.2 与 08/09 号报告的衔接

- 08 号报告完成 A1 FRAG_country 的**测量层验证**（40 事件 rho 0.502、OLS R² 0.248）与**规格变更回测**（US 夏普 1.650→1.775）；
- 09 号报告完成 A2 信贷脉冲的**场景回检**（JP 1990 / US 2008 双 PASS）与**阈值网格定版**（M'≥95→wait 仅 US）；
- 本报告把两者**合并为实盘规则**并记录部署细节、修复后口径的七国复核、以及遗留边界。

---

## §2 规格定版

### 2.1 公式

```
A1  FRAG'(t) = 0.6 × FRAG记忆(t) + 0.4 × FRAG_country(t)
    FRAG记忆(t) = 2.5 + 7.5·e^[-(t-1929)/35]        （年度读数，滞后 1 年）
    FRAG_country = 国际收支三因子（CA/GDP、储备增长、外债压力，lite 层含 CA 方向系数）
    阈值：FRAG' ≥ 4.5 → wait ； ≥ 6.0 → full_exit

A2  M'(q) = 0.6 × 债务/GDP存量 + 0.4 × 信贷脉冲(2yrΔpp)
    信贷脉冲 = 总信贷(%GDP) 的两年差值（pp）          （季度读数，滞后 1 季）
    阈值：M' ≥ 95 → wait
```

### 2.2 状态机优先级（hold 段内）

```
E10 熔断 (full_exit)  >  FRAG'/M' (wait / full_exit)  >  any1 (wait)
```

- 闸**仅在 hold 段检查**：wait/full_exit 段内 rr5（自段内低点反弹 ≥5%）恢复逻辑不变，慢变量不阻断恢复；
- 与回测 `combo_stages_v22_frag` / `_exp_a2_credit_v22_bt` 严格同构，无实盘特调；
- recovered=true 当日不干预（恢复完成优先）。

### 2.3 启用范围

| 信号 | 启用 | 排除 | 依据 |
|---|---|---|---|
| FRAG' | US + cn / kr / in（full/full_bis） | lite 层除 US 外（de/fr/jp/uk 仅展示参考读数） | lite 层数据深度不足；DE 假阳性已由方向修正消除（08 §10），但 lite 保守排除 |
| M' | 仅 US | 七国全部 | 09 §4b：七国最优阈值高度分散不可统一，除 UK 外改善均 <0.02 Sharpe（噪声级） |
| B4 外债存量 | 文档层审计（quant-paper §9） | 不入实盘逻辑 | 理论论证完成，实盘价值已由 FRAG' 的外债压力分量部分覆盖 |

---

## §3 部署架构

### 3.1 信号链路

```
_calc_a1a2_live_signal.py（月度重算）
    ├─ FRAG' : _monthly/intl_bop/frag_country.json + FRAG 记忆曲线
    ├─ M'    : _monthly/credit/credit_pulse.json
    └─ → _monthly/a1a2_live_signal.json（10 盘口读数 + gate 判定）

_daily_update.py（每日执行）
    └─ _apply_a1a2_gate(text, portfolio)
        · 调用点：_update_waiting_flag 之后、_sync_phase_label 之前
        · hold 段：按 §2.2 优先级改写 portfolio 权重（wait: 15/15/15/55 · full_exit: 同 wait 档）
        · _sync_phase_label 扩展 a1a2_gate 参数（标签显示「A1A2:wait/full_exit」）
```

### 3.2 幂等与验证

- 面板注入（10 sim 页 `id="a1a2-gate"`）采用幂等正则（先删后插）；
- dry-run 单测 7/7 PASS：gate=none 不改变行为 / wait / full_exit / E10 无冲突 / 非 hold 段不干预 / rr5 优先 / 同 text 零改动；
- 全盘 dry-run：10 盘 portfolio text 零改动（全部 gate=none 下装规则阶段行为不变）。

---

## §4 US 回测结果汇总（不依赖 intl 数据，不受错位影响）

### 4.1 A1 FRAG' 叠加（`outputs/macro_v22_frag_bt.json`）

| 实验 | 年化 | MDD | 夏普 | NAV | 备注 |
|---|---|---|---|---|---|
| 基线 V22_MACRO_any1 | 22.68% | -21.7% | 1.650 | 50,946 | v2.2 + Shiller 真宏观 + 多资产 |
| **FRAG' FC6_exit lag1** | **24.31%** | -21.7% | **1.775** | 76,279 | 部署规格 |
| FRAG' fp45_exit lag1 | 24.31% | -21.7% | 1.775 | 76,279 | 与 FC6 等价 |
| FRAG' fp45_wait lag1 | 24.21% | -21.7% | 1.771 | 74,398 | wait 版次优 |
| FRAG' fp50 lag0/lag1 | 22.68% | -21.7% | 1.650 | 50,946 | 阈值 5.0 零触发 |
| FRAG' FC6_exit lag0 | 24.41% | -21.7% | 1.797 | 78,158 | 理想化上限（对照） |

要点：**+1.63pp 年化、+0.125 夏普、MDD 零代价**；lag1（年度滞后）是数据可得性的保守口径，lag0 的额外 0.10pp/年 不是可实现的增量。

### 4.2 A2 M' 阈值网格（`outputs/macro_v22_credit_bt.json`）

| 实验 | 年化 | MDD | 夏普 | 备注 |
|---|---|---|---|---|
| 基线 V22_MACRO_any1 | 22.68% | -21.7% | 1.650 | 同上 |
| **M'≥95 wait lag1** | **24.03%** | -21.7% | **1.763** | 部署规格 |
| M'≥100 wait lag1 | 23.10% | -21.7% | 1.692 | 次优 |
| M'≥95 wait lag0 | 24.14% | -21.7% | 1.773 | 理想化上限 |
| 脉冲≤0 闸（wait/exit） | 22.24% | -21.7% | 1.658 | 无效设计 |

要点：**「见顶回落」不是有效信号，「绝对水平」才是**（US 2009Q4 脉冲才转负，远迟于雷曼）；M'≥95 在 2007Q4（M'≈95.9）即触发 wait，提前 4 个季度。

### 4.3 组合定位

FRAG' 与 M' 的触发时段错开（FRAG' 捕捉 1929/1997 型国际收支脆弱，M' 捕捉 1990/2008 型债务泡沫），实盘按优先级并联嵌入而非乘性叠加——回测中两者无同月并发触发，组合效果 ≈ 各自增量的并集（US 合成路径近似 24.3% 量级）。

---

## §5 七国延伸（**2026-08-27 错位修复后口径**）

> ⚠ 本节数字与 08 号报告 §8 的旧值不同：旧值基于 intl_monthly_raw.json 错位数据（见 §6），修复后七国基线与 FRAG' 延伸全部重跑。

### 5.1 七国 v2.2 基线（修复后）

| 国 | 年化 | MDD | 夏普 | 修复前夏普 | Δ |
|---|---|---|---|---|---|
| IN | 21.58% | -22.6% | **1.530** | 1.913 | -0.383 |
| DE | 18.37% | -22.4% | 1.492 | 1.685 | -0.193 |
| JP | 16.85% | -23.3% | 1.406 | 1.508 | -0.102 |
| CN | 21.11% | -23.6% | 1.363 | 1.394 | -0.031 |
| KR | 23.19% | -23.8% | 1.285 | 1.334 | -0.049 |
| FR | 14.91% | -22.7% | 1.225 | 1.433 | -0.208 |
| UK | 9.92% | -17.2% | 1.035 | 1.028 | +0.007 |

修复的系统性影响：**夏普普遍下修 0.03~0.38（错位数据虚增了择时收益），排序不变**（IN 仍居首、UK 末位）；UK 是唯一 MDD 显著改善的国家（-21.5%→-17.2%）。US 框架结论「七国夏普全部 ≥1.0、跨市场泛化成立」在修复后口径下依然成立。

### 5.2 FRAG' 七国延伸（修复后，诚实披露）

| 国 | 基线 | FRAG'≥4.5 wait | 触发月 | 夏普贡献 |
|---|---|---|---|---|
| KR | 23.19%/Sh1.285 | 22.77%/Sh1.262 | **1997-01~05（5 月）** | **-0.023** |
| JP/CN/DE/FR/UK/IN | — | 与基线完全一致 | 0 月 | 0 |

**与修复前口径的关键差异**：旧数据下 KR 为 23.25%/Sh1.334 → 21.78%/Sh1.380（+0.046），其中 1997-12 的第 6 次触发是错位数据制造的**假避险**（错位把 1998-01 的暴跌错标到 1997-12，wait 档「恰好」躲过）。修复后：

- ✅ **信号价值保留**：1997-01~05 触发依旧正确——FRAG_country 在危机前 2~6 个月发出预警，躲过 1997-07 起的崩盘主跌段（wait 档权益敞口 85%→15%）；
- ⚠ **收益贡献转微负**：1997 上半年 KOSPI 仍在冲顶（+~30%），wait 档踏空这段涨幅，夏普净贡献 -0.023；
- 📌 **定位修正**：FRAG' 在七国的价值是**危机段深度规避 + 六国零干扰**，而非夏普增强。这与 US（+0.125）形成对照——US 的 1929/2000 信号出现在市场顶部附近（踏空代价小），KR 1997 出现在冲顶段（踏空代价大）。慢变量保险的代价结构国别不对称，是 2026-08-27 复核新增的认知。

### 5.3 M' 七国（维持 09 号报告结论，不再复核）

M' 只对美元起效的结论（09 §4b 绝对阈值网格）基于宏观序列（BIS WS_TC）与股指月度收益，错位修复对「阈值不可统一」的定性结论无实质影响；UK ≥90 候选维持待验证状态。

---

## §6 数据层前置修复：intl_monthly_raw.json 七国月度标签错位

### 6.1 错位诊断（8-26 发现、8-27 修复）

| 国 | 错位模式 | 证据 |
|---|---|---|
| JP/KR/CN/DE/FR/IN | 整条序列「标签 M = M+1 月收盘」 | 全序列 ±1 月匹配扫描：367/367、356/356、349/349、367/367、367/367、349/349 个月偏移 +1 |
| UK | **混合**：3~10 月偏移 +1、11~2 月对齐 | 336 月中 322 月值与 idx8 下月一致，年度规律性源端口径问题 |
| US | 无错位 | 364/366 对齐；2011-07（1292.28）/2013-04（1597.57）两点经历史核实为真实月末收盘，idx8 侧可疑，故 US 不动 |

### 6.2 修复方案

- **修复源**（均为 8-26 四路验证矩阵确认的干净源）：JP/KR/DE/FR/UK/IN ← `outputs/idx8_monthly.json`（东财 idx8，md5 b3308a91 零漂移）；CN ← `outputs/cn_rotation_monthly.json`（腾讯 sh000001 月 K）；
- **修复原则**：保持各国原有月份键集合不变（下游脚本按 `{国别:{月:收盘}}` 直接读值），仅替换值；
- **连续性检验**：干净源月度收益尖刺全部对应真实历史事件（JP 2008-10 -23.8%、KR 1997-10 -27.2%、DE 2011-08 -19.2%、IN 2020-03 -23.1% 等），无孤立单点异常；
- **影响量级**：修复前后月度收益差中位 1.9~5.4pp——此前七国回测的月度收益序列实质失真；
- 脚本 `_fix_intl_monthly_raw.py`；备份 `_monthly/intl_monthly_raw.json.bak_misalign_20260827`；修复前回测快照 `outputs/_bak_misalign_20260827/`。

### 6.3 重跑清单

| 回测 | 输出 | 状态 |
|---|---|---|
| 七国 v2.2 真宏观 | intl_macro_v22_bt.json | ✅ 重跑（§5.1） |
| 七国权益出让 | exit_defense_intl_bt.json | ✅ 重跑 |
| 七国替代资产 | intl_alt_asset_bt.json | ✅ 重跑（报告页含修复说明卡） |
| 七国防御端本土化 | intl_v22_deflocal_bt.json | ✅ 重跑 |
| FRAG' v2.2（含 INTL_7） | macro_v22_frag_bt.json | ✅ 重跑（§5.2） |
| 报告页 HTML ×3 | exit-defense / intl-macro-v22 / intl-alt-asset | ✅ 再生成 |

**未重跑**（历史探索实验，结论定性不依赖精确数字）：intl_anchor、8g_vote_reenter、v22_macrovote_8c、cn_rotation 系列等——如需引用其数字，注明「2026-08-27 前旧口径」。

### 6.4 展示层刷新边界

七国页面静态数字（simulation.html 七国表、index.html 策略卡、strategy_profiles.json 档案）与死线阀门边界（4.9）为修复前口径，已加勘误公告，将与 strategy_profiles 月度重建一并于 **2026-09-17 特别版**全量刷新。

---

## §7 当前读数与运行状态（2026-08-27）

| 盘 | FRAG' | M' | gate | 仓位影响 |
|---|---|---|---|---|
| US | 3.666（country 4.69 / 记忆 2.98） | 81.46（脉冲 -6.8pp 已转负） | none | 无 |
| KR | 3.598 | — | none | 无 |
| CN | 2.874 | — | none | 无 |
| IN | 2.55 | — | none | 无 |
| lite 四国（de/fr/jp/uk） | 参考读数（不启用） | — | — | 无 |

装规则阶段：规则已生效但全部读数低于阈值，**当前仓位由既有状态机决定**（KR full_exit / US·CN·JP·DE·FR·cn-300 wait / UK·IN hold）。M' 脉冲转负（-6.8pp）确认 09 号报告「绝对水平而非方向」的判断——当前 81.46 距 95 阈值有 13.5 个点的缓冲。

---

## §8 遗留事项

1. **UK M'≥90 候选**（09 §4b）：待 BIS TC_BORROWERS=H 家庭细分二次验证后决定是否启用；
2. **9-17 特别版全量刷新**：strategy_profiles 重建 → 七国页面数字刷新 → 4.9 死线阀门边界同步（automation-1787727763160 已编排）；
3. **intl_monthly_raw.json 无 fetcher**：月度重算不会自动更新该文件（管线缺口已记，修复脚本 `_fix_intl_monthly_raw.py` 可复用）；
4. **C6 双政策错配警报系统**：优化记录已归档（本报告 §9 文件清单），落地待定；
5. **A1/A2 信号月度重算**已接入两个月度自动化（例行版 + 9-17 特别版）。

---

## §9 文件清单

| 类型 | 文件 |
|---|---|
| 信号计算 | `_calc_a1a2_live_signal.py` → `_monthly/a1a2_live_signal.json` |
| 实盘闸 | `_daily_update.py`（`_load_a1a2_signal` / `_apply_a1a2_gate`） |
| 面板生成 | `_gen_a1a2_panels.py`（10 sim 页 `id="a1a2-gate"`） |
| 错位修复 | `_fix_intl_monthly_raw.py` + 备份 `.bak_misalign_20260827` |
| 回测 | `macro_v22_frag_bt.json` / `macro_v22_credit_bt.json` / `intl_macro_v22_bt.json` / `exit_defense_intl_bt.json` / `intl_alt_asset_bt.json` / `intl_v22_deflocal_bt.json`（+ `_bak_misalign_20260827/` 修复前快照） |
| 登记页 | simulation.html（勘误卡 + A1/A2 公告卡）/ index.html（strategy-a1a2 节）/ risk-control.html（贰·陆）/ optimization-log.html（时间线 + 归档链接） |
| 优化记录归档 | `academic/模型优化记录_{FRAG_country_v2_BIS补短期外债 / A2_信贷脉冲_M合成 / B4_国际收支第六票 / C6_双政策错配警报系统}_2026-08-27.html`（一式两份：academic/ + 桌面「模型优化日记」，md5 一致） |
| 前序报告 | 08-frag-country-validation.md（A1 验证 v2.2）/ 09-credit-pulse-validation.md（A2 验证 v1.1） |
