Vars
Global Array<Integer> oid;
Global Numeric S1 (0);
Events
OnBar(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 ,然后导致发单。