程序化交易设置为15秒不成交则在15个价位内主动追单否则撤单
sellshort(1,1,thisclose),orderqueue;
从orderqueque的设置意图来说,应该是此句直到成交或撤单了后,才再执行下面这句:
buy(1,1,thisclose),orderqueue;
但实际试下来,下面这句是不被执行的,似乎被忽略掉了。
怎样才能真正实现顺序发单的意图呢?
谢谢上面的链接,但那是针对后台程序化的,因为里面的解决方案是用到了tcancel,在图表交易里没有对应指令。
重新再问,
程序化交易设置为:15秒不成交则在15个价位内主动追单否则撤单
sellshort(1,1,thisclose),orderqueue;
buy(1,1,thisclose),orderqueue;
这两条指令的实际执行情况是,第一条若没在15秒内成交,则会主动撤单并再次下单,最终成交或超出15个价位而放弃追单,此时第一条指令得到了完美执行,实现了编程人意图。
问题是:在第一条指令经过撤单追单后,第二条指令不执行了!导致漏单
按你的设置,3种情况:
1,第一条指令成交后,第二条指令继续执行
2,第一条指令没成交,撤单后追单,追单成功后,再执行第二条
3,第一条指令没成交,撤单后追单,追单没成交后撤单,执行第二条
刚才又发生一起楼上所说的第2种情况,
平多指令没成交,自动撤单后追单,追单成功后,没执行第二条开空,又只好是手动补开空,元旦后这几天发生多次了
使用orderqueue报单时,请尽量使用对价委托,或者市价,尽可能的保证一次成交,减小追单的概率。
因为追单会将单子插到第二个orderqueue的委托序列当中去
追单应该在委托序列中优先排在第二个orderqueue之前,因为追单就等于是第一个单,此单不成交或不撤单,第二单就应在队列中等待,这才能使orderqueue名副其实,达成顺序成交的意图。
指令(不仅指这个orderqueue)如果不能严格实现指令说明中阐述的意图,那这个指令就会给人给人以困扰,当最终发现是指令的描述和实际执行的不一致,就会给人BUG的感觉、不可靠的感觉,这种感觉是非常危险的,因为对于信奉机械交易的投资者来说,宁愿放弃灵活性就是为了换取可靠性,失了可靠性一丑遮百俊。