最近我的实盘策略在开盘发FAK单进行仓位调整时,出现了好几次重复下单的情况,排查之后发现是get_order()查询订单信息显示Status.SUBMITTING且get_trades()没有成交回报,所以没有能更新存储在本地文件中的仓位信息,之后导致重复下单。
我执行的整体逻辑是这样的:
while trading:
if need_order:
orders_list.append(order(...))
sleep(1.5)
get_orders(order_list)
update_positions(...)
orders_list=[]
是否是因为中间延迟比较大,我等待的时间不够长?但模拟盘相同的程序且等待时间更短没有出现这种情况,实盘上交所的品种也是正常的,唯独最近大商所品种频繁出现。然后我又检查了一下订单时间等信息,发现用get_order()获取到的time与快期显示的有很大差异,比如下图中本地记录下来的是21:00:04,快期中则是21:00:10,所以想请问一下这种情况怎么处理呢?