第三节 协整理论入门:平稳性检验与Engle-Granger两步法
好,咱们进入配对交易最核心的理论基础——协整。
说实话,我刚开始做量化那会儿,也踩过不少坑。很多人一上来就找相关性高的品种,觉得价格走势长得像就能配对。结果呢?价差越走越远,亏得怀疑人生。后来我才明白,真正决定配对能否赚钱的,不是相关性,而是协整性。
3.1 平稳性:时间序列的“定海神针”
先问个问题:为什么配对交易能赚钱?
因为我们认为两个品种的价差会回归均值。但你想过没有,如果价差本身就不稳定,均值一直在变,那回归个啥?
所以,第一步就是搞清楚什么是平稳性。
平稳性,说白了就是一个时间序列的统计性质不随时间变化。均值恒定、方差恒定、自协方差只与时间间隔有关。嗯,听起来有点绕,我换个说法:
- 平稳序列:像一根被钉住的绳子,来回摆动但始终围绕一个固定中心。
- 非平稳序列:像一根随风飘荡的绳子,你不知道它下一秒会飘到哪。
举个例子,白噪声是平稳的,随机游走是非平稳的。我见过不少新手把随机游走当平稳序列做回归,结果R²高得离谱,但全是伪回归——这玩意儿害人不浅。
3.2 ADF检验:给序列做“体检”
怎么判断一个序列是否平稳?最常用的就是ADF检验(Augmented Dickey-Fuller Test)。
它的核心思想很简单:检验序列是否存在单位根。存在单位根,就是非平稳;不存在,就是平稳。
ADF检验的原假设H₀:序列存在单位根(非平稳)。
备择假设H₁:序列不存在单位根(平稳)。
如果p值小于显著性水平(比如0.05),就拒绝原假设,认为序列平稳。
我在项目中习惯用Python的statsmodels库来做,代码就几行:
from statsmodels.tsa.stattools import adfuller
# 假设price是价格序列
result = adfuller(price, autolag='AIC')
print(f'ADF统计量: {result[0]:.4f}')
print(f'p值: {result[1]:.4f}')
if result[1] < 0.05:
print('序列平稳,拒绝单位根假设')
else:
print('序列非平稳,无法拒绝单位根假设')
3.3 协整关系:两个“醉汉”相互搀扶
好,现在我们知道单个序列要平稳。但配对交易里,两个价格序列通常都是非平稳的——这咋办?
别急,这就是协整的精髓所在。
协整关系的定义:如果两个或多个非平稳序列的线性组合是平稳的,那它们就存在协整关系。
我特别喜欢用一个比喻:两个醉汉走路都东倒西歪(非平稳),但他们互相搀扶着,所以相对位置是稳定的(线性组合平稳)。这就是协整。
换句话说,虽然A和B各自乱跑,但A - β×B这个价差是稳定的。这就是我们做配对交易的数学基础。
3.4 Engle-Granger两步法:实战中的“标准动作”
怎么检验两个序列是否协整?最经典的方法就是Engle-Granger两步法。名字听着高大上,其实步骤很简单:
- 第一步:用OLS回归估计协整系数β。比如回归方程:Y = α + βX + ε,得到残差ε。
- 第二步:对残差ε做ADF检验。如果残差平稳,就说明Y和X存在协整关系。
说白了,就是先找线性组合,再检验这个组合是否平稳。
代码实现也很直接:
import statsmodels.api as sm
import numpy as np
# 假设price_a和price_b是两个价格序列
X = sm.add_constant(price_b)
model = sm.OLS(price_a, X).fit()
residuals = model.resid
# 对残差做ADF检验
result = adfuller(residuals, autolag='AIC')
print(f'残差ADF p值: {result[1]:.4f}')
if result[1] < 0.05:
print('存在协整关系,可以配对交易')
hedge_ratio = model.params[1]
print(f'对冲比率: {hedge_ratio:.4f}')
else:
print('不存在协整关系,换个品种试试')
3.5 一张图看懂协整检验流程
说了这么多,我画张图帮你理清思路:
3.6 实战中的几个坑
理论讲完了,我分享几个实战中容易踩的坑:
- 伪回归陷阱:两个独立的随机游走,回归后R²可能很高,但残差是非平稳的。所以一定要做ADF检验,别只看R²。
- 样本期选择:协整关系可能随时间变化。我习惯用滚动窗口重新检验,比如每3个月重新跑一次Engle-Granger。
- 滞后阶数:ADF检验的滞后阶数选不好,结果可能天差地别。我一般用AIC或BIC自动选择,但也会手动验证一下。
好了,协整理论就讲到这里。记住一句话:没有协整,就没有配对交易。下一节咱们会讲怎么用协整关系构建交易信号,那才是真正赚钱的开始。
公众号:蓝海资料掘金营,微信deep3321