{
  "rules": [
    "monthly_buffer_cash",
    "rate_guard",
    "rate_select",
    "iv_guard",
    "skew_guard",
    "panic_entry",
    "rate_iv_guard",
    "rate_select_iv"
  ],
  "primary": "iv_guard",
  "declared_before_returns": true,
  "all_history_previously_explored": true,
  "sample": [
    "20230403",
    "20260811"
  ],
  "split": "20240812",
  "execution": "Chinese next-session close; all external inputs additionally lagged one China session. Cash zero interest. Costs .002 each side.",
  "baseline": "Frozen 40-session regression rank, retain incumbent top3, 510300 MA120 gate, 25% risk budget, pure A industry universe.",
  "rate_guard": "At monthly signal, half risk-sized target if lagged Shibor3m MA20 > MA60.",
  "rate_select": "Keep eligible incumbent in original momentum top3. Only when replacing it, choose among original top3 the largest past252-session beta of ETF minus510300 daily return to Shibor3m daily change, times latest20-session change. At least200 paired observations; if any top3 missing use original rank1.",
  "iv_guard": "At monthly signal, half risk-sized target if lagged CYB option IV30 > IV90 (inverted term structure).",
  "skew_guard": "At monthly signal, half target when CYB put25IV minus call25IV exceeds previous252-session 90th percentile, min126 observations, excluding the current observation.",
  "panic_entry": "Weekly last trading close, empty signal slot, lagged CYB basis60 below previous252-session 10th percentile(min126) and higher than5 sessions ago. Choose highest momentum rank with ownMA120 and positive40 score; allow entry despite 510300 gate. Half risk-sized target, max1 extra issued signal per natural month, monthly priority.",
  "rate_iv_guard": "Half target if either rate_guard or iv_guard is true; never compound to quarter.",
  "rate_select_iv": "rate_select with iv_guard.",
  "source_choice": "CYB has no adjusted-name contracts in inspected cache. SSE500/300 excluded due static adjusted-strike backfill. Not a complete point-in-time options audit.",
  "missing": "No backfill/forwardfill of external values. Missing signal neutral; no panic entry. Each monthly signal re-evaluates conditions.",
  "stresses": [
    [
      "cost50",
      0.005,
      0,
      0
    ],
    [
      "offset2",
      0.002,
      2,
      0
    ],
    [
      "offset5",
      0.002,
      5,
      0
    ],
    [
      "delay2",
      0.002,
      0,
      2
    ],
    [
      "joint_cost50_offset5",
      0.005,
      5,
      0
    ],
    [
      "joint_cost50_delay2",
      0.005,
      0,
      2
    ]
  ],
  "monthly_offsets": [
    0,
    1,
    2,
    3,
    4,
    5,
    6,
    7,
    8,
    9,
    10
  ],
  "improvement_gate": "Full CAGR>=20,MDD>=-30; higher CAGR than same-sample baseline in full/early/late; full MDD no worse; cost50 CAGR>=20; all6 stress MDD>=-30. Diagnostic, not untouched OOS.",
  "robust_gate": "Full,all6 stresses,all11 offsets: CAGR>=20,MDD>=-30. No parameter search or post-result additions."
}