4、波动率口径详解:历史波动率、已实现波动率、隐含波动率、波动率锥
波动率是量化回测与期权定价中最核心的风险度量指标。不同口径的波动率在计算逻辑、数据来源与应用场景上存在本质差异。本章系统梳理四种主流波动率口径,并重点说明其在回测标签校准与模型训练中的对齐方式。
4.1 四种波动率口径总览
| 波动率类型 | 数据来源 | 计算方向 | 核心用途 | 回测标签适用性 |
|---|---|---|---|---|
| 历史波动率(HV) | 历史收盘价序列 | 向后看 | 风险归因、波动率聚类分析 | 特征工程(X) |
| 已实现波动率(RV) | 高频日内价格数据 | 向后看(精细) | 波动率预测标签、波动率锥构建 | 标签(y) |
| 隐含波动率(IV) | 期权市场交易价格 | 向前看(预期) | 市场情绪、定价偏差、波动率曲面 | 特征(X)或校准基准 |
| 波动率锥(Volatility Cone) | RV 或 HV 的分位数统计 | 截面统计 | 波动率期限结构、异常值检测 | 标签校准、阈值设定 |
口径对齐要点: 在回测标签生成中,已实现波动率(RV) 是默认的标签口径;历史波动率(HV)与隐含波动率(IV)通常作为特征输入;波动率锥用于判断当前 RV 在历史分布中的相对位置,辅助标签阈值校准。
4.2 历史波动率(HV)
历史波动率基于过去 N 个交易日的收盘价对数收益率计算标准差,再年化。公式如下:
# 历史波动率计算(Python 示例)
import numpy as np
def historical_volatility(prices, window=20, trading_days=252):
log_returns = np.log(prices[1:] / prices[:-1])
rolling_std = np.sqrt(np.sum((log_returns[-window:])**2) / (window - 1))
return rolling_std * np.sqrt(trading_days)
- 窗口选择: 常用 20 日(月)、60 日(季)、252 日(年)。窗口越短,波动率对近期事件越敏感,但噪声越大。
- 局限性: 等权处理所有历史数据,无法反映波动率聚集的时变特征;对跳跃事件反应滞后。
- 回测角色: 作为特征(X)用于波动率预测模型,或作为波动率锥的输入之一。
4.3 已实现波动率(RV)
已实现波动率利用日内高频数据(如 5 分钟、1 分钟或 tick 级数据)计算,是真实波动率的无偏估计量。RV 是回测标签生成的首选口径。
# 已实现波动率计算(5 分钟频率示例)
def realized_volatility(high_freq_prices, trading_days=252):
# high_freq_prices: 日内等间隔价格序列
log_returns = np.log(high_freq_prices[1:] / high_freq_prices[:-1])
rv = np.sqrt(np.sum(log_returns**2) * trading_days)
return rv
| 特性 | HV(日频) | RV(高频) |
|---|---|---|
| 数据频率 | 日收盘价 | 5 分钟 / 1 分钟 / tick |
| 估计精度 | 低(受采样误差影响大) | 高(接近真实波动率) |
| 微观结构噪声 | 几乎无影响 | 需做噪声滤波(如子采样法) |
| 回测标签适用性 | 不推荐作为标签 | 推荐作为标签(y) |
注意: 使用 RV 作为标签时,必须对齐回测的持有期。例如,若回测持有期为 5 个交易日,则 RV 应计算未来 5 个交易日的日内累积波动,而非单日 RV 的简单平均。
4.4 隐含波动率(IV)
隐含波动率是从期权市场价格反推出的波动率,反映市场对未来波动率的预期。IV 是前瞻性指标,与 HV/RV 存在系统性偏差。
- 计算方式: 通过期权定价模型(如 Black-Scholes)迭代求解,使模型价格等于市场价格。
- 关键特征:
- 波动率微笑/偏斜: 不同行权价的 IV 不同,反映市场对尾部风险的定价。
- 期限结构: 不同到期日的 IV 不同,形成波动率曲面。
- 风险溢价: IV 通常高于 RV(方差风险溢价),差值可作为特征。
- 回测角色: 作为特征(X)或作为标签校准的参考基准(例如,当 IV 显著高于 RV 时,可能预示波动率高估)。
4.5 波动率锥(Volatility Cone)
波动率锥通过计算不同持有期下 RV 的分位数(如 10%、25%、50%、75%、90%),形成波动率的期限结构分布。它解决了“当前波动率是否异常”的问题。
波动率锥构建步骤:
- 选择回测窗口(如过去 5 年)。
- 计算不同持有期(1 日、5 日、20 日、60 日、120 日)的 RV 序列。
- 对每个持有期,计算 RV 的分位数(10th、25th、50th、75th、90th)。
- 将分位数按持有期绘制成曲线,形成锥形图。
波动率锥在回测标签校准中的应用:
- 异常值检测: 若当前 RV 超过 90% 分位线,标记为极端波动事件,在标签生成中做截断或 Winsorize 处理。
- 阈值设定: 根据锥的中位数(50%)和四分位距(IQR)设定波动率标签的“高/中/低”分类阈值。
- 期限结构对齐: 回测持有期与锥的持有期必须一致。例如,20 日持有期回测应使用 20D RV 及其对应的锥分位数。
4.6 四种口径在回测标签校准中的协同
最佳实践:
- 以 RV 作为标签(y),持有期与回测持有期严格对齐。
- 以 HV 和 IV 作为特征(X),捕捉波动率的历史状态与市场预期。
- 使用 波动率锥 对 RV 标签进行后处理校准:对超出锥 90% 分位数的标签做截断,对低于 10% 分位数的标签做地板保护。
- 定期(如每季度)重新计算波动率锥,避免锥的分布因市场结构变化而失效。