欢迎光临散文网 会员登陆 & 注册

backtrader好慢,提速法(调试、参数回测)

2023-07-20 23:04 作者:汇渊科技  | 我要投稿

本文是引子,核心方法见付费文章。耗时几天完成此文,挺贵介意付费勿点。

该文主要解决backtrader使用者调试代码,耗时费力、编码生产效率奇低的问题。


耗时来源分析及解决

重复计算耗时

backtrader其实最耗时的地方是自定义的Strategy的__init__方法中对各种指标线的计算,比如笔者曾今使用沪深300股票池,在策略中初始化了5条均线,就需要计算1500根移动均线,这些均线的值理论上是稳定不变的,所以思路是:

  • 把均线提前计算保存,存db用时取 或

  • 数据插入到自定义的datafeed中作为datafeed的一个字段(本质就是第一种)。

那上面的思路解决的是计算数耗费的时间,在争分夺秒、或者反复使用的场景下有价值。

但,我们这里不提供不讨论不展示具体的示例代码。

获取数据耗时

数据存本地,数据存本地,数据存本地,数据存本地。

网络IO是最慢的,对于需要重复的取数据行为,放本地,放db、csv随意。

怼硬件也能提速

  • 给CPU换代升级

  • 机械盘换SSD

  • 扩内存容量

backtrader框架提供的提速手段

大佬写的文章:optMaster:再次实测backtrader回测速度,提速要点stdstats=False,含源码

还有官方文档提供的:


红框中的官方文档地址:

Cerebro - Memory Savings - Backtrader

Cerebro - Optimization - Improvements - Backtrader


中文翻译文档地址(付费的亲,介意勿点,打搅了):

Backtrader官方中文文档:第五章Cerebro大脑


框架耦合带来的耗时

这个核心技巧,就不细说了~~~

backtrader实战:如何提高backtrader调试及回测的代码执行速度

付费文章适合以下场景的读者:

  • 要求读者已经解决基本的backtrader安装和使用问题,可以编写策略

  • 读者策略使用数据量大以及指标计算量大,需要将数据完整加载执行策略,但是回测跑代码十分耗时,比如调试一次代码,加载和预处理数据要十几分钟甚至几十分钟的

  • 参数调优场景下的倍数级计算量以及规避耗内存的问题

  • 非用backtrader不可(潜台词其他框架也不是不能用,但各有各的坑)

理论上节约的时间是以你回测或调试的次数来算的,拍个脑袋,以前1个小时可以调试4次,用了此法调个20次不在话下。时间就是金钱我的朋友!

文档扫码可得,再次强调,挺贵介意勿点


backtrader好慢,提速法(调试、参数回测)的评论 (共 条)

分享到微博请遵守国家法律