相信很多投资者在做量化投研时都会有一种共识:量化投资领域里,成本最大的毫无疑问就是研发策略所消耗的时间成本,其中90%的时间都被消耗在因子挖掘、策略回测与优化等大型运算上。
如何提高运算程序的效率,成为了众多量化投资者面临的难题。
而在Python编程中,有许多方法可以提高量化交易策略的回测速度,使用向量化操作就是一种行之有效的方法。
向量化操作是一种在整个数组或矩阵上执行操作的技术,可以大大提高代码的效率。在Python中,NumPy是一种非常流行的向量化操作库,可以加速数学计算和数据处理。当涉及到大量的计算时,我们可以尝试使用NumPy、Pandas或者其他库来进行向量化操作。
此处,我们以掘金量化终端中提供的示例策略【双均线策略(期货)】为例,尝试对其进行提速。
移动平均线是一种常用的技术分析指标,用于平滑价格数据。使用NumPy的向量化操作,可以进一步提升计算速度。
示例策略第59行以及60行中,原策略代码中用到了rolling来进行滚动计算。我们可以考虑使用numpy.convolve对向量进行卷积计算,并与原策略代码进行回测对比:
1、向量化:使用np.array对prices进行向量化操作,再使用flatten进行降维;
2、卷积:使用np.convolve进行卷积计算长短均线,