首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >BackTrader图形在木星笔记本上的图形在重新运行时消失

BackTrader图形在木星笔记本上的图形在重新运行时消失
EN

Stack Overflow用户
提问于 2018-06-29 09:01:10
回答 1查看 4.5K关注 0票数 3

我正在使用BackTrader进行反测试(在Mac上使用木星笔记本中的python3 ),并使用了在https://www.backtrader.com/docu/plotting/plotting.html上找到的文档中的以下示例

代码语言:javascript
复制
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)。重新运行单元后输出

如果我将代码复制并粘贴到下面的一个新单元格中并运行它,它仍然无法工作。我仍然只剩下数字大小输出在底部。

这是非常令人沮丧的,因为每次我想复制他们的一个情节,我必须重新启动木星笔记本来做它。

提前感谢!

EN

回答 1

Stack Overflow用户

发布于 2018-10-30 14:24:45

我也遇到过同样的问题,我认为这与后台交易者与matplotlib的交互有关。我可以通过包括行

代码语言:javascript
复制
%matplotlib inline

在我笔记本的最上面(就在最上面似乎很重要,如前所述)。我做了,而不是需要包含像import matplotlib这样的语句。

这将在每次生成绘图时生成系统警告消息,这些信息可以使用

代码语言:javascript
复制
import warnings
warnings.filterwarnings('ignore')

正如所指出的,在这个问题上

极小失败再现op的问题:

在1

代码语言:javascript
复制
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

代码语言:javascript
复制
cerebro.plot(style='bar')

固定版本的最小失败repro:

在1

代码语言:javascript
复制
%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

代码语言:javascript
复制
cerebro.plot(style='bar')
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51098041

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档