backtrader 是基于 python 语言的一个量化投资框架,可以用于各种资产的回测。
目前,backtrader 可以用于实现股票、期货、外汇、数字货币、期权等资产类型的回测,官方或者第三方,实现了基于 IB、Oanda、VC、CCXT、MT5 等接口量化交易。
backtrader 的开发目标有两个:易用和简单,是基于 KID 理念开发的一个平台,我个人在使用的过程中,也发现了,backtrader 写策略特别简单和爽,一个在其他平台特别复杂的策略,backtrader 有可能在几十行的代码中就轻轻松松地实现了。(简单的易用性下,隐藏着作者深厚的编程技能,框架基于元编程技术编写,特别复杂,估计只有 backtrader 作者自己能完完全全搞得懂,我自己已经阅读源代码三遍以上了,只能做到对 backtrader 的框架用的比较熟悉,理解的比较深入。在源码分享的 80 篇文章中,我也比较期待,能够达到和作者一样的高度,深入理解 backtrader 的每个细节,希望你也能够做到)。
任何事物都有两面性,backtrader 的复杂的元编程技术,也给我们带来了这个整体框架的灵活性。整个框架就像一个乐高积木一样,是高度可配置的。
你可以自由的开发自己的功能,在写策略的时候自由搭配,高度灵活。
backtrader 框架下,写任何一个策略,都必须使用三个基础模块,那就是策略模板(bt.Strategy),大脑(cerebro)和运行(run),其中,策略模板用于实现我们想要的策略逻辑,大脑用于加载数据,配置 broker,选择策略,添加手续费与滑点等信息,最后就是运行了,运行之后,就开始回测与交易了。
任何一个策略的回测或者交易,都必须包含这三个基础的部分,在下章,我将会分享如何实现一个简单的策略:基于双均线的工商银行股票量化交易策略