não consigo encontrar o erro

 

alguém poderia dar uma força? meu alerta fica de 5 em 5 segundos alertando, qual seria o erro no codigo? só quero que ele de apenas um alerta


  if (signal(up) && signal(up2)&& signal(up3)&& signal(up4)) {

         ArrowUPbuff[i] = Low[i]-Range;

         if( UseAlert && i == 0  )

         {

            Alert(Symbol()," M", Period(), ": BUY ");

            

         }

   

      }

 
Precisa postar mais codigo, mas obviamente signal() chamadas retornaram true e i foi sempre zero.
Razão: