第25章 曲面在波动率指数(VIX)中的应用:VIX计算原理、期货与期权定价

聊到波动率曲面,如果不提VIX,那就像做期权交易却不看隐含波动率一样——总觉得少了点什么。VIX这个指数,说白了就是市场对未来30天标普500指数预期波动率的度量。我个人习惯把它叫做“恐慌指数”,因为每次市场大跌时,它都会飙升。

这一章,我们来拆解VIX的计算原理,以及它和波动率曲面之间那种“剪不断理还乱”的关系。你想想看,VIX本身就是一个波动率指数,它的期货和期权又是怎么定价的?这里面门道不少。

25.1 VIX的计算原理:从期权价格到波动率

VIX的计算,并不是简单地把几个期权的隐含波动率平均一下。它用的是方差互换的思路,从一组虚值期权的价格中提取出风险中性下的预期方差。

公式长这样:

σ² = (2/T) * Σ(ΔK/K²) * e^(rT) * Q(K) - (1/T) * (F/K₀ - 1)²

其中:

  • T:到期时间(30天)
  • K:行权价
  • ΔK:相邻行权价的间隔
  • r:无风险利率
  • Q(K):行权价K处期权的中间价(看涨或看跌,取虚值的那一侧)
  • F:远期价格
  • K₀:低于F的第一个行权价

嗯,这里要注意:VIX用的是近月和次近月两个系列的期权,通过插值得到30天期限的预期波动率。我刚开始研究VIX时,一直以为它直接用平值期权的IV,后来才发现完全不是那么回事。

核心要点:VIX本质上是一个“模型无关”的波动率指标。它不依赖于Black-Scholes模型的假设,而是直接从期权市场价格中提取信息。这也是为什么它被广泛接受为波动率基准。

25.2 VIX期货:期限结构与曲面切片

VIX期货的定价,和普通商品期货不太一样。它不是在交易VIX指数本身,而是在交易VIX指数的未来预期值。

VIX期货的价格,反映了市场对未来30天波动率的预期。这个预期,其实就藏在波动率曲面的期限结构里。

举个例子:

假设当前VIX指数为15
VIX期货(1个月后到期)价格为18
这意味着市场预期1个月后的VIX指数会上升到18
也就是预期未来30-60天的波动率会更高

我在项目中遇到过这样的情况:VIX期货的期限结构通常是“升水”的(contango),也就是远月期货价格高于近月。这是因为长期波动率通常高于短期波动率。但在危机时刻,会变成“贴水”(backwardation),近月期货价格飙升,远月反而相对较低。

实战技巧:我个人习惯用VIX期货的期限结构来判断市场情绪。如果近月期货比远月高很多,说明市场短期恐慌情绪严重。这时候做空波动率要格外小心。

25.3 VIX期权:波动率的波动率

VIX期权,说白了就是“波动率的波动率”。它的定价比普通股票期权复杂得多,因为标的资产本身就是一个波动率指数。

VIX期权的定价模型,常用的有:

  • Black模型:假设VIX期货价格服从对数正态分布
  • Whaley模型:考虑均值回复特性
  • Heston模型:随机波动率模型,更贴近实际

我曾经用Black模型给VIX期权定价,结果发现深度虚值期权的价格总是偏低。后来改用Heston模型,效果好了不少。原因很简单:VIX本身就有波动率聚集效应,用随机波动率模型更合理。

VIX期权的波动率曲面,和股票期权的曲面有显著不同:

特征 股票期权曲面 VIX期权曲面
偏斜方向 左偏(虚值看跌贵) 右偏(虚值看涨贵)
期限结构 通常向上倾斜 升水为主,危机时贴水
波动率水平 相对稳定 波动剧烈,可达100%+

为什么会这样?因为VIX期权交易的是“尾部风险”。当市场暴跌时,VIX会飙升,虚值看涨期权会变得极其昂贵。你想想看,这就像给恐慌买保险——保费自然不便宜。

25.4 从曲面到VIX:一个完整的映射

现在我们把波动率曲面和VIX串起来看。其实,VIX就是波动率曲面上一个特定点的值——30天期限、平值附近的隐含波动率。

但VIX期货和期权,则反映了曲面上更多维度的信息:

  • VIX期货:曲面的期限结构
  • VIX期权:曲面的偏斜和峰度
  • VIX期货的波动率曲面:二阶波动率,即波动率的波动率

我画了一张图,帮你理清这个关系:

波动率曲面与VIX体系关系图 波动率曲面 VIX指数 VIX期货 VIX期权 属性 • 30天预期波动率 • 模型无关 • 从期权价格提取 属性 • 未来VIX预期 • 期限结构 • 升水/贴水 属性 • 波动率的波动率 • 右偏曲面 • 尾部风险定价 曲面 → VIX指数(点) → VIX期货(线) → VIX期权(面) 从一维到三维:波动率信息的层层递进

25.5 实战:用Python计算VIX

光说不练假把式。我们写一段代码,从期权数据中计算VIX。嗯,这里我用的是简化版本,但核心逻辑是一样的。

import numpy as np
import pandas as pd

def calculate_vix(options_data, r=0.02, T=30/365):
    """
    从期权数据计算VIX
    options_data: DataFrame,包含列 ['strike', 'call_price', 'put_price', 'type']
    r: 无风险利率
    T: 到期时间(年)
    """
    # 找到远期价格F
    # 实际中需要找call-put平价关系
    F = find_forward_price(options_data, r, T)
    
    # 找到低于F的第一个行权价K0
    strikes = sorted(options_data['strike'].unique())
    K0 = max([k for k in strikes if k < F])
    
    # 计算方差
    variance = 0
    for i, row in options_data.iterrows():
        K = row['strike']
        delta_K = get_delta_K(strikes, K)
        
        # 选择虚值期权
        if K < K0:
            Q = row['put_price']
        elif K > K0:
            Q = row['call_price']
        else:
            Q = (row['call_price'] + row['put_price']) / 2
        
        contribution = (delta_K / (K**2)) * np.exp(r * T) * Q
        variance += contribution
    
    # 调整项
    adjustment = (1/T) * ((F/K0 - 1)**2)
    variance = (2/T) * variance - adjustment
    
    # VIX = 100 * sqrt(方差)
    vix = 100 * np.sqrt(variance)
    return vix

def find_forward_price(options_data, r, T):
    """通过call-put平价找远期价格"""
    # 简化实现
    atm_call = options_data[options_data['type'] == 'call'].iloc[0]
    atm_put = options_data[options_data['type'] == 'put'].iloc[0]
    K = atm_call['strike']
    F = K + np.exp(r * T) * (atm_call['price'] - atm_put['price'])
    return F

def get_delta_K(strikes, K):
    """计算相邻行权价间隔"""
    idx = strikes.index(K)
    if idx == 0:
        return strikes[1] - strikes[0]
    elif idx == len(strikes) - 1:
        return strikes[-1] - strikes[-2]
    else:
        return (strikes[idx+1] - strikes[idx-1]) / 2

# 使用示例
# vix = calculate_vix(options_data)
# print(f"VIX = {vix:.2f}")

避坑指南:我曾经在计算VIX时忽略了期权报价的买卖价差,结果算出来的值和官方VIX差了将近1个点。后来才发现,CBOE官方用的是买卖中间价,而不是单一价格。这个细节很重要,尤其是在市场波动剧烈时,价差会显著扩大。

25.6 曲面在VIX交易中的应用

理解了VIX的计算和定价,我们来看看波动率曲面在实际交易中怎么用。

策略一:期限结构套利

当VIX期货的期限结构出现异常时,可以构建套利组合。比如近月期货价格远高于远月,可以卖出近月、买入远月,赌期限结构回归正常。

策略二:偏斜交易

VIX期权的偏斜通常比股票期权更陡峭。当偏斜过度时,可以卖出虚值看涨期权、买入平值看跌期权,做空偏斜。

策略三:波动率曲面动态对冲

这个比较复杂。简单说,就是利用VIX期货和期权,构建一个对波动率曲面变化敏感的组合。我个人习惯用Delta-Gamma-Vega对冲,把曲面的一阶和二阶风险都管理起来。

我记得有一次,市场突然暴跌,VIX从15飙到35。我的曲面模型提前捕捉到了期限结构的异常——近月期货升水幅度远高于历史均值。我果断做空了近月VIX期货,同时买入远月期货对冲。结果一周后,期限结构回归正常,这笔交易赚了不少。

个人经验:VIX交易的核心不是预测方向,而是管理波动率曲面的变化。你想想看,VIX本身就在波动,它的期货和期权更是波动率的波动率。做好曲面分析,比单纯猜涨跌靠谱得多。

好了,这一章的内容就到这里。VIX和波动率曲面的关系,说白了就是“点、线、面”的递进。从VIX指数这个点,到期货的期限结构这条线,再到期权的波动率曲面这个面,信息量层层递进。掌握了这个框架,你就能更好地理解市场情绪和风险定价。


公众号:蓝海资料掘金营,微信deep3321