看到论坛上有说不能用
time.sleep()
而改用
# 暂停5秒时间 deadline = time.time() + 5 while api.wait_update(deadline=deadline): pass
但我看了wait_update说明,括号里的参数是用于数据没返回超时用的,以上代码只能说在5秒内没有返回数据不再等待继续执行,如果5秒内有数据返回就立马执行了,而不是延迟5秒执行。
yang89520 已回答的问题 2020年9月22日
这三句话的加一起是sleep的功能,并不是在这个while循环里做操作。意思是收到行情直到5秒后都不会处理数据一致pass,不能在这个while循环里去做别的操作,把他们组合起来当做time.sleep()这个函数就好了
期货特特 发表新评论 2020年9月11日
while True:
position = api.get_position()
api.wait_update() # 发送请求,更新数据
print(“开始写出目标持仓信息 “+time.strftime(“%Y-%m-%d %H:%M:%S”))
print(position)
# 暂停60秒时间
deadline = time.time() + 60
while api.wait_update(deadline=deadline):
pass
api.close()
代码实测,收到数据就退出循环了,并没有延迟5秒