有时候下单后不一定马上成交,我让程序10秒后还未成交就撤销该笔订单。运行过程中遇到问题,实际订单已成交,但也会触发撤单,导致显示撤单失败。
order = api.insert_order(......) time=10 while order.status != "FINISHED": api.wait_update() time=time-1 time.sleep(1) if order.status=="ALIVE" and time==0: api.cancel_order(order)
好好学习 已回答的问题 2020年9月11日
我是知识的搬运工:
不建议使用 time.sleep(),因为每次调用 wait_update() 时只处理一个业务数据包,而在time.sleep(x)暂停期间,业务数据包可能已经接收了n个, 此时再调用 wait_update()时则会发现api中刚更新的数据不是当前的最新状态(而是x秒以前的数据),即与真实最新行情间有较明显的时间差,并且随着多次调用 time.sleep(x),这个时间差会越来越大。
建议暂停程序的方法:
1
2
3
4
# 暂停5秒时间
deadline
=
time.time()
+
5
while
api.wait_update(deadline
=
deadline):
pass
好好学习 已回答的问题 2020年9月11日
tqsdk不能直接用time.sleep(), 会让你的api.wait_update()出问题。