第五章:波动率曲面建模

波动率曲面这东西,说白了就是期权市场的「温度计」。我刚开始做结构化产品那会儿,总觉得BS模型算出来的隐含波动率应该是个常数才对——后来被市场狠狠教育了一顿。

你想想看,同一标的、不同行权价、不同到期日的期权,隐含波动率居然不一样。而且这个差异还挺有规律,这就是我们今天要聊的核心。

5.1 波动率微笑与偏斜

先说说波动率微笑。这个词儿挺形象的——把隐含波动率对着行权价画出来,形状像个笑脸。为什么会出现这种现象?

BS模型假设价格是连续变化的,但现实世界里有跳跃。我记得2018年做港股期权做市时,碰到过一次财报前的异动,平值期权和深度虚值期权的波动率差了将近8个点。这就是典型的「肥尾」效应——市场认为极端行情发生的概率比BS模型算出来的要高。

偏斜(Skew)则是微笑的不对称版本。在股票市场里,通常左侧(虚值看跌)的波动率比右侧(虚值看涨)高。为什么?因为大家更怕暴跌。我做过一个统计,标普500期权在2008年之后的偏斜度比之前高了将近一倍——市场是有记忆的。

实战要点:

  • 微笑程度可以用「曲率」来量化,偏斜程度用「斜率」
  • 外汇市场通常是对称微笑,股票市场是负偏斜
  • 商品市场有时候会出现正偏斜(比如原油)

5.2 局部波动率模型

局部波动率模型(LV模型)是Derman和Kani在1994年提出的。它的核心思想很简单:波动率是标的价格和时间的函数,σ(S,t)。

这个模型的好处是——它能完美拟合当前的波动率曲面。我在做奇异期权定价时经常用它,因为对于障碍期权、亚式期权这类路径依赖产品,LV模型比BS模型准得多。

但有个坑:LV模型假设未来的波动率曲面和现在一样。我曾经用LV模型给一个一年期的雪球产品定价,结果三个月后市场结构变了,模型完全失效。嗯,这里要注意——LV模型是静态的。

# 局部波动率计算示例(Dupire公式)
def local_vol(S, t, sigma_surface):
    """
    sigma_surface: 隐含波动率曲面
    返回局部波动率
    """
    # 计算隐含波动率对行权价和时间的偏导
    dsigma_dK = gradient(sigma_surface, axis=1)  # 对行权价
    dsigma_dT = gradient(sigma_surface, axis=0)  # 对时间
    d2sigma_dK2 = gradient(dsigma_dK, axis=1)
    
    # Dupire公式
    numerator = dsigma_dT + 2*t*sigma_surface*dsigma_dT
    denominator = 1 + 2*t*sigma_surface*dsigma_dK + \
                  t*sigma_surface**2*d2sigma_dK2
    
    return sigma_surface * np.sqrt(numerator / denominator)

我的经验:LV模型适合做日内做市和短期产品定价。对于期限超过3个月的产品,我建议搭配随机波动率模型一起用。

5.3 随机波动率模型

随机波动率模型(SV模型)解决了LV模型的静态问题。最经典的是Heston模型,它假设波动率本身也是一个随机过程。

Heston模型的参数有五个:v0(初始方差)、θ(长期均值)、κ(均值回复速度)、σ(波动率的波动率)、ρ(价格和波动率的相关系数)。

这个ρ特别关键。我做过一个回测:当ρ=-0.7时,模型能很好地捕捉到「下跌时波动率飙升」的现象。而ρ=0时,模型就变成了一个纯随机波动率,和市场的偏斜特征对不上。

参数 典型值(标普500) 影响
v0 0.04 初始波动率水平
θ 0.05 长期波动率均值
κ 2.0 回复速度,越大越快
σ 0.3 波动率的波动率
ρ -0.7 负值表示杠杆效应

避坑指南:我曾经用Heston模型给一个复杂结构化产品做对冲,发现参数校准非常不稳定。后来改用Fourier变换方法做定价,速度快了10倍,而且参数更稳定。记住:SV模型的数值实现比模型本身更重要。

5.4 波动率曲面插值方法

做市交易中,你不可能对所有行权价和期限都有报价。插值就是用来填补这些空白的。

常用的方法有几种:

  • SVI参数化:用5个参数拟合整个曲面。我个人比较喜欢这个方法,因为它能保证无套利。我在做期权做市时,每天开盘第一件事就是用SVI拟合前一天的收盘数据。
  • 样条插值:在行权价方向用三次样条,时间方向用线性插值。简单粗暴,但容易产生套利机会。
  • 核回归:用高斯核做非参数平滑。适合数据量大的情况,但计算慢。

我给大家一个实用建议:对于日内做市,用SVI就够了。对于盘后分析和风控,建议用样条插值加上无套利约束。

# SVI参数化示例
def svi_vol(k, a, b, rho, m, sigma):
    """
    k: 对数行权价 ln(K/S)
    返回隐含波动率
    """
    term = np.sqrt((k - m)**2 + sigma**2)
    return a + b * (rho * (k - m) + term)

插值注意事项:

  • 永远检查无套利条件:看涨看跌平价、蝶式价差非负
  • 期限结构要平滑,不要出现波动率倒挂
  • 远月合约的插值要谨慎,流动性差容易出问题

知识体系总览

下面这张图是我自己整理的知识结构,每次做培训都会拿出来用。它把波动率曲面建模的四个核心模块串在了一起:

波动率曲面建模知识体系 波动率曲面 微笑与偏斜 曲率、斜率、肥尾 局部波动率 Dupire公式、静态 随机波动率 Heston、参数校准 插值方法 SVI、样条、核回归 应用场景:期权做市 | 结构化产品定价 | 风险对冲 | 波动率套利 四个模块相互关联:微笑偏斜是现象,LV/SV是建模方法,插值是工程实现 关键参数速查 偏斜斜率 → 市场恐慌程度 | 曲率 → 尾部风险 | 均值回复速度 → 波动率持续性

这张图把四个模块的关系理清楚了。微笑和偏斜是市场现象,LV和SV是两种建模思路,插值是工程实现。做市交易中,这四个东西缺一不可。

最后说一句:波动率曲面建模没有银弹。我在不同市场用过不同方法——港股用SVI+局部波动率,美股用Heston,商品市场用插值加人工调整。关键是要理解每个方法的假设和局限,然后根据你的交易场景做选择。


无相订单流研究社 微信Lucian808555