开拓者期货期权程序化系统交易论坛
标题:
软件
[打印本页]
作者:
gongdacsl
时间:
2018-3-12 13:18:13
标题:
软件
管理们,您们好,
请先查阅下面的代码
Params
Begin
If (!AA_CallAuctionFilter()) Return;
If (BarStatus == 2)
{
If (A_GetOpenOrderCount()==2) Return;//如果委托单数量是2,则退出。
if (A_Getopenordercount()<>2)//如果委托单数量不是2,则开始执行。
{
A_DeleteOrder();
A_SendOrder(Enum_buy, Enum_Entry, 1, 2162);
A_SendOrder(Enum_Sell, Enum_Exit, 1, 2154);
}
}
End
我先
手动委托
2158卖出,
2150买入,
然后
加载程序//程序不会执行,因为两个委托
后
2158成交
//只剩下2150买入这一个委托,那么程序就必须先撤掉这个委托,然后重新委托
2154买入
2162卖出
然后重新等待
但可以看到这个程序竟然重复撤单
再次测试后,竟然无限委托了。
能否告知这个程序有无逻辑错误?原因是什么?
作者:
gongdacsl
时间:
2018-3-12 13:21:57
抱歉,应该2162和2154互换。
期待您们的大力帮助。
作者:
小米
时间:
2018-3-13 11:01:27
需要使用全局变量来控制撤单 与发单 的委托次数。。
因为委托出去到回报返回到本地,是需要时间的,这个过程中,可能已经有新的tick进来,再次运算,发现当前条件仍满足于是再次委托 。。而事实上之前的委托可能已经到了交易所或是在返回的中途了,这样就会导致重复委托的结果 。。
欢迎光临 开拓者期货期权程序化系统交易论坛 (http://bbs.tb18.net/)
Powered by Discuz! X2