第四章:波动率套利——波动率均值回归策略与波动率锥的构建
波动率套利,说白了就是赌波动率会回归。我做了这么多年交易,发现很多新手一上来就想着怎么预测方向,其实波动率本身就有很强的规律性。今天咱们就聊聊怎么利用这个规律赚钱。
4.1 波动率均值回归:为什么它总是“回来”?
你想想看,波动率这东西,跟橡皮筋似的。拉得太猛,它就得弹回去。压得太扁,它也得弹起来。这就是均值回归的本质。
我记得2018年有一次,VIX指数突然飙到40以上,市场一片恐慌。我当时就判断,这种极端情况不会持续太久。果然,两周后VIX就回到了20附近。嗯,这就是典型的均值回归。
为什么会这样?因为波动率本质上反映的是市场情绪。情绪这东西,不可能一直亢奋,也不可能一直低迷。它总得有个度。
核心逻辑:
- 当隐含波动率(IV)远高于历史波动率(HV)时,做空波动率
- 当隐含波动率(IV)远低于历史波动率(HV)时,做多波动率
- 关键在于找到“远高于”和“远低于”的量化标准
4.2 波动率锥:你的“尺子”
怎么量化?光靠感觉肯定不行。我们需要一把尺子。这把尺子就是波动率锥。
波动率锥,说白了就是把不同期限的历史波动率统计出来,画成一个锥形。我习惯用20天、60天、90天、120天这几个期限。
构建步骤其实不复杂:
- 计算每个期限的历史波动率(比如过去5年的数据)
- 对每个期限,找出波动率的分位数(25%、50%、75%)
- 把这些分位数连成线,就形成了锥形
我的经验:数据窗口别太短。我一般用3-5年的数据。太短了,统计意义不大。太长了,市场结构可能已经变了。
4.3 波动率锥的SVG结构图
下面这张图,是我自己画的波动率锥结构。你看一眼就明白了。
你看,当前IV如果落在锥体上方,说明波动率偏贵了。落在下方,说明偏便宜了。就这么简单。
4.4 实战策略:怎么用波动率锥赚钱
有了这把尺子,策略就清晰了。我一般这么操作:
| 当前IV位置 | 判断 | 策略 | 工具 |
|---|---|---|---|
| 高于75%分位 | 波动率偏贵 | 做空波动率 | 卖出跨式/宽跨式 |
| 低于25%分位 | 波动率偏便宜 | 做多波动率 | 买入跨式/宽跨式 |
| 在25%-75%之间 | 波动率合理 | 观望或做方向性交易 | 价差策略 |
注意:我曾经吃过一次亏。2019年有一次,IV到了80%分位,我果断做空。结果市场出了黑天鹅,IV继续飙升。嗯,那次教训告诉我:分位数只是参考,不是绝对信号。一定要结合市场环境判断。
4.5 代码实现:波动率锥的Python计算
光说不练假把式。下面是我常用的计算代码,你拿去就能用。
import numpy as np
import pandas as pd
def build_vola_cone(price_data, lookback_days=[20, 60, 90, 120]):
"""
构建波动率锥
price_data: DataFrame,包含'close'列
lookback_days: 回看期限列表
"""
log_returns = np.log(price_data['close'] / price_data['close'].shift(1))
cone = {}
for days in lookback_days:
# 计算滚动波动率
rolling_vol = log_returns.rolling(window=days).std() * np.sqrt(252)
# 计算分位数
percentiles = [0.25, 0.50, 0.75]
cone[days] = {
'25%': rolling_vol.quantile(0.25),
'50%': rolling_vol.quantile(0.50),
'75%': rolling_vol.quantile(0.75)
}
return pd.DataFrame(cone).T
# 使用示例
# cone_df = build_vola_cone(price_data)
# print(cone_df)
我的习惯:计算完波动率锥后,我会把当前IV也画上去。一眼就能看出当前IV在锥体的什么位置。这比看数字直观多了。
4.6 避坑指南
做波动率套利,有几个坑我踩过,你注意一下:
- 不要只看一个期限。我曾经只看20天的锥,结果被短期波动骗了。现在我会看多个期限,综合判断。
- 注意市场结构变化。2020年之后,波动率整体水平抬高了。用2018年的数据去套2023年的市场,会出问题。
- 别把均值回归当必然。波动率可以长时间偏离均值。我见过IV在80%分位上方待了整整两个月。如果你仓位重,可能扛不住。
嗯,今天就聊到这儿。波动率锥这东西,用好了就是你的利器。关键是多练、多复盘。下次咱们聊聊怎么用波动率锥做动态对冲。