第三节:隐含波动率曲面
好,咱们今天来聊聊隐含波动率曲面。说实话,这玩意儿是期权交易里最迷人的东西之一。我刚开始做期权的时候,总觉得波动率就是个数字,后来踩了不少坑才明白——它背后藏着整个市场的情绪和博弈。
3.1 隐含波动率的定义
先说说什么是隐含波动率。说白了,就是把市场上的期权价格代入Black-Scholes模型,反推出来的那个波动率数值。你想想看,BS模型里有五个参数:标的价格、行权价、到期时间、无风险利率,还有一个就是波动率。其他四个都能直接看到,唯独波动率是未知的。那好,我们把期权市价代入,解方程求出来的σ,就是隐含波动率。
公式长这样:
C_market = BS(S, K, T, r, σ_implied)
这里C_market是期权市价,BS是Black-Scholes定价公式。我们解这个方程,找到让两边相等的σ。
关键点:隐含波动率不是历史波动率。历史波动率看的是过去,隐含波动率看的是未来。市场参与者对未来的恐慌、贪婪、预期,全都浓缩在这个数字里。
我在项目中遇到过一件事:有一次某只股票出财报前,隐含波动率飙到了80%,但历史波动率才25%。很多新手觉得这太离谱了,但实际上,市场就是在为不确定性定价。你想想看,如果所有人都觉得未来会风平浪静,谁会花高价买期权?
3.2 波动率微笑与偏斜
好,现在问题来了。如果BS模型是完美的,那么不同行权价的期权算出来的隐含波动率应该是一样的,对吧?但现实不是这样的。
你会发现,对于同一到期日,不同行权价的期权,隐含波动率并不相等。画成图,就是一条曲线。这条曲线的形状,就是我们常说的波动率微笑或波动率偏斜。
3.2.1 波动率微笑
波动率微笑,指的是隐含波动率在平值附近最低,往两边(深度实值和深度虚值)逐渐升高的现象。形状像一张笑脸,所以叫微笑。
为什么会这样?
嗯,这里要注意。BS模型假设标的价格服从对数正态分布,但现实中的收益率分布有肥尾特征。说白了,就是极端行情发生的概率,比模型预测的要大得多。所以深度虚值期权的价格会更高,隐含波动率自然就上去了。
| 行权价相对平值 | 隐含波动率特征 | 市场含义 |
|---|---|---|
| 深度虚值看跌 | 偏高 | 市场对暴跌有恐惧 |
| 平值 | 最低 | 最接近BS模型假设 |
| 深度虚值看涨 | 偏高 | 市场对暴涨有期待 |
3.2.2 波动率偏斜
波动率偏斜,是微笑的一种不对称形态。在股票市场,尤其是美股,你会发现虚值看跌期权的隐含波动率,通常比虚值看涨期权要高得多。这就是偏斜。
我曾经在2018年2月经历过一次波动率骤升。那天标普500跌了4%,VIX指数从15飙到37。虚值看跌期权的隐含波动率直接翻倍,但虚值看涨期权变化不大。这就是典型的偏斜——市场对下跌的恐惧远大于对上涨的期待。
我的经验:偏斜的陡峭程度,可以用来判断市场情绪。偏斜越陡,说明市场越恐慌。我一般会监控偏斜的变化率,如果短时间内偏斜急剧变陡,那就要小心了——可能有大行情要来。
3.3 曲面构建方法
好,现在我们知道,不同行权价、不同到期日的期权,隐含波动率都不一样。把这些数据放在一起,就构成了一个三维曲面:X轴是行权价,Y轴是到期时间,Z轴是隐含波动率。
但问题是,市场上交易的期权合约是有限的。比如某只股票可能只有10个行权价、5个到期日,总共50个数据点。但我们做策略的时候,需要任意行权价、任意到期日的波动率数据。怎么办?插值和拟合。
3.3.1 插值方法
插值,说白了就是在已知数据点之间,估算出未知点的值。常用的方法有:
- 线性插值:最简单,但不够平滑。我早期用过,后来发现做回测时曲面太粗糙,放弃了。
- 三次样条插值:平滑性好,是业界主流。我个人习惯用这个。
- 多项式插值:容易过拟合,不建议用。
代码实现其实不复杂:
import numpy as np
from scipy.interpolate import griddata
# 假设我们有已知的波动率数据点
points = np.array([
[100, 30, 0.25], # [行权价, 到期天数, 隐含波动率]
[105, 30, 0.22],
[110, 30, 0.20],
[100, 60, 0.28],
[105, 60, 0.24],
[110, 60, 0.22]
])
# 我们要插值的目标点
target = np.array([[102, 45]])
# 使用三次样条插值
vol = griddata(points[:, :2], points[:, 2], target, method='cubic')
print(f"行权价102、到期45天的隐含波动率为: {vol[0]:.4f}")
避坑指南:我曾经在插值时忽略了边界处理,结果在深度虚值区域出现了负的波动率。嗯,这显然不合理。所以一定要加边界约束,比如波动率不能低于0,不能高于某个上限。
3.3.2 拟合方法
拟合和插值不同。拟合是用一个参数化模型,去逼近整个曲面。常用的模型有:
- SVI模型:Stochastic Volatility Inspired,由Gatheral提出。参数少,拟合效果好。
- SSVI模型:SVI的改进版,加入了期限结构。
- 多项式拟合:简单粗暴,但容易过拟合。
SVI模型的公式长这样:
σ_IV(k) = a + b * (ρ * (k - m) + sqrt((k - m)^2 + σ^2))
其中k是log-moneyness,a、b、ρ、m、σ是待拟合的参数。我个人比较喜欢SVI,因为它参数少,而且每个参数都有明确的金融含义。比如ρ代表偏斜程度,σ代表微笑的曲率。
3.3.3 曲面构建的完整流程
在实际项目中,我一般按以下步骤来:
- 数据清洗:剔除流动性差的合约,剔除明显异常的报价。
- 期限结构处理:先对每个到期日,用SVI拟合波动率微笑。
- 期限间插值:对不同到期日的SVI参数,进行插值。
- 曲面生成:得到任意行权价、任意到期日的波动率。
下面是我画的一张流程图,帮你理清思路:
嗯,到这里你应该对隐含波动率曲面有了一个整体的认识。从定义到微笑偏斜,再到构建方法,每一步都有坑,但也都有乐趣。我个人觉得,波动率曲面是期权交易里最值得花时间研究的东西之一——它不仅是定价工具,更是市场情绪的晴雨表。
核心要点回顾:
- 隐含波动率是市场对未来波动的一致预期
- 波动率微笑和偏斜反映了市场的肥尾特征和情绪偏向
- 曲面构建需要结合插值和拟合,SVI模型是业界常用工具
- 数据清洗和边界处理是曲面构建中最容易出错的环节
公众号:蓝海资料掘金营,微信deep3321