【独家发布】期货市场内外盘低频统计套利基于Python


声明
作者: 阿布
公众号独家授权
未经允许 禁止转载
github地址:
https://github.com/bbfamily/abu
本策略可直接运行,运行地址
https://github.com/bbfamily/abu/tree/master/abupy_lecture
首先导入本节需要使用的abupy中的模块:


算法交易之父托马斯•彼得菲最成功的一段经历是利用当时最快的计算机,租赁独享电话线以保证数据传输畅通无阻,甚至超越时代定制平叛电脑,使用统计套利在不同市场进行对冲策略。
这是最有保证的一段量化交易历史,在当时的交易环境下运用高科技在市场中确实可以获利。
但是这个策略放到今天肯定不适用,因为科技在不停的进步,技术的不断透明化,信息社会的高速发展,自动化交易占了美国股票市场60%以上的成交量。在美国很多高频交易为了通信速度能有几毫秒的提升,不惜在太平洋底打洞自己搭建通信网络,也有专门提供暗光纤的独享网络商,他们网络的一年租赁费用就高达几千万美元。在这种环境下,个人量化投资者是不是一点机会都没有呢?
1. 伦敦期货市场和国内期货市场中的金属期货
本节示例适合个人量化交易者的低频统计套利策略,目标市场为伦敦期货市场和国内期货市场中的金属期货。
如下先获取伦敦的金属期货symbol数据:

接下来获取国内的金属期货symbol数据:

如下分别将两两金属期货进行跨市场配对,首先可视化一下走势,可以看到每一个配对期货市场的走势都非常跟随:


如果做跨市场高频交易,需要非常好的设备,盯着盘口的数据,快速进行交易决策,且对资金量也有要求,本节的示例为适合个人量化交易者的跨市场低频统计套利示例。
注意观察上面的每一对趋势曲线,如CAD vs CU0,你可以发现CU0对趋势敏感的速度要明显快于CAD, 而且是非高频的快,即上面的蓝线在趋势下跌时先下跌,趋势上涨时先上涨,那么就可以认为CAD在非高频下跟随CU0,具有低频统计套利机会。
2. 趋势变化的敏感速度
我们不可能真的用肉眼去一个一个观察,而且也无法量化具体趋势敏感的速度,也即无法确定是否真实存在低频统计套利机会。
对于量化交易,优势是通过计算机强大的运算能力,在市场广度的优势下获取概率优势,进行交易,下面示例如何使用abupy中的api计算趋势变化的敏感速度,如下所示:
备注: 具体计算计算趋势速度请阅读tl模块中calc_pair_speed方法

上面的计算结果0.57为CU0对趋势变化敏感速度,0.52为CAD对趋势变化敏感速度,即CU0的对趋势变化的敏感度大于CAD,且大于0.03具备低频统计套利的条件。(大于0.05认为具有安全低频统计套利机会,具体这些阀值将在之后的章节讲解)
在低频统计套利的情况下将会使用CAD做为交易目标,CU0做为趋势风标,因为它的敏感度高,下面初始化一个字典,key为将会使用做为交易目标的CAD,value为做为趋势风标CU0,如下所示:

下面计算沪铝(AL0)和伦敦铝(AHD)对趋势变化的敏感速度,如下:

上面的计算结果0.61为沪铝(AL0)对趋势变化敏感速度,0.57为伦敦铝(AHD)对趋势变化敏感速度,即AL0对趋势变化的敏感度大于AHD,且大于0.03具备低频统计套利的条件。
字典中key为将会使用做为交易目标的低敏感AHD,value为做为趋势风标的高敏感AL0,如下所示:

下面计算国内黄金(AU0)和伦敦黄金(XAU)对趋势变化的敏感速度,如下:

上面的计算结果0.58为国内黄金(AU0)对趋势变化敏感速度,0.61为伦敦黄金(XAU)对趋势变化敏感速度,即外盘敏感速度快于国内期货趋势变化敏感速度,之前的两个都为国内期货趋势变化敏感速度快于外盘敏感速度。