版主:
上次蒙轮回兄指点,改成了下面的形式下单,解决很多的问题。
{
平空:TSELLSHORT(pkxh and tholding<0,0,LMT,c),orderqueue;
开多:TBUY(kdxh and tholding=0,sv,LMT,c),orderqueue;
平多:TSELL(pdxh and tholding>0,0,LMT,c),orderqueue;
开空:TBUYSHORT(kkxh and tholding=0,sv,LMT,c),orderqueue;
}
但是依然存在两个问题:
1.如果系统先是没有平仓成功的话,那么也不会开出新的相反仓位,这时整个系统工作在错误的状态,可能产生大幅的亏损。
2.使用了orderqueue后,仍然出现重复开仓;更有甚者,今天居然多单开了两套,而同时也开出了空单一套。这在逻辑上是说不同的。
请问:
1. 如何才能不断追仓,让系统一定能够成交?
2. 如果追仓总是不能成功,可否先开出相反的仓位,类似锁仓?
这关系到系统的稳定性与容错性问题,没有这些系统根本不能实用,请版主给出解决方案。
谢谢!
orderqueue 指令是保证顺序成交的功能,平仓不成功自然不会进行下个开仓动作,只能挂在哪里等着
如果你希望稳定成交,那么就不应该使用LMT C这样的指令,尤其是C表示的是最新价,这种委托是最不容易成交的一种,建议你使用MKT市价委托
orderqueue不是让你保证不能重复开仓的指令
你上面出现的重复开仓情况,极有可能是因为前面挂单没有成交,后面再次出现买入信号,结果导致一起成交,看似重复发单了,但实际关键还是你的策略不健全导致,如果你希望简单的平仓反手能够稳定被执行,那么只能建议你使用市价下单
版主:
我当然希望使用MKT市价委托,不是有些市场不支持市价委托吗?请给出不能市价委托的市场与品种。
如果C不好用,那么使用dynainfo(28)这样的动态数值是否最好呢?如果使用dynainfo(30)是否能有效控制滑点呢?
谢谢!
对于模拟交易只有上海交易所支持市价
但是实盘目前4个交易所全部支持市价