A函数发单问题

VarsGlobal Array<Integer> oid;Global Numeric S1 (0);EventsOnBar(ArrayRef<Integer> indexs) {IF(close[1]>MA10[1]){S1=1 ;}If(BarStatus==2) { If(s1==1) { BOOL RET =A_SendOrderEx(Enum_Buy,Enum_Entry,1,close[1],oid); If(RET ==True) { s1=2; } } Else If(s1==2 And close[1]<ma10[1]) { A_DeleteOrderEx(oid[0]); s1=0; }老师,请问为何我用A函数下单会一直不停地发单?(上穿10均线发单,下破10均线撤单)

你的状态变量重置有问题啊s既要做开仓条件的状态变量,又要做控制重复发单的状态变量,这两者是矛盾的。每次onbar运行,s都会在IF(close[1]>MA10[1]) 这句话影响下重置未1 ,然后导致发单。