用vba 发送1条开/平仓指令后,在没有任何成交的情况下有时会出现多条未成交纪录
举个例子: 发送1条开多仓指令,开7手多仓,开仓价低于市场卖出价50个点,在没有任何成交的情况下,察看未成交单,
此时的未成交单数量是2,一个是3手的开多,一个是4手的开多,委托价一致,订单id不同,委托时间相同。
这种情况不是每次执行委托指令都会出现。但这样会给整个程序带来很多麻烦,在处理和校验成交或未成交的时候都会造成计算量加倍,而且如果没有注意到这个bug会导致整个计算出错
那提供一下交易日志吧,我们看一下日志你的VBA是怎么下单的
我没有开启记录日志,这样会影响整个程序的速度,你们只要自己搞个简单的多手数下单,然后循环读取未成交进行比对,不管是实盘还是模拟的都可以,测半天的时间一定会看到
我获取未成交用的是orderinfo2,从0开始循环
不是只是循环读取未成交,看来是我没表达清楚。
正确的循环体是:
循环开始:
1:确认无未成交单存在
2:发出一条开平指令
3:历遍未成交
4:撤掉开平,或确认成交,最终确认无未成交单存在
循环结束
在这个循环过程中有时就会出现只发出了一次开平指令,但在历遍未成交的过程中出现2个未成交单
你在buy后面跟上一条 msgout输出调试看呢
到底是发了几条开平指令,还是一条开平指令
另外把日志勾上,看下日志是怎么记录的,循环两次的报单还是循环一次内,两次发单