【数量技术宅|量化投资策略系列分享】多周期共振交易策略
更多精彩内容,欢迎关注公众号:数量技术宅。想要获取本期分享的完整策略代码,请加技术宅微信:sljsz01
多周期共振,提高策略胜率
多周期共振,理论依据是自然界的“分形理论”。我们把该理论应用到K线图表上,市场不同级别的K线,如果抹去K线周期,很难看出所属的K线周期;根据分形理论,大小周期K线的属性是极其相似的,同样的,他们都具有识别趋势的功能。
因此,当大、小K线周期都提示市场具有趋势行情的时候,此时趋势延续的概率也将更大,而我们在开发策略中需要做的,就是实现多周期共振信号的编写。
日线与其他日内周期共振的策略开发
在本文的分享中,我们将采用一个支持策略编写开发、测试、交易的三方平台:交易开拓者(TB)来为大家实现多周期共振的策略思路。我们首先来看日线与其他日内分钟周期共振的策略开发,我们以日内想要交易的分钟周期作为主周期,所以此时需要获取的是日线这个非主周期的K线数据,并计算相应的指标。
日线的跨周期数据获取比较便捷,TB为我们直接定义了日线的跨周期函数,可以调用日线的开、高、低、收等常用K线数据。日线收盘价用法如下,可以用CloseD(N)的方式获得。日线开盘价、最高价、最低价的数据获取方式同理,分别是OpenD(N)、HighD(N)、LowD(N)。
我们以著名的技术指标Keltner通道为例,演示如何在分钟级别的主周期,利用TB的日线跨周期函数来计算日线的Keltner通道。先通过循环依次获取日线周期前N天的收盘价,计算辅助指标SumValue(日线收盘价之和)以及SumTR(日线真实波幅之和),最后计算Keltner通道的上下轨。
日线Keltner通道的效果展示:由于日线数据在对应的分钟级别K线周期上,不是连续变化的,所以我们看到的Keltner通道是呈现一小段一小段折线形式变化的。
任意K线级别的多周期共振
如果我们不仅需要日线级别周期,还需要其他更精细的分钟级别周期,来进行共振的确认,此时,我们就需要自己编写跨周期获取K线数据的函数了,在本文中,技术宅将分享给大家一个自编的计算任意K线级别跨周期K线的函数。
这个函数有两个参数:一是目标时间周期,支持任意跨周期时间的获取,月、日、小时、任意分钟;二是目标时间周期BAR偏移,一般情况下我们选1,即当前主周期能获取到的历史最近1个跨周期K线的数据,避免未来数据。该函数支持输出跨周期K线的所有数据:开、高、低、收、成交、持仓等数据。
接下来是跨周期数据获取的核心实现部分,我们首先需要在每根小周期的K线上,记录它所属的大时间周期(跨周期)下的开高低收等值的变化;接下来,我们需要把在大的时间周期级别上属于同一根K线的开高低收等数据,记录在这一组小周期K线的最后一根K线上;最后,将相应的K线数据作为引用参数返回,就能得到任意跨周期的K线数据了。
自编的跨周期函数,它的使用方法很简单,我们可以通过调用跨周期函数,进一步计算所需要的跨周期技术指标,我们在此处以简单移动平均线为例。只需要设定拟跨的K线周期、偏移、均线计算周期,首先调用跨周期K线数据获取函数得到跨周期的收盘价,再调用求和函数并除以均线计算周期,就能得到跨周期计算的均线指标了。
我们举一个简单的任意跨周期均线指标的计算示例,此处我们以5分钟K线作为主周期,拟计算30分钟跨周期K线的均线,均线的计算周期为20、60周期的双均线,并展示效果。有了前述函数的铺垫,代码实现变得相当简单。
再来看一下跨周期均线的绘图结果,完美实现了跨周期指标的计算和呈现。
一个多周期共振的策略实例
现在,有了计算任意跨周期K线、跨周期指标的函数,我们就可以根据策略的思路,轻松构建多周期共振的交易策略了。在文末,我们为大家展示一个多周期共振的交易策略实例,该示例用到了多周期共振的思路,以及我们实现多周期共振的函数。
我们按照等权重,对目前期货市场所有交易活跃的品种,应用该策略做了组合测试。不刻意挑选品种,是为避免选品种带来的过度拟合,验证多周期共振逻辑是否真正有效。
从回测结果来看,总体业绩比较稳健的向上,不同品种互有盈亏。我们没有刻意筛选品种,也没有对单个品种做任何的参数调优,已经充分说明策略思路是有效的。
如果你想要获取上述分享的策略,欢迎加小编微信(sljsz01),与我交流
往期干货分享推荐阅读
【数量技术宅|金融数据分析系列分享】为什么中证500(IC)是最适合长期做多的指数
商品现货数据不好拿?商品季节性难跟踪?一键解决没烦恼的Python爬虫分享
【数量技术宅|金融数据分析系列分享】如何正确抄底商品期货、大宗商品
【数量技术宅|量化投资策略系列分享】股指期货IF分钟波动率统计策略
【数量技术宅 | Python爬虫系列分享】实时监控股市重大公告的Python爬虫