backtesting库bt.plot()报错:Toolbar的logo参数重复赋值
解决
backtesting库bt.plot()报错:TypeError: bokeh.models.tools.Toolbar() got multiple values for keyword argument 'logo' - 首先纠正一个关键错误:你使用的是
backtesting库,但执行的是升级backtrader的命令——这两个是完全独立的Python回测库,升级backtrader对你的问题没有任何帮助。
问题根源
这个报错是因为backtesting库的绘图模块与你当前安装的bokeh库版本不兼容:新版bokeh(3.x及以上)对Toolbar类的logo参数做了API调整,而旧版backtesting库的代码仍在以旧方式传递该参数,导致重复传参错误。
具体解决步骤
查看当前库版本
执行命令检查已安装的backtesting和bokeh版本:# Linux/macOS pip list | grep -E "backtesting|bokeh" # Windows pip list | findstr "backtesting bokeh"方案一:升级
backtesting到最新版本
新版本的backtesting已经修复了与高版本bokeh的兼容问题,执行升级命令:pip install --upgrade backtesting方案二:锁定
bokeh到兼容的旧版本
如果升级backtesting后问题仍存在,可将bokeh降级到2.x版本(推荐2.4.3,经大量验证兼容backtesting):pip install bokeh==2.4.3额外验证:确保数据格式正确
确认你从ek.get_timeseries获取的苹果公司数据符合backtesting库要求:- 数据框的索引必须是datetime类型
- 列名必须为
Open、High、Low、Close、Volume(注意大小写严格匹配)
内容的提问来源于stack exchange,提问作者Jorge Brehm
相关产品推荐
相关产品推荐

