研究backtrader这么长时间,我感觉相对vnpy,backtrader最大的优势在于对多标的,多周期的处理上非常优雅,比vnpy强。多标的,多周期在实盘时处理时,由于存在不确定的网络延时,更加复杂。考虑一个单周期多标的简单的场景,从远端接收tick,然后合成1分钟k线。vnpy合成分钟线的时机不是物理时间整分钟触发,而是下一个tick触发。收到下一个tick时,检查其时间是否相对上一个tick时间越过了整分钟,若是,就合成1分钟k线,若下一个tick距离上一个tick的时间很远,那就问题很大。在多标的下,这种k线合成机制无法同步各个标的。而backtrader中分钟线合成时机是物理时间整
backtrader是著名的开源量化框架,作者叫DanielRodriguez,就是下图这位老兄。这个作者是德国人,工作在德国慕尼黑,编程水平极高,比国内一些非专业程序员编写的回测平台代码质量高太多。backtrader框架编码简洁优雅,用户编写回测策略所需代码量极少。遗憾的是这位德国老兄写的backtrader英文文档与英国人的写作风格很不一样,能说一句绝不说两句,还经常夹杂一些古怪的俚语,说实话对中国人有些晦涩难懂(有的老外看了也说难懂),严重妨碍了backtrader在中国的普及。因此,为推动backtrader在中国的普及,我们编写了目前国内唯一(也是世界唯一)的扫地僧backtrad
本文档参考backtrader官方文档,是官方文档的完整中文翻译,可作为backtrader中文教程、backtrader中文参考手册、backtrader中文开发手册、backtrader入门资料使用。Strategy策略章节目录策略(Strategy)策略入门如何买入/卖出/平仓信息位成员属性:成员属性(用于统计/观察者/分析器):信号驱动的策略初始化常见问题信号的技术细节信号指标信号的类型累积和订单的并发性信号使用示例第一次运行:做多和做空第二次运行:只做多(买入)第三次运行:只做空(卖出)
我们一般使用AKShare这个库来获取股票数据或策略中用得到的数据:AKSharegithub主页:https://github.com/akfamily/akshare使用Backtrader框架作为回测的框架:Backtradergithub主页:https://github.com/mementum/backtrader使用quantstats库作为回测结果评价的库:quantstatsgithub主页:https://github.com/ranaroussi/quantstats这一部分准备好之后,后续我们将关注点主要放在【策略】上,对于数据、评价指标这些如无特殊处理,将不再赘述。整