Помогите с постоянно повторяющимся Alertом!!!

 

Индюк при обнаружении последовательных 4 бай баров должен ставить отметку "4"

пересчет проходит один раз для всех баров при появлении нового бара:

   if(Time[0] == prevtime)   return(-1);
   prevtime = Time[0];

   for(int i=0; i<Bars-12;i++)
    {
         if(Close[i+1]>Open[i+1]
            &&Close[i+1]>=Close[i+2]&&Close[i+2]>Open[i+2]
            &&Close[i+2]>=Close[i+3]&&Close[i+3]>Open[i+3]
            &&Close[i+3]>=Close[i+4]&&Close[i+4]>Open[i+4]
            &&Close[i+5]<Open[i+5])
            Buffer1[i+1]=High[i+1]+0.0002;

Но когда я добавляю к этому условию Алерт, то он повторяется на каждом тике!!! В чем проблема??? Помогите пожалуйста!!!!

 
Maksim Neimerik:

Индюк при обнаружении последовательных 4 бай баров должен ставить отметку "4"

пересчет проходит один раз для всех баров при появлении нового бара:

Но когда я добавляю к этому условию Алерт, то он повторяется на каждом тике!!! В чем проблема??? Помогите пожалуйста!!!!


Можно отключить алерт и если новое событие опять включить

За старт вынесете bool AlertsOn = true;
а в условие где надо вызвать пишите if(AlertsOn) {Alert("4 buy bars"); AlertsOn=false;} // алерт отключили
далее надо вернуть труе алерту if(не равно 4 бай бара или ещё что то новое) AlertsOn=true;

Ну, примерно так.

 
FXwin:


Можно отключить алерт и если новое событие опять включить

За старт вынесете bool AlertsOn = true;
а в условие где надо вызвать пишите if(AlertsOn) {Alert("4 buy bars"); AlertsOn=false;} // алерт отключили
далее надо вернуть труе алерту if(не равно 4 бай бара или ещё что то новое) AlertsOn=true;

Ну, примерно так.

Понял, большое спасибо!!!