篇策略 篇研究 个想法
回测

基于时间序列的协整关系的配对交易

2019-12-11 09:09:39 分享了策略 989 4 13

基于时间序列的协整关系的配对交易

本帖主要介绍了协整的基础知识,如何对两个时间序列进行协整关系检验,并实现了一个简单的配对交易策略。

这里参考了百度百科和链接

Why

统计套利之配对交易 是一种基于数学分析交易策略,其盈利模式是通过两个标的的差价(spread)来获取,两者的价格走势虽然在中途会有所偏离,但是最终都会趋于一致。 配对交易就是利用这种价格偏离获取收益。具有这种关系的两个标的,在统计上称作 协整性(cointegration),即它们之间的差价会围绕某一个均值来回摆动,这是配对交易策略可以盈利的基础。 通俗点来讲,如果两个股票或者变量之间具有强协整性,那么不论它们中途怎么走的,它们的目的地总是一样的。

What

经典回归模型是建立在平稳数据变量的基础之上的,对于非平稳变量,不能使用经典回归模型,否则会出现虚假回归等诸多问题,但是实际应用中大多数时间序列是非平稳的。 1987年Engle和Granger提出的协整理论及其方法,为非平稳序列的建模提供了另一种途径。 虽然一些经济变量的本身是非平稳序列,但是,它们的线性组合却有可能是平稳序列。这种平稳的线性组合被称为协整方程,且可解释为变量之间的长期稳定的均衡关系。

需要 特别注意 的是 协整性相关性 虽然比较像,但实际是不同的两个东西。 两个变量之间可以相关性强,协整性却很弱,比如说两条直线,y=x和y=2x,它们之间的相关性是1,但是协整性却比较差;

方波信号和白噪声信号,它们之间相关性很弱,但是却有强协整性。(如下图) my picture

How:统计套利之配对交易

这里还有介绍一个关于时间序列的基本概念:平稳性

平稳分为两种:

  1. 强(严)平稳:给定随机过程X(t),t属于T,其有限维分布组为F(x1,x2,…xn;t1,t2,…,tn),t1,t2,…,tn属于T,对任意n任意的t1,t2,…,tn属于T,任意满足t1+h,t2+h,…,tn+h属于T的h,总有F(x1,x2,…xn;t1,t2,…,tn)=F(x1,x2,…xn;t1+h,t2+h,…,tn+h);
  2. 宽(弱)平稳:给定二阶矩过程(二阶矩存在)X(t),t属于T,如果X(t)的均值函数u(t)是常数,相关函数R(t1,t2)=f(t2-t1)即相关函数只与时间间隔有关。(我们通常用的都是弱平稳)

单整阶数:当原序列是非平稳的,需要对序列进行差分(后一项减前一项),直到为平稳序列,差分几次就是几阶。

协整关系存在的条件是:只有当两个变量的时间序列{x}和{y}是同阶单整序列即I(d)时,才可能存在协整关系(这一点对多变量协整并不适用)。因此在进行y和x两个变量协整关系检验之前,先用ADF单位根检验对两时间序列{x}和{y}进行平稳性检验。平稳性的常用检验方法是图示法与单位根检验法。

下面举个例子,为了证明两个symbol是否存在协整性:取一年的时间序列的 binance的BTC/USDT 和 binance的ETH/USDT

隐藏输出
隐藏输出

先定单整阶数,即检验平稳性,作差分,直到序列平稳。 这里检验平稳性用的是 ADF单位根检验法 ,原假设为序列具有单位根,即非平稳,对于一个平稳的时序数据,就需要在给定的置信水平上显著,拒绝原假设。

隐藏输出

一阶差分以后,两个序列就已经平稳了,他们的单整阶数都是一,所以是单整同阶的,下面就可以做协整了:这里的原假设是两者不存在协整关系。

隐藏输出

p值低于临界值,所以拒绝原假设,两者存在协整关系。

接下来就可以根据两者的协整关系做配对交易了。先画出两者的差价序列:

隐藏输出

这样,一个最简单的配对交易策略如下:(如果可以操作期货的话)

  1. spreadprice大于 9920.7027 时,卖空差价,即卖空 BTC/USDT,买入 ETH/USDT。

  2. spreadprice小于 4481.4179 时,买入差价,即买入 BTC/USDT,卖空 ETH/USDT。

  3. spreadprice靠近零时,平仓

上述过程重在描述理论,以供大家研究,结果不是太重要。(下面策略附源代码) 期货回测即将开启,或许这种统计套利的方式在期货市场也有用武之地。 量化之路漫漫其修远兮,吾将上下而求索。

隐藏输出

补充

跨交易所之间:binance的BTC/USDT 和 huobi的BTC/USDT 之间统计套利之配对交易

隐藏输出
篇策略 篇研究 个想法