我试着用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")
有人已经有这个问题了吗?
最佳答案
当然,这只是偶然地解决了你的问题(因为你选择的东西比实际的要小)
你的数据显然是以15-minutes
为基础的。但是,如果没有指定,您可以使用默认值:bt.TimeFrame.Daily
,这将为每个栏提供一天的结束时间。没什么好惊讶的。
因此,正确的选择是:
timeframe=bt.TimeFrame.Minutes,
compression=15,
这在backtrader社区的几个帖子和faq中都有解释。
常见问题解答:https://community.backtrader.com/topic/381/faq
一篇内容相同的帖子:https://community.backtrader.com/topic/244/backtesting-1-minute-data/