下面链接里说明的方法是,计算下单至接收到更新的行情截面数据的时间,减去交易所更新行情截面数据的时间间隔,计算多次的平均数就是对本地发送数据到交易所+交易所返回到本地的时间估算。
https://www.shinnytech.com/question/15598/answer/15599
能否用下面代码这样的方式来估算这个时间?order.is_online可以判断是委托单是否已经报入交易所,order.is_online是需要等收到交易所返回的确认信息才会变为True吗?如果是这样的话,那提交委托单到确认委托单已经报入的时间是不是就是上面的方法估算的时间了?
start_time = time.time() order = api.insert_order() while order.is_online == False: api.wait_update() else: end_time = time.time() time_interval = end_time - start_time
ringo 已回答的问题 2021年8月11日
@ringo再请教一下,我试着按那个链接里的方法测试了一下,感觉好像结果不太对,总时间绝大多数都在400-500ms之间,这样算出来t1+t3约为200ms。但是如果t1+t3=200ms,t2为0-500ms之间的随机数,那总时间应该是分布在200-700ms左右,不应该范围那么窄在400-500ms?我测试的冷门合约行情变化只有我的挂撤单,上期大商郑商所都挑了个合约试,代码是这样的。
quote = api.get_quote(contract)
start_time = time.time()
order = api.insert_order()
while True:
api.wait_update()
if api.is_changing(quote):
time_interval = time.time() – start_time
break