我试图在Backtrader上运行一个示例策略,但是,除了<main.SmaCross在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(文件)作为将数据提供给bt的一种方式,我不确定这是否是它没有输出任何东西的原因
发布于 2021-08-27 13:43:11
默认情况下,cerebro.run()不应该输出任何内容。要显示图形,请在cerebro.plot()之后使用cerebro.run(),您应该看到图。
或者你可以添加分析器https://www.backtrader.com/docu/analyzers/analyzers/#a-quick-example
https://stackoverflow.com/questions/68331664
复制相似问题