内容来自Ricequant社区用户Aaron ZHOU,<a href=https://www.ricequant.com/community/topic/51>原文链接</a>。
<a href=https://www.ricequant.com>Ricequant</a>团队出品,如需转载请私信作者联系,否则侵权必究
一,什么是配对交易?
配对交易是一个有经济意义做基础的理论,因此是一个站得住脚的策略。配对策略利用一些股票对,即两只股票, 它们的价格走势倾向于一致这一性质来进行交易。当股票对之间的价格变化出现异常时,配对交易策略认为这一异常在未来会消失,回归到之前的情况。配对交易背后利用的是证券的相对价值这一概念。我们知道投资的一个原则是买入低估值的股票,卖出高估值的股票。然而股票的真实价值很难得知,从而也让我们无法知道当前股票的价值是被高估还是低估。而配对交易中的两只股票,它们的相对价值是一个平稳的时间序列,因此我们可以在其相对价值偏离均值到一定程度时做空估值高的股票,做多估值低的股票,然后在相对价值回归均值时反向平仓获利,后面我们会用价差(spread)来表示相对价值。
二,什么样的股票对适合配对交易策略?
从之前的阐述中已经可以看出,适合用于配对交易的股票对它们的相对价值一定要是一个平稳的时间序列。接下来我们就来看看为什么会存在两只股票,它们的价差会是一个平稳的时间序列。我们知道股价的对数值的时间序列是一个随机行走过程,也就是一个非平稳的时间序列。简单来说,平稳的时间序列即时间序列。然而计量经济学家Engle和Granger发现:两个非平稳的时间序列的线性组合是有可能得到一个平稳的时间序列的。
Engle和Granger也把有这种性质的时间序列称为协整(cointegration)。接下来我们给出价差的表达式:
这样我们证明了可以用两只股票价格的对数值的时间序列这两个非平稳时间序列来构造一个平稳时间序列,从而对这一平稳时间序列来用配对交易策略进行交易。因此,具有协整性质的股票对是我们所寻找的适于交易的标的。
三,怎样找到适合的配对?
首先寻找出满足协整的必要条件的股票对。因为如果股票对具有协整的性质,那么它必然满足协整的必要条件。我们首先引入一个共有走向模型来描述时间序列。共有走向模型认为一个时间序列可以表示成一个平稳的时间序列和一个非平稳的时间序列的简单线性叠加叠加。
取它们的线性组合:
因此若这两个时间序列满足协整,那么一定有:
这是满足协整的一个必要条件,即两个时间序列的共有走向项必须成正比的。 接下来我们来看下对于两只股票扁和扂来说,它在时间扩内的回报为:
从之前我们从协整推出的必要条件可以发现,如果两只股票协整且协整系数为γ,那么可以推出它们的共有走向回报必须成正比关系:
两只股票满足这一关系的时候,我们接下来就可以再检验它们的价差是不是平稳时间序列。 我们不直接检验任意两只股票之间的价差是否为平稳的原因是如果直接检验价差的平稳性的话,由于股票数量很多,需要用大量的时间,因此我们先利用协整的必要条件来缩小平稳性检验的股票对的数量。
我们可以发现上述推出两只股票满足协整时的必要条件的推出引入了一个共有模型理论,现在的问题来了,为什么两只股票会有相似的回报?这背后的支撑即为套利定价理论。我们只简单的介绍一下套利定价理论。在套利定价理论中,如果不同的股票具有相同的风险因子,那么这些股票的共同因子回报是相同的,这里的共同因子回报即之前共有走向模型中的共有走向回报。 有了套利定价理论和共有走向模型之间的这种对应关系,也就保证了我们是可以找到两只具有相同或相似回报的股票对,这也是配对交易策略背后的经济学基础之一。
我们现在知道了为了减少用于平稳性检验的股票对的数量,我们首先要找出具有相同或相似的回报的股票对,因为这是两只股票协整的必要条戲件。如果两只股票没有相同或相似的回报,那么这两只股票一定不是协整的,也就无法构造出一个平稳的价差时间序列来用于配对交易。我们通过计算不同股票之间的回报的相关性(correlation)来选择可能具有协整性质的股票对。计算方式如下:
通过以上步骤,我们已经选出了可能具有协整性质的股票对,这就大大减少了我们的计算量。接下来的任务就是验证这些选出的股票对是否真的是具有协整性质。检验的原则为:如果两个时间序列是协整的,那么对这两个时间序列做一个简单的线性回测就可以获得一个很好的线性关系。在这一线性关系中,斜率即为我们所需的协整系数γ,残差即为我们所需的价差。总的来说分两步:
1..我们对这两只股票的时间序列做线性回测。
2.我们检验价差的稳定性。
用于检验时间序列的稳定性有很多种方法 , 比如Augumented Dickey-Fuller(ADF) test, Elliott-Rothenberg-stock test, Schmidt-Phillips test等, 我们将会采用的为Augumented Dickey-Fuller test.
四,策略的具体实施步骤:
实际中运用配对交易策略可以分为3步:
1.发现可能具有协整性质的股票对。利用的方法为计算两只股票回报的相关系数,选出相关系数高的股票对。
2.一旦确定了可能具有协整性质的股票对,我们就可以利用统计学的方法来检验这些股票对是否真的具有协整的性质。在这一过程中我们就可以确定协整系数以及价差是否具有均值回归的行为。
3.最后我们需要确定策略的一些参数,比如利用多长的历史数据来确定股票对是否具有协整性质,当价差偏离均值多远时进场或退场等。
我们把策略分为两个部分,研究部分和执行部分。研究部分包括确定交易的股票对和进出场的时间点等,执行部分即为执行交易。由于Python做策略研究的方便性,研究部分用Python执行,执行部分用RiceQuant量化交易平台来执行(RiceQuant量化交易平台即将推出Python研究平台,以后策略研究和执行可以在一个平台执行)。
策略的研究与执行
五,策略研究:
我们首先用Python来选择适合交易的股票对。 用于选取的股票池为:
600815 厦工股份 机械行业
600841 上柴股份 机械行业
600855 航天长峰 机械行业
600860 京城股份 机械行业
600984 *ST建机 机械行业
601038 一拖股份 机械行业
601002 晋亿实业 机械行业
601100 恒立油缸 机械行业
601106 中国一重 机械行业
601177 XD杭齿前 机械行业
计算所用历史数据为2012年全年的日线数据。