SELLSHORT(CROSS(C,MA(C,5),1,MARKET),ORDERQUEUE;
BUY(CROSS(C,MA(C,5),1,MARKET),ORDERQUEUE;
若没有加ORDERQUEUE,触发条件的时候会同时发出平多、开空指令。
加上ORDERQUEUE后,可简单的描述为:触发条件时,软件会先发出平仓指令,待收到平仓指令回报后,再发出开多指令。
详细的运行机制为:SELLSHORT、BUY单子形成了下单队列,SELLSHORT在前,BUY在后,当SELLSHORT单碰到有几下情况时,才会执行BUY委托单。(1)收到成交回报;(2)下单失败;(3)撤单(一旦队列下单不成交撤单后,再次委托会将委托追单排到最后)。
这是函数说明,红色部分不是很理解,比如第一条语句sellshort下单失败,那么具体怎么执行?继续在发sellshort的指令还是执行buy的指令?
sellshort下单撤单后怎么执行?是不再发sellshort的指令了,直接发buy的指令?发完buy的指令,然后再发sellshort吗?
很清楚了,你讲的那两种情况都是会接着下buy,再后来的sellshort追单会排在buy之后。