3.33K 浏览
0

from datetime import date
from tqsdk import TqApi, TqSim, TqBacktest, tafunc
 api = TqApi(TqSim(), backtest=TqBacktest(start_dt=date(2017, 9, 1), end_dt=date(2019, 10, 1)))
 klines = api.get_kline_serial('SHFE.ni2001', 60*60)
kline = api.get_kline_serial('SHFE.ni1805', 60*60)
  while True:
    api.wait_update()
    print(tafunc.time_to_datetime(klines.datetime.iloc[-1]))
    print(tafunc.time_to_datetime(kline.datetime.iloc[-1]))

因为设置的回测时间是从17年到19年的,用了两个合约ni2001和ni1805,开始跑的时候直接从19年8月26日开始了,也就是ni2001合约的开始时间,但是为什么不是从17年9月开始,而且ni1805合约并没有按小时显示出来。另外,对于ni2001合约,为什么会显示两次相同的时间,比如显示了两次2018-05-15 14:00:00。跑的结果是:

2018-05-15 14:00:00
2019-08-26 10:00:00
2018-05-15 14:00:00
2019-08-26 11:00:00
2018-05-15 14:00:00
2019-08-26 11:00:00
2018-05-15 14:00:00
2019-08-26 13:00:00
2018-05-15 14:00:00
2019-08-26 13:00:00
2018-05-15 14:00:00
2019-08-26 14:00:00
2018-05-15 14:00:00
2019-08-26 14:00:00
2018-05-15 14:00:00
2019-08-26 21:00:00
2018-05-15 14:00:00
2019-08-26 21:00:00
2018-05-15 14:00:00
2019-08-26 22:00:00
2018-05-15 14:00:00
2019-08-26 22:00:00
2018-05-15 14:00:00
2019-08-26 23:00:00
2018-05-15 14:00:00
2019-08-26 23:00:00
2018-05-15 14:00:00
2019-08-27 00:00:00
2018-05-15 14:00:00
2019-08-27 00:00:00
2018-05-15 14:00:00
2019-08-27 09:00:00
2018-05-15 14:00:00
2019-08-27 09:00:00
2018-05-15 14:00:00
2019-08-27 10:00:00
2018-05-15 14:00:00
2019-08-27 10:00:00
2018-05-15 14:00:00
2019-08-27 11:00:00
2018-05-15 14:00:00
2019-08-27 11:00:00
2018-05-15 14:00:00
2019-08-27 13:00:00
2018-05-15 14:00:00
2019-08-27 13:00:00
2018-05-15 14:00:00
2019-08-27 14:00:00
2018-05-15 14:00:00
2019-08-27 14:00:00
2018-05-15 14:00:00
2019-08-27 21:00:00
2018-05-15 14:00:00
2019-08-27 21:00:00
2018-05-15 14:00:00
2019-08-27 22:00:00
2018-05-15 14:00:00
2019-08-27 22:00:00
2018-05-15 14:00:00
2019-08-27 23:00:00
2018-05-15 14:00:00
2019-08-27 23:00:00
2018-05-15 14:00:00
2019-08-28 00:00:00
2018-05-15 14:00:00
2019-08-28 00:00:00
2018-05-15 14:00:00
2019-08-28 09:00:00
2018-05-15 14:00:00
2019-08-28 09:00:00
2018-05-15 14:00:00
2019-08-28 10:00:00
2018-05-15 14:00:00
2019-08-28 10:00:00
2018-05-15 14:00:00
2019-08-28 11:00:00
2018-05-15 14:00:00
2019-08-28 11:00:00
2018-05-15 14:00:00
2019-08-28 13:00:00
2018-05-15 14:00:00
2019-08-28 13:00:00
2018-05-15 14:00:00
2019-08-28 14:00:00
2018-05-15 14:00:00
2019-08-28 14:00:00
2018-05-15 14:00:00
2019-08-28 21:00:00
2018-05-15 14:00:00
2019-08-28 21:00:00
2018-05-15 14:00:00
2019-08-28 22:00:00
2018-05-15 14:00:00
2019-08-28 22:00:00
2018-05-15 14:00:00
2019-08-28 23:00:00
2018-05-15 14:00:00
2019-08-28 23:00:00
2018-05-15 14:00:00
2019-08-29 00:00:00
2018-05-15 14:00:00
2019-08-29 00:00:00
2018-05-15 14:00:00
2019-08-29 09:00:00
2018-05-15 14:00:00
2019-08-29 09:00:00
2018-05-15 14:00:00
2019-08-29 10:00:00
2018-05-15 14:00:00
2019-08-29 10:00:00
2018-05-15 14:00:00
2019-08-29 11:00:00
2018-05-15 14:00:00
2019-08-29 11:00:00
2018-05-15 14:00:00
2019-08-29 13:00:00
2018-05-15 14:00:00
2019-08-29 13:00:00
2018-05-15 14:00:00
2019-08-29 14:00:00
2018-05-15 14:00:00
2019-08-29 14:00:00
2018-05-15 14:00:00
2019-08-29 21:00:00
2018-05-15 14:00:00
2019-08-29 21:00:00
2018-05-15 14:00:00
2019-08-29 22:00:00
2018-05-15 14:00:00
2019-08-29 22:00:00
2018-05-15 14:00:00
2019-08-29 23:00:00
2018-05-15 14:00:00
2019-08-29 23:00:00
2018-05-15 14:00:00
2019-08-30 00:00:00
2018-05-15 14:00:00
2019-08-30 00:00:00
2018-05-15 14:00:00
2019-08-30 09:00:00
2018-05-15 14:00:00
2019-08-30 09:00:00
2018-05-15 14:00:00
2019-08-30 10:00:00
2018-05-15 14:00:00
2019-08-30 10:00:00
2018-05-15 14:00:00
2019-08-30 11:00:00
2018-05-15 14:00:00
2019-08-30 11:00:00
2018-05-15 14:00:00
2019-08-30 13:00:00
2018-05-15 14:00:00
2019-08-30 13:00:00
2018-05-15 14:00:00
2019-08-30 14:00:00
2018-05-15 14:00:00
2019-08-30 14:00:00
2018-05-15 14:00:00
2019-08-30 21:00:00
2018-05-15 14:00:00
2019-08-30 21:00:00
2018-05-15 14:00:00
2019-08-30 22:00:00
2018-05-15 14:00:00
2019-08-30 22:00:00
2018-05-15 14:00:00
2019-08-30 23:00:00
2018-05-15 14:00:00
2019-08-30 23:00:00
2018-05-15 14:00:00
2019-08-31 00:00:00
2018-05-15 14:00:00
2019-08-31 00:00:00
2018-05-15 14:00:00
2019-09-02 09:00:00
2018-05-15 14:00:00
2019-09-02 09:00:00
2018-05-15 14:00:00
2019-09-02 10:00:00
2018-05-15 14:00:00
2019-09-02 10:00:00
2018-05-15 14:00:00
2019-09-02 11:00:00
2018-05-15 14:00:00
2019-09-02 11:00:00
2018-05-15 14:00:00
2019-09-02 13:00:00
2018-05-15 14:00:00
2019-09-02 13:00:00
2018-05-15 14:00:00
2019-09-02 14:00:00
2018-05-15 14:00:00
2019-09-02 14:00:00
2018-05-15 14:00:00
2019-09-02 21:00:00
2018-05-15 14:00:00
2019-09-02 21:00:00
2018-05-15 14:00:00
2019-09-02 22:00:00
2018-05-15 14:00:00
2019-09-02 22:00:00
2018-05-15 14:00:00
2019-09-02 23:00:00
2018-05-15 14:00:00
2019-09-02 23:00:00
2018-05-15 14:00:00
2019-09-03 00:00:00
2018-05-15 14:00:00
2019-09-03 00:00:00
2018-05-15 14:00:00
2019-09-03 09:00:00
2018-05-15 14:00:00
2019-09-03 09:00:00
2018-05-15 14:00:00
2019-09-03 10:00:00
2018-05-15 14:00:00
2019-09-03 10:00:00
2018-05-15 14:00:00
2019-09-03 11:00:00
2018-05-15 14:00:00
2019-09-03 11:00:00
2018-05-15 14:00:00
2019-09-03 13:00:00
2018-05-15 14:00:00
2019-09-03 13:00:00
2018-05-15 14:00:00
2019-09-03 14:00:00
2018-05-15 14:00:00
2019-09-03 14:00:00
2018-05-15 14:00:00
2019-09-03 21:00:00
2018-05-15 14:00:00
2019-09-03 21:00:00
2018-05-15 14:00:00
2019-09-03 22:00:00
2018-05-15 14:00:00
2019-09-03 22:00:00
2018-05-15 14:00:00
2019-09-03 23:00:00
2018-05-15 14:00:00
2019-09-03 23:00:00
2018-05-15 14:00:00
2019-09-04 00:00:00
2018-05-15 14:00:00
2019-09-04 00:00:00
2018-05-15 14:00:00
2019-09-04 09:00:00
2018-05-15 14:00:00
2019-09-04 09:00:00
2018-05-15 14:00:00
2019-09-04 10:00:00
2018-05-15 14:00:00
2019-09-04 10:00:00
2018-05-15 14:00:00
2019-09-04 11:00:00
2018-05-15 14:00:00
2019-09-04 11:00:00
2018-05-15 14:00:00
2019-09-04 13:00:00
2018-05-15 14:00:00
2019-09-04 13:00:00
2018-05-15 14:00:00
2019-09-04 14:00:00
2018-05-15 14:00:00
2019-09-04 14:00:00
2018-05-15 14:00:00
2019-09-04 21:00:00
2018-05-15 14:00:00
2019-09-04 21:00:00
2018-05-15 14:00:00
2019-09-04 22:00:00
2018-05-15 14:00:00
2019-09-04 22:00:00
2018-05-15 14:00:00
2019-09-04 23:00:00
2018-05-15 14:00:00
2019-09-04 23:00:00
2018-05-15 14:00:00
2019-09-05 00:00:00
2018-05-15 14:00:00
2019-09-05 00:00:00
2018-05-15 14:00:00
2019-09-05 09:00:00
2018-05-15 14:00:00
2019-09-05 09:00:00
2018-05-15 14:00:00
2019-09-05 10:00:00
2018-05-15 14:00:00
2019-09-05 10:00:00
2018-05-15 14:00:00
2019-09-05 11:00:00
2018-05-15 14:00:00
2019-09-05 11:00:00
2018-05-15 14:00:00
2019-09-05 13:00:00
2018-05-15 14:00:00
2019-09-05 13:00:00
2018-05-15 14:00:00
2019-09-05 14:00:00
2018-05-15 14:00:00
2019-09-05 14:00:00
2018-05-15 14:00:00
2019-09-05 21:00:00
2018-05-15 14:00:00
2019-09-05 21:00:00
2018-05-15 14:00:00
2019-09-05 22:00:00
2018-05-15 14:00:00
2019-09-05 22:00:00
2018-05-15 14:00:00
2019-09-05 23:00:00
2018-05-15 14:00:00
2019-09-05 23:00:00
2018-05-15 14:00:00
2019-09-06 00:00:00
2018-05-15 14:00:00
2019-09-06 00:00:00
2018-05-15 14:00:00
2019-09-06 09:00:00
2018-05-15 14:00:00
2019-09-06 09:00:00
2018-05-15 14:00:00
2019-09-06 10:00:00
2018-05-15 14:00:00

west 已回答的问题 2020年3月10日
0
  1. ni2001上市时间是2019.1.16。

2. 因为回测是由行情推动的,你先订阅的ni2001,这时候回测模块内部的时间就已经更新到ni2001上市时间了,这时候ni1805已经下市。

3. ”2018-05-15 14:00:00“是你打出的ni1805的时间,这是它的下最后一个K线的时间。仔细看,上面每隔一个ni2001的时间就有一个”2018-05-15 14:00:00“。 可能你只截到了所有输出内容的其中一部分,它前面还有输出内容的。

4. 请问你回测上市时间段不重叠的两个和约的需求是什么

Truego 发表新评论 2020年3月10日

如果需要回测几年的数据,肯定会需要多个合约来回测