波动率建模:GARCH 族
波动率可预测
Section titled “波动率可预测”收益本身接近不可预测,但收益的方差呈现强烈的聚集(大波动跟大波动)与均值回复——这是金融时序中少数真正可靠的可预测成分。GARCH(1,1) 用三个参数刻画它:
其中 。无条件方差为 ; 接近 1 表示高持续性——一次冲击的影响衰减很慢。
杠杆效应与非对称模型
Section titled “杠杆效应与非对称模型”负收益带来比同幅度正收益更大的后续波动(杠杆效应:下跌推高杠杆率),对称的 GARCH 刻画不了它。两个常用修正:
- GJR / Threshold GARCH:加一项区分正负冲击,, 即杠杆效应;
- EGARCH:在对数方差上建模,天然保证方差为正,且允许冲击影响不对称。
EWMA:多数应用已足够
Section titled “EWMA:多数应用已足够”RiskMetrics 的指数加权移动平均只有衰减因子一个参数(日频取 ):
它相当于 的 GARCH(1,1),不做长期均值回复,但响应快、免估计。做仓位缩放(见波动率目标化)时,EWMA 与 20–60 日简单窗口已是绝大多数场景的最优性价比。
import numpy as np
def ewma_vol(returns: np.ndarray, lam: float = 0.94) -> np.ndarray: """RiskMetrics EWMA 波动率,日频""" eps2 = returns ** 2 var = np.zeros_like(eps2) var[0] = eps2[0] for t in range(1, len(eps2)): var[t] = (1 - lam) * eps2[t - 1] + lam * var[t - 1] return np.sqrt(var * 252) # 年化
# 需要 GARCH/EGARCH 时用 arch 库:# from arch import arch_model# res = arch_model(returns * 100, vol="GARCH", p=1, q=1, dist="t").fit()# res.forecast(horizon=1).varianceGARCH 在仓位管理中的用途
Section titled “GARCH 在仓位管理中的用途”- 波动率目标化:用 预测(而非历史实现)作为仓位分母,响应更快;
- VaR/ES 计算:条件分布下的尾部度量比无条件分布更贴近明天,见回撤、VaR 与止损;
- 残差标准化:策略收益除以 GARCH 条件波动率后,再评估 t 值与夏普,排除"波动率择时"的虚假贡献。
量化中的用法
Section titled “量化中的用法”- 仓位缩放用 EWMA 或短窗口 GARCH 预测波动率,不用全样本波动率;
- 评估策略时用条件波动率标准化收益,分离"择波动率"与"择方向";
- 报告 与半衰期,判断波动率持续性是否合理。
- GARCH(1,1) 的无条件方差 , 接近 1 表示高持续性
- 杠杆效应:负收益带来更大波动,需 GJR/EGARCH 等非对称模型
- 简单的 EWMA(RiskMetrics)在多数应用中已足够