IndexError:列表索引超出范围



不好意思!

我有一个CSV,看起来像:

date,volume,open,close,high,low
2020-11-12 13:38:00,100,1.85,1.85,1.85,1.85
2020-11-12 13:58:00,100,1.85,1.85,1.85,1.85
2020-11-12 14:03:00,100,1.85,1.85,1.85,1.85
...

我正在尝试使用backtrader的数据:

import backtrader as bt
# from strategies import AverageTrueRange
# Instantiate Cerebro engine
cerebro = bt.Cerebro()
data = bt.feeds.GenericCSVData(
dataname='data/BBIG.csv',
timeframe=bt.TimeFrame.Minutes,
datetime=0,
high=4,
low=5,
open=2,
close=3,
volume=1,
)
cerebro.adddata(data)
cerebro.run()
cerebro.plot(
style='candlestick'
)

但是我一直得到以下错误:

IndexError: list index out of range backtrader

知道我做错了什么吗?

更新:

如果我将datetime更改为'-1',我会得到一个不同的错误:

ValueError: time data '1.85' does not match format '%Y-%m-%d %H:%M:%S'

试试这个,将openinterest=-1添加到GenericCSVData。

data = bt.feeds.GenericCSVData(
dataname='data/BBIG.csv',
timeframe=bt.TimeFrame.Minutes,
datetime=0,
high=4,
low=5,
open=2,
close=3,
volume=1,
openinterest=-1,
)

我不熟悉反向交易。

但是我发现GenericCSVData在其源代码中有以下代码:

params = (
('nullvalue', float('NaN')),
('dtformat', '%Y-%m-%d %H:%M:%S'),
('tmformat', '%H:%M:%S'),
('datetime', 0),
('time', -1),
('open', 1),
('high', 2),
('low', 3),
('close', 4),
('volume', 5),
('openinterest', 6),
)

我只是试着添加openinterest=-1并得到结果。

我认为类需要在你的BBIG.csv默认的开放兴趣列。

此外,我得到了另一个问题ImportError Cannot import name 'warnings' from 'matplotlib.dates,这是解决https://stackoverflow.com/a/63974376/11004559

最新更新