以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://222.73.7.161/bbs/index.asp)
--  公式模型编写问题提交  (http://222.73.7.161/bbs/list.asp?boardid=4)
----  [讨论]关于ORDERQUEUE的交易顺序问题  (http://222.73.7.161/bbs/dispbbs.asp?boardid=4&id=3566)

--  作者:alexsui
--  发布时间:2010/10/29 19:09:23
--  [讨论]关于ORDERQUEUE的交易顺序问题

帮助上解释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编辑过]

--  作者:msedu
--  发布时间:2010/10/29 22:30:02
--  
在实际,使用中,如果,你使用了OrderQueue,有时会,把同一条交易指令执行两次,大家发现了吗?
--  作者:admin
--  发布时间:2010/10/30 0:19:13
--  
使用ORDERQUEUE后,系统采取逐个成交的方法,第一个成交后,再发送下一个委托