下载MetaTrader 5
要添加评论,请登录注册
了解如何在Linux上安装MetaTrader
chenkui
24
chenkui 2009.08.10 10:37 

我碰到一个很一个很奇怪的现象:

在函数

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()还是运行了,并且还在图表中画出了箭头!

那位高手能指点一下!谢谢!

okwh
1629
okwh 2009.08.10 11:13  

你如何确认 那箭头 和这次DisplayAlert 是同一次执行的?

chenkui
24
chenkui 2009.08.10 12:50  
谢谢你:DxdCn,因为程序中实际上Base="GBPUSD",我把上面的程序放在另外的货币对图表中运行,按我的理解,return(0);一定会执行, 那么它后边的代码应当不再执行才正确!也就是说画出了箭头的DispDownArrow()不应该再执行才正确!
okwh
1629
okwh 2009.08.11 15:54  

你确信那是它画的箭头?

并且还在图表中画出了箭头! 问题是关键是 那些箭头上什么时间画的。什么代码画的。

前面你也根本没说Base是什么,这种断章取义的代码 是无法让人帮你的。

最简单的就是使用Print检查执行时间执行位置执行内容....

chenkui
24
chenkui 2009.08.12 02:02  

对不起,因为Base是定义在前面:extern string Base = "GBPUSD";考贝时忘记了考它,代码中只有这一个画的箭头的函数。

就是不知道那些箭头上什么时间画的,只知道在:

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

之前,没有调用过任何 画的箭头的函数。关键是它后面的任何代码都不应该执行才对啊!

/
要添加评论,请登录注册