加载数据周期:日K线
数据库:sqlite
今天偶然发现的,自己写的脚本回测和官方图形化引擎的回测结果有出入,加载的是从2015年1月5日至今的数据。细查发现官方回测引擎加载的数据少了不少天数,例如2015年2月4日的日K线数据就没有加载。最后定位到下方的源码:
# vnpy/app/cta_backtester/ui/widget.py BacktesterManager start_backtesting()
start = self.start_date_edit.date().toPyDate()
end = self.end_date_edit.date().toPyDate()
官方回测引擎的load_data()
方法是按30天为周期加载数据的,而2015年2月4日刚好是2015年1月5日开始的第30天,在边界值上。这里是将图形化界面了日期编辑栏转换为Python的datetime.date
类型。不知道为什么导致了漏数据。我将其修改为
# vnpy/app/cta_backtester/ui/widget.py BacktesterManager start_backtesting()
start = self.start_date_edit.dateTime().toPyDateTime()
end = self.end_date_edit.dateTime().toPyDateTime()
转换为datetime.datetime
类型,官方图形化回测引擎加载的数据量就和自己的脚本一致了,2015年2月4日的K线也能看到了。不清楚其它数据周期会不会存在这个问题。