配对交易是统计套利中的非常经典的策略。众所周知,A股市场无法卖空个股,所以中性化的配对交易策略并不能直接“拿来主义”。但这并不妨碍我们学习配对交易的思想,将卖空改成卖出,构造适合A股市场的策略。下面我们就开始学习吧~
一、配对交易:统计套利的基石
配对交易是基于数理分析的策略中的一个典型例子。策略的准则很简单:假设你持有一对股票X和Y,它们具有经济上的潜在联系。举例来说,比如两家公司可能生产同一类产品,或者两家公司处在同一条供应链上。如果我们将这类经济上的联系用数学方法建模,那么我们就可以从中觅得交易机会。我们下面构造两只“虚拟”的股票来说明这一点。
我们假设X股票的日收益服从正态分布,然后我们画出它的累积收益图。
现在我们来构造Y。由于我们假定Y与X有很强的联系,所以Y的价格应该与X高度相关。我们不妨对X添加一点噪声(可用正态分布),从而得到Y的价格(黄色曲线)。
二、协整:两个序列的特殊关系
上面我们其实已经构建了两个协整序列的例子。协整是一种比相关更微妙的关系。如果两个时间序列是协整的,那么一定存在它们的某个线性组合,围绕着其平均值在较小范围内波动。用数学的语言说,在所有的时间点上,这个线性组合构成的新随机变量服从相同的概率分布。
我们下面将X和Y的价差绘图展示。折线是X和Y的价差,虚线为价差的平均值。可以看到,折线在虚线两侧波动。
三、协整 VS 相关
协整和相关,概念上容易混淆,但它们并不相同。为了阐明它们的区别,我们来看看协整但不相关,和相关但不协整的例子。
下面是两个正态分布所生成的随机数的累加序列。它们高度相关,但协整检验的p值大于0.05,未能通过检验。
协整但不相关的例子相对更难构造一些,我们来看下面的正态分布序列和方波序列。两个序列的相关性非常非常低,但!是! ——协整检验的p值竟然几乎为0:这说明它们一定存在一个能保持“平稳”的线性组合,我们自然会想找到这个线性组合。聊到这儿,配对交易终于要出场了。
四、配对交易:寻找协整的股票组合
因为不同的股票之间有时走势方向相同,有时相反,所以我们总能找到它们的价差高点和价差低点:反映在图像中就是它们股价曲线的距离。配对交易的技巧就是由股票X和股票Y构造对冲组合。如果两只股票都保持同步涨幅或者跌幅,我们既不会赚钱也不会亏钱。如果两只股票的价差开始向历史平均值靠近,我们就能赚得收益。
实际上,配对交易是一种下注:你在赌,价差会回复到历史均值水准。而有一个重要的点是,当我们在某件事上下注时,要尽量减少这件事与其他因子的依赖性,比如市场。市场中性即意味着,市场的涨跌与你的收益无关,只要你下的注没走眼,那么就能赚钱。
具体怎么做呢?例如当股票Y的价格比股票X的价格高出许多,价差已经明显高于历史平均值时,我们买入Y的空头,X的多头。类似得,如果两只股票的价差已经远低于历史平均值,我们可以持有Y的多头,X的空头,等待价差回复到均值水平。具体地说,选取你觉得可能具有协整关系的股票,然后对它们进行协整检验。
注意:此处价差并不是两只股票的价格简单相减!后面会说明应该如何计算价差。
五、给定股票池判定协整
我们选取了几只来自化工行业的A股股票,来看它们是否具有协整关系。我们选取它们2018年的历史价格数据作为考量标准。这几只股票是:沧州大化、华鲁恒升、巨化股份、利尔化学、玲珑轮胎(与下面股票代码顺序对应)。我们已经提出了假设,化工行业中的一些股票之间存在某种联系。接下来我们希望通过统计方法检验它们是否具有协整关系。
我们引入了沪深300指数,即把市场因素也纳入我们的数据集中。这是因为市场会使很多股票的价格漂移趋势相似,以至于你会觉得两只股票很像是协整的,但实际上只是因为它们都与市场协整。也就是说,市场因素是一个“混淆变量”:与其他变量都有关系的变量,导致我们想考察的变量间出现虚假关系。因此不管你得到什么样的关系,记得检查是不是市场因素在“作祟”。
由上面的热力图,我们看到有两组具有协整关系的序列对。在排除市场因素影响之后,我们认为'600230.XSHG'和'601966.XSHG',即沧州大化和玲珑轮胎是具有协整关系,是适合用于配对交易的一对股票。
六、价差的计算
现在我们来计算两个序列的价差。为了计算它们的实际价差,我们首先要用线性回归来得到两个序列的回归系数。回归方程的常数项alpha就是我们需要的价差。也就是说,一只股票的价格减去另一只股票的价格乘回归系数beta,得到的才是它们的价差。
顺便一提,线性回归也能用于估计参数并检验序列的协整性,这种方法在计量经济学中被称作Engle-Granger方法(我们一般简称E-G两步法),感兴趣的话可以参考李子奈老师的《计量经济学》,系统地学习学习~
检测价格比率是配对交易中一种很传统的方法。它能作为择时信号的一部分原因是股票价格一般被认为服从对数正态分布。由这个假设我们可以推测,当我们在衡量价格比率时,实际上等价于在考察它们收益的线性组合(考虑到价格是收益的指数累积)。
价格比率的方法可能看起来比较刺激,它在实盘上往往是不可行的策略。我们还是应该选择用价差作为配对交易的选择标准。对协整的股票使用线性回归计算价差固然方便,但它在实盘上也不见得会有好的效果。其实还有很多其他计算价差的方法,这取决于你对处理协整序列的统计学方法有多了解。
回到我们的例子,直接对股票数据进行价差计算在统计学上并不是很合适的手段。我们应该先进行标准化,比如使用熟悉的z-score法。但是我们需要注意,在写实盘策略时,假设我们的数据服从正态分布并不明智。金融数据常常是尖峰厚尾的分布,这意味着它们比正态分布更可能出现极端值。
蓝色折线是标准化后的序列,黑色实线是它的平均值,上下两条橙色虚线代表平均值加减一倍标准差,即“阈值”。
简单的配对交易策略:
• 当z-score低于1时做多;
• 当z-score低于1时做空;
• 当z-score趋近0时空仓。
当然,这个策略只是配对交易的冰山一角,纯粹是为了解释配对交易的流程。如果你想学会写一个更有实战意义的配对交易策略(比如多空头寸比怎么取),强烈推荐一本书:Algorithmic Trading: Winning Strategies and Their Rationale。关于配对交易的更深入的教程,我们之后有机会再一起学习~
注明:本文改编自Quantopian系列教程之《Introduction to Pairs Trading》,译者根据原文进行了适当的解读与排版。
点击【阅读原文】,获取完整代码~