后台交易者绘图包(bokeh)
backtrader-plotting的Python项目详细描述
Backtrader_绘图
为backtrader设计插件以支持bokeh(或者更多)。
这是一个早期的发展状态。预计会出现错误、大量重组和提交重新排序。 目前,这仅限于python>;=3.6。
请随意测试和玩它。我对反馈、批评和想法很满意: https://community.backtrader.com/topic/813/bokeh-integration-interactive-webbrowser-plotting
演示
https://verybadsoldier.github.io/backtrader_plotting/
快速启动
frombacktrader_plottingimportBokehfrombacktrader_plotting.schemesimportTradimo<yourbacktradercode>b=Bokeh(style='bar',plot_mode='single',scheme=Tradimo())cerebro.plot(b)
最小示例
importdatetimeimportbacktraderasbtfrombacktrader_plottingimportBokehclassTestStrategy(bt.Strategy):params=(('buydate',21),('holdtime',6),)defnext(self):iflen(self.data)==self.p.buydate:self.buy(self.datas[0],size=None)iflen(self.data)==self.p.buydate+self.p.holdtime:self.sell(self.datas[0],size=None)if__name__=='__main__':cerebro=bt.Cerebro()cerebro.addstrategy(TestStrategy,buydate=3)data=bt.feeds.YahooFinanceCSVData(dataname="datas/orcl-1995-2014.txt",# Do not pass values before this datefromdate=datetime.datetime(2000,1,1),# Do not pass values after this datetodate=datetime.datetime(2001,2,28),reverse=False,)cerebro.adddata(data)cerebro.run()b=Bokeh(style='bar',plot_mode='single')cerebro.plot(b)
绘制优化结果
使用此包的另一种方法是调用Bokeh.plot_result
。此函数还支持在优化中生成结果对象时传递该结果对象:
...
cerebro.optstrategy(TestStrategy, buydate=range(1, 10, 1))
cerebro.addanalyzer(bt.analyzers.SharpeRatio)
...
res = cerebro.run()
bo = Bokeh()
bo.plot_result(res)
这将启动一个bokeh应用程序(独立web服务器),显示所有优化结果。
注意:将此功能与optreturn=True
一起使用时,您的backtrader
包必须包含我的此更改:
https://github.com/verybadsoldier/backtrader/commit/f03a0ed115338ed8f074a942f6520b31c630bcfb