首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >IndexError:列出超出交易区间的指数

IndexError:列出超出交易区间的指数
EN

Stack Overflow用户
提问于 2022-04-26 08:15:02
回答 1查看 254关注 0票数 1

不好意思问这个问题!

我有一个CSV,看起来像:

代码语言:javascript
复制
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
...

我试着利用后台交易者的数据:

代码语言:javascript
复制
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'
)

但我不断地发现以下错误:

代码语言:javascript
复制
IndexError: list index out of range backtrader

知道我做错什么了吗?

更新:

如果我将datetime更改为'-1‘,则会得到另一个错误:

代码语言:javascript
复制
ValueError: time data '1.85' does not match format '%Y-%m-%d %H:%M:%S'
EN

回答 1

Stack Overflow用户

发布于 2022-04-26 09:45:17

尝试一下,将openinterest=-1添加到GenericCSVData中。

代码语言:javascript
复制
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的源代码中有以下代码:

代码语言:javascript
复制
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中使用openinterest列。

此外,我还有一个问题ImportError Cannot import name 'warnings' from 'matplotlib.dates是由https://stackoverflow.com/a/63974376/11004559解决的。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72010546

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档