为什么回测时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 和常见问题解答中都有解释。
我正在尝试使用 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 和常见问题解答中都有解释。