帮助上解释ORDERQUEUE命令是将“所有报单放入队列中,按次序委托下单,成交一个委托下一个.”
问题:比如当出现交易信号时,需要先平仓再开仓,所以相邻的Tsell和Tbuy两句语句中都使用了Orderqueue,并使用出现信号点的即时价格进行操作。那么使用了Orderqueue后的下单逻辑顺序是:a)先下单平仓,等平仓成交了之后再下开仓指令,还是b) 同时下达平仓、开仓指令,并将两个委托堆砌在未成交委托栏中,依次等候成交?
a和b这两种方式在实战中有一个差别,就是采用a方法可以分别定义两个委托的价格,比如第一单平仓5秒钟后成交了,那么第二单开仓就可以采用5秒钟后的即时价格。而b情况则不行,只能同时委托同一个价格,然后等待依次成交。
所以,如果是a情况,以下语句是否更有效率?
BUY1_1:=DYNAINFO2(28,stock); //设定平仓的即时价格(买一价)
TSELL(1,vol,LMT,BUY1_1,0,AC,stock),ORDERQUEUE; //平多
BUY1_2:=DYNAINFO2(28,stock); //设定开空仓的即时价格(买一价)
TBUYSHORT(1,vol,LMT,BUY1_2,0,AC,stock),ORDERQUEUE; //开空单
假设平多5秒钟之后才成交,则开空的价格就是5秒钟之后的buy1价格了。。。?
还是只能是B情况?如果这样是否只能采取先校验平仓是否已经成交,之后再采用新的价格开仓?
[此贴子已经被作者于2010-10-29 19:13:41编辑过]