halo 的技术博客

返回

卖波动率(short volatility)是量化里最诱人也最危险的一门生意:绝大多数时间稳稳收保费,直到某一天市场崩盘,把你几年的利润一次性收回去。问题从来不是”该不该卖波动”,而是”什么时候该卖、什么时候该收手”。今天讲一个古老又管用的开关:方差风险溢价(Variance Risk Premium,VRP)择时

结论先放这:隐含波动率(IV)常年高于事后真正兑现的已实现波动率(RV),这条缝隙 IV−RV 就是方差风险溢价——期权卖方收的保费。但 Bollerslev-Tauchen-Zhou(2009)的洞见更进一步:VRP 不只是一笔常数保费,它是会呼吸的,而且它当前的宽窄能预测卖波动策略未来的收益。在 10 年 GARCH 合成数据上,IV 有 92.5% 的时间高于 RV、平均升水 4.33 个波动点;把当日 VRP 分成五档,Q1(最薄)未来一个月卖波动亏 1.62%、Q5(最厚)赚 1.53%,单调递增。据此造一个开关——VRP 厚时开仓卖波动、VRP 薄或倒挂时空仓——同一条卖波动腿,无择时版 Sharpe -0.26、最大回撤 -51.7%(长期亏钱),VRP 择时版 Sharpe 1.2、回撤收窄到 -27.9%、净值由亏转盈。 秘密在于:VRP 会在崩盘前压缩甚至倒挂,开关据此提前拉闸。

一、那条缝隙:期权卖方到底收的什么钱#

先把两个波动率讲清楚:

  • 已实现波动率(RV):市场事后真正走出来的波动,用过去一段时间的日收益平方加总算出。它是”实际发生了什么”。
  • 隐含波动率(IV):从期权价格反推出来的、市场对未来波动的定价。它是”市场愿意为波动保险付多少钱”。

理论上,如果市场是风险中性的,IV 应该等于 RV 的无偏预期。但现实里,IV 系统性地、持续地高于事后的 RV。这个差 VRP = IV − RV 长期为正,就是方差风险溢价。

IV 常年高于 RV,两条线之间的绿色缝隙就是方差风险溢价

为什么这条缝隙常年存在?和 VIX 期限结构升水同源——波动率保险的供需极度不对称:投资者害怕崩盘、愿意常年多付一点买保险(buy protection),而卖保险的一方要承担”平时赚小钱、崩盘巨亏”的凸性风险,必须收取补偿。这笔补偿就沉淀成 IV 高于 RV 的那条缝隙。数据里 IV 有 92.5% 的时间高于 RV,平均升水 4.33 个波动点

卖波动率策略(卖跨式、卖方差互换、做空 VIX)本质上就是在赚这条缝隙。但麻烦在于:这条缝隙的宽窄一直在变,而且——最关键的——它在你最不该卖波动的时候会突然变窄甚至倒挂

二、VRP 会呼吸:它不是常数,是信号#

朴素的理解是把 VRP 当一笔固定保费,无脑常年卖波动。这恰恰是爆仓的经典路径。Bollerslev-Tauchen-Zhou 的贡献在于指出:VRP 是一个缓慢移动、有预测力的状态变量

它的动态有两个关键特征:

  1. 持续性:VRP 高的时候倾向于继续高、低的时候继续低(自相关很强),所以当前的 VRP 是对未来卖波动收益的有效预测。
  2. 崩盘前压缩:在市场即将进入动荡之前,VRP 往往会先变薄甚至倒挂(IV < RV)——这有点反直觉,但机制是:真正的恐慌来临前,隐含波动率的上涨常常”跟不上”已实现波动率的突然抬头,保费相对于风险变得极其便宜。此时卖波动是在飓风口捡钢镚儿。

我用一个 AR(1) 过程模拟这条会呼吸的 VRP,并让它在未来 RV 跳升之前被压薄:

VRP 时序与开关阈值:厚(绿)时开仓卖波动、薄或倒挂(红)时空仓

把这个直觉量化——按当日 VRP 分五档,看每一档之后一个月卖波动策略的累计收益:

VRP 分位与未来卖波动收益:Q1 最薄档亏钱、Q5 最厚档赚钱,单调递增

结果单调递增:Q1(VRP 最薄)未来一个月卖波动亏 1.62%,Q2 亏 0.26%,Q3、Q4 在零附近,Q5(最厚)赚 1.53%。这条单调关系就是 VRP 择时的全部依据——当前的溢价越厚,卖波动未来越赚;溢价越薄,越该收手。

三、造开关:厚则开、薄则关#

规则极简单:设一个阈值(这里用 VRP 的 35% 分位),VRP 高于阈值就开仓卖波动、低于就空仓。下面用 numpy 复现整条逻辑。

代码里最重要的是卖波动腿的结构:theta_carry 是每天稳稳收的保费,随 VRP 缩放;gamma_loss 是当日已实现波动大幅超出隐含定价时的凸性巨亏——这两项加起来才是真实的短波动收益(左偏、有肥尾),而不是一条平滑的斜线。

四、效果:同一条腿,判若两人#

两条净值:无择时版长期向下、危机前满仓挨打;VRP 择时版在崩盘前拉闸、净值稳步向上

策略CAGRSharpe最大回撤
始终卖波动(无择时)-1.6%-0.26-51.7%
VRP 择时开关+5.3%1.20-27.9%

同样一条卖波动腿,无择时版本长期是亏钱的(Sharpe -0.26),因为它在 VRP 变薄、崩盘临近的时刻依然满仓,把几年积累的保费一次次吐回去,回撤 -51.7%。加上 VRP 开关后,策略在溢价压缩时提前空仓,躲过了大部分凸性巨亏——CAGR 转正 5.3%、Sharpe 到 1.2、回撤几乎腰斩。

请注意:开关不是靠预测崩盘,而是靠观测溢价。它不需要知道明天会不会跌,只需要读当前 IV−RV 这条缝隙够不够厚。溢价变薄这个信号本身,就是市场在替你报警。

五、结果解读#

收益来源与形态。 卖波动的利润是”高频小额保费”累积型的:VRP 厚的时段每天收一点。这决定了它天生左偏——分布的右侧是密密麻麻的小额正收益,左侧拖着崩盘日的凸性巨亏。VRP 开关做的事,就是尽量让你只在右侧那片肥沃区收保费,在左尾即将展开前离场。

为什么 Sharpe 会骗人。 无择时版本在平静期的 Sharpe 其实很漂亮——低波动、稳收益。但一次崩盘就能把累计的 Sharpe 打成负数。对卖波动这类策略,Sharpe 严重高估了平静期、严重滞后于崩盘。看回撤和收益偏度远比看 Sharpe 诚实。VRP 择时的真正价值不在把 Sharpe 从 -0.26 抬到 1.2 这个数字,而在把 -51.7% 的回撤砍到 -27.9%——它买的是生存,不是超额收益。

开关的滞后代价。 VRP 用月度窗口的 RV 计算,本身有平滑滞后。当波动率跳升极快时(隔夜跳空、闪崩),VRP 可能来不及变薄你就已经挨了第一棍。开关能躲开大部分”有预警”的动荡,躲不开”零预警”的瞬时崩塌。这也是为什么择时版依然有 -27.9% 的回撤——不是没做好,是短波动策略的左尾无法被任何观测型信号完全清除。

适用边界。 VRP 择时在”波动率有节奏地起伏、崩盘前有溢价压缩预兆”的市场里最有效;在溢价与已实现波动同步跳变、毫无提前量的极端事件里会失灵。它也依赖阈值的稳定性——用历史分位设阈值本身是一种样本内校准,制度变化(如做市结构、期权供需长期漂移)会让阈值失准。

A. 实现细节#

  • RV 计算:21 日滚动窗口的日收益平方和年化,代表”过去一个月的已实现波动”。
  • VRP 定义IV − RV,单位是波动率点;本文 IV 由 RV 叠加一个 AR(1) 溢价合成,真实场景应取同期限的 ATM 隐含波动率或 VIX。
  • 信号时点:卖波动腿用 iv_lag(昨日 IV)计价,避免用当日 IV 造成 look-ahead;开关用当日 VRP 判定持仓(生产环境应改为昨日 VRP 决定今日持仓)。
  • 卖波动收益口径theta_carry(保费)− gamma_loss(凸性巨亏)− 成本,直接在收益空间建模短波动的左偏形态,而非用一条平滑斜线。
  • 阈值:VRP 的 35% 分位,静态设定;实盘应滚动估计以避免用到未来样本。

B. 已知偏差#

  • 阈值的样本内污染:用全样本 35% 分位设阈值,隐含地用到了未来信息。严格回测须用滚动/扩展窗口分位,且会因此损失一部分表现——本文数字是乐观上界。
  • 合成 VRP 的”善意”:本文让 VRP 在未来 RV 跳升前被压薄(future_jump 项),这等于给了开关一个真实市场未必总有的提前量。真实 VRP 的预测力比合成数据弱得多,且崩盘前的压缩并非每次都出现。
  • IV 数据的现实复杂度:真实 IV 有偏斜(skew)、期限结构、供需扰动,单一 ATM 隐含波动率无法完整刻画方差风险溢价;用 VIX 近似又混入了期限与偏斜效应。
  • 凸性损失的建模粗糙gamma_loss 用一个阈值化的平方项近似,真实卖波动在极端日的亏损取决于具体的期权组合(行权价、到期、对冲频率),可能比本文更肥、更突然。

C. 一句话总结#

方差风险溢价择时的本质是用市场自己报的价当风险开关:IV−RV 这条缝隙不只是期权卖方常年收的保费,它的宽窄还能预测卖波动未来赚不赚——溢价厚时开仓、溢价薄或倒挂时收手。同一条卖波动腿,无择时长期亏钱、回撤 -51.7%,加上 VRP 开关就变成 Sharpe 1.2、回撤腰斩到 -27.9%。它的价值不在多赚,而在别在飓风口捡钢镚儿——因为 VRP 会在崩盘前先变薄,那就是市场提前替你按下的警报。

方差风险溢价择时:用隐含减已实现的差做风险开关
https://blog.halo26812.eu.org/blog/variance-risk-premium-timing
Author halo
Published at 2026年7月25日
版权声明 CC BY-NC-SA 4.0
Comment seems to stuck. Try to refresh?✨