gpt4 book ai didi

python - 重新运行单元格时,Jupiter notebook 中的 BackTrader 图表消失

转载 作者:行者123 更新时间:2023-11-28 17:05:54 26 4
gpt4 key购买 nike

我正在使用 BackTrader 进行回溯测试(在 Mac 上使用 Jupiter Notebook 中的 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)。 First time plot

但是,当我再次重新运行单元格(调整输入)时,它消失了,只剩下底部的图形大小输出(见图 2)。 Output after re-running cell

如果我将代码复制并粘贴到下面的新单元格中并运行它,它仍然不起作用。我仍然只剩下底部的图形大小输出。

这非常令人沮丧,因为每次我想重现他们的情节之一时,我都必须重新启动 Jupiter notebook 才能完成。

提前致谢!

最佳答案

我遇到了同样的问题,我相信它与 backtrader 与 matplotlib 的交互有关。我能够通过包含行来修复它

%matplotlib inline

在我笔记本的最顶端(位于最顶端似乎很重要,as noted here)。我确实不需要包含像import matplotlib这样的语句。

每次生成绘图时都会生成系统警告消息,可以使用

import warnings
warnings.filterwarnings('ignore')

如前所述in this question .

操作问题的最小失败重现:

在 [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')

最小失败重现的修复版本:

在 [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')

关于python - 重新运行单元格时,Jupiter notebook 中的 BackTrader 图表消失,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51098041/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com