量化百科

从0到1掌握统计套利

由polll创建,最终由polll 被浏览 52 用户

首先想到利用配对交易,可能会想到两只股票的相关系数是否会让两只股票的走势有一种特定关系。

![](data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='558' height='283'></svg>)

![](data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='436' height='280'></svg>)

从图像上看,数据基本都落在一条直线上那么它们之间的相关性就会很高。 接下来我们来看看两只股票价格之间相关性高长什么样

![](data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='577' height='321'></svg>)

同样数据大多都集中在一条直线上

找到相关性高的股票对,我们要来研究它们之间的价差,因为这是我们策略套利的关键

![](data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='662' height='414'></svg>)

![](data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='673' height='378'></svg>)

进一步的我们来看看以均值加减一倍标准差是否包含了大部分的差价区间

![](data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='652' height='338'></svg>)

可以看到虽然包含了大部分价差区间,但是开仓次数太少,并且在2014年股票的差价都是在上开仓线附近小幅波动,会造成频繁开仓使得成本十分高。 同时观察2015年价差出现极端值,此时如果开仓,价差不收敛,如果没做到好的平仓条件此时会造成大量亏损。 尽管看图像上通过相关系数来做配对交易不太理想,我们还是通过回测来看看具体结果。

![](data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='808' height='447'></svg>)

但是因为中国市场上无法做空,但配对交易需要运用卖空来构建对冲仓位,我们试试在允许做空的情况下策略表现会不会相对较好一点。

![](data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='808' height='447'></svg>)

中国中冶和中海发展在2014-1-1和2016-11-1的相关性是0.968.让我们计算其60日滚动相关性来看看两者如何变化。

![](data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='511' height='306'></svg>)

从相关系数的60日滚动相关性来看其实这两只股票相关性高是因为他们在2015年一段时间同时停牌,造成这段时间的相关系数为1,从而拉高了整个时间段内的相关系数,不过两只股票同时停牌也能说明一定问题,比如他们可能会有重组的可能,当然这是后话了。 不过选择股票对时应尽量选取没有停牌的股票。

到了这里你可能会问,

为什么用2014-1-1和2016-11-1计算相关性,回测区间也在这个时间?

![](data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='266' height='246'></svg>)

我们知道,以上是错误示范。

以样本内得到的结果去回测样本内的数据,会有很大的不真实性。

之前我们谈到了利用两只股票之间的相关系数进行配对交易,但我们能通过两只相关性较高的股票对之间的差价图看出,相关性高他们之间的价差并不一定会是一个平稳序列,简单来说我们无法利用这个不收敛的价差来进行套利。

那么要进行真正统计意义上的套利得需要什么样的条件呢,那么就引出了我们的协整关系。首先谈协整我们得先知道平稳这一个概念,一个平稳序列是指数据的期望不会随时间改变,数据的方差与协方差不会随时间而改变,并且固定一个时间,往前与往后进行回归都是相同的。

所以平稳的股票是有很多统计上的好性质,可以进行套利操作,当股价达到一定高度时就要卖出,当股价低于一定数值时就需要买入,也就是俗称的低买高卖。但是一般在现实生活中不存在平稳的股票,所以很难去预测他在什么地方是高点什么地方是低点,这也就解释了为什么这么多人都是买高卖低了。虽然一般不存在平稳的股票,但是几支股票的线性组合就可能是一个平稳序列,这就是我们一般意义上提到的协整关系,通过一些股票的组合来构造平稳的序列来进行套利。但是这个平稳性也是在一定时间段来说的,我们只能根据以往的数据来判断在这段时间内是协整的,但是无法断言在之后交易的时段也是协整的。

我们来只管看一下一个平稳的序列长什么样,最简单的一个噪声序列他就是一个平稳的序列。

![](data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='655' height='407'></svg>)

![](data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='664' height='345'></svg>)

但是我们怎么在统计学意义上去检验它呢?这里有一个利用 statsmodels.tsa.stattools的方便的测试。我们应该非常低的P值,因为我们创建了两个在实际尽可能存在协整性的序列。

我们把金融业的一部分股票的p值画出来找找:(201401-201512)

![](data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='550' height='410'></svg>)

我们发现工商银行和建设银行的配对p值较小,画一下1401-1512的股价:

![](data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='687' height='335'></svg>)

要利用这组股票对进行配对交易,就得看看他们之间的存在什么样的线性关系。这里我们通过股价进行最小残差平方和(OLS)方法来进行回归。

![](data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='670' height='567'></svg>)

r-squred为0.978,说明我们拟合的参数解释了97.8%的样本数据,说明拟合结果比较好,AIC与BIC检验较小说明回归效果好,再来看看系数是否统计显著,const的系数的绝对值除标准误差std err明显大于自由度为465的t统计量,说明统计显著。至此,我们能认为我们回归得到的结果是比较好的了。

接下来我们看看线性组合的价差是否是在均值周围波动。

![](data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='667' height='300'></svg>)

至此,我们完成了配对交易的准备步骤,找到了协整股票对之间的线性关系以及股价差满足的模型,我们以'601818.XSHG'的股价减去拟合的系数0.6319倍'601988.XSHG'的股价,线性组合价差服从均值为0.9328标准误差

为0.072的正态分布。根据这样的线性关系,我们构建这么一个简单的配对交易策略:组合价差超过均值+1倍标准误差即卖出601818,买入601988;低于均值1倍标准误差即买入601818,卖出601988.

我们来看一下1601以来的回测情况:

假设不能做空,只能做多其中一只股票:

![](data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='801' height='454'></svg>)

这才是真正的银行股搬砖策略!

假设可以做空呢?

![](data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='809' height='453'></svg>)

至此,配对交易就讲完啦!

标签

统计套利配对交易