曲面套利策略七:曲面水平值均值回归策略
聊到波动率曲面套利,前面我们讲了不少局部性的机会。比如某个期限的 skew 偏了,或者某个执行价的隐含波动率跟邻居比不对劲。但今天这个策略,视角完全不同——我们不看局部,看整体。
说白了,就是盯着整个波动率曲面的「水平值」来做文章。这个水平值,你可以理解成整个市场的波动率温度。我习惯用 VIX 类似物来刻画它,比如把近月平值期权的隐含波动率加权平均一下,或者干脆用 VIX 期货的连续合约。
策略核心逻辑
这个策略的假设很简单:整体波动率水平会均值回归。
你想想看,市场恐慌的时候 VIX 飙到 40、50,但能一直待在那儿吗?不能。恐慌总会消退,波动率总会回落。反过来,市场极度平静的时候 VIX 跌到 10 以下,也不可能永远这么低——总会有个突发事件把它拉起来。
我在项目中遇到过好几次这样的情况:2020 年 3 月疫情爆发,VIX 冲到 80 以上。当时很多交易员慌了,觉得波动率会永远高企。但我记得我当时的判断是——这不可持续。果然,几个月后 VIX 就回到了 20 多。这就是均值回归的力量。
核心假设:波动率曲面整体水平(VIX类似物)围绕长期均值波动,偏离越大,回归概率越高。
策略构建步骤
具体怎么做?我一般分四步走:
- 计算曲面水平值——构建一个 VIX 类似物指标
- 判断当前水平——跟历史均值比较,看是偏高还是偏低
- 选择交易方向——偏高就做空波动率,偏低就做多波动率
- 执行与风控——用期权组合来暴露 Vega 方向
嗯,这里要注意:我们不是直接交易 VIX 期货,而是用期权组合来模拟 Vega 暴露。这样更灵活,也能控制其他 Greeks 的风险。
VIX 类似物的构建
我常用的方法有两种:
| 方法 | 说明 | 优缺点 |
|---|---|---|
| 平值加权法 | 取近月平值期权的隐含波动率,按持仓量加权 | 简单直观,但受单一期限影响大 |
| 曲面平均法 | 对整个曲面所有期限、所有执行价的 IV 做加权平均 | 更全面,但计算量大 |
我个人习惯用曲面平均法。虽然计算麻烦点,但能更真实反映市场整体情绪。你想想看,如果只是近月平值 IV 偏高,但远月和深度虚值都很正常,那可能只是短期流动性问题,不是真正的恐慌。
均值回归的判定标准
怎么判断当前水平是偏高还是偏低?我一般用 Z-score:
# 计算曲面水平值的 Z-score
import numpy as np
def calculate_zscore(current_level, historical_levels):
mean = np.mean(historical_levels)
std = np.std(historical_levels)
z = (current_level - mean) / std
return z
# 示例:当前 VIX 类似物 = 25,历史均值 = 18,标准差 = 4
z = calculate_zscore(25, [18, 4])
print(f"Z-score: {z:.2f}") # 输出 1.75
Z-score 大于 2 或者小于 -2,我就认为进入了极端区域。这时候均值回归的概率很高。
我的经验:Z-score 在 ±1.5 到 ±2 之间就可以开始建仓了,不用等到 ±3。因为等到 ±3 的时候,虽然回归概率更高,但回撤也可能已经很大了。我曾经吃过这个亏——等 Z-score 到 3 才进场,结果行情继续极端,浮亏扛了两个月。
交易执行:用期权组合暴露 Vega
判断出方向后,怎么交易?我一般用以下组合:
- 做空波动率(VIX 偏高时):卖出宽跨式组合(Short Strangle),或者卖出平值跨式(Short Straddle)
- 做多波动率(VIX 偏低时):买入宽跨式组合(Long Strangle),或者买入平值跨式(Long Straddle)
但这里有个坑——单纯卖跨式或者买跨式,Delta 和 Gamma 风险很大。我建议用 Vega 中性化 的方式:
# 示例:构建 Vega 中性化的做空波动率组合
# 假设我们想暴露 -1000 Vega,同时保持 Delta 中性
from scipy.stats import norm
def build_vega_neutral_portfolio(option_chain, target_vega):
"""
option_chain: 包含不同执行价和期限的期权数据
target_vega: 目标 Vega 暴露(负值表示做空)
"""
# 这里简化处理,实际需要求解最优权重
# 选择流动性最好的几个合约
selected = option_chain[option_chain['volume'] > 1000]
# 计算每个合约的 Vega 和 Delta
# 用线性规划求解权重,使得总 Vega = target_vega,总 Delta ≈ 0
# ...
return weights
# 实际交易中,我还会加入 Gamma 和 Theta 的约束
注意:Vega 中性化不是万能的。当波动率曲面发生结构性变化时(比如期限结构倒挂),单纯靠 Vega 暴露可能不够。我建议同时监控 Vega 的期限分布,确保不是集中在某个单一期限上。
策略的 SVG 流程图
下面这张图展示了整个策略的核心逻辑:
实战中的注意事项
这个策略听起来简单,但实际执行中坑不少。我踩过的几个:
- 均值回归的时间尺度——回归可能需要几天、几周甚至几个月。你的期权期限要匹配这个时间尺度。我一般用 1-3 个月的期权。
- 不要忽略期限结构——有时候整体水平正常,但期限结构是倒挂的。这时候做空波动率可能被近月的高 Vega 吃掉利润。
- 流动性问题——深度虚值的期权流动性差,买卖价差大。我建议只交易平值附近 2-3 档的合约。
核心要点总结:
- 曲面水平值均值回归策略,盯的是整体波动率温度
- 用 Z-score 判断极端区域,±1.5 以上开始关注
- 用期权组合暴露 Vega 方向,同时做 Delta 和 Gamma 中性化
- 注意期限结构和流动性,别只看整体水平
好了,这一章就到这里。曲面水平值策略说白了就是「赌市场情绪会回归正常」。听起来简单,但真正做好需要大量的回测和参数调优。我建议你先用历史数据跑一遍,看看不同 Z-score 阈值下的表现,再决定怎么用。
一个小技巧:回测时别只看整体胜率。把行情分成「趋势市」和「震荡市」分别测试。你会发现,这个策略在震荡市表现特别好,但在单边趋势市里容易被打脸。知道了这个,你就知道什么时候该用、什么时候该停了。