shinnytech / tqsdk-python

天勤量化开发包, 期货量化, 实时行情/历史数据/实盘交易
https://doc.shinnytech.com/tqsdk/latest
Apache License 2.0
3.64k stars 650 forks source link

回测时,k线起始时间点无效 #16

Closed realoptimusprime closed 5 years ago

realoptimusprime commented 5 years ago

tqsdk 0.8.8; 天勤客户端0.9.4 订阅日线klines=api.get_kline_serial(symbol, 24 60 60) 获取quote=api.get_quote(symbol) 指定TqBacktest的start_dt为某个datetime,比如datetime(2018,9,4,9,0,0) 开始回测 api.wait_update()后每次读出来的klines[-1]["datetime"]对应的时间点总是下一天的00:00:00,而不是09:00:00

shinny-chengzhi commented 5 years ago

日线及N日线周期的 datetime 字段是交易日,所以时间部分始终是 00:00:00

realoptimusprime commented 5 years ago

这个需要在文档里写清楚。根据文档只要传入类型datetime就是具体时间点,不论K线周期

https://doc.shinnytech.com/pysdk/latest/reference.html#tqsdk.backtest.TqBacktest _startdt (date/datetime): 回测起始时间, 如果类型为 date 则指的是交易日, 如果为 datetime 则指的是具体时间点

shinny-chengzhi commented 5 years ago

这个和是否回测是没有关系的。例如现在北京时间是 2019-01-07 11:22 ,但是现在取到的日线的时间标的是 2019-01-07 00:00:00 回测永远都是从具体时间点开始的(即使你传的是 date 也会被转成 datetime),这个起点的含义是: 你可以观察到 start_dt 及之前的所有历史信息,但是观察不到 start_dt 之后的任何信息