【1】代码:
委托多单:=tremainqty(1,ac,stklabel);
持有多单:=tbuyholdingex(ac,stklabel,1);
【2】程序下单情况
如果目前我没有任何持仓以及委托单。
现在委托开多1手单子,在单子顺利报出去,不撤单情况下只可能出现两种情况:
1、“委托多单”=1,“持仓多单”=0
2、“持有多单”=1,“委托多单”=0
【3】出现的问题
在执行上述代码,输出到本地的时候会发现,有概率出现:
“委托多单”=1,“持仓多单”=1的情况
【4】程序出现的问题,我想到两种可能性
1、成交回报回来,对委托单-1以及持有单+1的运算没有加锁
2、程序顺序执行时候,先查询到委托多单==1,这时候刚好这瞬间成交回报过来了,持有单也==1了
怎么解决这个问题?
对应您把持有多单的代码放在委托多单的前面来进行处理
并且在工具-选项维护里的持仓刷新调小至500ms以下