压力测试:让2015和2020在你的组合里重演一次
我的掌握程度:
先掌握这个答案
压力测试=给定极端情景×计算组合损益。两类情景:①历史情景(重演):2015-06股灾(两周-25%+千股跌停+期指贴水爆表)、2016熔断、2018贸易战阴跌、2020-03疫情流动性、2024-02微盘踩踏——把当时各资产/因子的真实收益代入今日持仓;②假设情景(构造):利率+2%、波动率翻倍、相关性趋同于1、流动性减半——针对「历史没见过但逻辑可能」的组合打法。输出:各情景下的组合回撤、保证金充足率、可执行的对冲动作清单。
先读结论,再核对下方使用边界;数字例题为教学情景,涉及实际行情与规则时请核对原始来源。
从理解到使用
本阶段实战方法 · 把风险指标转成可执行的限额
报告VaR、对冲比率或保证金时,必须同时说明模型外还可能发生什么。
- 先定义损失正负号、置信水平、持有期、样本窗口和估计方法。
- 组合使用VaR、ES、压力测试、集中度、清算天数与保证金情景,不把单一指标当最大损失。
- 为预警、减仓、暂停交易写清触发条件、执行责任和恢复条件,并记录无法成交的情景。
使用边界
- 95% VaR是损失分布的95%分位,不是最大亏损或保证每天有95%把握安全。
- 久期敏感度使用修正久期;Macaulay久期是现金流加权时间,两者不能直接混用。
背景 · 从一个困惑说起
VaR和CVaR都基于一个隐含假设:未来的分布像过去。但真正的杀招往往是「历史的分布之外」——2015年千股跌停连续出现、2020年3月流动性瞬间冻结。压力测试的逻辑:不再猜分布,直接把最惨的历史场景拖进你的组合里重演。
由此产生的问题
压力测试的情景怎么设计?组合受损怎么计算?「历史情景」与「假设情景」各覆盖什么盲区?
核心概念
压力测试=给定极端情景×计算组合损益。两类情景:①历史情景(重演):2015-06股灾(两周-25%+千股跌停+期指贴水爆表)、2016熔断、2018贸易战阴跌、2020-03疫情流动性、2024-02微盘踩踏——把当时各资产/因子的真实收益代入今日持仓;②假设情景(构造):利率+2%、波动率翻倍、相关性趋同于1、流动性减半——针对「历史没见过但逻辑可能」的组合打法。输出:各情景下的组合回撤、保证金充足率、可执行的对冲动作清单。
为什么需要它
①覆盖CVaR的盲区:CVaR受限于历史样本长度——50年数据里也只有一两次极端,压力测试可以「超采样」尾部;②可行动性:VaR告诉你「会亏」,压力测试告诉你「那天会发生什么」(跌停卖不出、期货保证金追缴、对冲腿失效)——预案必须具体到操作;③监管与机构标配:产品上架、杠杆审批、新策略评审都要过压力测试关。
实际应用场景
实操四步:选定3-5个情景→按情景重估持仓(含流动性折扣:跌停股按跌停价×可成交比例)→检查保证金/赎回压力→写出预案(减仓顺序、对冲工具、熔断线)。每季度更新情景库。
与之前知识的联系
q-608的CVaR量「历史尾部」,本题造「超历史尾部」——尾部三件套收口;q-044/046(阶段1涨跌停停牌)在情景里兑现为「无法执行的止损」;q-700的毕业考将把全景图组装成型。
⚠ 常见误解
- 压力测试=悲观预测:它是「条件演算」(如果X则Y),不预测X是否发生——价值在于预案而非预言
- 历史情景足够:你的组合可能持有历史上没崩溃过的新资产(如某拥挤因子)——假设情景补盲
- 测完存档就完事:测试的价值=触发整改(降杠杆/加对冲/设熔断);只测不改是合规表演
🛠 本题实践任务
为你毕业项目的组合选3个历史情景(至少含2015-06与2024-02),代入计算回撤;再构造1个假设情景(相关性趋同于1)。输出:情景×回撤表+三条具体预案(触发线与动作)。
💡 提示(先自己想5分钟再看)
情景参数从指数历史数据提取(区间实际跌幅);预案要具体到「触发回撤X%→动作Y」而非「加强监控」。
✅ 验收标准
一张4情景回撤表+三条数字化预案。把它附在回测报告后——你的报告从此有了机构级的「生存附录」。
在你的浏览器内运行。首次需联网下载 Python;支持标准库和 Pyodide 提供的 NumPy、pandas 等包。行情抓取、系统文件访问和部分第三方库请在本地环境运行。输出自检仅比对结果关键词,不代替逻辑审查。
Python · 独立工作线程 · 执行限时10秒
🤖 AI导师
导师会先检查你的前置知识(VaR/CVaR、历史情景、回测持仓),再用案例、公式和代码帮助理解。此功能需要先启用服务。