4、配对交易策略:如何选择配对品种?相关性分析与协整检验实战

配对交易的核心,说白了就是找两个「长得像」的品种。

你想想看,如果两个品种的价差总是围绕一个均值波动,那当价差偏离均值时,我们就可以做多一个、做空另一个,等它回归。这就是配对交易的基本逻辑。

但问题来了——怎么判断两个品种「长得像」?

我刚开始做跨品种套利时,犯过一个低级错误:看到两个品种走势图几乎重合,就兴冲冲地建仓了。结果呢?价差越走越远,最后止损出局。后来我才明白,光看走势图是不够的,我们需要更严谨的数学工具。

4.1 相关性分析:第一道筛选

相关性分析是最直观的方法。它衡量两个品种价格变动的同步程度。

常用的指标是皮尔逊相关系数,取值范围在 -1 到 1 之间。1 表示完全正相关,-1 表示完全负相关,0 表示不相关。

经验阈值:我个人习惯把相关系数 > 0.8 作为初步筛选标准。低于这个值,配对效果通常不理想。

但这里有个坑——相关性不等于因果性。两个品种可能因为共同的市场因素而表现出高相关性,但它们的价差并不一定具有均值回归特性。

举个例子:

螺纹钢和热卷,两者都受钢铁行业影响,相关系数经常在 0.9 以上。但它们的价差会随着供需结构变化而漂移,并不稳定。这就是为什么相关性分析只能作为第一道筛选。

4.2 协整检验:真正的试金石

协整检验才是配对交易的核心。它检验的是两个品种之间是否存在长期均衡关系。

说白了,相关性看的是「走势像不像」,协整看的是「价差会不会回归」。

我常用的方法是 Engle-Granger 两步法:

  1. 第一步:用 OLS 回归估计协整关系。假设品种 A 和品种 B,我们做回归:A = α + β × B + ε
  2. 第二步:对残差 ε 进行单位根检验(ADF 检验)。如果残差是平稳的,说明两个品种存在协整关系。

实战技巧:ADF 检验的 p 值通常要求小于 0.05。但我建议你更严格一些,设成 0.01。我在项目中遇到过 p 值刚好 0.04 的配对,回测表现不错,但实盘时价差突然发散,亏了不少。后来我反思,可能是样本内过拟合了。

4.3 实战代码:从数据到结论

下面我给出一个完整的 Python 示例,展示如何从数据获取到协整检验的全流程。

import pandas as pd
import numpy as np
import statsmodels.api as sm
from statsmodels.tsa.stattools import adfuller
import yfinance as yf

# 1. 获取数据
# 以两只 ETF 为例:GLD(黄金)和 IAU(黄金)
tickers = ['GLD', 'IAU']
data = yf.download(tickers, start='2020-01-01', end='2023-12-31')['Adj Close']

# 2. 计算相关系数
corr = data[tickers[0]].corr(data[tickers[1]])
print(f'相关系数: {corr:.4f}')

# 3. 协整检验 - Engle-Granger 两步法
# 第一步:OLS 回归
X = sm.add_constant(data[tickers[1]])
model = sm.OLS(data[tickers[0]], X)
results = model.fit()
residuals = results.resid

# 第二步:ADF 检验
adf_result = adfuller(residuals)
print(f'ADF 统计量: {adf_result[0]:.4f}')
print(f'p 值: {adf_result[1]:.4f}')

if adf_result[1] < 0.05:
    print('结论:存在协整关系,适合配对交易')
else:
    print('结论:不存在协整关系,不建议配对')

注意:这个例子中 GLD 和 IAU 都是跟踪黄金价格的 ETF,理论上应该高度协整。但如果你用不同品种,比如螺纹钢和热卷,结果可能就不一样了。我曾经测试过螺纹钢和热卷的 5 分钟高频数据,协整关系在 2021 年之前很稳定,但 2021 年之后因为限产政策,价差结构发生了根本性变化,协整关系就失效了。

4.4 选择配对品种的完整流程

根据我的实战经验,选择配对品种可以按以下步骤来:

  1. 行业逻辑筛选:先凭经验判断两个品种是否属于同一产业链。比如螺纹钢和热卷、豆粕和豆油、黄金和白银。
  2. 相关性分析:计算滚动相关系数(比如 60 天窗口),确保相关性稳定在 0.8 以上。
  3. 协整检验:用 ADF 检验确认残差平稳性。p 值建议 < 0.01。
  4. 回测验证:用历史数据模拟交易,检查夏普比率、最大回撤等指标。
  5. 压力测试:看看极端行情下(比如 2020 年 3 月),价差是否还能回归。

嗯,这里要注意一点:协整关系不是一成不变的。我建议你每 3 个月重新检验一次,或者用滚动窗口的方式动态更新。

4.5 常见误区与避坑指南

  • 误区一:只看相关性,不看协整。相关性高不代表价差会回归。
  • 误区二:协整检验通过就万事大吉。我曾经有一个配对,协整检验 p 值 0.003,但实盘时价差持续偏离了 3 个月,最后被迫止损。后来发现是样本内数据太短,没有覆盖到结构性变化。
  • 误区三:忽略交易成本。配对交易通常需要双边开仓,手续费和滑点会吃掉不少利润。我建议你在回测时至少考虑 2 个 tick 的滑点。

核心总结:相关性分析是「找朋友」,协整检验是「验朋友」。两者缺一不可。我个人的经验是,先做相关性筛选,再做协整检验,最后用回测验证。这样能过滤掉 80% 以上的无效配对。

4.6 本章知识体系

下面这张图展示了配对品种选择的完整逻辑流程:

配对品种选择流程 行业逻辑筛选 相关性分析 协整检验 回测验证 压力测试 关键指标 • 相关系数 > 0.8 • ADF p值 < 0.01 • 夏普比率 > 1.5 • 最大回撤 < 10% • 胜率 > 60% 注意: 协整关系会随时间 变化,建议每季度 重新检验一次。

这张图把整个流程串起来了。从行业逻辑开始,到压力测试结束,每一步都不能跳过。我见过不少新手,相关性分析一过就直接上实盘,结果亏得灰头土脸。

我的建议:刚开始做配对交易时,先找那些「天然配对」的品种,比如同一商品的不同月份合约、同一指数的不同 ETF。这些品种的协整关系通常比较稳定,适合练手。等积累了一定经验,再尝试跨品种配对,比如螺纹钢和热卷、豆粕和豆油。

好了,关于配对品种的选择,今天就聊到这里。记住:相关性分析是敲门砖,协整检验才是试金石。两者结合,才能找到真正适合配对交易的品种。