配对交易入门:从零搭建你的第一套统计套利系统

大家好,我是老李。今天咱们聊聊配对交易的基本流程。

说实话,我刚入行那会儿,觉得配对交易特别神秘。两个股票之间还能有稳定关系?后来做多了才发现,这玩意儿说白了就是「找亲戚」——找到两个走势相似的股票,利用它们之间的价差波动来赚钱。

嗯,咱们先看一张整体流程图,心里有个谱。

配对交易四大核心流程 筛选配对 相关性分析 建模 协整检验 交易执行 开平仓信号 风险管理 止损/仓位 持续监控 & 动态调整 每个环节都不可或缺,跳过任何一步都可能翻车

第一步:筛选配对——别乱点鸳鸯谱

配对交易的第一步,就是找到合适的「一对」。不是随便拉两个股票就能做的。

我个人习惯先看行业。同行业的股票,业务模式相似,受同样的宏观因素影响,天然容易产生稳定关系。比如茅台和五粮液,招行和兴业银行。

然后做相关性分析。我一般用滚动窗口计算相关系数,窗口取60个交易日。低于0.7的,直接pass。

核心筛选标准:

  • 同行业或同板块
  • 日收益率相关系数 > 0.7
  • 市值规模相近(避免流动性差异)
  • 交易量活跃(日均成交额 > 1亿)

你想想看,如果两个股票市值差10倍,一个轻轻松松被拉涨,另一个纹丝不动,这配对能稳定吗?我在项目中遇到过这种情况,当时选了茅台和某小酒企,结果小酒企一天波动10%,茅台才动1%,价差根本没法做。

第二步:建模——给关系画个框

筛选出候选对之后,就要建模了。说白了,就是找到两个价格之间的数学关系。

最经典的方法是协整检验。嗯,这里要注意,协整不等于相关。两个股票可能相关系数很高,但长期看价差越走越远,那就没法做配对。

我一般用Engle-Granger两步法:

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检验
adf_result = sm.tsa.stattools.adfuller(residuals)
print(f'ADF统计量: {adf_result[0]:.4f}')
print(f'p值: {adf_result[1]:.4f}')

# p值小于0.05,说明残差平稳,可以配对
if adf_result[1] < 0.05:
    print('恭喜,这对可以搞!')
else:
    print('这对不行,换一对吧')

我的小技巧: 除了ADF检验,我还会看残差的自相关图。如果残差有明显的季节性模式,说明模型没捕捉全,可能需要加入滞后项。

建模完成后,我们会得到两个关键参数:对冲比率(hedge ratio)和价差序列。对冲比率就是回归系数,告诉你买1份A需要卖多少份B。

第三步:交易执行——什么时候动手?

模型建好了,接下来就是执行。说白了,就是等机会。

价差序列会围绕均值上下波动。当价差偏离均值超过某个阈值时,我们就开仓。当价差回归均值时,我们就平仓。

阈值怎么设?我一般用标准差。比如:

  • 价差 > 2倍标准差 → 做空价差(卖A买B)
  • 价差 < -2倍标准差 → 做多价差(买A卖B)
  • 价差回归到0.5倍标准差以内 → 平仓

避坑指南: 我曾经把阈值设得太小(1倍标准差),结果频繁开平仓,手续费吃掉了大部分利润。后来改成2倍标准差,虽然交易次数少了,但每笔的胜率和盈亏比都上来了。

执行时还要注意滑点。尤其是小市值股票,你挂单可能吃不到货。我建议用限价单,别用市价单。

第四步:风险管理——活着比赚钱重要

这一步,很多人会忽略。但我告诉你,这是整个流程里最重要的环节。

配对交易不是无风险的。万一两个股票的基本面发生根本性变化(比如一个被收购、一个暴雷),价差可能永远回不来。

我的风控三板斧:

  1. 硬止损: 价差超过3倍标准差,无条件平仓。别犹豫,犹豫就会败北。
  2. 仓位控制: 单笔配对不超过总资金的5%。分散到5-10个配对,一个炸了还有别的。
  3. 动态监控: 每周重新跑一次协整检验。如果p值变大了,说明关系在变弱,考虑退出。

记住一句话: 配对交易赚的是均值回归的钱,但均值不回归才是常态。风控就是你的安全带。

嗯,说到这,基本流程就讲完了。筛选配对、建模、交易执行、风险管理,四个步骤环环相扣。我个人觉得,新手最容易栽在第一步和第四步——要么选错了对,要么忘了止损。

你想想看,如果连配对都没选好,后面建模再漂亮也是白搭。如果忘了止损,一次黑天鹅就能让你回到解放前。

好了,这一章就到这里。下一章咱们深入聊聊「筛选配对」的具体方法,包括怎么用Python批量跑相关性分析和协整检验。


公众号:蓝海资料掘金营,微信deep3321