粗糙波动率 rFSV:Hurst 指数远小于 0.5 的波动率新范式
2014 年 Gatheral-Jaisson-Rosenbaum 的《Volatility is Rough》用一个惊人简单的标度回归推翻了三十年的建模共识:对数波动率的增量满足单参数标度律 ζ(q)=qH,而全球市场估出的 H 普遍在 0.05-0.15——波动率路径比布朗运动粗糙得多,既不是经典 SV 模型假设的 H=0.5,更不是长记忆文献猜想的 H>0.5。本文用 Python 从零实现分数布朗运动模拟、复现标度回归并从模拟数据中精确恢复 H,解释粗糙波动率为何一击命中经典模型三十年解释不了的短端 ATM skew 幂律爆炸,并实现 Nuzman-Poor 分数核预测器与 AR/HAR 基准对比。最后厘清最容易误解的一点:H 小意味着反持久而非长记忆,粗糙性与波动率聚类是两个不同尺度的现象(高阶)。
三十年来,随机波动率模型有一条不言自明的默认假设:波动率由标准布朗运动驱动——Heston、SABR、Bergomi,全都如此。另一支文献则相信波动率有”长记忆”,主张用 Hurst 指数 H > 0.5 的分数过程建模。
2014 年,Gatheral、Jaisson 和 Rosenbaum 在《Volatility is Rough》里做了一件简单到令人难堪的事:直接去数据里量。他们用高频已实现方差数据检验对数波动率增量的标度律,结果两边都错了——
对数波动率的行为像一个 Hurst 指数 H ≈ 0.1 的分数布朗运动:比标准布朗运动(H=0.5)粗糙得多,与长记忆猜想(H>0.5)方向完全相反。这个规律在股指、个股、汇率、不同年代的数据里惊人地一致。
由此诞生的 rFSV(rough Fractional Stochastic Volatility)模型只有两个核心参数(H 和波动率的波动 ν),却同时做到了三件经典模型做不到的事:拟合波动率时序的标度律、解释短端隐含波动率偏斜的幂律爆炸、用零自由参数的公式预测未来波动率。本文全部用 Python 复现。
一、什么叫”粗糙”:Hurst 指数决定路径的模样#
分数布朗运动(fBm) 是标准布朗运动的推广,唯一参数 Hurst 指数 控制增量的相关性:
- :增量独立,就是标准布朗运动
- :增量正相关(持久性),路径显得平滑、有趋势
- :增量负相关(反持久性),路径剧烈折返、毛刺丛生——“粗糙”
其增量的标度律是 fBm 的指纹:
用精确协方差的 Cholesky 分解可以生成严格的 fBm(比近似方法慢,但没有任何偏差,做研究够用):
import numpy as np
from scipy.linalg import toeplitz, cholesky
def fbm_increments(n, H, seed=0):
"""精确模拟分数高斯噪声(fGn):协方差矩阵 Cholesky 法"""
g = np.random.default_rng(seed)
k = np.arange(n)
# fGn 自协方差函数
gamma = 0.5 * (np.abs(k-1)**(2*H) - 2*np.abs(k)**(2*H) + np.abs(k+1)**(2*H))
C = toeplitz(gamma) + np.eye(n) * 1e-12
L = cholesky(C, lower=True)
return L @ g.standard_normal(n)
# 三种粗糙度的路径
paths = {H: np.cumsum(fbm_increments(2000, H, seed=5)) for H in [0.1, 0.5, 0.8]}python
H=0.1 的路径(上图红色)密集折返、宏观上却几乎不漂移——这正是实证中对数波动率的模样:日内和日间上蹿下跳,但一年尺度上总在一个区间里打转。H=0.8 的路径则平滑得像宏观经济序列。用眼睛就能看出波动率不可能是 H=0.8 的过程。
二、GJR 标度回归:三行代码推翻三十年共识#
Gatheral-Jaisson-Rosenbaum 的核心证据是一个任何人五分钟就能复现的回归。定义对数波动率增量的 q 阶矩:
如果 是 fBm,则 ,且所有 q 的斜率共享一个参数:。
deltas = np.array([1, 2, 3, 5, 8, 13, 21, 34, 55]) # 滞后天数
qs = [0.5, 1.0, 1.5, 2.0, 3.0]
slopes = []
for q in qs:
m = [np.mean(np.abs(logsig[d:] - logsig[:-d])**q) for d in deltas]
slope = np.polyfit(np.log(deltas), np.log(m), 1)[0]
slopes.append(slope)
H_est = np.polyfit(qs, slopes, 1)[0] # ζ(q) = qH 的斜率就是 Hpython我们用 H=0.12 的 rFSV 模拟数据跑这个流程,检验估计程序能否把真值找回来:

左图:五条 log-log 线近乎完美的直线——标度律成立。右图:斜率 ζ(q) 对 q 精确落在过原点的直线上,斜率给出 H ≈ 0.122,与真值 0.12 的误差不到 2%。GJR 对 SPX 已实现方差跑同样的程序,得到 H ≈ 0.13;对 DAX、Bund、美股个股、各主要汇率,全部落在 0.05–0.15。
一个技术警告:对真实数据做这个回归时,你用的是已实现方差这个带噪声的波动率代理,测量误差会使估出的 H 偏高;而后续文献(Fukasawa 等)也指出该回归在某些原假设下有向小 H 偏移的倾向。所以对实际 H 的点估计学界仍有争论,但”远小于 0.5”这个定性结论经受住了所有复检。
三、rFSV 模型与它一击命中的市场事实#
把实证发现写成模型,就是 rFSV:
对数波动率 = 分数 OU 过程:短尺度上由粗糙的 驱动,超长尺度上有极慢的均值回复(α 很小,日频窗口内几乎不可见)。参数就三个半:H(粗糙度)、ν(波动率的波动)、m(长期水平)、α(可以近似取 0)。
它最漂亮的胜利在期权市场。经典一因子 SV 模型(Heston 类)有个著名死穴:短到期 ATM 隐含波动率偏斜。市场数据显示 ATM skew 随到期时间缩短而爆炸式增长,形如幂律 左右;而 Heston 类模型在 T→0 时 skew 收敛到有限常数,怎么调参数都追不上。三十年来的补丁是往模型里塞跳跃——能拟合但丑陋,且和时序证据脱节。
粗糙波动率给出的答案干净利落:
H ≈ 0.1 时正好是 ——与市场观测的幂指数直接吻合,而这个 H 是从时序数据里独立估出来的。同一个参数同时解释了物理测度下的时序标度律和风险中性测度下的期权曲面形态,这种跨测度的一致性在波动率建模史上前所未有。

红色幂律曲线在短端直插云霄,蓝色虚线(经典 SV)在短端趴下——黑点是市场典型形态,它站在红色一边。
四、零参数预测器:分数核 vs AR/HAR#
rFSV 的第三个卖点最实用:如果 是 fBm,那么它的最优预测有闭式解(Nuzman-Poor 公式)——除了 H 之外没有任何需要拟合的参数:
直觉:预测是历史值的幂律加权平均,权重以 衰减——比指数衰减慢得多(这让它记得很久以前的水平),又比长记忆模型的权重衰减得快(这让它对近期变化极其敏感)。粗糙 + 幂律核,恰好卡在 EWMA 和长记忆之间的甜点上。
def rfsv_predict(hist, H, L=300):
"""Nuzman-Poor 一步预测的离散近似(对去均值序列)"""
mu = hist.mean()
h0 = hist - mu
s = np.arange(1, L+1) - 0.5 # 滞后(中点离散)
w = np.cos(H*np.pi)/np.pi / ((s + 1.0) * s**(H + 0.5))
return mu + np.dot(w / w.sum(), h0[-1:-L-1:-1])python在 H=0.12 的模拟数据上滚动一步预测,与两个需要逐日重新拟合的基准对比——AR(5)(6 个参数)和 Realized Vol 文献的王牌 HAR(日/周/月三尺度均值,4 个参数):

分数核以 0 个自由参数打平并略微超过两个每天重新回归的基准(相对 MSE 0.988 vs 1.000/0.994)。这正是 GJR 在真实 SPX/DAX 数据上报告的模式:rFSV 预测器稳定小胜 AR 和 HAR——而 HAR 之所以曾经难以击败,事后看正是因为它的三尺度均值结构恰好是幂律核的一个粗糙离散近似。HAR 的成功一直在悄悄为粗糙波动率作证。
五、最容易踩的概念坑:粗糙 ≠ 没有波动率聚类#
看到 H < 0.5(增量反持久)最常见的误读是:“那波动率聚类怎么办?高波动跟着高波动明明是正相关!”
两件事发生在不同的对象和不同的尺度上:
- 粗糙性说的是 的增量在短尺度上负相关——波动率的变化方向频繁折返
- 聚类说的是 的水平在长时间内保持相关——今天波动率高,下个月大概率还高
fBm 完美兼容两者:即使 H=0.1, 与 的水平自相关依然衰减极慢(这是累积过程的性质,不是增量的性质)。事实上 rFSV 生成的波动率序列,其自相关函数形态与”长记忆”模型在有限样本内几乎无法区分——GJR 论文专门演示了这一点,并指出过去三十年长记忆文献的统计证据,用一个 H=0.1 + 极慢均值回复的粗糙模型同样能生成。长记忆可能一直是个幻影。
A. 实现细节#
- fBm 模拟用 fGn 精确自协方差 + Toeplitz 矩阵 Cholesky 分解,无近似偏差;n=3500 在 M 系列芯片上秒级完成,更长序列可换 Davies-Harte FFT 法
- 标度回归的滞后取 1–55 天(近似斐波那契间隔,log 空间均匀),阶数 q ∈ {0.5, 1, 1.5, 2, 3},两层都是普通最小二乘
- Nuzman-Poor 预测器用中点离散(s = k − ½)近似积分、截断 300 个滞后、权重归一化保证水平无偏;对去均值序列预测再加回均值
- AR(5) 与 HAR 基准在每个预测时点用全部历史扩展窗口重新拟合,无 look-ahead;三者在完全相同的时点序列上评估 MSE
- 预测实验评估窗口为第 500–1499 个观测(前 500 作为最短训练窗),warmup 段不进入评估
B. 已知偏差#
- 全程模拟数据:本文验证的是”方法能从数据里恢复真相”,不是”真实市场的 H 恰为 0.12”。真实数据还要面对已实现方差的测量噪声(使 H 估计偏高)、隔夜跳空、微观结构噪声,GJR 及后续文献用多种代理交叉验证过定性结论
- 预测对比对 rFSV 天然有利:数据由 rFSV 生成,分数核是真模型的最优预测器,赢基准是应然结果。有信息量的部分在于赢的幅度很小——说明 HAR 这类启发式结构对粗糙过程的近似相当好,真实数据上二者的差距也确实不大
- 图 3 的 skew 曲线是理论形态示意:幂律指数来自 rFSV 理论与文献中 SPX 的典型拟合,未使用实时期权报价;粗糙模型定价需要蒙特卡洛或 rHeston 特征函数方法,本文未展开定价环节
C. 结果解读#
- 一个参数统一三类证据是 rFSV 的核心竞争力:时序标度律(H≈0.1)、短端 skew 幂律()、预测核形态(幂律衰减),三条独立证据链指向同一个 H。对比之下,经典模型要么拟合时序、要么拟合曲面,从来没能用同一组参数同时做到——评估任何波动率模型时,“跨测度一致性”应该成为第一道筛子
- HAR 的长期霸主地位其实是粗糙性的间接证据:日/周/月三尺度均值恰好是幂律核的阶梯近似。如果你的生产系统已经在跑 HAR,切换到分数核的边际收益很小;但理解”为什么 HAR 有效”能防止你在改造它时破坏其隐含的幂律结构(比如砍掉月尺度项)
- 对期权交易者的直接含义在短端:0DTE 和周度期权的 skew 定价、以及 VIX 衍生品与 SPX 期权的联合校准,是粗糙模型(rBergomi/rHeston)相对经典模型优势最大的战场;长端(T > 1 年)两类模型差异迅速缩小,不值得为此承担蒙特卡洛定价的计算成本
- “长记忆”结论的脆弱性是一堂方法论课:三十年文献用自相关衰减慢推断 H > 0.5,而同样的样本统计量可以由 H=0.1 的粗糙过程生成——水平的长相关与增量的标度律是两个不同的统计量,后者的鉴别力强得多。检验记忆结构时永远优先用增量标度律而不是水平自相关
- 落地边界:标度回归和分数核预测都只需要日频已实现波动率序列,A 股用 5 分钟收益率平方和构造 RV 即可复现全流程;但 A 股缺乏成熟的波动率衍生品市场,粗糙模型的定价端价值目前主要体现在 50/300/500ETF 期权的短端 skew 分析上