全部版块 我的主页
论坛 金融投资论坛 六区 金融学(理论版) 量化投资
4337 3
2015-09-22
配对交易策略及其在RiceQuant量化交易平台上的实现(一)

第二部分在这里~~~~https://bbs.pinggu.org/thread-3906749-1-1.html
第三部分在这里~~~~https://bbs.pinggu.org/thread-3906762-1-1.html
ricequant,致力于打造亚太最出色的量化交易平台,www.ricequant.com
量化策略交流群:
Ricequant 量化策略社区 429907369  


Ricequant高校量化交流群 484490463
什么是配对交易?

配对交易是一个有经济意义做基础的理论,因此是一个站得住脚的策略。配对策略利用一些股票对,即两只股票, 它们的价格走势倾向于一致这一性质来进行交易。当股票对之间的价格变化出现异常时,配对交易策略认为这一异常在未来会消失,回归到之前的情况。配对交易背后利用的是证券的相对价值这一概念。我们知道投资的一个原则是买入低估值的股票,卖出高估值的股票。然而股票的真实价值很难得知,从而也让我们无法知道当前股票的价值是被高估还是低估。而配对交易中的两只股票,它们的相对价值是一个平稳的时间序列,因此我们可以在其相对价值偏离均值到一定程度时做空估值高的股票,做多估值低的股票,然后在相对价值回归均值时反向平仓获利,后面我们会用价差(spread)来表示相对价值。

什么样的股票对适合配对交易策略?

从之前的阐述中已经可以看出,适合用于配对交易的股票对它们的相对价值一定要是一个平稳的时间序列。接下来我们就来看看为什么会存在两只股票,它们的价差会是一个平稳的时间序列。我们知道股价的对数值的时间序列是一个随机行走过程,也就是一个非平稳的时间序列。简单来说,平稳的时间序列即时间序列。然而计量经济学家Engle和Granger发现:两个非平稳的时间序列的线性组合是有可能得到一个平稳的时间序列的。

yt−γxt为一个平稳的时间序列
其中yt,xt为非平稳的时间序列,γ为一个特定的常数

Engle和Granger也把有这种性质的时间序列称为协整(cointegration)。接下来我们给出价差的表达式:

spread=log(PBt)−γlog(PAt)
PAt和PBt为两只股票A和B在t时刻的股价

这样我们证明了可以用两只股票价格的对数值的时间序列这两个非平稳时间序列来构造一个平稳时间序列,从而对这一平稳时间序列来用配对交易策略进行交易。因此,具有协整性质的股票对是我们所寻找的适于交易的标的。

怎样找到适合的配对?

首先寻找出满足协整的必要条件的股票对。因为如果股票对具有协整的性质,那么它必然满足协整的必要条件。我们首先引入一个共有走向模型来描述时间序列。共有走向模型认为一个时间序列可以表示成一个平稳的时间序列和一个非平稳的时间序列的简单线性叠加叠加。

yt=nyt+εyt
zt=nzt+εzt
nyt,nzt为非平稳的时间序列,即共有走向项。εyt,εzt为平稳的时间序列,即特有项。

取它们的线性组合:

yt−γzt=(nyt−γnzt)+(εyt−γεzt)

因此若这两个时间序列满足协整,那么一定有:

nyt=γnzt

这是满足协整的一个必要条件,即两个时间序列的共有走向项必须成正比的。 接下来我们来看下对于两只股票扁和扂来说,它在时间扩内的回报为:

rA=log(PriceAt)−log(PriceAt−i)=nAt−nAt−i+εAt−εAt−i=rc,At+rs,At rB=log(PriceBt)−log(PriceBt−i)=nBt−nBt−i+εBt−εBt−i=rc,Bt+rs,Bt
rct,rst为共有走向回报和特有回报

从之前我们从协整推出的必要条件可以发现,如果两只股票协整且协整系数为γ,那么可以推出它们的共有走向回报必须成正比关系:

rc,Bt=γrc,At
这个条件就是两只股票满足协整的一个必要条件,也是我们用来选择适合交易的股票对的一个依据。

两只股票满足这一关系的时候,我们接下来就可以再检验它们的价差是不是平稳时间序列。 我们不直接检验任意两只股票之间的价差是否为平稳的原因是如果直接检验价差的平稳性的话,由于股票数量很多,需要用大量的时间,因此我们先利用协整的必要条件来缩小平稳性检验的股票对的数量。

我们可以发现上述推出两只股票满足协整时的必要条件的推出引入了一个共有模型理论,现在的问题来了,为什么两只股票会有相似的回报?这背后的支撑即为套利定价理论。我们只简单的介绍一下套利定价理论。在套利定价理论中,如果不同的股票具有相同的风险因子,那么这些股票的共同因子回报是相同的,这里的共同因子回报即之前共有走向模型中的共有走向回报。 有了套利定价理论和共有走向模型之间的这种对应关系,也就保证了我们是可以找到两只具有相同或相似回报的股票对,这也是配对交易策略背后的经济学基础之一。

我们现在知道了为了减少用于平稳性检验的股票对的数量,我们首先要找出具有相同或相似的回报的股票对,因为这是两只股票协整的必要条戲件。如果两只股票没有相同或相似的回报,那么这两只股票一定不是协整的,也就无法构造出一个平稳的价差时间序列来用于配对交易。我们通过计算不同股票之间的回报的相关性(correlation)来选择可能具有协整性质的股票对。计算方式如下:

对于两只股票A和B,
d(A,B)=|ρ|=|Cov(rA,rB)Var(rA)Var(rB)√|

通过以上步骤,我们已经选出了可能具有协整性质的股票对,这就大大减少了我们的计算量。接下来的任务就是验证这些选出的股票对是否真的是具有协整性质。检验的原则为:如果两个时间序列是协整的,那么对这两个时间序列做一个简单的线性回测就可以获得一个很好的线性关系。在这一线性关系中,斜率即为我们所需的协整系数γ,残差即为我们所需的价差。总的来说分两步:

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研究平台,以后策略研究和执行可以在一个平台执行)。





二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

全部回复
2015-9-24 12:17:47
熬过了熊市,趟过了牛市,却死在了救市。一副对联给出了当前形势,那就是上联:证金、汇金、养老金,金金索命;下联:沪市、深市、政策市,市市追魂。横批:梦碎A股……今年夏天的记忆:暴雨!爆炸!暴跌!爆仓!
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2015-10-29 10:57:50
dnq 发表于 2015-9-24 12:17
熬过了熊市,趟过了牛市,却死在了救市。一副对联给出了当前形势,那就是上联:证金、汇金、养老金,金金索 ...
哈哈哈哈  说的赞啊~~~{:2_29:}
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2015-11-3 13:17:31
量化比赛  大家积极参加https://www.ricequant.com/contests
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群