全部版块 我的主页
论坛 金融投资论坛 六区 金融学(理论版) 量化投资
13024 8
2017-03-28
Pairs Trading,即配对交易策略。其基本原理就是找出两只走势相关的股票。这两只股票的价格差距从长期来看在一个固定的水平内波动,如果价差暂时性的超过或低于这个水平,就买多价格偏低的股票,卖空价格偏高的股票。等到价差恢复正常水平时,进行平仓操作,赚取这一过程中价差变化所产生的利润。为了实现协整套利,首先要针对不同的股票时间序列进行协整分析,找到价格走势高度相关的股票对。(原文链接在此,不想复制代码的小伙伴可以到这里直接克隆运行)
在 Python 的 Statsmodels 包中,有直接用于协整关系检验的函数 coint,该函数包含于 statsmodels.tsa.stattools 中。


复制代码
首先,我们构造一个读取股票价格,判断协整关系的函数。该函数返回的两个值分别为协整性检验的 p 值矩阵以及所有传入的参数中协整性较强的股票对。我们不需要在意 p 值具体是什么,可以这么理解它: p 值越低,协整关系就越强;p 值低于 0.05 时,协整关系便非常强。


复制代码
然后我们设置要协整分析的股票范围和分析的起止时间范围,我们可以选择画出协整检验热度图,这里画的是1-pvalues,颜色越红表示对应的股票对协整关系越稳定。
复制代码
我们对pvalue排序,较小的pvalue表示对应的股票对的协整关系越稳定。
复制代码
1.png
我们选择协整关系最强的一组股票对,绘制走势图并进行最小二乘回归,获取回归系数。


复制代码
2.png

根据获得的回归系数,构造回归方程 y=const+coef*x 也就得到y-coef*x这个价差平稳序列,画出这个平稳序列可以看出,虽然价差上下波动,但都会回归中间的均值。
接着我们构造z-score函数,计算时间序列偏离了其均值多少倍的标准差
复制代码
计算价差的zscore函数序列并绘图
复制代码
3.png
可以看出此序列基本在-1到1之间波动,当两这个序列的 z-score序列 突破 1 或者 −1 时,说明两支股票的价差脱离了统计概念中的合理区间,如果它们的协整关系能够保持,那么它们的价差应该收敛
结合上图,当 z-score 突破上方红线时,说明y-coef*x高估,推测此差值应在未来降低到合理的波动区间,因此可以卖空1份的y标的,买入coef份的x标的,等待y-coef*x回归到0附近时平仓获利;反之,当 z-score 突破下方绿线时,说明y-coef*x低估,推测此差值应在未来上升加到合理的波动区间,因此可以买入1份的y标的,卖空coef份的x标的,等待y-coef*x回归到0附近时平仓获利。



二维码

扫码加我 拉你入群

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

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

全部回复
2017-3-29 19:27:58
谢谢分享
二维码

扫码加我 拉你入群

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

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

2017-5-17 15:43:40
这个是量化论坛里面的帖子吧,里面有一些问题:
1,只有当单个股票价格非平稳,两只股票存在同阶协整的时候才能做协整关系检验;
2,p值越小协整关系越强这个说法有问题,只能说在p<0.05的时候否定原假设,认为股票对有协整关系。
二维码

扫码加我 拉你入群

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

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

2017-5-17 15:43:57
这个是量化论坛里面的帖子吧,里面有一些问题:
1,只有当单个股票价格非平稳,两只股票存在同阶协整的时候才能做协整关系检验;
2,p值越小协整关系越强这个说法有问题,只能说在p<0.05的时候否定原假设,认为股票对有协整关系。
二维码

扫码加我 拉你入群

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

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

2017-5-17 15:52:23
hw4m14 发表于 2017-5-17 15:43
这个是量化论坛里面的帖子吧,里面有一些问题:
1,只有当单个股票价格非平稳,两只股票存在同阶协整的时候 ...
多谢。其实这只是回测,真正实盘没有这么简单。而且中国还不允许做空
二维码

扫码加我 拉你入群

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

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

2017-5-17 16:27:23
嗯 期货市场高频交易可能可以,要考虑交易成本。a股股票市场不能做空,t+1 ,我试着去做了回测 结果很不好,也可能方法不对
二维码

扫码加我 拉你入群

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

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

点击查看更多内容…
栏目导航
热门文章
推荐文章

说点什么

分享

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