2. 波动率基础
在策略波动率目标与动态杠杆的实战中,波动率不是抽象概念,而是直接决定仓位大小的输入变量。若把波动率目标策略比作一台自动调节水量的阀门,那么波动率就是水压读数:读错了,阀门开度就会错,风险暴露随之失控。本节聚焦三种最常用的波动率口径——历史波动率、隐含波动率、已实现波动率,讲清它们的计算逻辑、适用场景与关键区别。
一、核心原理:三种波动率分别回答什么问题
波动率本质上是对收益率不确定性的度量。三种口径的差异,首先来自“看过去、看未来还是看当下”的时间视角不同。
- 历史波动率(Historical Volatility, HV):基于过去一段时间的已实现收益率序列,用统计方法回溯计算。它回答的是“过去这段时间,价格实际波动有多大”。
- 隐含波动率(Implied Volatility, IV):从期权市场价格反推出来的市场预期波动率。它回答的是“市场参与者愿意为未来波动支付多少价格”。
- 已实现波动率(Realized Volatility, RV):在给定时间窗口内,用高频或日频收益率实际计算出的波动率,通常用于事后评估或作为波动率预测的基准。它回答的是“这段时间内,波动实际落地是多少”。
三者的关系可以这样理解:HV 是 RV 的一种常见计算形式,RV 更强调“已发生”的实测值;IV 则是前瞻性预期,带有风险溢价和供需信息。波动率目标策略通常以 HV 或 RV 作为仓位调节依据,同时参考 IV 判断市场情绪与对冲成本。
二、方法流程:计算步骤与参数选择
下面给出三种波动率的标准计算流程。实战中,参数选择比公式本身更影响结果。
1. 历史波动率(HV)
- 取标的收盘价序列,计算对数收益率:
r_t = ln(P_t / P_{t-1})。 - 选定窗口长度 N,例如 20 日、60 日或 252 日。
- 计算窗口内收益率标准差,通常用样本标准差。
- 年化处理:乘以
sqrt(252)(日频)或sqrt(52)(周频)。
import numpy as np
import pandas as pd
# 假设 df 含收盘价 close
df['ret'] = np.log(df['close'] / df['close'].shift(1))
def hist_vol(ret, window=20, ann=252):
return ret.rolling(window).std() * np.sqrt(ann)
df['hv20'] = hist_vol(df['ret'], 20)
df['hv60'] = hist_vol(df['ret'], 60)
2. 隐含波动率(IV)
IV 不能直接由价格序列算出,而是通过期权定价模型反解。以 Black-Scholes 模型为例:已知期权市价、标的价格、行权价、到期时间、无风险利率,反推使理论价格等于市价的波动率参数。
# 伪代码:牛顿迭代反解 IV
def implied_vol(option_price, S, K, T, r, option_type='call'):
sigma = 0.2 # 初始猜测
for _ in range(100):
price = bs_price(S, K, T, r, sigma, option_type)
vega = bs_vega(S, K, T, r, sigma)
diff = price - option_price
if abs(diff) < 1e-6:
break
sigma -= diff / vega
return sigma
实战中常用 VIX 或期权链的平值 IV 作为市场预期波动率代理。注意:IV 包含风险溢价,通常高于后续 RV。
3. 已实现波动率(RV)
RV 强调用实际发生的高频数据计算,常见形式为日内收益率平方和:
RV_t = sum(r_{t,i}^2) # i 为日内第 i 个采样区间
若用日频数据,RV 与 HV 在窗口内计算方式接近,但 RV 更强调“已实现”这一事实,常用于波动率预测模型的标签或评估基准。
三、对比表格:三种波动率的关键差异
| 维度 | 历史波动率 HV | 隐含波动率 IV | 已实现波动率 RV |
|---|---|---|---|
| 数据来源 | 过去价格序列 | 期权市场价格 | 实际高频/日频收益率 |
| 时间视角 | 回溯 | 前瞻预期 | 已发生实测 |
| 是否含溢价 | 否 | 通常含风险溢价 | 否 |
| 主要用途 | 仓位调节、风险预算 | 情绪判断、对冲成本 | 评估、预测基准 |
| 典型窗口 | 20/60/252 日 | 近月/次月期权 | 日内 5 分钟或日频 |
| 对策略影响 | 直接决定杠杆倍数 | 辅助判断是否降杠杆 | 验证波动率目标效果 |
四、案例与场景:波动率目标策略中如何选用
假设某策略设定年化目标波动率为 10%,当前标的 HV20 为 25%,则理论杠杆约为 10%/25% = 0.4 倍。若此时 IV 显著高于 HV,说明市场预期未来波动更大,可进一步压低杠杆;若 IV 低于 HV,则需警惕市场低估风险。
再比如,当 RV 持续低于 HV 时,说明实际波动比历史估计更小,策略可能过于保守;反之,RV 持续高于 HV,则说明历史窗口反应滞后,需要缩短窗口或引入 EWMA 加权。
五、误区与复盘
- 误区一:把 IV 当成未来 RV 的无偏预测。IV 含风险溢价,长期看通常高于 RV,直接用它做仓位调节会系统性偏低杠杆。
- 误区二:窗口越短越灵敏,但噪声也越大。HV5 反应快,但容易在震荡市频繁调仓;HV60 更稳,但滞后明显。建议多窗口结合。
- 误区三:忽略收益率频率与年化因子。日频用 sqrt(252),周频用 sqrt(52),分钟频需按交易分钟数调整,否则波动率量级会错。
- 误区四:用 RV 直接替代 HV 做实时仓位。RV 是事后值,若未做预测处理,容易“追涨杀跌”。