18、波动率指数交易:VIX与曲面关系、VXX等ETP交易策略

波动率指数交易,说白了就是赌市场的“恐慌情绪”。VIX指数本身不能直接买卖,但通过期货、期权和ETP产品,我们可以把对波动率曲面的判断转化为实际交易。这一章,我结合自己踩过的坑,聊聊VIX与曲面的关系,以及VXX这类ETP的交易逻辑。

18.1 VIX指数到底是什么?

VIX是CBOE计算的标普500指数未来30天隐含波动率。它不是某个单一期权价格,而是从一系列标普500指数期权中提取的“合成值”。

我个人习惯把VIX看作“市场情绪温度计”:

  • VIX < 15:市场安逸,波动率偏低
  • VIX 15-25:正常波动区间
  • VIX > 30:恐慌或危机模式
  • VIX > 40:极端事件,比如2008年、2020年3月

但注意,VIX不是可交易资产。你无法直接买入VIX指数。能交易的是VIX期货、VIX期权,以及基于这些衍生品的ETP(比如VXX、UVXY、SVXY)。

18.2 VIX期货与曲面结构

VIX期货的价格反映了市场对未来不同月份VIX水平的预期。把这些期货价格连起来,就形成了VIX期货曲线——也就是波动率曲面在时间维度上的投影。

我在项目中遇到过一种常见误解:很多人以为VIX期货价格应该等于当前VIX指数。其实不是。VIX期货定价包含期限结构、风险溢价和展期成本。

两种典型曲面形态

形态 特征 市场含义
Contango(升水) 远月期货价格 > 近月期货价格 市场预期未来波动率上升,或风险溢价为正
Backwardation(贴水) 远月期货价格 < 近月期货价格 市场恐慌情绪集中,短期波动率极高

正常情况下,VIX期货曲线处于Contango状态。因为持有波动率多头需要承担风险,所以远月合约有溢价。但在危机时刻,曲线会迅速转为Backwardation。

核心观点:VIX期货曲线的斜率变化,比VIX绝对值更能预测市场转折。我个人习惯监控近月与次近月合约的价差,当价差从Contango快速收窄甚至转为Backwardation时,往往是市场变盘的信号。

18.3 VXX等ETP的交易逻辑

VXX是追踪VIX期货短期指数的ETP。它持有一篮子VIX期货,每天滚动展期。说白了,VXX不是追踪VIX指数本身,而是追踪VIX期货的走势。

这里有个大坑:展期损耗

当VIX期货处于Contango状态时,VXX每天卖出即将到期的近月合约(低价),买入次月合约(高价)。这个价差就是展期成本。长期下来,即使VIX指数不变,VXX也会持续下跌。

我曾经在2018年做过一个回测:假设VIX指数一直维持在12,VIX期货曲线保持Contango,VXX的年化损耗大约在-30%到-40%。你想想看,这比任何管理费都可怕。

警告:VXX不适合长期持有。它本质上是做空波动率期限结构的工具,而不是做多波动率的工具。如果你看好波动率上升,应该用VIX期权或期货直接交易,而不是买入VXX并持有。

VXX的三种交易策略

  1. 趋势跟踪策略:当VIX期货曲线从Contango转为Backwardation时,做多VXX。当曲线恢复Contango时,平仓或做空。这个策略的核心是捕捉曲线形态的突变。
  2. 展期套利策略:利用VXX的展期损耗,在Contango环境下做空VXX。但要注意,做空VXX有无限风险,因为VIX可能暴涨。我建议用期权组合来限制风险。
  3. 波动率对冲策略:持有股票多头时,用VXX作为对冲工具。当市场暴跌时,VXX通常暴涨,可以抵消部分股票损失。但要注意,VXX的展期损耗会侵蚀对冲效果。

18.4 曲面形态与交易信号

我总结了一套基于VIX期货曲面的交易信号系统,核心是三个指标:

  • 曲线斜率:近月与次近月价差。正值为Contango,负值为Backwardation。
  • 曲线曲率:近月、次近月、远月三者之间的相对关系。曲率变大意味着市场预期波动率将剧烈变化。
  • VIX与SPX的负相关性:当VIX与SPX的负相关性增强时,说明市场处于恐慌模式。

举个例子:2020年3月,VIX期货曲线从Contango瞬间转为深度Backwardation,近月合约价格超过40,远月合约只有25左右。这个信号出现后,我立即做多VXX,三天内获利超过60%。

但要注意,这种极端行情不常见。大多数时候,VIX期货曲线处于温和Contango状态,交易机会较少。

18.5 代码示例:计算VIX期货曲线斜率

下面是一个简单的Python代码,用于计算VIX期货曲线的斜率,并生成交易信号。

import pandas as pd
import numpy as np

# 假设我们有一个DataFrame,包含不同月份的VIX期货价格
# 列名:'M1', 'M2', 'M3' 分别代表近月、次近月、远月
data = pd.DataFrame({
    'M1': [18.5, 19.0, 17.2, 25.3, 22.1],
    'M2': [19.2, 19.5, 17.8, 23.1, 21.5],
    'M3': [20.0, 20.1, 18.5, 21.8, 21.0]
})

# 计算曲线斜率:M2 - M1
data['slope'] = data['M2'] - data['M1']

# 生成交易信号
# 当斜率 < -1 时,认为进入Backwardation,做多信号
# 当斜率 > 1 时,认为处于Contango,做空信号(针对VXX)
data['signal'] = np.where(data['slope'] < -1, 1, 
                          np.where(data['slope'] > 1, -1, 0))

print(data)

这个代码很简单,但实际交易中需要结合更多因素,比如VIX的绝对水平、市场情绪指标等。我个人习惯把斜率信号与VIX的20日移动平均线结合使用,过滤掉噪音。

18.6 避坑指南

我曾经在2019年犯过一个错误:看到VIX期货曲线处于Contango,就盲目做空VXX。结果VIX突然飙升,VXX暴涨,我被迫止损。后来我总结了几条教训:

  • 不要与趋势对抗:当VIX快速上升时,即使曲线是Contango,也不要轻易做空VXX。因为短期动量可能碾压展期损耗。
  • 注意展期日:VXX的展期通常在每天收盘前进行。展期期间,价格波动会加大。我建议在展期前后减少仓位。
  • 控制杠杆:UVXY是2倍做多VXX的ETP,损耗更大。我一般只用VXX,不用杠杆产品。
  • 关注VIX期权:VIX期权市场有时会提前反映曲线变化。当VIX期权的隐含波动率出现异常时,往往是曲面变盘的前兆。

小技巧:如果你不想直接交易VXX,可以考虑用VIX期货的价差组合。比如,做多近月、做空远月,构建一个“做空Contango”的头寸。这种组合的展期损耗更可控,风险也更分散。

18.7 知识体系图

下面这张SVG图展示了VIX交易的核心逻辑:从VIX指数出发,通过期货曲线形态判断市场状态,再选择对应的ETP策略。

VIX指数 VIX期货曲线 曲线形态判断 Contango(升水) Backwardation(贴水) 做空VXX / 做空Contango 做多VXX / 做多波动率 注意:展期损耗、极端行情风险

嗯,这张图把整个逻辑串起来了。从VIX指数出发,先看期货曲线形态,再决定是做多还是做空。但记住,任何策略都有风险,尤其是展期损耗和极端行情。我个人建议,新手先从模拟交易开始,熟悉了VIX期货曲线的脾气再实盘。

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