想要回答backtrader能实现什么功能,这个实在是太难了。因为backtrader可以实现的功能非常多,数不胜数。
我们尝试用逆向思维法,分析一下backtrader比较难实现的功能吧。
backtrader无所不能,除了---
1. 比较难实现高频的回测与交易(回测速度慢)
backtrader框架是基于Python开发的,本身要受到python速度的局限,不太适合高频(频率比较高)的回测与交易。如果你想要实现高频的回测与交易,建议你去使用C++或者java。
2. 没有bid和ask这样的tick数据结构,基于**语言的回测比较难实现
backtrader的基本的数据是基于bar数据的高开低收成交量持仓量数据,还可以增加自定义的额外数据,如pe,pb等,本质上是基于bar的回测。
3. 不是精通python语言的quant,比艰难debug
backtrader大量使用了元编程技术,并且创建了特殊的类---line,出现bug的时候debug,可能需要查找很多类。下图是我很早之前读过backtrader的源码做的backtrader类之间继承关系的一个百度脑图的一部分,从中可以看出其复杂之处。
本身backtrader的目标就是要提供一个简单的好用的框架,如果你不是量化系统开发工程师,Python水平一般也是可以使用的,因为写策略的时候特别简单和容易。如果你是量化系统开发工程师,想要从源码层面了解backtrader,你需要确信,自己的python水平是足够的。
除了比较能实现的功能之外,剩下的就是backtrader的优点了,可以列出来一大堆。