这篇文章是对 CBOE 官网的 VIX 白皮书,做出翻译和中文版的解读。帮助读者更好地理解 VIX (波动率指数)的由来。

VIX 历史简介

1993年,CBOE Global Markets,InCorporation®(CBOE®) 推出了 CBOE 波动率指数®(VIX®Index),该指数最初旨在衡量市场对现货标准普尔100®指数(OEX®Index)期权价格所隐含的 30 天波动率的预期。波动率指数很快成为美国股市波动的首要基准。它经常出现在华尔街日报、Barron‘s 和其他领先的金融出版物上,以及 CNBC、彭博电视 (Bloomberg TV) 和 CNN/Money 的商业新闻节目中,在这些节目中,VIX 指数通常被称为“恐慌指数”。

10 年后的 2003 年,芝加哥期权交易所(CBOE)与高盛(Goldman Sachs)一起更新了波动率指数(VIX Index),以反映一种衡量预期波动率的新方法,这种方法继续被金融理论家、风险经理和波动率交易员广泛使用。
新的VIX指数以美国股票的核心指数标准普尔 500®指数(SPXSM)为基础,通过聚合 SPX 看跌期权和看涨期权的加权价格来估计广泛的执行价格的预期波动性。

2014 年,CBOE 增强了 VIX 指数,将 SPX WeeklysSM 系列纳入其中。CBOE 于 2005 年首次推出周度期权,目前可在数百种指数、股票、ETF和ETN上使用周度期权,并已成为一种非常受欢迎和交易活跃的风险管理工具。今天,SPX 周度期权占所有 SPX 期权交易的三分之一,平均每天交易近 350000 份合约。
纳入 SPX Weeklys 允许使用标准普尔500指数期权系列计算 VIX 指数,该系列最精确地匹配 VIX 指数旨在代表的预期波动率的 30 天目标时间框架。使用离到期时间超过 23 天而不到 37天的 SPX 期权,可以确保 VIX 指数始终反映沿着标准普尔 500 波动率期限结构的两个时间点的加权平均值。

CBOE 于 2016 年 4 月开始在美国交易时间以外发布 VIX 指数。波动率指数现在可以在凌晨 3 点之间的 “extended trading hours”(美东时间 3:00 a.m. 到 9:15 a.m.)内交易,也可以在正常交易时段(美东时间 9:30 a.m. 到 4:15 p.m.)交易。作为波动率指数扩展的一部分,CBOE 对“extended trading hours”和正常交易时段内的波动率指数值实施了平滑算法。

2004 年 3 月 24 日,CBOE 在其全新的全电子 CBOE Futures ExchangeSM(CFE®)上推出了首个交易所交易的波动率指数期货合约。两年后的 2006年2月,CBOE 推出了波动率指数期权,这是 CBOE 历史上最成功的新产品。2015 年,波动率指数期权和期货的总交易活动增长到每天近 80 万份合约。
波动率与股市回报的负相关是有据可查的,这表明将波动率纳入投资组合有利于分散投资。波动率指数期货和期权旨在以单一、高效的一揽子方案提供纯粹的波动率敞口。CBOE/CFE 为波动率指数产品提供了一个持续、流动和透明的市场,从最小的散户交易商到最大的机构资金经理和对冲基金,所有投资者都可以获得这些产品。

VIX & VXO 波动率指数的历史价格

也许 VIX 指数最有价值的特征之一是存在超过 25 年的历史价格。这一广泛的数据集为投资者提供了一个有用的视角,了解期权价格在应对各种市场状况时的表现。最初的基于 OEX 期权的芝加哥期权交易所波动率指数(VXO)的价格历史可以从1986 年到现在。CBOE 已经为新的 VIX 指数创造了类似的历史记录,这可以追溯到 1990 年,这样投资者就可以将新的 VIX 指数与 VXO 进行比较,VXO 反映了有关“波动率倾斜”或“波动率微笑”的信息。

tips:VXO 是 CBOE 编制的另一个波动率指数,选择 S&P100 指数期权的隐含波动率为编制基础。

VIX 的计算

股指,如标普 500 指数,是使用其成分股的价格计算的。每个指数都采用管理成分证券选择的规则和计算指标值的公式。
波动率指数是由期权而非股票组成的,每个期权的价格都反映了市场对未来波动率的预期。与传统指数一样,VIX 指数计算使用选择组件选项的规则和计算指标值的公式。在计算用于波动率指数期货和期权最终结算值的波动率指数值时,适用一些不同的规则和程序。

VIX 的计算公式是:

$$\sigma^{2} = \frac{2}{T} \sum_{i} \frac{\Delta K_{i}}{K_{i}^{2}}\times e^{RT}\times Q(K_{i}) – \frac{1}{T} \times (\frac{F}{K_{0}} – 1)^{2}$$

$$VIX = \sigma \times 100$$

其中,

  • T: 距离到期日剩余时间
  • F:由指数期权价格确定的 SPX 远期价格水平
  • \(K_{0}\):F 这个数下面最近的一档行权价
  • Ki:第 i 个虚值期权的价格(如果 \(K_{i} > K_{0}\),就看 call;如果 \(K_{i} < K_{0}\),就看 put;如果 \(K_{i} = K_{0}\),call 和 put 都要看)
  • \(\Delta K_{i}\) :行权价间距(两侧行权价之差的一半)
    • \(\Delta K_{i} = \frac{K_{i+1} – K_{i-1}}{2} \)
  • R :距离到期日的无风险利率
  • \(Q(K_{i})\):\(K_{i}\) 为行权价的期权的 bid 和 ask 价格的中点价

VIX 指数衡量的是标普 500 指数未来 30 天的预期波动率。VIX 指数的成分股是NEAR 和 NEXT 两个期限的期权链,NEAR 和 NEXT 期权的距离到期日剩余天数都在 23 天到 37 天之间

标普 500 指数的期权,包括月度期权(标准的每月第三个周五到期),和周度期权(每周五到期)。而NEAR和NEXT两个期权每周都会向后滚动一次(为了保证剩余时间始终在 23 天到 37 天之间)。例如,在 10 月的第二个星期二,波动率指数将使用 24 天后(即 NEAR)和 31 天后(即 NEXT)到期的 SPX 期权计算。第二天,30 天内到期的 SPX 期权将成为 NEAR 期权,37 天内到期的SPX期权将成为 NEXT 期权。

在这个假设的例子中,NEAR 期权是还有 25 天到期的“标准”SPX月度期权,NEXT期权是还有 32 天到期的 SPX 周度期权。

距离到期日剩余时间 T

在计算距离到期日剩余时间 T 时,“标准”的月度期权被视为到期日(即本月第三个星期五)当天开盘时到期,而周度期权被视为在到期日收盘时(即美东时间 4:00 p.m.)到期。

波动率指数计算距离到期日剩余时间是以分钟计的,以便满足专业期权和波动率交易员需要的的精确度。距离到期日剩余时间 T 的计算公式:

\(T = (M_{CurrentDay} + M_{SettlementDay} + M_{OtherDays})\) /Minutes in a year

其中,

  • \(M_{CurrentDay}\) :当天距离 24:00 剩余的分钟数
  • \(M_{SettlementDay}\) :
    • 如果是月度期权,就是美东时间 0:00 a.m. 到 9:30 a.m. 的分钟数
    • 如果是周度期权,就是美东时间 0:00 a.m. 到 4:30 p.m. 的分钟数
  • \(M_{OtherDays}\):当天到到期日中间的分钟数(不含当天的半天和到期日的半天)

假设当前时间是美东时间 9:46 a.m.,那么 NEAR 和 NEXT 两个到期日的期权的剩余天数 \(T_{1}\) 和 \(T_{2}\) 分别是:

  • \(T_{1} = (854 + 510 + 34560)/ 525600\)
  • \(T_{2} = (854 + 900 + 44640)/ 525600\)

其中,525600 是 365 天的分钟数。

无风险利率 R

无风险利率 \(R_{1}\) 和 \(R_{2}\) 是基于美国公债收益率曲线(通常称为“恒定到期日国库券”利率或 CMTs)上的收益率,对其应用三次样条来导出相关 SPX 期权到期日的收益率.。因此,波动率指数的计算可能会对 NEAR 和 NEXT 期权使用不同的无风险利率。

在本例中,假设 NEAR 期权的 \(R_{1} = 0.0305% \),NEXT 期权的 \(R_{2} = 0.0 286 % \)。

筛选用于 VIX 计算的期权

所选的期权是 SPX 期权中,执行价以 \(K_{0}\) 为中心的虚值看涨期权和虚值看跌期权。波动率指数计算中只使用 Bid 报价不是零的期权。


注意:随着波动率的起伏,具有非零 Bid 的期权的执行价区间往往会扩大和收缩。因此,VIX 指数计算中使用的期权数量可能因月而异,因日而异,甚至可能因分钟而异。

通过确定看涨期权和看跌期权价格之间的绝对差异最小的执行价格,来确定远期SPX 水平 F。下表中的看涨和卖出价格反映了每个期权的买入/卖出报价的中点。如下所示,看涨期权和卖权价格之间的差异, NEAR 是在行权价 1965 达到最小,NEXT 是在 1960 达到最小。

计算 SPX 远期价格水平 F

把 NEAR 期权的行权价 1965 和 NEXT 期权的行权价 1960 带入到 F 的计算公式中。

F = Strike Price + \(e^{RT} \times \) (Call Price – Put Price)

$$F_{1} = 1965 + e^{0.000305\times 0.0683486}\times (21.05-23.15) = 1962.89996$$

$$F_{2} = 1960 + e^{0.000286\times 0.0882686}\times (27.30-24.90) = 1962.40006$$

计算 F 这个数下面最近的一档行权价\(K_{0}\)

确定 \(K_{0}\) 的方法就是找到 F 下面最近一档的行权价(如果有行权价等于 F,则 \(K_{0}\) 就取 F)。 这里 NEAR 的 \(K_{0}\) 就是1960,NEXT 的 \(K_{0}\) 也是 1960。

以 \(K_{0}\) 为中心向两侧依次找虚值期权(价格大于 \(K_{0}\) 的call 和价格小于 \(K_{0}\) 的put),如果看到的虚值期权的 Bid 价格是零则舍弃这只期权,如果连续两只虚值期权的 Bid 价格都是零则后面的全部舍弃。

筛选 OTM put
筛选 OTM call

最后, \(K_{0}\) 处的期权选择 call put 两个。请注意,在 \(K_{0}\) 处选择了两个期权,而其他执行价都只使用一个期权。

下表包含本例中用于计算VIX指数的期权。波动率指数使用所选每个期权的 bid 和 ask 的中点。 \(K_{0}\) 看跌期权和看涨期权的价格取平均值。因此,行权价为 1960 的NEAR期权的价格为 (24.25+21.30)/2=22.775;行权价为 1960 的 NEXT 期权的价格为(27.30+24.90)/2=26.10。

计算行权价间距 \(\Delta K_{i}\)

\(\Delta K_{i}\)就是两侧行权价之差的一半。

\(\Delta K_{i} = \frac{K_{i+1} – K_{i-1}}{2} \)

在表格两端的两个期权,\(\Delta K_{i}\) 就是\(\Delta K_{i}\) 和相邻执行价格之间的差额。在本例中,1370的 put 是表格中所有 put 中行权价最低的,1375是相邻的期权的行权价。因此, \(\Delta K\) 1370 PUT = 1375 – 1370 = 5。

代入计算波动率

$$\sigma_{1}^{2}=\frac{2}{T_{1}} \sum_{i} \frac{\Delta K_{i}}{K_{i}^{2}}\times e^{R_{1}T_{1}}\times Q(K_{i})-\frac{1}{T_{1}} \times (\frac{F_{1}}{K_{0}} – 1)^{2}=0.018495–0.00003203=0.01846292$$

$$\sigma_{2}^{2} = \frac{2}{T_{1}} \sum_{i} \frac{\Delta K_{i}}{K_{i}^{2}}\times e^{R_{2}T_{2}}\times Q(K_{i}) – \frac{1}{T_{2}} \times (\frac{F_{2}}{K_{0}} – 1)^{2} = 0. 018838 – 0. 00001699 = 0.01882101 $$

波动率指数是反映在所有选定期权价格中的信息的混合体。单个期权对波动率指数价值的贡献与ΔK和该期权的价格成正比,与期权执行价的平方成反比。

计算 VIX

计算\(\sigma_{1}^{2}\)和 \(\sigma_{2}^{2}\) 的 30 日加权平均值。然后取该值的平方根并乘以100,得到 VIX。

$$VIX = 100\times \sqrt{(T_{1}\sigma_{1}^{2}\times \frac{N_{T_{2}}-N_{30}}{N_{T_{2}}-N_{T_{1}}} – T_{2}\sigma_{2}^{2}\times \frac{N_{30}-N_{T_{1}}}{N_{T_{2}}-N_{T_{1}}} )\times \frac{N_{365}}{N_{30}}}$$

其中,

  • \(N_{T_{1}}\) :NEAR 期权距离到期日剩余分钟数 (35924)
  • \(N_{T_{2}}\) :NEXT 期权距离到期日剩余分钟数 (46394)
  • \(N_{30}\):30 天的总分钟数 (30 x 1440 = 43200)
  • \(N_{365}\):365 天的总分钟数 (365 x 1440 = 525600)

将 SPX 周度期权引入波动率指数计算意味着 NEAR 期权始终大于 23 天,而 NEXT 期权一定小于 37 天。因此最终的 VIX 数值将始终反映 \(\sigma_{1}^{2}\)和 \(\sigma_{2}^{2}\) 的加权平均值。每个单独的权重小于等于 1,总的权重等于 1。

在这个例子中,VIX 最终的结果是:

VIX = 100 × 0.13685821 = 13.69

写在最后

有了这样的计算方法,其实可以照猫画虎,将标的证券换一下,就可以计算 腾讯,苹果,谷歌 等公司未来一个月的预期波动率。

虽然关于 VIX,我们成功地扒了一遍白皮书,了解了它是怎么算的,但其实真正的设计原理还并不完全清晰。只能说知其然,不知其所以然。

如果真正抠细节还是有很多疑问在的,比如说:VIX 计算选用的期权要求 Bid 价格不为零,但是并没有对 Ask 做限制。但是代入计算的数值却是用 Bid 和 Ask 的平均价。如果 Ask 等于零,这一平均值会被拉低,进而导致算出的波动率和 VIX 都偏低。这看起来似乎并不合理。也许编制这一指数的人有其他考量,有待读者去挖掘吧。

tips:博主已经把相关的代码写好,只要换一下标的证券,就可以轻松生成其他证券的波动率指数。如果你有兴趣,欢迎加博主 QQ 哦。

分享到