目录
这讲会涉及到很多之前没讲过的概念,这些坑暂时先留着,后面的文章中都会慢慢填上。
已经看完前几讲的细心的小伙伴应该能看到,每个完整的例子里都定义了Cerebro这个对象,而且是几乎从头运行到尾。不难看出,这个Cererbro是一个非常重要和关键的模块。
Cerebro这个单词本身的意思是大脑,其实跟这个模块的作用很相符,就是在整个框架中起到统领各方的功能。他会参与到回测从创建到收尾的几乎所有的部分,这其中包括了:
- 创建并管理所有组件,包括原始数据(data feed),策略,观察器,分析器和记录器
- 执行回测
- 返回结果
- 调用绘图模块进行绘图
以下就按这个顺序依次进行说明。
一, 获取,创建回测所需的各个组件
创建Cerebro
cerebro = bt.Cerebro(**kwargs)
可以通过参数**kwargs改变运行方式,主要有如下三种运行方式:
预加载(默认值:True)
最通用的模式,预加载数据测试策略
runonce(默认值:True)
并行运行指标,以加快运行速度。 此时策略和观察器是基于事件运行的
实时(默认:False)
实时模式,设置这个模式时,前面两个参数自动设为False
添加Data feed
cerebro.adddata(data)
这里的data就是data feed对象,第二讲已经讲了如何创建它们。也可以添加重采样数据或回放数据
cerebro.resampledata(data, timeframe=bt.TimeFrame.Days)

本文详细介绍了Backtrader库在金融回测中的应用,包括Cerebro作为核心模块的角色、回测流程、数据管理、策略添加、组件交互以及回测逻辑。Cerebro负责管理数据feed、策略、观察器和分析器,执行回测并绘制图表。文章还讲解了如何添加Datafeed、策略、调整运行模式和调用绘图模块。回测过程涉及数据同步、订单处理和策略执行。最后,文章强调了Cerebro在回测结果分析和绘图中的作用。
最低0.47元/天 解锁文章
1282

被折叠的 条评论
为什么被折叠?



