很严重的问题!

 

在下面的代码中
extern string Base = "GBPUSD";
int start()
{

if(Symbol() != Base)
{
if(displayAlert == true && SignalValue!=285)
DisplayAlert(" Currett Symbol is not "+Base+"!",1);
SignalValue=285;
return(0);
}

if (MA89SMA>SMA89now)
{DispDownArrow(index,DeepSkyBlue);return (0);}

return(0);
}

前面已经报警了,但是好象后面的DispDownArrow()还是运行了,并且还在图表中画出了箭头!
我把上面的程序放在另外的货币对图表中运行,按我的理解,return(0);一定会执行, 那么它后边的代码应当不再执行才正确!也就是说画出了箭头的DispDownArrow()不应该再执行才正确!
但是非常不幸的是它就是的确会运行return(0);后面的代码!这是很严重的问题!
那位高手能指点一下!谢谢!

 
extern string Base = "GBPUSD";
int start() {

	if(Symbol() != Base) {
		if(displayAlert == true && SignalValue!=285)
			DisplayAlert(" Currett Symbol is not "+Base+"!",1);
		SignalValue=285;
		return(0);
	}

	if (MA89SMA>SMA89now) {
		DispDownArrow(index,DeepSkyBlue);
		return (0);
	}

	return(0);
}

1秒钟内,能够接收2~4个实时数据。每次接收都会运行start()。因此,在DisplayAlert()执行后,需要设置静态标志。

static bool flag=false;

原因: