关闭
您正在使用的浏览器版本较低,无法支持聚宽的某些特性。
为了获得更好的体验,推荐使用:
Google Chrome
或者
Mozilla Firefox
或者
IE9以上
。
返回主题列表
统计套利之股票配对交易策略(下)(夏普值高达6.95!)
CY_.
发布于2018-06-01
回复 64
浏览 12934
194
listen
分享到:
微信
微博
雪球
``` -作者:JoeyQ ``` **!!!!有修改,暂停克隆** **2018.06.15修改了价差函数(含未来函数)后貌似结果不太理想,思路仅供参考** 在上节 https://www.joinquant.com/post/12940 中,我们简单介绍了统计套利策略的原理,在本节中,我们将在沪深300各个行业中寻找可以配对的股票,并以此构造投资组合。投资组合更新的频率为每季度,我们主要步骤如下: **1.划分行业:**在本研究中,我们主要研究的是银行,券商,医药,钢铁,煤炭,保险,房地产,家电,汽车制造这几个行业,概含了沪深300指数主要的行业 **2.收益率相关性:**我们选取的相关性阙值为0.7,太高导致价差波动小,太低则均值回归力度较弱。我们筛选出上一季度日收益率相关系数大于0.7的股票对作为备选股票 **3.平稳性分析:**在满足收益率相关系数大于0.7后,我们计算出价差,同时要求价差在0.05水平下通过单位根检验,这是为了防止上节中价差呈现单边走势的情况,我们要求价差必须围绕0轴波动 **4.价差形态过滤:**我们希望价差回归均值的速度较快,但由于我们调仓频率为一个季度,时间足够长,因此不需要通过这一步检验 ![tt81.png][1] 通过以上我们获得所有满足条件的股票对,并按照上一节的股票对交易策略进行交易,即当价差大于1.5时做多以单位A,同时做空$\beta$单位的B,当价差小于1.5时相反,当价差归零时清仓。我们测试了2007年至2017年的收益情况。结果如下: ![31.png][2] **可以发现我们获得一个很好的收益曲线!夏普值高达6.95!** 我们知道金融类股票的波动较小,因此我们剔除了银行,保险和券商股票,再构造投资组合,表现如下: ![32.png][3] **累计收益率显著提高,回撤控制在较小范围!** ### 改进策略思考 我们知道有左侧交易和右侧交易,左侧偏向反转,右侧偏向趋势,我们考虑建立配对交易策略的右侧交易策略,即当价差从上往下穿过1.5阙值线时建仓,同时,当价差趋向0时,回归均值的力度已经转弱,我们考虑价差小于0.5时清仓。具体流程如下: ![6768.png][4] 最后的最后,我们集中比较一下两种策略以及分行业的股票套利策略表现: ![33.png][5] ![34.png][6] 以下是近十年两种策略分行业的年度收益情况: ![35.png][7] ![36.png][8] ### 反思: 在这两节中,我们构造了统计套利之股票配对交易策略,并进行了沪深300行业的回测。我们假设所有的沪深300均可融资融券,从表现看我们的策略获得一个较为满意的收益,有效对冲了大盘下跌的风险。然而现实中并不是每只股票均可融资融券,因此这里可能存在未被市场参与者未能获取的超额收益。下一步,我们可以尝试针对可以融资融券的股票进行统计套利的回测! [1]: https://image.joinquant.com/84b65f3206c5124ce326c95b56fcad8f [2]: https://image.joinquant.com/0b7d35614ec41e4098df94e5b88f12d7 [3]: https://image.joinquant.com/2b1813ee7932b6082610a2c798b94ca6 [4]: https://image.joinquant.com/1a01273483b080257636ac058361e3e0 [5]: https://image.joinquant.com/7476d00db57ba6e366a2e2b876cfeaa0 [6]: https://image.joinquant.com/a207a5ecf6a665596ebd7b9bca163654 [7]: https://image.joinquant.com/a57254ee23063a6c7b7f74e4d56a0ac4 [8]: https://image.joinquant.com/df2adef0a31d9cacdc6aa983855d3ec6
194
listen
分享到:
微信
微博
雪球
评论
CY_.
估计全部得运行一两个小时
2018-06-01
【九】
感谢分享(^○^)
2018-06-02
柱子嗨翻天
膜拜大神!提个小小的意见:A股大部分不能融券做空。从实现策略的角度,是否将交易修改为只做多一个标的,另外的标的就不融券做空了? 可以做一下这种交易方式的回测?
2018-06-10
CY_.
@柱子嗨翻天这个思路不错!!回头我写一下
2018-06-11
呵呵你好
@柱子嗨翻天 不太可行,这种思路只可以做单边,不能一直保持多的状态
2018-06-12
CY_.
@呵呵你好 恩恩,统计套利同时做空做多主要是对冲了很多大盘风险,单边交易主要考虑是价值回归,比如美的集团涨了很多,会有一定的版块效应促使格力电器也涨
2018-06-12
Join Quant - 技术
厉害厉害,膜拜
2018-06-12
CY_.
@薛定谔の喵 互相学习啦
2018-06-13
小小稻麦
执行报错,望大神解答 ts.adfuller(get_jiacha(price.columns[i],price.columns[j],start_date,end_date)[0],0)[1] File "user_code.py", line 12, in get_jiacha model = sm.OLS(log(pricey),log(pricex)).fit() TypeError: 'Logger' object is not callable
2018-06-13
CY_.
@小小稻麦 内核python 2 吗,你import math试试
2018-06-13
小小稻麦
@JoeyQ 聚宽上复制了你的研究中的代码,执行的,import math后还是一样报错
2018-06-13
CY_.
@小小稻麦 内核也是python2 吗
2018-06-13
小小稻麦
@JoeyQ 回测引擎运行在Python2.7之上
2018-06-13
CY_.
@小小稻麦 不应该啊,你是直接克隆研究不
2018-06-13
小小稻麦
是的,直接复制的,只复制到 In【9】,后面的代码没复制
2018-06-13
CY_.
@小小稻麦 在聚宽平台运行吗,我这边还没报错
2018-06-13
CY_.
@小小稻麦 没有报错哦,用最原始的python 2 运行
2018-06-13
gitclone
这么回测有明显的未来数据,用OLS函数拟合时点A-B之间的数据,时点A的结果中包含了A之后的信息了 不过想法值得借鉴!
2018-06-14
CY_.
@gitclone 不是很明白您的说法,我是用上一期回归的数据做下一期选股的判断
2018-06-14
gitclone
@JoeyQ 对于A-B-C时间段,在计算净值的时候,我看代码里是先用A-C的历史数据算出了st, slope,然后根据这些数据从A开始算净值, 但实际上站在时点B,使用A-B的数据算出的结果和使用A-C算出的st,slope都是不一样的
2018-06-14
首页
上一页
1
2
3
4
下一页
尾页
您尚未登录,请
登录
或者
注册
聚宽发表回复。
取 消
提 交