3、统计套利基础:均值回归、协整关系、平稳性检验(ADF检验)
统计套利,说白了就是利用两个或多个资产之间的价格关系来赚钱。你想想看,如果两只股票长期走势像双胞胎一样形影不离,突然有一天它们分开了,那大概率会重新靠拢。这个「靠拢」的过程,就是我们套利的空间。
我个人习惯把统计套利比作「遛狗」。狗和主人之间有一根绳子,狗跑远了会被拉回来。这根绳子就是协整关系,而狗跑远又回来的过程,就是均值回归。嗯,这个比喻我用了很多年,挺形象的。
3.1 均值回归:价格会「回家」
均值回归是统计套利最核心的假设。它说的是:一个时间序列(比如价差序列)会围绕某个长期均值波动,偏离太远后就会向均值靠拢。
我在项目中遇到过这样的情况:2018年做商品期货配对交易时,螺纹钢和热卷的价差一度偏离均值3个标准差以上。当时团队里有人慌了,觉得这次不一样。结果呢?三天内价差就回归了。那次之后,我对均值回归的信仰又坚定了几分。
- 均值回归不是100%发生的,但统计上显著
- 回归速度越快,套利机会越短,资金利用率越高
- 极端偏离(3σ以上)往往意味着更好的入场点
不过要注意,均值回归也有失效的时候。我曾经踩过一个坑:2015年股灾期间,很多配对关系的均值回归彻底失灵,价差一去不回头。所以,永远要设止损。
3.2 协整关系:找到「连体婴」
协整是统计套利的数学基础。两个非平稳的时间序列,如果它们的线性组合是平稳的,就说它们存在协整关系。
听起来有点绕?我换个说法。假设你有两只股票A和B,它们各自的价格走势像醉汉走路一样随机游走。但如果你把A的价格减去2倍B的价格,得到的新序列却像正常人走路一样有规律。那A和B就是协整的。
检验协整的常用方法是Engle-Granger两步法:
- 用OLS回归估计协整系数:Y = α + βX + ε
- 对残差ε做平稳性检验(ADF检验)
如果残差是平稳的,就说明Y和X存在协整关系。就这么简单。
3.3 平稳性检验:ADF检验
ADF检验全称是Augmented Dickey-Fuller检验,用来判断一个时间序列是否平稳。平稳序列的统计性质(均值、方差)不随时间变化,这是做统计推断的前提。
ADF检验的原假设是「序列存在单位根(非平稳)」。如果p值小于0.05,就拒绝原假设,认为序列平稳。
我刚开始做量化时,经常搞混平稳性和协整的关系。后来想通了:协整检验本质上就是检验残差的平稳性。所以ADF检验是协整检验的「最后一公里」。
3.3.1 代码实现
下面是我常用的ADF检验代码,用Python的statsmodels库实现:
import numpy as np
import pandas as pd
from statsmodels.tsa.stattools import adfuller
import matplotlib.pyplot as plt
# 生成模拟数据:一个平稳序列和一个非平稳序列
np.random.seed(42)
n = 200
t = np.arange(n)
# 平稳序列:白噪声
stationary = np.random.randn(n)
# 非平稳序列:随机游走
non_stationary = np.cumsum(np.random.randn(n))
# ADF检验函数
def adf_test(series, name=''):
result = adfuller(series, autolag='AIC')
print(f'=== {name} ===')
print(f'ADF统计量: {result[0]:.4f}')
print(f'p值: {result[1]:.4f}')
print(f'临界值:')
for key, value in result[4].items():
print(f' {key}: {value:.4f}')
if result[1] < 0.05:
print('结论: 序列平稳(拒绝原假设)')
else:
print('结论: 序列非平稳(无法拒绝原假设)')
print()
# 执行检验
adf_test(stationary, '平稳序列')
adf_test(non_stationary, '非平稳序列')
# 可视化
fig, axes = plt.subplots(2, 1, figsize=(10, 6))
axes[0].plot(stationary)
axes[0].set_title('平稳序列')
axes[0].axhline(y=0, color='r', linestyle='--')
axes[1].plot(non_stationary)
axes[1].set_title('非平稳序列')
plt.tight_layout()
plt.show()
3.4 完整流程:从数据到策略
把上面三个概念串起来,就是一套完整的统计套利流程:
- 选对:找到可能协整的资产对(同行业、同产业链)
- 检验:用ADF检验确认协整关系
- 建模:估计协整系数,计算价差
- 交易:价差偏离均值时开仓,回归时平仓
下面这张图是我自己画的流程框架,帮你理清思路:
3.5 实战中的注意事项
| 环节 | 常见问题 | 我的建议 |
|---|---|---|
| 数据频率 | 日线数据协整关系不稳定 | 用小时线或30分钟线,样本量更充足 |
| 参数更新 | 协整系数一成不变 | 每季度重新估计一次,滚动窗口 |
| 交易成本 | 忽略滑点和手续费 | 统计套利利润薄,成本必须算进去 |
| 黑天鹅 | 协整关系突然断裂 | 设硬止损,单笔亏损不超过2% |
最后说一句心里话:统计套利不是印钞机。它更像一个需要细心照料的菜园子——你得定期检查协整关系有没有「变质」,价差分布有没有「变形」。我见过太多人拿着历史回测曲线就冲进去,结果被实盘打得鼻青脸肿。
嗯,这一章的内容就到这里。记住三个关键词:均值回归是信仰,协整是桥梁,ADF检验是工具。把这三样东西吃透了,统计套利的大门才算真正打开。
价差 = 资产A价格 - β × 资产B价格
当价差偏离均值超过阈值 → 开仓
当价差回归均值 → 平仓
其中β由OLS回归估计,阈值通常设为±2σ
公众号:蓝海数据掘金营,微信deep3321