3. 波动率基础

在波动率目标CTA策略中,波动率不是附属指标,而是仓位计算的核心输入。理解波动率的定义、来源与度量方式,直接决定了后续动态仓位公式是否可靠。本节从最基础的概念出发,建立可用于实战的波动率认知框架。

一、波动率的本质:收益的不确定性度量

波动率(Volatility)衡量的是资产收益率围绕其均值波动的程度。在金融工程中,它通常被定义为收益率的标准差,并以年化形式表达。若某期货品种日收益率标准差为1%,按一年约252个交易日计算,年化波动率约为 1% × √252 ≈ 15.87%。

波动率具有三个关键特征:

  • 不可直接观测:它是统计推断量,而非市场价格本身,只能通过收益率序列估计。
  • 具有聚集性:高波动往往伴随高波动,低波动伴随低波动,这为波动率目标策略提供了可预测性基础。
  • 均值回归倾向:极端高波动或低波动通常难以长期持续,存在向中枢回归的倾向。
核心逻辑:波动率目标策略并不预测方向,而是利用波动率的可估计性与聚集性,在波动上升时降低仓位、波动下降时提高仓位,使组合风险暴露保持相对稳定。

二、历史波动率与隐含波动率的区别

历史波动率(Historical Volatility, HV)基于已实现的收益率序列计算,属于“向后看”的统计量;隐含波动率(Implied Volatility, IV)则从期权市场价格反推而来,反映市场对未来波动的预期,属于“向前看”的预期量。

维度 历史波动率(HV) 隐含波动率(IV)
数据来源 标的资产历史收益率 期权市场价格
时间方向 回顾过去 预期未来
计算方式 收益率标准差年化 期权定价模型反解
适用场景 CTA仓位计算、风险预算 期权交易、波动率溢价分析
主要局限 滞后于市场变化 受供需与情绪影响大

对于以期货为主要标的的CTA策略,历史波动率是更直接、更稳定的输入。隐含波动率虽不直接用于仓位公式,但可作为辅助判断:当IV显著高于HV时,往往意味着市场预期未来波动放大,可提前收紧仓位。

三、常见波动率指标与计算方式

实战中常用的波动率指标包括以下几类:

  1. 简单历史波动率:对最近N日收益率求标准差并年化,计算简单但对极端值敏感。
  2. 指数加权波动率(EWMA):对近期数据赋予更高权重,响应更快,适合捕捉波动率突变。
  3. Parkinson波动率:利用最高价与最低价估计,比收盘价法更高效,适合日内波动较大的品种。
  4. Garman-Klass波动率:同时使用开高低收四个价格,信息利用率更高。
  5. ATR(平均真实波幅):虽非严格波动率,但常作为仓位缩放的替代指标,直观反映价格波动幅度。

以下为Python中计算年化历史波动率与EWMA波动率的示例:

import numpy as np
import pandas as pd

# 假设 df 包含 'close' 列
returns = np.log(df['close'] / df['close'].shift(1)).dropna()

# 简单历史波动率(20日,年化)
hv_20 = returns.rolling(20).std() * np.sqrt(252)

# EWMA波动率(lambda=0.94,年化)
ewma_var = returns.ewm(alpha=0.06, adjust=False).var()
ewma_vol = np.sqrt(ewma_var) * np.sqrt(252)

# ATR(14日)
high, low, close = df['high'], df['low'], df['close']
tr = pd.concat([
    high - low,
    (high - close.shift()).abs(),
    (low - close.shift()).abs()
], axis=1).max(axis=1)
atr_14 = tr.rolling(14).mean()
参数建议:CTA波动率目标策略中,短周期可用20日HV或EWMA,中长周期可用60日HV。EWMA的lambda通常取0.94(日频),对应半衰期约11天,兼顾灵敏与稳定。

四、波动率指标的选择与常见误区

不同波动率指标在实战中的表现差异明显。选择时需考虑品种特性、调仓频率与策略目标。以下为常见误区与复盘要点:

  • 误区一:窗口越短越好。过短窗口噪声大,仓位频繁跳动,交易成本上升。建议结合策略调仓周期选择窗口。
  • 误区二:忽略年化因子。不同品种交易天数不同,年化因子应统一,否则跨品种比较失真。
  • 误区三:直接用ATR替代波动率。ATR与价格水平相关,未标准化,跨品种不可比,需除以价格转为百分比形式。
  • 误区四:忽视波动率突变。当HV突然跳升时,应设置上限或平滑机制,避免仓位骤降引发过度反应。
复盘提示:在波动率目标策略中,波动率估计的稳定性比精确性更重要。建议对波动率序列做 winsorize 处理(如1%和99%分位截断),并设置仓位上下限,防止极端值导致仓位异常。

下图展示了从价格序列到波动率估计、再到仓位缩放的核心数据链路,帮助理解各环节的输入输出关系。

价格序列 开高低收 收益率计算 对数收益率 波动率估计 HV / EWMA Parkinson / ATR 年化处理 仓位缩放 目标波动率 / 当前波动率 仓位 手数 波动率目标CTA核心数据链路 辅助参考:隐含波动率IV 用于预期判断与风控收紧