2. 均值回归基础

均值回归是量化交易中最容易被“口头接受”、却最容易在实盘中“误用”的概念之一。很多人把它简单理解为“跌多了会涨、涨多了会跌”,但真正决定策略成败的,是回归的对象是什么、回归的速度有多快、偏离到什么程度才算异常、以及偏离后是否真的会回来。本章围绕这四个问题,建立均值回归的统计基础,为后续多模型组合与风险控制打下地基。

一、核心原理:均值回归到底在说什么

均值回归(Mean Reversion)指某一时间序列在长期中存在一个相对稳定的中心水平,当价格或指标偏离该中心时,未来有较大概率向中心靠拢。它的数学直觉来自平稳过程:若序列的均值、方差和自协方差不随时间漂移,则极端值出现的概率会自然被“拉回”。

需要区分两个层次:

  • 价格均值回归:价格本身围绕某个长期均值波动,如部分商品、汇率区间。
  • 价差/比率均值回归:两个相关资产的价格差或比值围绕稳定中枢波动,这是配对交易与统计套利的核心。

均值回归不等于“抄底摸顶”。它依赖统计结构,而非主观判断。若序列是非平稳的随机游走,价格创新低后继续创新低是常态,此时“回归”只是幻觉。

关键结论:均值回归策略的收益来源不是预测方向,而是捕捉“偏离—收敛”的统计规律,并用风险控制防止偏离无限扩大。

二、统计原理:从随机过程到可交易信号

判断一个序列是否适合做均值回归,常用以下统计工具:

  1. ADF 检验:检验序列是否存在单位根。若拒绝单位根假设,说明序列倾向平稳,具备均值回归基础。
  2. Hurst 指数:H<0.5 表示反持续性(均值回归),H=0.5 近似随机游走,H>0.5 表示趋势性。
  3. 半衰期:用 Ornstein-Uhlenbeck 过程估计偏离后回归一半所需时间,决定持仓周期与止损宽度。
  4. Z-Score:将价差标准化,Z=(价差-均值)/标准差,用于生成开平仓阈值。

其中半衰期尤为关键。若半衰期是 2 天,却按 20 天持仓,资金效率极低;若半衰期是 30 天,却按 1 天止损,则会被正常波动反复扫损。

# 以价差序列 spread 为例,估计半衰期
import numpy as np
import statsmodels.api as sm

spread_lag = spread[:-1]
spread_now = spread[1:]
X = sm.add_constant(spread_lag)
model = sm.OLS(spread_now, X).fit()

theta = model.params[1]          # 回归系数
half_life = -np.log(2) / np.log(theta)
print("半衰期(天):", round(half_life, 2))

三、平稳性与协整:均值回归的“合法性”来源

平稳性针对单个序列,协整针对多个序列的组合。两者关系可以用一句话概括:平稳是单变量均值回归的前提,协整是多变量价差均值回归的前提。

概念 对象 核心含义 交易含义
平稳性 单序列 均值、方差、自协方差不随时间变化 可直接对价格或指标做 Z-Score 回归
协整 多序列组合 各自非平稳,但线性组合平稳 可做配对/统计套利,价差可回归
伪回归 多序列 无协整关系却回归出高 R² 策略看似有效,实盘易失效

协整检验常用 Engle-Granger 两步法或 Johansen 检验。Engle-Granger 先对两资产价格做 OLS 回归得到对冲比率,再对残差做 ADF 检验;若残差平稳,则存在协整关系。

# Engle-Granger 两步法示例
import statsmodels.api as sm
from statsmodels.tsa.stattools import coint

score, pvalue, _ = coint(price_a, price_b)
print("协整检验 p-value:", round(pvalue, 4))
# pvalue < 0.05 通常认为存在协整关系
常见误区:把“相关系数高”等同于“可做配对交易”。相关系数衡量同步涨跌,协整衡量价差是否稳定。两个资产可以高度相关,但价差持续扩大,此时做价差回归会持续亏损。

四、常见应用场景与实战流程

均值回归在以下场景中应用广泛:

  • 配对交易:同行业、同因子暴露的两只股票,价差偏离后做多低估、做空高估。
  • ETF 与成分股套利:ETF 净值与一篮子股票之间价差回归。
  • 跨期套利:同一品种不同到期合约价差回归。
  • 日内反转:短周期价格偏离 VWAP 或均线后回归。
  • 因子中性化后的残差回归:剔除市场、行业、风格后的残差做反转。

一个可复用的实战流程如下:

  1. 筛选候选资产或组合,要求经济逻辑相关。
  2. 做平稳性/协整检验,确认统计合法性。
  3. 估计均值、标准差与半衰期,确定 Z-Score 阈值。
  4. 设定开仓、加仓、平仓、止损规则,并做样本外回测。
  5. 监控协整关系是否破裂,设置滚动窗口重新检验。
复盘要点:均值回归策略最危险的时刻,不是偏离很大,而是基本面结构发生变化导致均值本身移动。此时“回归”变成“接飞刀”。因此必须设置最大偏离止损、协整失效退出和时间止损三重保护。

总结来看,均值回归的统计基础可以浓缩为一条判断链:先看平稳性,再看协整性,再估半衰期,最后用 Z-Score 和风险控制落地。缺少任何一环,策略都可能从“统计套利”退化为“主观赌博”。