掘金社区

history历史数据函数是不是写错了?时间格式对不起来Pinned highlighted

Andex 发表在问题反馈 2018-07-10 11:22:04

问题反馈
430
5
0

比如说当前时刻2018-07-10 11:12:00 (第12分钟)
我想获取12分至13分的15s的bar数据,那么我这么写

history(symbol='SHFE.zn1809', frequency='15s', start_time='2018-07-10 11:12:00', end_time='2018-07-10 11:13:00')

如果数据还没更新,那么会获取到空列表

则,正常情况下,当时间达到12分15秒,即2018-07-10 11:12:15以后,我才能获取到第一个bar数据. 为:
2018-07-10 11:12:00 至 2018-07-10 11:12:15的bar数据对吧??

但是其实用history函数,我不用等到15秒,我可能2018-07-10 11:12:01
或者2018-07-10 11:12:02我就可以搞到我要的那个bar了,其实数据是对的,只是时间戳对不上而已,

猜测
history函数返回的
2018-07-10 11:12:00 至 2018-07-10 11:12:15的数据其实是
2018-07-10 11:11:45 至 2018-07-10 11:12:00的
只是时间被你们给写错了

上图
0_1531192766542_微信截图_20180710111308.png

注意看图,我打印了print(datetime.now())查看当前时间,我刚更新过的时间,就算有误差也不可能有15秒的误差.

事实就是,我在2018-07-10 11:12:02.870885,就取到了eob为datetime.datetime(2018, 7, 10, 11, 12, 15)的数据,这明显是不合理的.

不知道是不是bug

评论: 5
  • 我自己答把
    history函数不能用于获取实时行情,history函数所返回的bar数据是实时合成实时更新的,
    从这根bar开始合成开始就有数据,动态更新bar数据,到这根bar结束后该bar就合成完毕了

    所以才会有如上的情况发生

    那么请问掘金有获取实时行情的函数吗?

    谢谢

    2018-07-10 14:36:58
  • history查询<60s bar时,bar是由tick数据合成。

    实时行情订阅: https://www.myquant.cn/docs/python/55#15ad56f8be8519c0

    2018-07-10 17:39:27
  • @掘金大师
    我不想要订阅式的行情,有没有一个函数可以查询返回某个合约最新的bar数据,最新的bar数据,不是推送,而是我用函数去查询?

    请问有这个功能吗?

    谢谢

    2018-07-11 11:20:17
  • @Andex history_n(symbol....n=1) 查询最新n条数据

    2018-07-12 14:16:21
  • @掘金大师 这个我已经试过了,和history一样的,他两的底层是一样的,不过没问题了,虽然说是bar是动态更新的,但是次新的bar肯定是完整的,目前的处理是取到的bar列表把最新的去掉,这样数据是正确的,只是对于时间会延迟1.5到3秒左右,目前的架构这个解决不了,没办法。

    2018-07-17 09:42:16

Looks like your connection to 掘金量化社区 - 量化交易者的策略交流学习社区 was lost, please wait while we try to reconnect.