目前市面上量化平台回测速度的比较

【分钟级别】回测速度比较

 

同样一段双均线(SMA长短线)策略,虽然这个双均线,没必要每分钟都刷,毕竟作为超短期指标,双均线意义不大。

所以这也是让策略开发者困扰的一点,有时候有些策略的逻辑在“被选择的频度”下面毫无意义。镭矿则没有这一困扰,镭矿策略代码里面规定是什么频度执行就是什么频度执行。

言归正传,现在我们来用这个经典策略对比一下各个平台,分钟频度下一年半(2015-05-01到2017-01-01)的回测速度。每分钟刷日线数据肯定是更没有意义,所以小编将ricequant和joinquant的获取历史数据的参数手动改为获取分钟数据

策略A:
回测时间:2015-05-01至2017-01-01
使用分钟数据,短均线上穿长均线,则买入,反之,则清仓卖出

对篇幅很恐惧的同学请先看一下这个表格:

策略A的回测时间对比表格

回测时间
镭矿 17秒
ricequant 3到4分钟
joinquant 表现好的时候6分钟

下面是镭矿的代码,耗时17秒

下面是joinquant的代码,耗时6分钟

下面是ricequant的代码,耗时3到4分钟,貌似比joinquant的快,也有可能是因为这个例程的买入条件比较多?但是明显ricequant的回测准备时间较长。

【日线级别】回测速度比较

日线级别上,策略A回测时间对比表格(镭矿需要手动修改函数名every_minute为every_day)

回测时间
镭矿 秒回(少于一秒)
ricequant 5秒后秒回。(感觉任何回测都需要准备5秒钟)
joinquant 秒回(少于一秒)

对比不明显,我们来升级一下策略逻辑。为了简便,我们仍然修改策略A,形成策略B。

事实上这不是一个真正的策略,不产生任何交易。只不过我们这里为了尽快知道各个平台的回测速度罢了。

策略B
每日轮询50只股票的SMA长短线,record出符合SMA短线上穿长线的股票个数

镭矿代码

 

ricequant代码

joinquant的代码:

你们一定很好奇这次得对比结果,所以小编故意卖关子放到了最后

日线级别上,策略B回测时间对比表格

回测时间
镭矿 0.92秒
ricequant 9秒左右
joinquant 6秒左右