跳到正文

波动率曲面构造:从报价到无套利曲面

隐含波动率曲面是伪装的概率分布,构造它的全部工作是让这个分布存在、平滑、贴住市场。套利约束、SVI/SSVI 参数化、生产校准流水线和它的失败模式。

第 1 篇 · 共 12 篇 约 11 分钟

报价有噪声。市场会收盘,行使价会重新挂牌,美联储下午 2 点发公告时买卖价差翻倍。定价库在下午 3 点读的那张隐含波动率曲面,跟数据供应商 3:01 推来的十万条报价,不是一回事——中间隔着一整套工程。这篇文章讲的就是这套工程。

最终目标是一个函数 σ(K,T)\sigma(K, T)——或者等价地,总方差 w(K,T)=σ(K,T)2Tw(K, T) = \sigma(K, T)^2 T——要同时满足三件事:平滑、无套利、贴市场报价贴到剩余定价误差低于买卖价差。把这件事做好,是运行一个衍生品台的大部分日常;做坏了,对冲有偏、奇异定价飘离市场,最终在某个位置爆掉。贯穿全文的一个视角:曲面是伪装的概率分布。每一条套利约束,本质都是在要求这个分布真的存在。

三个套利条件

曲面无套利,意味着三类不等式跨全曲面成立,每类对应一种能白拿钱的期权组合(Hull, 2018, 第 18.6 节;Gatheral, 2006, 第 2 章)。

日历套利(同行使价、不同到期)。 对固定行使价,总方差 w(T)=σ2(T)Tw(T) = \sigma^2(T) T 必须随 TT 单调不减:

∂w∂T≥0\frac{\partial w}{\partial T} \geq 0

如果 ww 随 TT 下降,卖出便宜的方差、买入贵的,等长到期收敛到短到期时锁定利润——这就是同行使价的日历价差套利。

蝶式套利(同到期、不同行使价)。 对固定 TT,看涨价格作为行使价的函数必须是凸的:

∂2C∂K2>0\frac{\partial^2 C}{\partial K^2} > 0

数值上等价于

C(K1)−2C(K2)+C(K3)≥0C(K_1) - 2C(K_2) + C(K_3) \geq 0

对任意 K1<K2<K3K_1 < K_2 < K_3(按间距加权)。违反了,就能搭出一个收益非负、价格为负的蝶式价差。凸性有个更深的读法——按 Breeden-Litzenberger (1978),它等价于风险中性密度非负:

qT(K)=erT∂2C∂K2≥0q_T(K) = e^{rT} \frac{\partial^2 C}{\partial K^2} \geq 0

对所有 KK。这正是”曲面是概率分布”的字面意思:二阶导为负的地方,你的”分布”在某处给了负概率。

垂直套利(看涨价差)。 对任意一对行使价 K1<K2K_1 < K_2:

0≤C(K1)−C(K2)≤(K2−K1)e−rT0 \leq C(K_1) - C(K_2) \leq (K_2 - K_1) e^{-rT}

左边说看涨价格随行使价单调不增,右边说牛市价差的价值不能超过其最大收益的折现值——上界里的折现因子来自收益发生在 TT 时刻。

三个条件必须联合检验:修好一个可能弄坏另一个。真实报价即使逐条干净,朴素插值也会在报价之间制造幻影套利——这就是为什么”从报价到曲面”是个工程问题而不是查表问题。

清洗:一切的第一步

校准流水线从清洗开始,顺序是固定的:

  1. 买卖价转中间价。 取简单平均;有盘口规模数据就按规模加权。中间价比任何单边都稳定。
  2. 过滤坏报价。 有 vol 的先验猜测时,丢掉 ∣IV−σlocal∣>5%|IV - \sigma_{\text{local}}| > 5\% 的点;没有就丢掉成交量可疑或被供应商标记的报价。
  3. 跨行使价和到期同步。 日内漂移、节假日效应、供应商分批更新都会让曲面不同步;不一致的报价用平滑值替换。

清洗完的曲面”与市场数据一致”,但不一定无套利。下一步才是让它无套利,而这里出现本文第一个真正的分岔。

参数 vs 非参数:两条路线

非参数平滑给数据拟合一个带正则化的平滑函数。这条路线的代表是 Andreasen & Huge (2010):在包含所有报价行使价和到期的离散网格上,通过保证每个离散点密度为正的有限差分构造插值,不经过 Dupire 公式,结果按构造无套利。方法在商业库里有实现,QuantLib 也提供,生产中广泛使用。代价有二:任意性从网格分辨率进来(太细过拟合,太粗漏结构);而且网格之外——深翼——你反正还是需要参数化外推。

参数形式选一个小参数族,配上恰当的约束让它按构造无套利,再把参数拟合到数据上。形状被限制在”你期望曲面长的样子”之内——这既是缺点(市场换状态时可能拟合不上两翼),也是优点(参数可解释、可跨日跟踪、毫秒级求值)。

实践中,欧式期权的曲面构造以参数形式为主。接下来两节讲这条路线的两代主角。

SVI:一次一个切片

Gatheral 的 SVI (2004) 参数化单个到期切片的隐含方差(年化约定;乘 TT 得总方差):

w(k,θSVI)=a+b(ρ(k−m)+(k−m)2+σ2)w(k, \theta_{\text{SVI}}) = a + b\left(\rho(k - m) + \sqrt{(k-m)^2 + \sigma^2}\right)

约定 k=ln⁡(K/F)k = \ln(K/F)、F=S0erTF = S_0 e^{rT},参数是 5 向量 θSVI=(a,b,ρ,m,σ)\theta_{\text{SVI}} = (a, b, \rho, m, \sigma),每切片五个。它对股票微笑的形状表现力刚刚好:两翼渐近线性、平值附近由 σ\sigma 控制曲率、ρ\rho 管偏度、mm 管平移。约束条件也是熟知的:

b>0,a+bσ1−ρ2≥0,b(1+∣ρ∣)<4Tb > 0, \quad a + b\sigma\sqrt{1-\rho^2} \geq 0, \quad b(1 + |\rho|) < \frac{4}{T}

前两条保证方差为正;第三条限制两翼斜率——它来自 Lee 的矩公式对总方差翼部斜率的上界,拿住它,深翼才不会隐含出爆炸的矩(这是翼部/蝶式方向的约束,日历方向要跨切片另查)。

拟合 SVI 是非凸最小二乘。稳健的做法分两步:先在每切片选锚定行使价——ATM、10-delta 看跌、25-delta 看跌、25-delta 看涨、10-delta 看涨,五个点对五个参数,直接解出初值;再在切片内全部报价上做最小二乘精修。

SVI 的短板在切片之间:每片独立拟合,参数跨期限可以跳来跳去,ATM 总方差甚至可能随 TT 下降——这就是日历套利。补丁式的办法是把 (a,b,ρ,m,σ)(a, b, \rho, m, \sigma) 跨期限用低阶样条再平滑一遍;根治的办法是下一节。

SSVI:整张曲面一次成型

SSVI(Surface SVI) 用一个参数化同时覆盖所有到期(Gatheral & Jacquier, 2014):

w(k,θT)=θT2(1+ρ φ(θT) k+(φ(θT) k+ρ)2+1−ρ2)w(k, \theta_T) = \frac{\theta_T}{2}\left(1 + \rho\,\varphi(\theta_T)\,k + \sqrt{\left(\varphi(\theta_T)\,k + \rho\right)^2 + 1 - \rho^2}\right)

其中 kk 仍是对数实值度,θT\theta_T 是到期 TT 的 ATM 总方差(直接从市场读),ρ\rho 是跨期限共享的偏度参数,φ(θ)\varphi(\theta) 是控制微笑曲率随期限衰减的形状函数——常用幂律 φ(θ)=η θ−γ\varphi(\theta) = \eta\,\theta^{-\gamma}。结构上,ATM 处 w(0,θT)=θTw(0, \theta_T) = \theta_T 自动成立,微笑形状由 φ\varphi 统一驱动。

SSVI 的卖点是无套利条件能写成参数上的显式不等式:θT\theta_T 随 TT 单调不减(配合对 φ\varphi 的温和条件)保证跨期限无日历套利;蝶式方向,充分条件是

θT φ(θT) (1+∣ρ∣)≤4,θT φ(θT)2 (1+∣ρ∣)≤4\theta_T\,\varphi(\theta_T)\,(1 + |\rho|) \leq 4, \qquad \theta_T\,\varphi(\theta_T)^2\,(1 + |\rho|) \leq 4

校准时把这些当约束带着,拟出来的曲面就是干净的——这是”按构造无套利”的具体含义。

SSVI 用一个全局 ρ\rho 换来了整张面的一致性,代价是偏度期限结构的表达力。生产级拟合因此常用扩展:eSSVI(Hendriks & Martini)放开 ρ\rho 随期限变化,同时保持切片间无套利;更一般的无套利 SVI 曲面族见 Guo, Jacquier, Martini & Neufcourt (2016)。

实现草图

import numpy as np
from scipy.optimize import minimize

def ssvi_total_var(k, theta, rho, phi):
    """SSVI 总方差切片:w(k) = θ/2 · (1 + ρφk + sqrt((φk+ρ)² + 1−ρ²))。"""
    return 0.5 * theta * (1 + rho * phi * k
                          + np.sqrt((phi * k + rho)**2 + 1 - rho**2))

def ssvi_calibrate(strikes_by_tau, ivs_by_tau, taus, S0, r, eta=1.0, gamma=0.5):
    """跨期限拟合 SSVI:幂律 φ(θ) = η·θ^(−γ),逐切片精修 (θ_T, ρ)。"""
    fits = []
    for tau, K_arr, iv_arr in zip(taus, strikes_by_tau, ivs_by_tau):
        F = S0 * np.exp(r * tau)
        k = np.log(K_arr / F)
        w_mkt = iv_arr**2 * tau
        x0 = np.array([np.interp(0.0, k, w_mkt), -0.7])  # 初值:ATM 总方差、偏度
        bounds = [(1e-4, None), (-0.95, 0.95)]
        res = minimize(
            lambda p: np.mean((ssvi_total_var(k, p[0], p[1],
                               eta * p[0]**(-gamma)) - w_mkt)**2),
            x0, bounds=bounds, method='L-BFGS-B')
        fits.append(res.x)
    return fits

提示词

用 Python 写一个 SSVI 总方差函数和逐切片校准草图,幂律 phi,scipy 最小化,L-BFGS-B 带边界。

这不是获奖代码——它没带上一节的无套利约束,也没做坏拟合和离群点处理。生产级实现每个参数族大约 100-200 行,差出来的部分全是稳健性。

校准流水线:端到端

典型台上的完整流程:

  1. 快照。 在快照时间拉最新报价,通过看跌-看涨平价合并看涨和看跌,为每个 TT 拿到 KK 上的完整网格。
  2. 清洗。 前面那三步。
  3. 选模型。 按资产类别:股票指数用 (e)SSVI;FX 微笑接近对称,常用 ρ=0\rho = 0 附近的 SVI;单票可能另选参数族。
  4. 校准。 最小化 ∑i(σimkt−σimodel)2\sum_i (\sigma^{\text{mkt}}_i - \sigma^{\text{model}}_i)^2,按买卖价差的倒数加权(价差窄的报价更可信),初值取前一天的参数。
  5. 验证无套利。 在拟合曲面上联合检查蝶式、日历、垂直三类约束;有失败就带惩罚项重拟(拉格朗日式处理)。
  6. 存储。 参数化曲面存给下游(定价引擎、风险系统)。
  7. 发布。 按需转换:经 Dupire 转局部 vol 曲面、为 Heston 转随机 vol 参数集,或直接用 SVI 参数。

总运行时间在现代机器上 5-30 秒。数字不大,但注意第 4 步那个”初值取前一天”——它既是加速手段,也是下面要讲的稳定性机制的一部分。

失败模式:校准是会坏的

典型校准团队预期日常校准有 1-5% 的失败率。失败不可耻,没有失败预案才可耻。三种模式反复出现:

NaN 行使价。 某个行使价在拟合中产出 NaN 或不可信值,通常是坏报价(供应商错误)或行使价远到参数化够不着。处理:丢掉重拟,或加平滑约束。

坏初值。 参数发散到无意义的区域。从零开始的 Levenberg-Marquardt 常见,从前一天参数暖启动的少见——这就是暖启动的价值。暖启动也失败时,退回全局优化器(差分进化)。

切片间摆动。 每个切片单看都好,连起来的曲面在期限之间振荡——说明逐切片参数化没捕捉到跨期限的平滑结构。根治办法就是换 SSVI/eSSVI 这类多切片参数化。

统一的恢复策略:回退到上一次好校准,记录事件,提醒工程师。生产系统给每次校准留诊断日志;盯风险仪表板的交易员能看见校准何时退化——典型征兆是 P&L explain 跟希腊字母对不上。

校准后的诊断

两个便宜又灵的健全性检查,值得挂在流水线末尾。

蝶式诊断图。 对拟合曲面,画

Butterfly(K1,K2,K3)=V(K1)−2V(K2)+V(K3)\text{Butterfly}(K_1, K_2, K_3) = V(K_1) - 2V(K_2) + V(K_3)

跨所有 K1<K2<K3K_1 < K_2 < K_3。处处非负,曲面就没有同到期的蝶式套利;哪里为负,哪里就有拟合制造的幻影套利。

日历检查。 对每个行使价,画总方差 w(T)=σ2Tw(T) = \sigma^2 T 对 TT 的曲线,应单调不减。数值上验

min⁡i[w(Ti+1)−w(Ti)Ti+1−Ti]≥0\min_i \left[\frac{w(T_{i+1}) - w(T_i)}{T_{i+1} - T_i}\right] \geq 0

跨插值网格。违反即有幻影日历价差。

再加一个参数层面的观察:跨期限追踪拟合参数本身。偏度、曲率参数作为 TT 的函数快速变化,说明曲面不平滑;SSVI 族还要顺手验 θT\theta_T 单调不减这条切片间约束。参数时间序列本身就是诊断数据——这也是为什么后面架构一节要求把每天的参数版本化存下来。

交易行使价之外:外推

市场只交易有限范围的行使价——SPX 的流动性报价大致覆盖到百分之几十 OTM 的看跌和更窄的看涨侧,具体随行情变化——而真实头寸会走到更远的翼上。外推有三种做法。

参数形式(SVI、SABR、Heston)自带定义到所有行使价的公式,外推平滑,这是参数路线的又一红利。渐近方法靠理论兜底:Lee 的矩公式给出总方差在深翼至多线性增长,w(k)∼β∣k∣w(k) \sim \beta |k|、β≤2\beta \leq 2,即隐含波动率至多按 σ(k)≈β∣k∣/T\sigma(k) \approx \sqrt{\beta |k| / T} 的速度增长——超线性外推等于隐含出不存在的矩。最粗的办法是逐切片在对数行使价上线性外推 IV,能用,但走远了会撞 Lee 上界,只适合应急。

对深度 OTM 的奇异头寸,外推选择实质影响定价:同样贴合校准区间的两种外推,在 5-delta 翼上给出的 vol 可以差出几十个基点的量级。别把外推当细节。

曲面会动:参数化没覆盖的动态

拟合好的曲面是一张快照,而市场关心快照怎么动。三层动态,参数化大多不管:

偏度的偏度。 偏度陡峭度随 vol 水平变化——vol 高时偏度更陡,vol 低时变平。SVI 对此表达力弱,SABR 强一些。

Vol-of-vol。 微笑的陡峭度本身是随机的。高 vol-of-vol 时期与高 VIX、压力市场重合;崩盘后微笑迅速变平。大多数参数形式漏掉这层。

前向偏度动态。 前向起始的微笑形状怎么随时间滚动,只有期限结构模型(多因子 Bergomi 一类)显式处理。

对交易员,这些动态不是学术问题——它们把你暴露给一阶希腊字母之外的二阶移动。例:30 天的空 vol 头寸带着 theta(多)、vega(空)、vomma(多);vol 反弹触发 vega 损失,横盘吃 theta,长期高实现 vol 吃 vomma。P&L 分布由微笑形状和它怎么动共同决定,而后者不在你拟合的那五个参数里。

生产架构与历史教训

如果你在为生产搭曲面库,几条结构性要求:用一个校准管理器类持有当前曲面、决定何时重校准、记着前一天参数、提供查找接口;支持多参数化并存(SVI 拟合、SABR 快查、Heston 半解析定价,运行时选);每天对市场数据跑校准、存参数、跟昨天比、跟踪退化;校准失败时回退到昨天参数并打标,而不是空手而归;把每天的参数当时间序列版本化——对回测和事后分析无价;再配上简单阈值告警(比如 R2<0.95R^2 < 0.95 触发调查)。

日常自检也简单:拿昨天的校准套今天的市场数据,看价格偏离。中位数偏离 5bp、最大 30bp,校准在正常工作;中位数到了 50bp,哪里坏了——多半是数据或陈旧先验。

要理解为什么”曲面库必须优雅处理状态变化”是硬要求,看历史就够了。1987 之前,股票微笑大致对称,Black Monday 之前的偏度估计非常平;1987 和 2008 之后,陡峭的负偏度成为常态,每次危机都把基线偏度”重置”到更高水平,微笑也更动态。2020 年 3 月,SPX 深翼隐含 vol 飙到极端水平,微笑陡到把无数校准器测到极限。每次状态切换都让前一天的参数失效——处理不好,你就是在用昨天的曲面跟今天的报价打架。

收在哪里

波动率曲面是衍生品业务里最重要的数据产品。参数形式(SVI/SSVI 一族)在拟合质量、平滑度、易处理性之间给出目前最好的平衡;无套利条件是让”曲面=概率分布”字面成立的一致性约束;而数据质量和运维纪律决定这一切每天早上还能不能用。学的时候,把一个参数族吃透胜过每个都碰一下——结构性的洞见(曲面是伪装的分布)比你具体拟合哪个形式更长寿。

下一篇讲方差互换和波动率互换——把整张波动率曲面变成单一可交易产品的那类工具。


阅读清单。 Hull, Options, Futures, and Other Derivatives, 第 10 版,第 18 章(2018)。Gatheral, The Volatility Surface, 第 4-5 章(2006)。Gatheral & Jacquier, “Arbitrage-free SVI volatility surfaces”(2014)。Andreasen & Huge, “Volatility Interpolation”(2010)。Zeliade Systems 关于 SVI 无套利校准的 whitepaper。