波动率目标化
把每个资产的仓位按目标波动率与估计波动率之比缩放:
为信号方向, 为波动率估计(EWMA 或短窗口,见GARCH 族)。波动大的资产仓位小、波动小的仓位大——每个头寸承担近似相同的风险。这是趋势策略提高夏普、降低尾部风险最重要的单一技术:实证上能把夏普提升 0.2–0.4,并显著削平回撤。
三个必须处理的细节
Section titled “三个必须处理的细节”- 估计窗口:全样本波动率响应太慢;短窗口(20–60 日)EWMA 响应快但抖动大。趋势场景的默认是 30–60 日 EWMA 或 GARCH 预测;
- 杠杆上限:低波动期(如 2017 年的平静市场) 很小, 会给出荒谬的大仓位——必须设置杠杆上限(如 2–3 倍名义);
- 再平衡频率:仓位缩放本身产生换手与成本,日度缩放要对比成本;通常每日计算、但缩放阈值(如偏离 20% 才调仓)可显著省成本。
import numpy as npimport pandas as pd
def vol_target_position(signal: pd.Series, returns: pd.Series, target: float = 0.10, lev_cap: float = 2.0, window: int = 60) -> pd.Series: """信号 → 波动率目标化仓位。target: 年化目标波动率""" vol = returns.ewm(span=window, min_periods=window).std().shift(1) * np.sqrt(252) lev = (target / vol).clip(upper=lev_cap) # 杠杆上限是硬要求 return (signal * lev).fillna(0)普适性与局限
Section titled “普适性与局限”- 不只趋势:波动率目标化同样适用于截面动量(截面动量的"动量崩溃"正靠它缓解)与任何基于收益的策略;
- 局限:它假设波动率自相关——对跳空无效;熔断、闪崩日的仓位来不及调整,见危机 alpha 与分散;
- 波动率目标化本身会轻微改变策略收益的自相关(正自相关策略被缩放后夏普改善更明显),评估时要意识别把"缩放红利"误认为信号改进。
量化中的用法
Section titled “量化中的用法”- 波动率估计用短窗口 EWMA 或 GARCH 预测,不用全样本;
- 杠杆上限写进配置,回测与实盘一致;
- 评估"加波动率目标化前后"的差异,确认改进不是来自运气。
- 短窗口(20–60 日)EWMA 波动率响应更快
- 必须设置杠杆上限,否则低波动期仓位会过大
- 波动率目标化同样适用于截面动量与任何收益类策略