我试着用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/

09-11 20:40