【问题标题】:Cerebro.run() on backtrader doesn't output anything?backtrader 上的 Cerebro.run() 不输出任何内容?
【发布时间】:2021-08-27 21:43:11
【问题描述】:

我正在尝试在 Backtrader 上运行示例策略,但是,我没有收到错误代码,只是没有输出,除了 [ma​​in.SmaCross at 0x12543a880>]

有人可以帮帮我吗?非常感谢。

代码:

import backtrader as bt
from datetime import datetime
import pandas as pd

df = pd.read_csv("VAR1.DE_5Y.csv")
df['Date'] = pd.to_datetime(df['Date'])
df = df.set_index(df['Date'])
df = df.drop(columns=['Date'])

class SmaCross(bt.SignalStrategy):
    def __init__(self):
        sma = bt.ind.SMA(period=50)
        price = self.data
        crossover = bt.ind.CrossOver(price, sma)
        self.signal_add(bt.SIGNAL_LONG, crossover)
        
cerebro = bt.Cerebro()
cerebro.addstrategy(SmaCross)

data = bt.feeds.GenericCSVData(dataname="VAR1.DE_5Y.csv", nullvalue=0.0, dtformat=('%Y-%m-%d'))

cerebro.adddata(data)

cerebro.run()

我没有使用 YahooFinanceData 和 yfinance,因为服务器最近似乎不稳定并且没有在 python 上运行。所以我尝试使用传统的 read_csv(file) 作为将数据提供给 bt 的一种方式,我不确定这是否是它不输出任何内容的原因

【问题讨论】:

    标签: python backtrader


    【解决方案1】:

    cerebro.run() 默认不输出任何内容。要显示图表,请尝试在cerebro.run() 之后使用cerebro.plot(),您应该会看到图表。

    或者你可以添加分析器https://www.backtrader.com/docu/analyzers/analyzers/#a-quick-example

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-06-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-02-16
      相关资源
      最近更新 更多