第四章:配对交易实战——如何挑选配对标的、价差计算、Z-score阈值设定
配对交易,说白了就是找两个“长得像”的股票,赌它们价差会回归。听起来简单,但实操中坑不少。我做了这么多年,踩过的雷能绕交易所三圈。今天咱们就聊聊,怎么挑配对、算价差、设阈值。
4.1 挑选配对标的:别只看相关性
很多人一上来就算相关系数,觉得0.9以上就是好配对。嗯,这里要注意——相关性高不代表能套利。我见过太多相关系数0.95的配对,一开仓就亏到怀疑人生。
为什么?因为相关性衡量的是线性关系,但配对交易需要的是协整关系。两个股票可能短期走势相似,但长期价差越跑越远,这种配对就是坑。
核心原则:配对标的必须满足协整性检验。简单说,就是它们的价差是平稳的,会围绕均值来回摆动。
我个人习惯,先按行业筛选。同行业的股票,业务模式、风险因子都接近,价差更容易回归。比如银行股里挑招行和兴业,能源股里选中石油和中石化。
然后做两步筛选:
- 相关性检验:算过去60天或120天的相关系数,要求>0.8。这只是初筛,别太较真。
- 协整检验:用Engle-Granger两步法或Johansen检验。p值<0.05才算通过。
避坑指南:我曾经用纯相关性选了对“完美配对”,回测曲线漂亮得不行。结果实盘第一天,价差就突破了历史极值,亏了5%。后来才发现,那俩股票虽然走势像,但基本面完全不同——一个重资产,一个轻资产。所以,一定要看基本面逻辑。
4.2 价差计算:标准化才是关键
选好配对后,怎么算价差?直接拿A价格减B价格?别闹。股价绝对值不同,价差根本没意义。
正确的做法是算标准化价差。我常用两种方法:
方法一:回归残差法
用A的价格对B的价格做线性回归:
import statsmodels.api as sm
# 假设price_A, price_B是pandas Series
X = sm.add_constant(price_B)
model = sm.OLS(price_A, X).fit()
residuals = model.resid # 这就是价差
残差就是价差。它已经剔除了B对A的线性影响,更干净。
方法二:对数价格差
直接算ln(A) - ln(B)。好处是消除了量纲,而且对数收益率天然适合做统计建模。
import numpy as np
spread = np.log(price_A) - np.log(price_B)
我个人偏好回归残差法。为什么?因为它在统计上更严谨,能捕捉到两个股票之间的真实关系。不过对数价格差计算简单,做快速回测时我也用。
注意:无论用哪种方法,价差序列必须做平稳性检验(ADF检验)。如果价差不平稳,说明配对不成立,赶紧换标的。
4.3 Z-score阈值设定:别迷信±2
价差算出来了,怎么设开仓平仓阈值?很多人直接套用Z-score ±2,觉得这是标准答案。其实不然。
Z-score = (当前价差 - 价差均值) / 价差标准差。它告诉你当前价差偏离均值多少个标准差。
理论上,Z-score超过±2的概率只有5%左右,适合做开仓信号。但实盘中,我遇到过Z-score跑到±3还不回归的情况。为什么?因为价差分布不是标准正态——它有厚尾。
我的经验:先看历史回测,找到最优阈值。一般步骤:
- 计算历史价差的Z-score序列
- 遍历不同的阈值(比如1.5到3.0,步长0.1)
- 对每个阈值做回测,算夏普比率、最大回撤
- 选夏普比率最高的那个阈值
举个例子,我做过一个银行股配对:
| 阈值 | 年化收益率 | 夏普比率 | 最大回撤 |
|---|---|---|---|
| 1.5 | 8.2% | 0.9 | -12% |
| 2.0 | 12.5% | 1.5 | -8% |
| 2.5 | 9.8% | 1.1 | -10% |
你看,±2.0反而是最优的。但换一组股票,最优阈值可能变成1.8或2.2。所以,别偷懒,一定要做参数优化。
避坑指南:我曾经用固定阈值±2跑了一个能源股配对,结果连续触发5次止损。后来一查,那段时间原油价格暴跌,两个股票的基本面逻辑变了。所以,阈值要动态调整——比如每20个交易日重新计算均值和标准差。
4.4 完整流程:从挑选到实盘
来,咱们把整个流程串起来。我画了张图,你看一眼就明白:
你看,整个流程是个闭环。从挑选标的开始,到实盘监控,再到循环迭代。我见过很多人只做前两步,然后就躺平了。结果市场一变,配对失效,亏得底朝天。
最后说一句:配对交易不是印钞机。它赚的是统计套利的钱,胜率可能高,但单笔盈利有限。所以,仓位管理比阈值更重要。我一般单笔不超过总资金的2%,止损设在1.5倍ATR。
总结一下:
- 挑选标的:协整检验 > 相关性检验,基本面逻辑不能少
- 价差计算:回归残差法更严谨,对数价差更简单
- 阈值设定:别迷信±2,回测优化 + 动态调整才是王道
- 风控:硬止损 + 仓位管理,缺一不可
好了,这一章就到这儿。记住,实战中多复盘、多调整,别指望一套参数吃遍天。咱们下一章见。