我对编码很陌生,试图用backtrader来做一个简单的回溯测试过程。我能够执行买卖,但当我试图绘制图表时,它显示:AttributeError: type object 'Gcf‘没有属性'_set_new_active_manager'
我的代码如下:
print('Starting Portfolio Value: %.2f' % cerebro.broker.getvalue())
cerebro.run()
print('Final Portfolio Value: %.2f' % cerebro.broker.getvalue())
cerebro.plot()看看是否有人能提供帮助,非常感谢。
发布于 2021-12-15 16:16:03
问题似乎不是打印数据。初始化对象时出错。您需要共享代码的其他部分。
我想通过开发一个测试应用程序来帮助你。测试应用程序基于标绘应用程序。我使用此链接修复了“从matplotlib.dates修复ImportError”错误。我使用此链接在应用程序中使用测试数据(2005-2006-day-001.txt)。下面是一个演示示例:
from __future__ import (absolute_import, division, print_function, unicode_literals)
import backtrader as bt
class St(bt.Strategy):
def __init__(self):
self.sma = bt.indicators.SimpleMovingAverage(self.data)
data = bt.feeds.BacktraderCSVData(dataname='dataset.txt')
cerebro = bt.Cerebro()
cerebro.adddata(data)
cerebro.addstrategy(St)
cerebro.run()
cerebro.plot()当前的matplot版本导致“从matplotlib.dates修复ImportError”。避免此错误的方法是通过运行以下代码使用较早的matplot版本:
pip uninstall matplotlib
pip install matplotlib==3.1.1下面是应用程序测试映像:

https://stackoverflow.com/questions/70366682
复制相似问题