halo 的技术博客

返回

核心结论:「隐含波动长期高于已实现波动」是真的,但它不是卖波动赚钱的原因。 把方差风险溢价(VRP)精确设为 0 —— 也就是让保险公平定价、卖方在期望上一分钱不赚 —— 这个策略的中位路径依然是赚钱的:30 年中位 CAGR +1.35%57.7% 的路径最终为正,单月胜率 63.2%

而基准情景(VRP=15%)的中位 CAGR 是 +14.46%。两者的差距当然存在,但关键在于:在一个溢价精确为零的世界里,你依然会看到一条向上的净值曲线、一个大于 50% 的胜率、以及一份看起来很像 alpha 的业绩报告。

这意味着一件很不舒服的事:「我卖波动赚到钱了」这个观察,几乎不构成「存在方差风险溢价」的证据。

左:2 万条 30 年路径,中位数一路向上但 24.10% 归零;右:五种仓位口径 Sharpe 极差仅 0.584,归零概率却差 96.4 倍

而同一个引擎里,均值口径的 CAGR 是 −12.69%。中位 +14.46%、均值 −12.69% —— 这不是矛盾,这是这门生意的全部内容。

一、先把这门生意的结构说清楚#

方差风险溢价收割,实务上有很多张皮:卖跨式、卖宽跨式、做空 VIX 期货、卖方差互换、备兑开仓、雪球产品的对冲端。剥掉包装,结构都是同一个:

期初收一笔固定的钱(执行方差 K),期末赔出一个随机的数(已实现方差 RV),赚 K − RV。

本文用最干净的形式来建模——月度方差互换,避免 delta 对冲误差、gamma 路径依赖这些与主题无关的噪音污染归因。

本文的基准设定(全部是真值,由构造给定,不是估计出来的):

参数说明
无条件期望已实现方差0.0324对应 18% 年化波动
对数方差 AR(1) 系数 φ0.75月度波动聚集
对数方差无条件标准差0.45波动的波动
跳跃强度 λ0.04 次/月(0.48 次/年)波动率突然跳升
跳跃幅度~Exp(1.4),均值乘数 3.5对数方差的向上跳
方差风险溢价 VRP15%K = 公允方差 × 1.15
方差名义 / 资本25x行业常见量级
模拟规模30 年 × 20000 条路径月度频率

引擎自洽性先过一遍。执行价与已实现方差的期望差,应精确等于 VRP × E[RV]:

  • 实测 E[K − RV] = 0.00484243
  • 解析 0.15 × 0.0324 = 0.00486
  • 相对误差 3.61e-03

E[RV] 实测 0.03242992 对构造值 0.0324,误差 2.99e-05。引擎没有加性偏差。

二、决定性对照:把溢价精确设为零#

这是全文最重要的一张表。安慰剂 A:VRP = 0,保险公平定价,卖方的期望利润精确为零(实测 E[K−RV] = −1.92e-05,就是蒙特卡洛噪音)。

指标基准 VRP=15%安慰剂 VRP=0
30 年中位 CAGR+14.46%+1.35%
最终为正的路径占比75.25%58.24%
单月胜率76.98%63.17%
30 年归零概率24.10%24.40%
均值 CAGR−12.69%−22.90%

看右边这一列。期望利润精确为零,但中位数是正的、多数路径赚钱、六成以上的月份收正收益。

原因不神秘,是一个纯粹的分布事实:已实现方差的均值远高于中位数

  • E[RV] = 0.0324
  • median[RV] = 0.026618
  • 比值 = 1.2172

公平定价的执行价 K 必须等于均值(这是精算公平的定义),而你每个月面对的那个 RV,典型值是中位数。于是在一个溢价为零的世界里,典型月份的损益是:

25 × (0.0324 − 0.026618) / 12 = +1.20% / 月

这笔钱不是溢价,是右偏分布的几何必然。 它会在绝大多数月份里稳定出现,然后在少数月份里被一次性全部收回——这正是均值为零的含义。

所以,那句在券商路演材料里出现率极高的话——「过去 N 年隐含波动平均比已实现波动高 X 个点,所以这是一个结构性的正期望策略」——它的证据和结论之间是断开的。观察到「大部分月份赚钱」,与「存在风险溢价」,在数据上几乎无法区分。

三、另外两条安慰剂:锁死机制#

安慰剂 B:零波动率不确定性。 把对数方差的波动设为 0、跳跃关掉,RV 每期精确等于公允值。此时损益是确定性的:

25 × 0.15 × 0.0324 / 12 = 1.0125% / 月 → 年化 12.8500%

  • 实测中位 CAGR 12.849967%
  • 解析 12.849967%
  • 绝对偏差 1.23e-13
  • 月度损益标准差 4.52e-11,归零概率 0.00%,中位最大回撤 0.00%

引擎在确定性极限下精确坍缩到解析解。

安慰剂 C:无跳跃。 保留全部波动聚集(φ=0.75)和全部对数正态波动率不确定性,只把跳跃拿掉:

指标基准无跳跃
中位 CAGR+14.46%+12.61%
归零概率24.10%0.00%
净值跌破 10% 的概率24.19%0.00%
中位最大回撤51.08%13.99%
95 分位最大回撤100.0%26.58%
月度 Sharpe(年化)0.8691.592
最差单月−100.0%−39.47%
月度偏度−12.89−0.75

这是一个非常干净的分离:中位收益几乎不变(12.61% vs 14.46%),而归零风险从 24.10% 精确塌到 0。

结论很硬:卖波动的收益来自波动率的分布形状,而它的死亡来自跳跃。这是两个可以完全分开的机制。 一个只用扩散型随机波动率模型(Heston 类)做风控的团队,会得到一个 Sharpe 1.59、最大回撤 26% 的策略画像——而真实世界里对应的是 24% 的归零概率。

左:三条安慰剂对照,零波动解析偏差 1.23e-13;右:无跳跃时归零概率精确为 0

四、中位数和均值指向相反的方向#

基准情景:中位 CAGR +14.46%,均值 CAGR −12.69%

这不是数值问题。24.10% 的路径归零(CAGR = −100%),把均值拖到深度负值;而剩下 75.90% 的路径里,大部分表现得相当漂亮。这个策略的收益分布不是「有点偏」,是双峰的。

30 年终值的分位数:

分位30 年 CAGR
5 分位−100.00%(归零)
中位+14.46%
95 分位+19.40%

注意 95 分位(+19.40%)和中位(+14.46%)挨得很近,而 5 分位直接是 −100%。上行被封顶(你最多赚到保费),下行没有底。 这是保险业务的标准形状,只是杠杆 25 倍之后它变得极端。

均值口径的盈亏平衡 VRP 是 31.39%,而基准 VRP 是 15%。安全边际 −52.2% —— 也就是说,按均值口径,这门生意在基准参数下是亏的,要让它在均值上打平,溢价必须比现在再翻一倍。

那到底该看哪个口径?取决于你是谁:

  • 如果这是你自己全部的钱,你只能活在一条路径上,中位数(+14.46%)是更相关的数字,但你要接受 24.10% 的概率归零
  • 如果这是一个基金产品,管理人赚的是所有路径上的管理费与业绩报酬,而投资人承担的是自己那一条路径,两者口径不同
  • 如果这是一个资产负债表上的头寸,且亏损会传染到其他业务,那么均值口径(−12.69%)才是对的

同一个策略,同一份模拟,三个正确答案。这不是模棱两可,是这类损益结构的固有属性。

左:已实现波动分布,均值被右尾拖高;右:月度损益胜率 76.98% 但偏度 −12.89、峰度 244.96

五、剂量反应:哪个参数决定生死#

VRP 扫描(其余参数不动):

VRP中位 CAGR均值 CAGR归零概率
0%+1.35%−22.90%24.40%
5%+5.57%−19.61%24.29%
10%+9.95%−16.21%24.19%
15%(基准)+14.46%−12.69%24.10%
25%+23.99%−5.14%23.82%
40%+39.54%+7.26%23.46%

注意最右边一列:VRP 从 0 拉到 40%,归零概率只从 24.40% 降到 23.46%。 溢价决定你赚多少,几乎完全不决定你会不会死。这两件事在这个策略里是解耦的——而实务中「因为溢价高所以现在做更安全」是一个非常常见的推理。

跳跃强度扫描才是决定生死的那一个:

跳跃强度中位 CAGR均值 CAGR归零概率
0 次/年+12.61%+12.52%0.00%
0.12 次/年+13.59%+4.75%7.49%
0.24 次/年+14.22%−1.58%13.56%
0.48(基准)+14.46%−12.69%24.10%
0.96 次/年+12.58%−28.32%38.70%
1.44 次/年+5.95%−37.77%47.44%

均值口径的过零点在 0.2100 次/年,而基准是 0.48 次/年。 你站在盈亏线错误的一侧,而且错得不少(超出 129%)。

归零概率对跳跃强度的斜率是 0.3013 /(次/年),高度线性。

这里有一个方法论上的麻烦:「未来 30 年平均每年会发生几次波动率跳升」恰恰是所有参数里最不可估计的那一个。 中位 CAGR 对它极不敏感(0 到 0.48 次/年之间,中位数在 12.6%~14.5% 之间几乎持平),而均值 CAGR 和归零概率对它极其敏感。你最容易观测到的指标,对这个最关键的参数最不敏感。

杠杆扫描出现一个典型的非单调:

名义/资本中位 CAGR均值 CAGR归零概率中位最大回撤
5x+2.98%−0.61%3.17%10.5%
15x+8.87%−5.87%13.29%31.0%
25x(基准)+14.46%−12.69%24.10%51.1%
40x+21.01%−23.85%39.48%79.6%
50x+18.35%−30.76%48.23%96.6%

中位 CAGR 在 40x 见顶后回落——不是因为 50x 更安全,而是因为归零的路径太多,把中位数本身拖下来了。如果用「中位收益最大化」来选杠杆,你会选到 40x,对应 39.48% 的归零概率。 这个口径本身就是陷阱。

VRP 剂量反应 / 杠杆扫描 / 跳跃强度过零点

六、仓位口径:Sharpe 分不出来,生死差 96 倍#

同一个策略、同一组随机数,只改仓位管理方式:

口径中位 CAGRSharpe归零概率95 分位回撤
恒定相对杠杆+14.46%0.86924.10%100.0%
名义固定(不随净值缩放)+5.83%0.6378.52%100.0%
赔付封顶(上限型)+15.87%1.2220.25%72.7%
恒定 vega+14.20%0.88323.75%100.0%
巨亏后停做 3 个月+14.15%0.86223.82%100.0%

Sharpe 极差只有 0.584,而归零概率相差 96.4 倍。

其中四种口径的 Sharpe 挤在 0.637~0.883 这个区间里——在任何一份月度或季度业绩报告里,这四个数字是无法区分的。但它们对应的 30 年归零概率是 0.25% 到 24.10%。

最值得注意的是赔付封顶:把单次赔付限制在执行方差的 6.25 倍(相当于 2.5 倍波动),归零概率从 24.10% 塌到 0.25%,而中位 CAGR 反而更高(+15.87% vs +14.46%)——因为活下来的路径能继续复利。

这是全文少有的、几乎没有代价的改进。它在实务中对应的就是买一个更虚值的保护腿,把裸卖变成价差。代价是尾部那部分保费收不到了,而那部分保费恰恰是定价最贵、最不划算的一段。

「巨亏后停做 3 个月」这个直觉上很有吸引力的规则,效果基本为零(归零 23.82% vs 24.10%)——因为杀死你的那一次跳跃是在单月内完成的,等你反应过来,钱已经没了。 这是一个诚实的负面结果。

七、时间不会帮你验证,只会帮你误判#

前 5 年赚钱的路径,占全样本 90.21%。听起来这个策略非常稳。

但在这 90.21% 里面:

  • 21.20% 到第 30 年变成亏损
  • 20.69% 到第 30 年直接归零

也就是说,「前 5 年赚钱」这个事实,几乎不携带任何关于长期结果的信息。 前 10 年赚钱的路径(占 87.78%)里,仍有 17.26% 到 30 年翻负。

5 年滚动窗口的统计更能说明业绩报告长什么样:

指标5 年滚动窗口
正收益窗口占比90.16%
中位年化+17.86%
25 分位+12.83%
5 分位−30.98%
窗口内归零占比4.51%

九成的五年期看起来都很好,中位数接近 18%。 这就是为什么这类策略能持续募到钱——它在绝大多数可观测窗口里,确实提供了漂亮的数字。

首次跌破 50% 净值的概率是 29.09%,中位发生在第 133 个月(约 11 年)。你有足够长的时间建立信心,然后才轮到你付账。

左:30 年 CAGR 分布,75.2% 的路径为正;右:前 5 年赚钱的路径中 21.20% 到 30 年翻负

八、样本量红线:Sharpe 这个指标在这里几乎没有意义#

月度损益的分布特征:

统计量
均值+1.158%
标准差4.617%
偏度−12.89
峰度244.96
胜率76.98%
最差单月−100.0%
1 分位−9.14%
中位+1.51%

年化 Sharpe = 0.869。但是:

剔除最差 1% 的月份后,Sharpe = 2.419。

一个 Sharpe 2.4 的策略和一个 Sharpe 0.87 的策略,差别就是那 1% 的月份。而在 5 年(60 个月)的样本里,你有相当大的概率一次都没遇到

把 30 年(360 个月)的样本做 bootstrap,估出来的 Sharpe 分布:

分位30 年样本估出的 Sharpe
5 分位0.352
50 分位1.081
95 分位2.246

用 30 年的数据,你估出的 Sharpe 可能是 0.35,也可能是 2.25。 这不是估计精度问题,是这个分布本身导致的——峰度 245 的分布,样本 Sharpe 是极不稳定的统计量。

用天真的公式算所需样本量:(2σ/μ)² = 63.6 个月 ≈ 5.30 年这个数字是错的,而且错得很危险。它假设独立同分布且分布不太病态;在偏度 −12.89、峰度 245 的情况下,它系统性低估了所需样本量。任何在这类损益上直接套用 t 检验的做法,都会得到一个过于乐观的结论。

九、代码实现#

核心引擎(完整脚本含全部扫描与安慰剂,此处为主循环):

有三个实现细节直接决定结论对不对:

1. 损益必须在 −100% 处截断。 第一版没做这个截断,得到的月度偏度是 −453、峰度 214166、Sharpe 0.011、最差单月 −80588%。这些数字全是垃圾——它们描述的是一个「净值可以变成负数并继续参与复利」的世界。截断之后,偏度 −12.89、峰度 245、Sharpe 0.869。任何带杠杆的爆仓类模拟,都必须显式处理有限责任边界。

2. 执行价必须用条件期望,不能用无条件期望。 波动聚集意味着高波动之后大概率还是高波动,做市商会把这一点定进价格。如果用无条件均值当执行价,你会凭空造出一个「低波动时期卖得贵、高波动时期卖得便宜」的伪 alpha。

3. 初始状态必须从无条件分布抽。 如果所有路径都从 x = mu_x 起步,前若干期的方差会系统性偏低,制造一段虚假的平稳期。

十、这套东西真正的适用边界#

先说什么时候它确实成立:

做市商 / 券商自营 —— 他们的方差空头是客户需求的副产品(结构化产品对冲、备兑开仓委托),不是主动押注;他们有真实的、非对称的信息优势;最重要的是,他们的仓位口径天然接近「赔付封顶」——归零概率 0.25% 的那一行。

真正拿到高溢价的时点 —— 均值口径的盈亏平衡在 VRP=31.39%。历史上确实存在 VRP 冲到这个水平之上的时段(危机后的几个月),但那恰恰是所有人都在减仓、你的风控也不让你加仓的时候。

再说什么时候它不成立:

用中位数或 Sharpe 做决策的任何场景。 五种仓位口径里,Sharpe 极差 0.584、归零概率差 96.4 倍。中位 CAGR 最优的杠杆(40x)对应 39.48% 的归零概率。这两个指标在这类损益上,系统性地指向错误的方向。

「先小仓位试三年,跑通了再加」这个看似稳健的路径。 前 5 年赚钱的概率是 90.21%,而这 90.21% 里有 20.69% 最终归零。三年跑通不是证据,是这个策略的默认状态。 更糟的是,试跑成功会让你加杠杆,而加杠杆几乎不改变中位收益、线性放大归零概率。

任何把「卖波动」和「收租」类比的表述。 收租的下行是租客不付钱(损失有界),卖波动的下行是 25 倍杠杆下的方差跳升(损失可以精确等于全部本金)。这两个损益结构没有任何共同点。

12 个独立宇宙(不同随机种子)的中位 CAGR:CV = 0.0068,结论对随机数选择不敏感。

最后回到开头那个对照。VRP=0 的世界里,这个策略的中位路径依然赚钱。 所以下次看到一条向上的卖波动净值曲线时,值得问的不是「它赚了多少」,而是:如果溢价是零,这条曲线会长得不一样吗?

在这个模型里,答案是:不会有本质区别,除非你等够 30 年,并且刚好活到了付账那天。

方差风险溢价收割:卖波动为什么长期赚钱又偶尔归零
https://blog.halo26812.eu.org/blog/variance-risk-premium-harvest
Author halo
Published at 2026年8月7日
版权声明 CC BY-NC-SA 4.0
Comment seems to stuck. Try to refresh?✨