如何正确使用全局变量condition控制发单

老师:

  您好!

  我做两腿套利交易,在OnSignal域中用A_SendOrderEx()开仓发右腿单,在OnOrder域中用A_SendOrderEx()开仓发左腿单,并在OnOrder域中用全局变量condition控制发单次数。当连接模拟账户后,会成功发送一对右腿和左腿单,但以后却只有OnSignal域中的右腿单能成功发出,OnOrder域中的左腿却不发单。我估计是OnOrder域中的全局变量condition未回复到0。请老师指教怎样才能将全局变量condition回复到0。 代码如下:

Params

Global String leftSymbol(“rb2310,SHFE”);   //左腿合约

 Global String rightSymbol(“rb2311,SHFE”);   //右腿合约

Vars

Global tick mytick;

Global Numeric condition;

 Global Integal id;

 Global Integal timeId;

 Global Order RightOrder;    //用于存放右腿开仓订单的Order

OnInit()

{

Condition=0;

 timeId=CreateTimer(200,0,1);

}

OnBar()

{

}

OnSignal()

{

}

OnOrder()

{

If(Barstatus==2 and RightOrder.status==Enum_Filled and RightOrder.side==Enum_Buy and condition==0)

{

Bool  LeftEntry=A_SendOrderEx(leftSymbol,Enum_Sell,Enum_Entry,1,mytick.bidask1.bidP,leftOrderId);

Condition=1;

If(id==timeId)  condition=0;      //在OnTimer域中执行If(LeftEntry and id==timeId) condition=0也不成功

}

}

A函数在Onsignal下面发单需要全局变量控制次数吗
如何控制A函数的发单时间间隔
全局变量控制问题
请教在Quant版中使用A-SendOrderEx控制多个账户发单的命令怎么写
请教在Quant版中使用A-SendOrderEx控制多个账户发单的命令怎么写
函数如何正确声明
如何开盘就发单
请问全局变量这样用是否正确?
全局变量的使用疑问
全局变量定义

看不懂你这个逻辑。

onorder是要订单状态发生变化才驱动的。

ontimer执行以后 condition就算重置了,但是不驱动onorder域,也没办法重置。

首先你应该说清楚重置condition的变量的时机吧,到底是延迟多少时间重置,还是等左腿单成交再重置,这个不说清楚怎么处理呢?