Indicator arrow disappeared
Posted: Sat Dec 18, 2021 1:51 am
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.
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);
}
//+------------------------------------------------------------------+
//| |
//+------------------------------------------------------------------+