将genericsvdata对象转换为backtrader数据源

2024-05-08 14:47:18 发布

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

如何将backtrader csv reader转换为backtrader datafeed?我试过了:

尝试1:(用genericsv替换datafeed)

all_data=bt.feeds.GenericCSVData(
  #my csv params here
)

for s, df in all_data.items(): #THIS LINE READS IN CSV AND ERRORS
    #do stuff

'Lines_LineSeries_DataSeries_OHLC_OHLCDateTime_Abst' object has no attribute 'items'

尝试2:(将genericsv转换为Datafeed)

^{pr2}$

ERROR: 'Lines_LineSeries_DataSeries_OHLC_OHLCDateTime_Abst' object has no attribute 'columns'

尝试3:(读取csv并转换为数据源)

df=pd.read_csv('/home/abc/EUR_USD.csv',header=0,parse_dates=True)
all_datafeed = bt.feeds.PandasData(dataname=df)
for df in all_datafeed.items():
    print(df)

'Lines_LineSeries_DataSeries_OHLC_OHLCDateTime_Abst' object has no attribute 'items'

csv摘录:

time,oask,hask,lask,cask,obid,hbid,lbid,cbid,volume
2002-05-06 20:00:00 UTC,0.9184,0.9184,0.9181,0.9184,0.9181,0.9181,0.9181,0.9181,1
2002-05-07 20:00:00 UTC,0.9155,0.9155,0.9152,0.9155,0.9152,0.9152,0.9152,0.9152,1
2002-05-08 20:00:00 UTC,0.9045,0.9045,0.9042,0.9045,0.9042,0.9042,0.9042,0.9042,1

Tags: csvnodfobjectitemsattributeallhas
1条回答
网友
1楼 · 发布于 2024-05-08 14:47:18
# Create a Data Feed
data = bt.feeds.GenericCSVData(
    dataname='filepath.csv',
    fromdate=datetime.datetime(2018, 1, 1),
    todate=datetime.datetime(2018, 12, 31),
    nullvalue=0.0,
    dtformat=('%Y-%m-%d'),
    datetime=0,
    open = 1,
    high = 2,
    low = 3,
    close = 4,
    volume =5, 
    openinterest=-1,
    reverse=False)

# Add the Data Feed to Cerebro
cerebro.adddata(data)

如果这就是你想要完成的,尽管我不确定。在

https://www.backtrader.com/docu/datafeed.html

相关问题 更多 >