第11章:跳跃扩散模型:Merton模型、Kou模型在微笑定价中的应用

聊到波动率微笑,咱们得面对一个现实——Black-Scholes模型假设资产价格连续变化,可真实市场里,价格经常“跳”一下。比如财报发布、央行加息、黑天鹅事件,这些瞬间的跳跃,BS模型根本抓不住。

我个人习惯把跳跃扩散模型看作是BS模型的“补丁”。它承认价格大部分时间在随机游走,但偶尔会来一次“蹦极”。这种思路,说白了就是给期权定价模型装上了一个“突发事件处理模块”。

为什么需要跳跃扩散模型?

你想想看,BS模型隐含波动率曲线为什么是微笑形状?

原因很简单——市场在告诉BS模型:“你的假设不对!”

BS模型假设价格服从几何布朗运动,收益率是正态分布。但真实数据呢?尖峰厚尾,左右不对称。尤其是深度虚值和深度实值期权,BS模型定价偏差很大。

我在项目中遇到过一件事:某次财报前,我尝试用BS模型给跨式期权定价,结果发现隐含波动率曲面出现了明显的“偏斜”。后来换成Merton模型,定价误差直接缩小了30%。

跳跃扩散模型的核心思想就是:把价格变化拆成两部分——

  • 连续部分:常规的扩散运动(BS模型那套)
  • 跳跃部分:离散的、随机发生的价格突变

这样一来,模型就能捕捉到“厚尾”和“偏斜”现象了。

Merton模型:跳跃服从正态分布

Merton模型是跳跃扩散模型的鼻祖。它假设跳跃的幅度服从正态分布,跳跃次数服从泊松过程。

公式长这样:

dS/S = (μ - λκ)dt + σdW + (J-1)dN

其中:

  • λ:跳跃强度(平均每年跳几次)
  • κ:平均跳跃幅度
  • J:跳跃幅度因子(对数正态分布)
  • dN:泊松过程(0或1)

嗯,这里要注意——Merton模型假设跳跃幅度是对称的,正跳和负跳的概率一样。这在实际市场中并不完全成立。

我曾经用Merton模型给标普500指数期权定价,发现它虽然能拟合出微笑曲线,但对深度虚值看跌期权的定价还是偏低。为什么?因为市场下跌时的跳跃幅度往往比上涨时更大,Merton模型没考虑这个不对称性。

Merton模型定价公式(欧式看涨期权):

C(S,t) = Σ_{n=0}^{∞} [e^{-λ'(T-t)} (λ'(T-t))^n / n!] × C_BS(S, K, σ_n, r_n, T-t)

其中:

  • λ' = λ(1+κ)
  • σ_n² = σ² + nδ²/(T-t)
  • r_n = r - λκ + nln(1+κ)/(T-t)
  • δ:跳跃幅度的标准差

说白了,Merton模型就是把BS价格按跳跃次数做了加权平均。跳跃次数越多,隐含波动率越高,这就产生了微笑效应。

Kou模型:双指数跳跃分布

Kou模型是Merton模型的升级版。它最大的改进是——跳跃幅度不再对称,而是用双指数分布来描述。

双指数分布长这样:

f_J(y) = p × η₁ × e^{-η₁ y} × I_{y≥0} + (1-p) × η₂ × e^{η₂ y} × I_{y<0}

其中:

  • p:向上跳跃的概率
  • η₁:向上跳跃的衰减速度
  • η₂:向下跳跃的衰减速度

这个设计很巧妙。η₁和η₂不一样,就能产生偏斜。如果η₂ > η₁,说明向下跳跃的幅度更大、更陡,这正好对应了市场恐慌时的“暴跌”特征。

我记得有一次做VIX指数期权定价,Kou模型的表现明显优于Merton模型。因为VIX在恐慌时飙升的幅度远大于平稳时的下跌幅度,这种不对称性,Kou模型抓得很准。

实战小技巧:

参数估计时,我建议用MLE(最大似然估计)配合历史收益率数据。跳跃强度λ通常取值在0.5-2之间,具体看标的资产的波动特性。个股的跳跃频率比指数高,因为公司有财报、并购等事件。

两种模型的对比

特征 Merton模型 Kou模型
跳跃幅度分布 正态分布(对称) 双指数分布(不对称)
偏斜能力 弱(只能产生微笑) 强(能产生偏斜)
解析解 有(无穷级数) 有(拉普拉斯变换)
计算速度 较快 中等
适用场景 指数期权、外汇期权 个股期权、事件驱动型标的

从表格能看出来,Kou模型在拟合偏斜方面更有优势。但Merton模型计算更简单,适合做快速定价。

在微笑定价中的应用

跳跃扩散模型怎么解决微笑问题?

核心逻辑是这样的:

  1. 短期期权:跳跃事件对短期期权影响更大。因为时间短,连续扩散的贡献小,跳跃的贡献占比高。所以短期期权的隐含波动率曲线更陡峭。
  2. 长期期权:时间拉长,连续扩散的累积效应会“抹平”跳跃的影响。长期期权的微笑曲线相对平缓。
  3. 虚值期权:深度虚值期权对跳跃特别敏感。因为只有发生大幅跳跃,虚值期权才能变成实值。所以跳跃扩散模型能更好地定价虚值期权。

我曾经用Kou模型给某科技股的期权做定价,发现它对深度虚值看跌期权的定价误差只有BS模型的1/3。原因就是该股票历史上出现过几次暴跌,Kou模型的双指数分布正好抓住了这个特征。

避坑指南:

我曾经犯过一个错误——直接用历史数据估计跳跃参数,然后用于定价。结果发现模型在样本外表现很差。后来才意识到,跳跃参数需要做“风险中性”调整。历史参数是真实世界的,定价需要的是风险中性世界的参数。两者之间差一个“跳跃风险溢价”。

核心知识体系

下面这张图展示了跳跃扩散模型在微笑定价中的整体逻辑:

跳跃扩散模型在微笑定价中的应用 BS模型无法解释微笑/偏斜 引入跳跃扩散模型:价格 = 扩散 + 跳跃 Merton模型 跳跃幅度:正态分布(对称) 特点:产生微笑,偏斜能力弱 适用:指数、外汇期权 Kou模型 跳跃幅度:双指数分布(不对称) 特点:能产生偏斜,拟合能力强 适用:个股、事件驱动型标的 效果:拟合微笑曲线,解释偏斜现象

从这张图能看出来,跳跃扩散模型的核心价值在于——它给BS模型增加了一个“跳跃维度”。Merton模型适合对称的微笑,Kou模型适合不对称的偏斜。实际应用中,我建议先画一下隐含波动率曲线,看看是微笑还是偏斜,再选模型。

实战中的参数校准

参数校准是跳跃扩散模型最头疼的部分。我分享一个我常用的流程:

  1. 收集数据:至少3年的日度收益率数据,加上期权市场报价
  2. 初步估计:用MLE估计跳跃参数(λ, μ_J, σ_J 或 p, η₁, η₂)
  3. 期权校准:用市场期权价格反推风险中性参数
  4. 验证:检查模型定价误差是否在可接受范围内

嗯,这里有个坑——跳跃参数和扩散参数之间存在“识别问题”。什么意思?就是同样的价格路径,可能由不同的参数组合生成。我建议固定扩散波动率(比如用历史波动率),只校准跳跃参数,这样更稳定。

代码示例:Merton模型欧式看涨期权定价(Python)

import numpy as np
from scipy.stats import norm

def merton_call(S, K, T, r, sigma, lam, mu_j, sigma_j, n_max=50):
    """
    Merton跳跃扩散模型欧式看涨期权定价
    S: 标的价格
    K: 行权价
    T: 到期时间
    r: 无风险利率
    sigma: 扩散波动率
    lam: 跳跃强度
    mu_j: 跳跃幅度均值
    sigma_j: 跳跃幅度标准差
    """
    # 风险中性调整
    kappa = np.exp(mu_j + 0.5 * sigma_j**2) - 1
    lam_prime = lam * (1 + kappa)
    
    price = 0
    for n in range(n_max):
        # 调整后的参数
        sigma_n = np.sqrt(sigma**2 + n * sigma_j**2 / T)
        r_n = r - lam * kappa + n * np.log(1 + kappa) / T
        
        # BS价格
        d1 = (np.log(S/K) + (r_n + 0.5 * sigma_n**2) * T) / (sigma_n * np.sqrt(T))
        d2 = d1 - sigma_n * np.sqrt(T)
        bs_price = S * norm.cdf(d1) - K * np.exp(-r_n * T) * norm.cdf(d2)
        
        # 泊松权重
        poisson_prob = np.exp(-lam_prime * T) * (lam_prime * T)**n / np.math.factorial(n)
        price += poisson_prob * bs_price
    
    return price

这段代码我用了很多次。注意n_max取50就够用了,因为泊松权重衰减很快。如果T很短(比如几天),n_max取10都行。

总结一下

跳跃扩散模型是解决波动率微笑问题的利器。Merton模型简单实用,适合对称微笑;Kou模型更灵活,能处理偏斜。实际交易中,我建议先用Kou模型做主力,因为它对市场情绪的刻画更细腻。

最后提醒一句——模型再好,也要结合市场经验。参数校准不是一劳永逸的,市场结构变了,参数也得跟着调。我每周都会重新校准一次参数,确保模型跟得上市场节奏。


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