Indicator arrow disappeared

1
Hi, I would like to ask if any coder can solve this issue :

The attached indicator are non repaint after the signal bar closed, but sometime the confirmed arrow will disappear , is any coder can try to solve it? it very seldom happen but do happen...
much appreciate !

Update: problem solved. This indicator signal lag for 1 bar.

Code: Select all

//+------------------------------------------------------------------+ 
//|   Super Reversal Signal                                          | 
//|                                                                  | 
//|   Copyright © 2014 / airquest@hotmail.com                        |
//|                                                                  |
//|   http://smart-trading.world-record.ch                           |  
//+------------------------------------------------------------------+ 


   #property copyright "Copyright © 2014 // airquest // smart-trading.world-record.ch // made for binaryeasy.club"
   #property link      "http://smart-trading.world-record.ch"


//------------------------------------------------------------------
#property indicator_chart_window
#property indicator_buffers 2
#property indicator_color1  clrDeepSkyBlue
#property indicator_color2  clrRed

#property indicator_width1  2
#property indicator_width2  2

extern int    ArrowCodeDn          =   233;
extern int    ArrowCodeUp          =   234;
extern int    LagBar               =     1;
extern string NoteLagBar           = "0 = Signal on current ; 1 = Wait for close";
 

double ArrowsUp[];
double ArrowsDn[];
double body[];
double trend[];


int init()
{
   IndicatorBuffers(4);
      SetIndexBuffer(0,ArrowsUp); SetIndexArrow(0,ArrowCodeDn);
      SetIndexBuffer(1,ArrowsDn); SetIndexArrow(1,ArrowCodeUp);
      SetIndexBuffer(2,trend);
      SetIndexBuffer(3,body);
      

      SetIndexStyle(0,DRAW_ARROW);
      SetIndexStyle(1,DRAW_ARROW);

      
   return(0);
}
int deinit()

{
   return(0);
}

//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+

int start()
{
   int counted_bars=IndicatorCounted();
   int i, limit;

   if(counted_bars<0) return(-1);
   if(counted_bars>0) counted_bars--;
         limit = MathMin(Bars-counted_bars,Bars-1);

      for(i=limit; i>=0; i--)
      {
         double gap = 3.0*iATR(NULL,0,20,i)/4.0;

         body[i] = MathAbs(Open[i]-Close[i]);

         trend[i] =  0.0;

         if((High[i+1] < Low[i-1]) && (body[i] > body[i+1]) && (body[i] > body[i+2]) && (body[i] > body[i+3]) && (iVolume(NULL,0,i-LagBar)>1))
         {
         trend[i] = 1;
         }
         if((Low[i+1] > High[i-1]) && (body[i] > body[i+1]) && (body[i] > body[i+2]) && (body[i] > body[i+3]) && (iVolume(NULL,0,i-LagBar)>1))
         {
         trend[i] =- 1;
         }

        ArrowsUp[i] =  EMPTY_VALUE;
        ArrowsDn[i] =  EMPTY_VALUE;

        if (trend[i] != trend[i+1])
        {
           if (trend[i] == 1)
           ArrowsUp[i] = Low[i] - gap;
          
           else if (trend[i] ==- 1)
           ArrowsDn[i] = High[i] + gap;
           
        }

      }

   return(0);
   }      

//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+


Who is online

Users browsing this forum: Amazon [Bot] and 12 guests