4. 统计套利模型:均值回归与配对交易
配对交易,说白了就是找两个长得像的股票,赌它们价格差不会跑偏太久。我刚开始做这个策略时,总觉得它简单——不就是买一个卖一个嘛。结果第一次实盘就给我上了一课:你以为的均值回归,可能只是趋势的开始。
嗯,今天咱们就把这个模型拆开揉碎了讲。我会把我在项目中踩过的坑、总结的经验,都摊在桌面上。
4.1 均值回归的直觉与数学
先问个问题:为什么两个不同的资产价格会一起波动?
原因其实很朴素。比如茅台和五粮液,都是白酒龙头。它们的基本面高度相似,受同样的宏观经济、行业政策影响。所以长期看,它们的价格走势应该差不多。
但短期呢?市场情绪、资金流动、消息面冲击,都会让它们的价差暂时偏离。这时候,均值回归就登场了——价差大了,迟早会缩回来。
数学上,我们通常用Ornstein-Uhlenbeck过程来描述这种均值回归行为:
dX(t) = θ(μ - X(t))dt + σdW(t)
这里X(t)是价差,μ是长期均值,θ是回归速度,σ是波动率。θ越大,回归越快。
我个人习惯用ADF检验(Augmented Dickey-Fuller test)来判断价差是否平稳。如果p值小于0.05,就说明价差是均值回归的,可以做配对交易。
核心要点:配对交易的前提是价差平稳。不平稳的价差,做进去就是接飞刀。
4.2 配对选择的实战方法
选对配对,策略就成功了一半。我见过太多人随便找两个同行业的股票就开干,结果亏得底朝天。
常用的配对方法有几种:
- 距离法:计算历史价格的相关性,选相关系数最高的对子。简单粗暴,但容易过拟合。
- 协整法:用Engle-Granger两步法或Johansen检验,找协整关系。更稳健,但计算量大。
- 最小化残差法:用OLS回归,选残差标准差最小的对子。我比较喜欢这个,因为它直观。
举个例子,我曾在项目中用协整法筛选沪深300成分股。代码大概长这样:
import statsmodels.api as sm
from statsmodels.tsa.stattools import coint
# 假设price_a和price_b是两个股票的价格序列
score, pvalue, _ = coint(price_a, price_b)
if pvalue < 0.05:
print("存在协整关系,可以做配对")
else:
print("别碰,这俩不搭")
你想想看,如果p值大于0.05,说明价差可能是个随机游走。做进去,你就是在赌它不会继续发散——这跟赌博没区别。
我的经验:选配对时,别只看统计指标。行业逻辑、流动性、交易成本,都得考虑进去。我曾经选了一对协整关系极好的股票,结果一个流动性太差,滑点吃掉所有利润。
4.3 交易信号的生成与执行
有了配对,接下来就是怎么进场、怎么出场。我一般用Z-score来标准化价差:
z = (spread - spread.mean()) / spread.std()
当Z-score超过某个阈值(比如2),我就开仓。当它回归到0附近,我就平仓。
但这里有个坑:阈值设多少?设小了,频繁交易,手续费吃掉利润。设大了,可能等不到回归,资金占用成本高。
我建议用滚动窗口动态调整阈值。比如用过去60天的数据计算均值和标准差,每天更新。这样能适应市场变化。
具体执行时,我习惯用限价单进场,市价单出场。为什么?进场时我不急,可以等好价格。出场时我要快,防止价差突然反转。
避坑指南:我曾经在2015年股灾时做配对交易,Z-score到了3都没回归。后来发现是市场结构变了——两个股票的基本面出现了分化。所以,一定要设置止损。我一般用Z-score的5倍标准差作为硬止损线。
4.4 资金管理与风险控制
配对交易不是无风险的。最大的风险是价差发散不回归。这时候,你的多空两头都在亏钱。
我的资金管理原则很简单:
- 单笔风险不超过总资金的1%。比如你有100万,单笔最多亏1万。
- 同时持仓不超过5个配对。多了你盯不过来,相关性也会增加风险。
- 动态调整仓位。价差越大,仓位越重?错!价差越大,风险越大,应该减仓。
我常用凯利公式来算仓位。但凯利公式有个问题:它假设你知道胜率和赔率。在配对交易中,这些参数是变化的。所以我一般用半凯利,更保守。
举个例子:假设胜率60%,赔率1.5,凯利比例是(0.6*1.5 - 0.4)/1.5 = 0.33。半凯利就是0.165,也就是用16.5%的资金开仓。
记住:配对交易的核心不是预测方向,而是管理风险。你控制住亏损,盈利自然来。
4.5 知识体系总览
下面这张图,是我自己总结的配对交易知识体系。你可以把它当作一个检查清单:
这张图把配对交易的四个核心模块串起来了。你从左上角开始,一步步往下走,就能搭起一个完整的策略框架。
最后说一句:统计套利不是印钞机。它需要你持续监控、不断调整。市场在变,你的模型也得跟着变。保持敬畏,控制风险,才能活得久。
公众号:蓝海资料掘金营,微信deep3321