做什么(One-liner)
Canvas 宏观冲击节点:输入 scenario_id,返回 4 阶段 w 信心衰减 + 跨板块流动性枯竭路径 + 双语叙述。规则化 PoC,3 种预定义场景(油价暴涨 50%、加息 100bp、AI 基础设施回撤)。
怎么用
Canvas 拖 macro_shock_v1,填 scenario_id(3 选 1)。locale 自动从浏览器 Accept-Language 传入(en / zh)。典型用法:
macro_shock_v1 (oil_up_50)
↓
contagion_sim_v1 → risk_management_v1
↘
bear_agent_v1 → meta_strategy核心公式
# 本 operator NOT 做数值计算 —— 是规则化 dict 查找 + i18n 本地化:
result = _SCENARIOS[scenario_id] # 3 种场景硬编码
localized = _pick(result, locale) # 递归 {en, zh} 字典
return {ok, scenario_id, name, description, stages[4], liquidity_path[3-4], logic_lineage[3]}
# _normalise_lang(raw):
None / "" / 非 'zh*' → 'en'
'zh*' (含 'zh-CN', 'zh-HK', 'ZH' 等) → 'zh'3 种场景的 w 衰减曲线:
oil_up_50: 1.0 → 0.85 → 0.6 → 0.35rate_hike_100bp: 1.0 → 0.75 → 0.5 → 0.3ai_infra_pullback: 1.0 → 0.7 → 0.45 → 0.25
假设与适用场景
假设:3 种预定义场景足够覆盖常见宏观冲击;w 线性衰减;流动性路径单向(无反馈);pd_delta_bp 为 stylized 年化增量 PD 估计;locale 仅 en/zh。
适用:Canvas 宏观 what-if 节点、机构压力测试输入、教学 demo、配合 contagion_sim 做传染路径叠加。
不适用:真 4D ODE 积分、用户自定义场景、多冲击叠加、tick 级别、定量 PD 校准。
输入 / 输出契约
{scenario_id, lang?='en'} → {ok, scenario_id, name, description, stages[4], liquidity_path[3-4], logic_lineage[3]}。错误时返回 {ok:false, error, available[3]}。
已知局限
- Rule-based PoC:3 种场景硬编码,无参数化路径;
4D ODE upgrade pending(见 reflexivity_4d_ode_v1) - pd_delta_bp 是 stylized 整数:非 Merton/KMV/CreditMetrics 校准输出
- w 值定性:[1.0, ~0.7, ~0.5, ~0.3] 不是模型导出
- 时间尺度不明确:'stages' t=0..3 没具体 day/week/month 单位
- 无场景交互:无法同时 rate hike + oil spike 叠加
- locale 仅 en/zh:第 3 种语言 fallback en
参考文献
Adrian-Boyarchenko-Giannone (2019) Vulnerable Growth + Soros (1987) Alchemy of Finance + Brunnermeier-Pedersen (2009) Market/Funding Liquidity。详见 frontmatter。
Golden Test
tests/golden/fixtures/tier3/macro_shock/,content-locking(tolerance=0,dict 即真值)。10 tests:
matches_snapshot— 3 场景 × 2 语言 + invalid + list_scenarios 全矩阵 byte-equaldeterminism— 5 reruns 一致all_scenarios_have_4_stages— 合同:每场景恰好 4 阶段(t=0..3)w_values_monotone_decreasing— 每场景 w[0]=1.0 且严格递减liquidity_path_ordered— order 字段递增且连续 1..Npd_delta_bp_integer_and_nonneg— 类型 + 非负锁定invalid_scenario_error_path— 未知 id → ok=False + 双语 error + 原始 sid 列表lang_normalisation— _normalise_lang 全 edge case 覆盖list_scenarios_structure— 3 条目,每条logic_lineage_locked— 固定 3-元素双语列表
Changelog
- 1.0.0 (2026-04-20) — 首次 Active(Tier 3 batch 1, content-locked)

