我正在使用BackTrader进行反测试(在Mac上使用木星笔记本中的python3 ),并使用了在https://www.backtrader.com/docu/plotting/plotting.html上找到的文档中的以下示例
import backtrader as bt
class Ind(bt.Strategy):
def __init__(self):
self.sma = bt.indicators.SimpleMovingAverage(self.data)
datapath = 'CSV file on my computer.txt'
data = bt.feeds.BacktraderCSVData(dataname = datapath)
cerebro = bt.Cerebro()
cerebro.adddata(data)
cerebro.addstrategy(Ind)
cerebro.run()
cerebro.plot()当我使用BackTrader的cerebro.plot()函数绘制一个图形时,它第一次工作得很好(见图1)。第一次情节
然而,当我再次运行单元格(调整输入)时,它就消失了,只剩下图形大小输出在底部(见图2)。重新运行单元后输出
如果我将代码复制并粘贴到下面的一个新单元格中并运行它,它仍然无法工作。我仍然只剩下数字大小输出在底部。
这是非常令人沮丧的,因为每次我想复制他们的一个情节,我必须重新启动木星笔记本来做它。
提前感谢!
发布于 2018-10-30 14:24:45
我也遇到过同样的问题,我认为这与后台交易者与matplotlib的交互有关。我可以通过包括行
%matplotlib inline在我笔记本的最上面(就在最上面似乎很重要,如前所述)。我做了,而不是需要包含像import matplotlib这样的语句。
这将在每次生成绘图时生成系统警告消息,这些信息可以使用
import warnings
warnings.filterwarnings('ignore')正如所指出的,在这个问题上。
极小失败再现op的问题:
在1
import backtrader as bt
import datetime
if __name__ == '__main__':
cerebro = bt.Cerebro()
data = bt.feeds.YahooFinanceData(
dataname='AAPL',
fromdate=datetime.datetime(2000, 1, 1),
todate=datetime.datetime(2000, 12, 31),
reverse=False)
cerebro.adddata(data)
cerebro.run()
cerebro.plot(style='bar')在2
cerebro.plot(style='bar')固定版本的最小失败repro:
在1
%matplotlib inline
import warnings
warnings.filterwarnings('ignore')
import backtrader as bt
import datetime
if __name__ == '__main__':
cerebro = bt.Cerebro()
data = bt.feeds.YahooFinanceData(
dataname='AAPL',
fromdate=datetime.datetime(2000, 1, 1),
todate=datetime.datetime(2000, 12, 31),
reverse=False)
cerebro.adddata(data)
cerebro.run()
cerebro.plot(style='bar')在2
cerebro.plot(style='bar')https://stackoverflow.com/questions/51098041
复制相似问题