掘金社区
比如说当前时刻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的
只是时间被你们给写错了
上图
注意看图,我打印了print(datetime.now())查看当前时间,我刚更新过的时间,就算有误差也不可能有15秒的误差.
事实就是,我在2018-07-10 11:12:02.870885,就取到了eob为datetime.datetime(2018, 7, 10, 11, 12, 15)的数据,这明显是不合理的.
不知道是不是bug
-
我自己答把
history函数不能用于获取实时行情,history函数所返回的bar数据是实时合成实时更新的,
从这根bar开始合成开始就有数据,动态更新bar数据,到这根bar结束后该bar就合成完毕了所以才会有如上的情况发生
那么请问掘金有获取实时行情的函数吗?
谢谢
-
history查询<60s bar时,bar是由tick数据合成。
实时行情订阅: https://www.myquant.cn/docs/python/55#15ad56f8be8519c0
-
-
@Andex history_n(symbol....n=1) 查询最新n条数据
-
@掘金大师 这个我已经试过了,和history一样的,他两的底层是一样的,不过没问题了,虽然说是bar是动态更新的,但是次新的bar肯定是完整的,目前的处理是取到的bar列表把最新的去掉,这样数据是正确的,只是对于时间会延迟1.5到3秒左右,目前的架构这个解决不了,没办法。