Backtrader_Bokeh

用过 Backtrader 都知道它的可视化是用的 matplotlib , 好处是开箱即用,因为 matplotlib 是 Backtrader的默认可视化后端,但缺点就是 matplotlib的绘图还是不够日常需要。要说到图片文字的展示能力,我们熟悉的 HTML + JS + CSS 才是王道。那么有没有一个可以在浏览器展示策略数据和分析结果的呢?答案就是 Backtrader和 Bokeh 的结合产品:Welcome to backtrader_bokeh | backtrader_bokeh (iniself.github.io)

Backtrader_Bokeh继承自backtrader_plotting and btplotting ,对两者的问题做了修正并且计划推出更加适合量化框架 Backtrader 的一系列新特性。欢迎来 github 上关注及讨论

继续阅读Backtrader_Bokeh

Backtrader

Backtrader 是一个非常好的量化框架,但是作者似乎两年前就不维护了。其他用的还好,包括指标库都很好用,但就是用 Backtrader 的可视化接口时,横坐标值总是不显示,导致其他的一些 API 比如坐标值的文本旋转等也没用。解决办法有下面两个:

方法一(推荐):修改 backtrader 源文件

#修改site-packages/backtrader/plot/plot.py

for ax in laxis:
   self.mpyplot.setp(ax.get_xticklabels(), visible=False)
   #修改成
   self.mpyplot.setp(ax.get_xticklabels(), visible=True)

方法二(不推荐):直接通过 Matplotlib 来设置

my_plot = cerebro.plot()

#查看图片有几个 axes
pirnt(len(my_plot[0][0].axes)) #假设有三个

#设置三个 axes 的 ticks 位置为默认
ax1= my_plot[0][0].axes[0]
ax2= my_plot[0][0].axes[1]
ax3= my_plot[0][0].axes[2]

ax1.xaxis.set_ticks_position('default') # 设置该 axes 中的 ticks 位置默认
ax2.xaxis.set_ticks_position('default')
ax3.xaxis.set_ticks_position('default')