backtrader上的Cerebro.run()不输出任何内容?

2024-05-26 07:46:55 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图在Backtrader上运行一个示例策略,但是,我没有收到错误代码,只是没有输出,除了 [<;main.SmaCross位于0x12543a880>;]

enter image description here

有人能帮我吗?非常感谢

守则:

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上运行。所以我尝试用传统的读取csv(文件)的方式将数据传送到bt,我不确定这是否是它不输出任何内容的原因


Tags: csvimportselfdfdatadatetimedateas