15. 事件概率与波动率曲面:从曲面反推事件概率

聊到事件驱动交易,大家最关心的问题往往是——这个事件到底有多大概率发生?

比如美联储会不会降息?英国央行会不会加息?某公司财报会不会爆雷?

你可能会去看新闻、看分析师报告、看民调数据。但这些东西有个共同的问题:它们都是主观的

而市场给出的答案,藏在波动率曲面里。

15.1 为什么波动率曲面能反推概率?

说白了,期权价格里天然包含了市场对未来事件的预期。尤其是那些有明显日期特征的事件——比如议息会议、财报发布、选举结果。

我刚开始做这个的时候也觉得挺玄乎。后来想明白了:期权定价模型里的波动率,本质上是市场对不确定性的定价

如果市场认为某个事件有大概率发生,那么对应到期日的期权价格就会反映出这种预期。具体来说,就是该到期日的隐含波动率会明显高于相邻到期日。

核心逻辑: 事件前后的波动率差异 ≈ 市场对该事件不确定性的定价 → 反推出事件概率

15.2 从曲面反推降息概率:一个实战案例

我记得有一次做美联储议息会议的交易策略。当时市场对降息25bp还是50bp争论不休。我直接用波动率曲面算了一笔账。

基本思路是这样的:

  1. 找到议息会议前后的两个到期日期(比如会议前一周和会议后一周)
  2. 提取这两个到期日的平值期权隐含波动率
  3. 计算波动率差异,结合时间衰减模型反推概率

具体公式其实不复杂:

# 伪代码示例:从波动率曲面反推降息概率
def extract_event_probability(surface, event_date, rate_change_scenarios):
    """
    从波动率曲面反推事件概率
    surface: 波动率曲面对象
    event_date: 事件日期
    rate_change_scenarios: 可能的利率变动情景列表
    """
    # 获取事件前后到期日的波动率
    pre_event_vol = surface.get_volatility(expiry=event_date - 1, strike='ATM')
    post_event_vol = surface.get_volatility(expiry=event_date + 1, strike='ATM')
    
    # 计算波动率跳跃
    vol_jump = post_event_vol - pre_event_vol
    
    # 根据波动率跳跃反推概率
    # 这里用了一个简化模型:波动率跳跃与事件不确定性成正比
    total_uncertainty = sum([abs(scenario) for scenario in rate_change_scenarios])
    probabilities = {}
    
    for scenario in rate_change_scenarios:
        # 每个情景的概率与其对波动率的贡献成正比
        prob = abs(scenario) / total_uncertainty * (vol_jump / pre_event_vol)
        probabilities[scenario] = min(max(prob, 0), 1)  # 截断到[0,1]
    
    return probabilities
实战经验: 我建议不要只用单一到期日的波动率。最好用事件前后各2-3个到期日的数据做插值,这样结果更稳健。我曾经因为只用了两个到期日,结果被一个异常报价带偏了方向。

15.3 风险中性概率 vs 真实概率

这里有个坑,我必须提醒你。

从波动率曲面反推出来的概率,叫做风险中性概率。它不等于真实世界的概率。

为什么会这样?

你想想看,期权定价是在风险中性测度下进行的。这意味着所有资产的预期收益率都被调整成了无风险利率。所以期权价格反映的并不是「事件实际发生的概率」,而是「在风险中性世界里,市场愿意为这个事件支付的价格」。

两者的差异主要体现在:

  • 风险溢价: 市场对尾部风险(黑天鹅事件)会额外定价。所以风险中性概率往往高估了小概率事件的发生概率。
  • 流动性因素: 某些深度虚值期权流动性差,报价失真,导致反推的概率不可靠。
  • 模型假设: 我们用的模型(比如BSM)本身就有假设偏差,这些偏差会传导到概率估计上。
避坑指南: 我曾经在2019年用波动率曲面反推英国脱欧概率,算出来硬脱欧概率高达40%。但实际只有20%左右。后来复盘发现,市场当时对硬脱欧的恐惧情绪被过度定价了——这就是风险溢价在作祟。

15.4 如何校准真实概率?

既然风险中性概率有偏差,那我们怎么得到更接近真实的概率?

我个人习惯用两种方法做校准:

  1. 历史校准法: 回测过去类似事件的反推概率与实际结果的偏差,建立一个校准因子。比如过去10次降息事件中,波动率曲面反推的概率平均高估了15%,那就把当前结果打85折。
  2. 多市场交叉验证: 同时看利率期货、信用违约互换(CDS)、股票期权等多个市场的隐含概率。如果多个市场指向同一个方向,那可信度就高很多。

嗯,这里要注意:校准不是万能的。市场结构会变,过去的偏差不一定适用于未来。我一般会保留一个「置信区间」,而不是给出一个精确的概率值。

15.5 知识体系结构图

下面这张图总结了从波动率曲面反推事件概率的完整逻辑:

从波动率曲面反推事件概率:知识体系 波动率曲面 不同到期日/行权价的IV 事件日期 议息会议/财报/选举 情景假设 可能的变动幅度 核心计算:波动率跳跃分析 事件前后到期日IV差异 → 不确定性定价 公式:P(scenario) ∝ |ΔIV| × scenario_weight 风险中性概率 包含风险溢价、流动性偏差 真实概率(校准后) 历史校准 + 多市场交叉验证 交易决策:事件驱动策略构建与风险管理 结合概率判断 → 选择期权组合(跨式/宽跨式/价差) 校准

15.6 实战中的注意事项

最后,分享几个我在实战中踩过的坑:

  • 不要迷信单一数据点: 某个到期日的波动率可能因为流动性问题而失真。我建议至少用3个不同到期日的数据做交叉验证。
  • 注意事件的时间窗口: 如果事件发生在周五收盘后,那么周五到下周一的波动率跳跃可能被隔夜风险放大。这时候需要做时间调整。
  • 警惕隐含波动率的微笑效应: 不同行权价的波动率不同。用平值期权还是虚值期权?我一般用平值期权,因为流动性最好,报价最可靠。
  • 别忘了利率的影响: 在反推降息概率时,利率本身也在变。这会产生一个循环依赖。我习惯先用利率期货定一个先验概率,再用波动率曲面做修正。
一个小技巧: 如果你觉得反推出来的概率和市场主流观点差异很大,先别急着否定。有时候市场才是对的。我2017年做欧元区政治风险交易时,波动率曲面显示极右翼上台概率很低,但当时媒体都在渲染恐慌。后来事实证明,曲面是对的。

好了,关于从波动率曲面反推事件概率,核心就是这些。记住:风险中性概率是市场的报价,真实概率是你的判断。两者之间的差距,就是你的alpha来源。

公众号:蓝海资料掘金营,微信deep3321