halo 的技术博客

返回

裸卖 put 的月度收益分布

期权市场上有一个持续了三十多年、被反复记录却始终没有消失的现象:股指期权的隐含波动率曲面向左下方倾斜——行权价越低的看跌期权,隐含波动率越高。5% 价外的 put 定价用的波动率,系统性高于平值期权,更远高于事后实际发生的波动。这条倾斜的曲线有个名字叫波动率偏斜(volatility skew),而它背后藏着的那笔持续的钱,叫偏度风险溢价(Skew Risk Premium)

翻译成人话:市场愿意为崩盘保险持续支付超过精算公允价的保费。卖出这份保险的人,长期收取这笔超额保费;代价是,每隔几年替整个市场承担一次真正的崩盘。

这篇文章用 20 年跳跃扩散合成数据把这门生意完整跑一遍:保费到底有多厚、收益分布长什么样、一次崩盘会还回去几个月的利润,以及 regime 过滤和价差限损这两种常见的”安全带”各自值不值得系。

溢价从哪来:恐慌是有价格的#

Bakshi-Kapadia-Madan (2003) 把风险中性偏度从期权价格中分离出来,发现指数期权隐含的收益分布偏度,持续比事后实现的分布更负——市场给”暴跌”场景分配的概率,长期高于暴跌实际发生的频率。Kozhan-Neuberger-Schneider (2013) 进一步构造了可交易的偏度互换,证实卖出偏度的一方长期获得正收益,且这笔收益无法被方差风险溢价完全解释——偏度溢价是独立存在的。

为什么这笔钱不会被套利掉?三个结构性原因。

第一,需求端是刚性的。养老金、保险资金、结构化产品有强制性的尾部对冲需求——很多机构的风控条例明文要求持有下行保护。他们买保险不是因为算出来划算,而是因为必须买。刚性需求撞上有限的供给(做市商卖出 put 后自身承担库存风险,需要额外补偿),保费自然被推高。

第二,1987 年的记忆被永久定价了。1987 年 10 月之前,美股期权的隐含波动率曲面基本是平的;黑色星期一单日 -20% 之后,偏斜出现并且再也没有消失。市场用曲面的形状记住了那一天。

第三,卖方的痛苦是真实的。卖崩盘保险的收益分布极端左偏:赢的月份赚一小笔保费,输的月份可能亏掉两年利润。这种”捡钢镚”式的收益结构会在最糟糕的时点(危机中)产生最大亏损,恰好是资金最稀缺、补仓最困难的时候。承担这种风险理应获得补偿——所以溢价的一部分是公允的风险报酬,只有超出公允的部分才是真正的”溢价”。

实验设计:把崩盘写进数据里#

真实期权面板数据难以获取且清洗成本极高,我们用一个诚实的替代:跳跃扩散过程 + 参数化偏斜定价,把”市场为尾部多收钱”这一机制显式植入,然后检验卖方策略的收益结构是否与文献记录的形态一致。

标的价格服从带泊松跳跃的几何布朗运动:日常波动年化 15%,每天 0.8% 概率发生一次均值 -4% 的向下跳跃。20 年模拟中实际发生 48 次跳跃,日收益偏度 -1.20——一条肥左尾的指数。漂移项做了跳跃补偿,使标的长期年化收益约为 0%(我们想隔离期权腿本身的损益,不让标的牛市补贴卖方业绩)。

期权定价用 Black-Scholes,但输入的隐含波动率带偏斜溢价:5% 价外 put 的 IV = 滚动 63 日已实现波动率 × 1.35。这个 1.35 的乘子就是偏斜的参数化——对应真实市场中 25-delta put 相对 ATM 的典型溢价水平。

策略:每月月初卖出一张一个月期、行权价为现价 95% 的 put,名义本金 1 倍,持有到期。

def bs_put(S, K, T, r, iv):
    d1 = (np.log(S/K) + (r + iv**2/2)*T) / (iv*np.sqrt(T))
    d2 = d1 - iv*np.sqrt(T)
    return K*np.exp(-r*T)*norm.cdf(-d2) - S*norm.cdf(-d1)

for m in range(3, months):
    rv = rets[i0-63:i0].std() * np.sqrt(252)   # 只用过去数据定价
    iv = rv * 1.35                              # 偏斜溢价乘子
    prem = bs_put(S0, S0*0.95, 21/252, 0.02, iv)
    payoff = max(S0*0.95 - ST, 0.0)             # 到期实值部分赔付
    pnl = (prem - payoff) / S0
python

注意 rets[i0-63:i0] 的切片右端点是开仓日——定价只用开仓前的信息,没有未来函数。

结果一:6.1 个百分点的概率差,就是保费的真身#

偏度风险溢价最干净的度量方式不是钱,是概率。用定价 IV 反推期权隐含的到期实值概率(风险中性的 N(-d2)),再数一数这些 put 实际到期实值的频率:

期权隐含实值概率 20.5%,实际到期实值频率 14.3%。

隐含概率 vs 实际频率

市场为”跌破 95%“这个事件定价了 20.5% 的概率,但它实际只发生了 14.3%。中间 6.1 个百分点的差,就是买方为安心多付的、卖方收进口袋的偏度风险溢价。这与真实市场的实证量级吻合——OTM put 的隐含违约概率长期高于实际行权频率,是期权文献中最稳健的发现之一。

结果二:89% 的胜率和 -4.7 的偏度是同一枚硬币#

237 个月的裸卖 put 损益:

指标裸卖 5% OTM put
月均保费0.70% 名义
胜率89.0%
月均净损益+0.33%
损益偏度-4.74
最差单月-11.32%
年化收益3.90%
Sharpe0.84
最大回撤-12.70%

胜率 89% 意味着平均每 9 个月里 8 个月安稳收保费。但收益分布的偏度是 -4.74——开头那张分布图里,右边密密麻麻的小正收益柱和左边拖出去的长尾,就是这门生意的全部真相:你收的是月租,赔的是房子。最差单月 -11.32%,相当于把之前约 16 个月的平均利润一次性还回去。

Sharpe 0.84 看起来相当体面,但对左偏 -4.7 的分布,Sharpe 是一个系统性高估风险调整后收益的指标——标准差对称地对待上下波动,而这个策略的波动几乎全部堆在下侧。同样的 Sharpe,正偏策略和左偏策略的实际持有体验是两个世界。

结果三:两条安全带,一条比想象中松#

卖崩盘保险的人都想过怎么少挨崩盘的打。测试两种最常见的方案:

方案一:波动 regime 过滤。 当滚动已实现波动率超过其 12 个月均值的 1.25 倍时停止卖出——逻辑是波动飙升往往聚集出现,第一波跳完先离场。

方案二:put spread 限损。 卖 5% OTM put 的同时买入 15% OTM put,把单月最大亏损锁定在 10 个点以内,代价是付出深度 OTM 的保费(且深度 OTM 的偏斜更陡,买保护的成本相对更贵)。

三种姿势净值对比

策略CAGRSharpeMDD偏度
裸卖 put3.90%0.84-12.7%-4.74
RV regime 过滤2.27%0.53-13.5%-5.35
put spread 限损3.45%0.79-13.0%-4.48

结果对直觉不太客气:regime 过滤在这组数据里是负贡献——CAGR 从 3.9% 掉到 2.3%,回撤反而略微变深。原因在于跳跃扩散的跳是无记忆的泊松到达:跳跃不聚集、不预热,RV 飙升发生在跳跃之后,过滤器每次都是在挨完打之后才拉响警报,错过的是跳后 IV(锚定 RV)升高、保费最肥的月份。这一点必须诚实标注:真实市场的波动有 GARCH 式聚集,跳跃前常有波动升温,regime 过滤在真实数据上的表现会好于这里的合成结果——但”过滤器总在坏事后才触发”的滞后性风险是真实存在的,合成实验只是把它推到了极端。

put spread 的结果更符合预期:让出约 45bp 的年化(买保护的成本),换取尾部封顶。在这 20 年里最深的跳跃没有跌穿 15%,所以保护腿从未真正赔付——它买的是这段样本里没发生、但下一个 20 年可能发生的那次 -25%。保险没用上不等于保险白买,这句话对卖保险的人自己同样成立。

结果四:保费厚度与击穿时刻#

保费与击穿月份

上图是每月收取的保费厚度,红点标出赔付超过保费 3 倍的”击穿月”。两个观察:

一是击穿月约每两年出现一次,和泊松跳跃的到达率一致——这门生意的赔付周期没有任何规律可言,连续安稳四年和一年挨两次打都在正常范围内。

二是保费厚度跟随 RV 起伏:跳跃之后的几个月保费最肥(RV 升高推升定价 IV),而这恰恰是很多卖方刚被打疼、不敢下手的时候。卖保险最赚钱的窗口,出现在刚赔付完之后——这是行为上最难执行的部分,也是这个溢价能长期存活的第四个原因:能在崩盘后第二个月照常卖出的人,远比想象中少。

A. 实现细节#

信号与定价只用开仓日之前的数据:定价基础是滚动 63 日已实现波动率(切片右端点为开仓日,不含当日),乘以 1.35 的偏斜乘子得到 5% OTM put 的定价 IV。每月月初以 Black-Scholes 价格卖出一个月期 put,名义 1 倍,持有到期按内在价值结算,损益除以开仓日现价得到名义收益率。put spread 版本中 15% OTM 保护腿的 IV 乘子为 1.35×1.15,反映偏斜随虚值深度变陡。绩效指标(CAGR / Sharpe / MDD)在 237 个月完整损益序列上计算,无 warmup 污染(前 3 个月因 RV 窗口不足直接跳过,不计入)。

B. 已知偏差#

合成数据低估了三样东西。 一是 IV 的动态性:真实偏斜乘子不是常数 1.35,危机中 25-delta 偏斜可以翻倍,卖方在浮亏时还要承受 IV 重估的 mark-to-market 损失,本文按持有到期结算回避了这一层痛苦。二是波动聚集:泊松跳跃无记忆,真实市场跳跃前常有波动升温,这使本文的 regime 过滤结果偏悲观、裸卖结果偏乐观。三是流动性:崩盘月平仓或滚动的买卖价差会急剧走阔,本文未建模任何交易成本。

保证金机制未建模。 裸卖 put 的实际资金占用由保证金决定,且保证金在危机中会被交易所上调——最需要持仓的时候被迫减仓(或被强平)是卖方的真实死法,名义本金口径的回测体现不了这一点。

单一行权价与期限。 真实的偏度溢价收割通常在整条曲面上分散(多个 delta、多个期限),本文的单点采样放大了路径依赖。

C. 结果解读#

这门生意的本质是保险公司,不是投资策略。 89% 胜率 + 偏度 -4.7 的组合意味着:绝大多数时间的账面平稳是幻觉,真实风险全部压缩在少数几个月里。评估它的正确框架是保险精算——保费收入(年化约 8.4% 名义)减去预期赔付(约 4.5%)剩下的承保利润,除以承担的尾部资本占用——而不是盯着净值曲线的平滑段。

溢价是真的,但吃到它的门槛是行为层面的。 6.1 个百分点的隐含-实际概率差在 20 年里稳定存在,这与真实市场文献一致。难点从来不是发现这个溢价,而是在赔付月之后继续执行:数据显示跳跃后保费最肥,而多数卖方恰好在那时缩手。纪律本身就是这个策略的护城河。

安全带要看清代价再系。 regime 过滤在跳跃无预热的环境里是纯负贡献(滞后触发 + 错过肥保费月),它的价值完全依赖”波动聚集”这个真实市场特征的强度;put spread 的成本固定透明(约 45bp/年),买的是样本外的极端尾部——对用杠杆的卖方是必需品,对 1 倍名义的卖方是可选项。

Sharpe 0.84 不可直接与线性策略比较。 左偏 -4.7 的策略,其真实的”坏时刻集中度”远高于同 Sharpe 的趋势或动量策略。如果你的组合里已经有其他做空波动、做空尾部的暴露(卖 VIX carry、卖方差互换),这个策略的边际分散价值接近于零——它们会在同一天一起赔。


本文实验基于跳跃扩散合成数据,偏斜溢价为参数化植入,用于展示偏度风险溢价的收益结构与风险形态。真实期权市场的偏斜动态、保证金与流动性约束远比本文复杂,实盘前需在真实期权面板数据上验证。本文不构成投资建议。

偏度风险溢价:卖出崩盘保险的系统化收益
https://blog.halo26812.eu.org/blog/skew-risk-premium
Author halo
Published at 2026年7月26日
版权声明 CC BY-NC-SA 4.0
Comment seems to stuck. Try to refresh?✨