print("启动...",__version__)
api = TqApi(TqAccount("快期模拟", "xxxx", "xxxx"))
k=api.get_kline_serial(symbols[i], 60)
r= symbol + "#" + k.iloc[-1]["id"].astype(str) + "#" + str( datetime.datetime.fromtimestamp(k.iloc[-1]["datetime"] / 1e9)) + "#" + k.iloc[-1][ "open"].astype(str) + "#" + k.iloc[-1]["high"].astype(str) + "#" + k.iloc[-1][ "low"].astype(str) + "#" + k.iloc[-1]["close"].astype(str) + "#" + k.iloc[-1][ "volume"].astype(str) + "#" + k.iloc[-1]["open_oi"].astype(str) + "#" + k.iloc[-1][ "close_oi"].astype(str) print(r)
启动… 1.2.1
CFFEX.IF1912#36865.0#2019-12-05 13:25:00#3867.2#3867.2#3867.2#3867.2#0.0#77476.0#77476.0
以上是打印结果
版本:1.2.1, 为什么实时K线数据中 open,high,low,close 的数据是完全一样的. 我换了simnow账户还是一样
要怎么解决? 谢谢
west 已回答的问题 2019年12月5日
K线刚生成瞬间,这时候还没有新行情,这根K线各个数据相等是正常现象。如果你要取新K线刚生成时的K线高开低收,可以获取其倒数第二根K线数据(即刚结束的那一根;但当新数据随着新K线同时推送到客户端时,就没有获取到新数据)。另外,你没使用wait_update()更新行情数据,如果有新数据了仍不能更新到内存中。建议使用前先翻看文档,tqsdk使用K线的参考示例:https://doc.shinnytech.com/tqsdk/latest/demo/tutorial/t30.html
west 编辑评论 2019年12月5日

倒数第二根算是历史数据,倒数第一根才是最新的并在不断更新的K线;如果倒数第一根是刚生成时,在这个时刻,可能并没有行情更新,最后一根K线各个价格是上一根的收盘价,此时也可以把倒数第二根算作最后一根(因为你一定想取这个时候K线的高开低收的话)。行情更新的多少这个不能确定
谢谢, 谢谢
谢谢. 我有使用
while api.wait_update()
if api.is_changing(k.iloc[-1], “datetime”):
上面没有发出来
请问: 倒数第2根是否就是最新可用的? 有多大的时间延迟呢? 只差一个tick的时间距离吗?