请教前辈们一个代码的问题,我编写的MT4指标会重复二次报警

 

这是我写的报警的代码,前辈们能不能帮忙看看是哪里出了问题,符合条件后,有时候指标会触发两次报警,有时候只触发一次报警

    if(downxiao_fanbao[1]!=EMPTY_VALUE && timedown_fanbao!=Time[1] && Period()>1)

      {

        Alert(Period()+"周期"+Symbol()+"弱下反包");

        SendMail(Period()+"周期"+Symbol()+"弱下反包","");

        timedown_fanbao=Time[1];

      }

附加的文件:
 

你这个程序在实盘时,可能会连续警报不停吧?

下面的代码供你参考:

void doAlert(datetime current, string txt)
  {
   static datetime pastt;
   static string pasttxt;
   //--- 超过参数指定的间隔,就复位一次,也就是说同样的提醒内容只有在指定间隔外才可以重复提醒。
   if(TimeCurrent() > pastt) pasttxt="";
   if(pasttxt != StringSubstr(txt,0,6))
     {
      //--- 遇到第一声警报后,同样的提醒在5分钟(300秒)内保持静默。
      pastt=TimeCurrent()+300;
      pasttxt=StringSubstr(txt,0,6);
      Print(txt);
      PlaySound("request.wav");
      //SendNotification(txt);
      //Alert(txt);
      SendMail(txt,txt);
     }
  }

顺便提醒一下:在这个论坛贴代码,要用Alt+S插入,就是插入表格右边的那个按钮。

 
Limons:

你这个程序在实盘时,可能会连续警报不停吧?

下面的代码供你参考:

顺便提醒一下:在这个论坛贴代码,要用Alt+S插入,就是插入表格右边的那个按钮。

    if(downxiao_fanbao[1]!=EMPTY_VALUE && timedown_fanbao!=Time[1] && Period()>1)
      {
        Alert(Period()+"周期"+Symbol()+"弱下反包");
        SendMail(Period()+"周期"+Symbol()+"弱下反包","");
        timedown_fanbao=Time[1];
      }
前辈好,我感觉我这个代码理论上是可行的,一次报警后,会把序号1的K线时间赋值到timedown_fanbao,if条件里面timedown_fanbao不等于Time[1]才会执行,理论上不是应该只会报警一次嘛,但是我这边有时是只有1次报警有时是2次报警,很是不解
原因: