Why does the Arrow change place?

 

Hi,

 I have a small visual problem with my homemade Binary EA.

When i start the EA and the signals come its all good, but after a while when many new bars has come the arrow start chaning place.

I have the arrows in IndicatorBuffs like this,

 

   SetIndexBuffer(0,arrow_dn);
   SetIndexArrow(0,arrowdncode);
   SetIndexLabel(0,label+" put signal");
   SetIndexStyle(0,DRAW_ARROW,NULL,arrowsize,arrowdncolor);

   SetIndexBuffer(1,arrow_up);
   SetIndexArrow(1,arrowupcode);
   SetIndexLabel(1,label+" call signal");
   SetIndexStyle(1,DRAW_ARROW,NULL,arrowsize,arrowupcolor);

 and im not using any bar counter after start() i place the arrows as this,

      double gaparrow=arrowgap*iATR(NULL,PERIOD_CURRENT,20,1);
      double gaplabel=labelgap*iATR(NULL,PERIOD_CURRENT,20,1);

      if(signal==2){
         arrow_dn[0]=High[0]+gaparrow;
         drawlabel(getstratname(strat),High[0]+gaplabel);
      }
      if(signal==1){
         arrow_up[0]=Low[0]-gaparrow;
         drawlabel(getstratname(strat),Low[0]-gaplabel);
      }

 any idies why this is?

 look how the arrow changed place.. its was plotted right /over under the signal bar at first

Files:
arrow_error.png  192 kb
Reason: