跨品种价差套利简介
套利原理
通俗地讲,就是两个合约相关性很好,突然市场出了一个bug,破坏了两个合约之间的平衡状态,进场套利;等待市场回复,平仓出场。即均值回复思想。
价差套利
价差套利的前提是做出商品期货品种间同一月份的价格之间的价差,并且画出价差的时间序列图,分析价差,寻找合理的价差范围,超出合理的价差变动范围时如何进行操作。
套利标的的选取
我们选取同为黑钢产业的主要产品,热轧卷板与螺纹钢作为套利标的。
首先,从价格走势上来看,二者价格趋势上一致性非常高,基本处于同涨同跌局面,如下图所示,2014年至2017年热轧卷板与螺纹钢价格指数,相关性达到0.924。二者成本从铁矿石到钢坯这个阶段几乎一样,只是在最终的轧制成材阶段出现了分化。
其次,二者价格的季节性也表现出较高的一致性。热轧卷板和螺纹钢的年内高点普遍出现在4月,次高点出现在7月,而10月不管是热轧卷板还是螺纹钢都倾向于出现年内低点。在较一致的季节性特点下,二者的价格强弱也有一定的规律可循。一般情况下,1、2月热轧卷板的表现会略强于螺纹钢,但是之后二者比价会逐步走低,也就是螺纹钢相对于热轧卷板会逐步变强。而这种强弱关系一般到10月会达到一个极致,之后热轧卷板会再度重新变得相对强一点。
为了防止未来函数的引入,在这里我们选取“HC1701”与“RB1701”作为套利观察合约
图示分为两部分,上图为2016-04-01至2016-12-31的两标的合约日线收盘价的数据,经计算,相关性系数为0.988,下图为两者价差的走势,上下界分别为均值加减两倍标准差。
可以看出价差在上下界之外会再次回归,这就成为了我们的交易机会,不过,均值周期需要缩短,以增加交易次数。另外,我们用2017-04-01至2017-12-31的“HC1801”与“RB1801”作为标的合约,进行回测。
跨品种价差套利策略实现(基于掘金量化平台)
策略思想
获取过去的30个交易日的bar的均值正负2个标准差得到上下界。
用最新价差来判断开仓方向,上穿上轨来做空价差,下穿下轨来做多价差。
回归至上下轨水平内的时候平仓。
策略主要步骤实现
订阅数据
subscribe(symbols=symbols, frequency='1d', count=31, wait_group=True)
订阅数据需要在定义init函数里面设置,并调用subscribe函数,这里注意,我们需要通过计算前三十根bars来作为开平仓的标准,并在当前bar上做出开平仓操作,所以需要获取31根bar:
symbols需要设置订阅的标的代码。
frequency需设置订阅数据的周期级别,这里设置1d 表示以一天为周期。
count需要设置获取的bar的数量
数据获取
data_rb = context.data(symbol=symbol, frequency='1d', count=31, fields='close')
订阅数据之后,需要获取已经订阅的数据来进行操作,这时需调用context.data函数:
symbols 需要设置订阅的标的代码。
frequency需设置订阅数据的周期级别,这里设置1d表示以一天为周期。
count需要设置获取的bar的数量
fields需要设置返回值的种类
策略回测分析
回测报告
分析
我们选取了2017年4月至2017年11月作为回测周期,“HC1801”与“RB1801”作为标的合约,价差均值周期设为30,可以看出:
胜率(具有盈利的平仓次数与总平仓次数之比)达到了56.25%。
卡玛比率(年化收益率与历史最大回撤之比)是使用最大回撤率来衡量风险。**采用最大回撤率来衡量风险,关注的是最极端的情况。**卡玛比率越高表示策略承受每单位最大损失获得的报酬越高。在这里卡玛比率超过了4。
夏普比率(年化收益率减无风险收益率的差收益波动率之比)超过1.5,也即承受1单位的风险,会有超过1.5个单位的收益回报
策略收益曲线相当稳定,最大回撤极小,缺点是交易次数少,很长时间无交易。
来源:掘金量化 作者:宋瑞笛