为什么回测时backtrader不显示时间?

Why does backtrader not display time when backtesting?

我正在尝试使用 Backtrader 回测策略,但在打印每次迭代的日期和时间时遇到问题(时间停留在 23:59:59)。

这是我的数据集的第一行:

控制台上打印的内容:

最后是我如何加载数据:

data = bt.feeds.GenericCSVData(dataname="BTCUSD_15MIN.csv",
                               datetime=0,
                               fromdate=datetime.datetime(2015,1,13),
                               todate=datetime.datetime(2015,1,15),
                               open=1,
                               high=2,
                               low=3,
                               close=4,
                               openinterest=-1,
                               time=-1,
                               volume=-1,
                               dtformat="%Y-%m-%d %H:%M:%S")

有人遇到过这个问题吗?

将此行添加到数据提要解决了我的问题:

timeframe=bt.TimeFrame.Ticks

如果对策略结果感兴趣,那就是here

那肯定只是偶然解决了你的问题(因为你选择的比实际情况小)

您的数据显然是基于 15-minutes 的。但是在没有指定的情况下,您可以使用默认值:bt.TimeFrame.Daily,这为您提供了每个柱的 一天结束时间 。没有惊喜。

因此正确的选择是:

timeframe=bt.TimeFrame.Minutes,
compression=15,

这在 backtrader 社区的几个 post 和常见问题解答中都有解释。