18年的时候开始做量化分析,当时看了市场上很多的回测工具。大部分都比较笨重,后来主要用的是ricequant的离线回测平台。功能很全,没有什么毛病,主要就是速度比较慢。这个平台前段时间停止服务了,不想用在线平台,只能换一个新工具。
在看到backtrader之前,我把abu的开源代码看了一遍,觉得难度不大,想在abu的基础上自己改一个平台出来。策略部分的功能基本上都开发完成,debug也完成了。偶然发现了BackTrader。简单看了一下,觉得架构设计的非常漂亮,试跑了一下,速度快的惊人。看了一下源代码,才知道自己离专业Python开发者还差的不少,于是放弃了自研的想法,站在巨人的肩膀上前进。下面介绍一下BackTrader这个工具,也作为自己这一段时间学习的总结。
BackTrader主要模块:
- Cerebro:执行引擎。数据,策略,分析等模块注册到这个引擎。由引擎驱动整体流程。
- DataFeed:数据模块。支持多种格式的数据接口,包括对pandas数据的支持。
- Strategy:策略模块。定义买卖的策略。
- Indicator:指标模块。支持talib,可以自己开发指标。策略依赖指标来驱动交易。
- Order:订单模块。市价,限价等等各种格式的订单。