2. 波动率基础回顾

在进入 Local Vol 与 Dupire 方程之前,必须先把“波动率”这个看似熟悉的概念拆开。很多实战误区的根源,不是公式不会推,而是把不同口径的波动率混为一谈:用历史波动率去定价期权,用隐含波动率去预测未来,或者看到微笑曲线就以为市场“错了”。本节把四个基础对象——历史波动率、隐含波动率、波动率微笑与偏斜、期限结构——放在同一张地图上,建立后续局部波动率建模的参照系。

一、核心原理:两种波动率,两种世界观

历史波动率(Historical Volatility, HV)是对已实现价格变动的统计度量,回答“过去有多颠簸”。它由收益率序列计算,常见口径包括 close-to-close、Parkinson、Garman-Klass、Yang-Zhang 等。HV 是回望的、可观测的、唯一的(给定窗口与频率)。

隐含波动率(Implied Volatility, IV)是把市场价格代入 Black-Scholes 公式反解出来的波动率参数,回答“市场当前为未来定价了多少波动”。IV 是前瞻的、不可直接观测的、且依赖模型假设。同一到期日、不同行权价的 IV 连成一条曲线,就是波动率微笑/偏斜;不同到期日的 IV 连成一条曲线,就是期限结构。

核心区别:HV 是“已发生的事实”,IV 是“市场共识的价格”。Local Vol 要做的,正是把整张 IV 曲面(微笑+期限结构)反推成一个与行权价、到期日都相关的瞬时波动率函数 σ(S,t)。

二、波动率微笑与偏斜:市场为什么不再相信常数波动率

Black-Scholes 假设波动率为常数,但真实市场中,平值期权 IV 最低、虚值看跌与虚值看涨 IV 抬升,形成“微笑”;在股指等市场,低行权价(虚值看跌)IV 显著高于高行权价,曲线向左上方倾斜,称为“偏斜(Skew)”。偏斜反映了市场对下行风险的定价:暴跌概率被系统性高估,或说尾部风险被定价进去。

常见观察维度:

  • 水平(Level):平值 IV 的高低,反映整体波动预期。
  • 偏斜(Skew):25Δ Put IV 减 25Δ Call IV,衡量左右不对称。
  • 曲率(Curvature / Butterfly):两翼相对平值的抬升幅度,反映尾部厚度。
  • 期限结构(Term Structure):近月 IV 与远月 IV 的差,反映事件与均值回复。

下面这张图把同一标的、同一到期日的 IV 曲线与 HV 水平放在一起,直观展示“微笑+偏斜”以及 IV 相对 HV 的溢价:

波动率微笑与偏斜:同一到期日 IV 曲线 vs 历史波动率 行权价 K(低 → 高) 隐含波动率 IV HV(已实现) 虚值Put IV高 平值 IV 最低 虚值Call IV 偏斜 Skew 期限结构(ATM IV) 近月高 远月低

三、期限结构:波动率的时间维度

把不同到期日的平值 IV 连起来,就得到期限结构。常见形态有三类:

  1. 向上倾斜:远月 IV 高于近月,通常出现在市场平静、预期未来不确定性上升时。
  2. 向下倾斜(倒挂):近月 IV 高于远月,常见于重大事件(财报、议息、公投)临近,事件过后 IV 回落。
  3. 驼峰/波动:中间某到期日因特定事件被抬高,形成局部峰值。

期限结构对 Local Vol 至关重要:Dupire 方程要求输入的是整张 IV 曲面,而期限结构决定了 σ(S,t) 在时间方向上的变化。如果只取单一到期日建模,得到的局部波动率在时间维度上是失真的。

四、方法流程:从市场数据到波动率曲面

实战中构建 IV 曲面的典型流程如下:

  1. 采集同一标的、多个到期日、多个行权价的期权报价(买价/卖价/中间价)。
  2. 剔除流动性差、价差过宽、明显套利的报价。
  3. 用 Black-Scholes 或更合适的模型反解每个报价的 IV。
  4. 对每个到期日做行权价方向的平滑插值,得到微笑/偏斜曲线。
  5. 在到期日方向做时间插值(注意方差插值优于 IV 线性插值)。
  6. 检查无套利约束:蝶式价差非负、日历价差非负、总方差单调不减。
时间方向插值建议对总方差 σ²T 做线性或单调插值,而不是直接对 IV 线性插值。直接插 IV 容易破坏日历套利约束,这是构建 Local Vol 曲面时最常见的坑之一。

五、案例与场景:一次典型的 IV 曲面观察

假设某股指当前点位 3000,近月平值 IV 为 18%,远月为 20%,25Δ Put IV 比 25Δ Call IV 高 6 个波动率点。可以读出:

  • 整体波动预期温和,远月略高于近月,期限结构向上倾斜。
  • 偏斜明显,市场对下行保护需求强,虚值看跌被买贵。
  • 若此时 HV 只有 12%,说明 IV 相对 HV 有约 6 个点的溢价,市场在为潜在风险付费。

用 Python 快速计算 HV 与简单 IV 对比的示意代码:

import numpy as np

# 历史波动率:close-to-close,年化
def hist_vol(prices, window=20, ann=252):
    ret = np.diff(np.log(prices))
    return np.std(ret[-window:], ddof=1) * np.sqrt(ann)

# 示例:近 20 日收盘价
prices = np.array([3000, 3012, 2995, 2980, 3005, 3020,
                   3010, 2998, 2975, 2960, 2985, 3000,
                   3015, 3030, 3022, 3008, 2990, 2978,
                   2995, 3010, 3025])
hv = hist_vol(prices)
print(f"20日历史波动率 = {hv:.2%}")
# 输出示例:20日历史波动率 = 14.87%

六、误区与复盘

误区表现正确做法
用 HV 直接定价期权忽略风险溢价与微笑定价用 IV 曲面,HV 仅作参照
把 IV 当作未来已实现波动预测IV 含风险溢价与供需区分风险中性测度与现实测度
忽略偏斜只取平值 IV虚值期权定价严重偏差建模整条微笑曲线
时间方向直接插 IV破坏日历套利对总方差 σ²T 插值
用单一到期日推 Local Vol时间维度失真使用完整 IV 曲面
复盘要点:HV、IV、微笑、期限结构不是四个孤立概念,而是同一波动率曲面的四个切面。Local Vol 与 Dupire 方程的输入,正是这张曲面的全部信息。若曲面本身存在套利或插值失真,后续局部波动率再精确也失去意义。

掌握这四个基础对象后,下一步才能理解 Dupire 方程如何把整张 IV 曲面“翻译”成瞬时局部波动率 σ(S,t),以及为什么局部波动率能同时拟合所有行权价与到期日。在此之前,请确保你能独立画出并解释一张真实的 IV 曲面。