Change this . .
for(i = 0; i <= limit; i++) {
to this . . .
for(i = 2; i <= limit; i++) {
and it won't repaint any more.
How is this suposed to work when i == 0 ? can you see into the future ?
fasterEMAafter = iMA(NULL, 0, FasterEMA, 0, MODE_EMA, PRICE_CLOSE, i-1 );
Basically, you should check MA cross only on closed bar like below:
fasterEMA_prv_bar1 = iMA(NULL, 0, FasterEMA, 0, MODE_EMA, PRICE_CLOSE, i+1); fasterEMA_prv_bar2 = iMA(NULL, 0, FasterEMA, 0, MODE_EMA, PRICE_CLOSE, i+2); //fasterEMAafter = iMA(NULL, 0, FasterEMA, 0, MODE_EMA, PRICE_CLOSE, i-1); slowerEMA_prv_bar1 = iMA(NULL, 0, SlowerEMA, 0, MODE_EMA, PRICE_OPEN, i+1); slowerEMA_prv_bar1 = iMA(NULL, 0, SlowerEMA, 0, MODE_EMA, PRICE_OPEN, i+2); //slowerEMAafter = iMA(NULL, 0, SlowerEMA, 0, MODE_EMA, PRICE_OPEN, i-1); if ((fasterEMA_prv_bar1 > slowerEMA_prv_bar1) && (fasterEMA_prv_bar2 < slowerEMA_prv_bar1) ) { CrossUp[i] = Low[i] - Range*0.5; } else if ((fasterEMA_prv_bar1 < slowerEMA_prv_bar1) && (fasterEMA_prv_bar2 > slowerEMA_prv_bar2) ) { CrossDown[i] = High[i] + Range*0.5; }
dineshydv:
Basically, you should check MA cross only on closed bar like below:
Dear Dineshydv
its variable
please how can i edit.
thanks.