Нужна нумерация "ARROW"

 
Это обичный MACD, красная точка появляется если MACD разворачивается вниз по закрытию на предидушей,
зеленная - если MACD разворачивается вверх по закрытию на предидушей. В помежудках буфера ARROW = EMPTY_VALUE.
Нужна нумерация "ARROW" для последуюшего вызова следуюшим образом:

если появилас красная точка - обнуление предидушей нумерации обох буферов ARROW и присвоение последней
красной точке 0, предидушей точке 1 и т.д как на рисунке RED. При вызове должно получиться так

for(j=0; j<(Bars-1);j++)
iCustom(NULL,0,"j_Macd",0,j)  была последняя красная точка
iCustom(NULL,0,"j_Macd",0,j+1) была последняя зеленная точка 
iCustom(NULL,0,"j_Macd",0,j+2) была предпоследняя красная точка и т.д.

если появилас зеленная точка- обнуление предидушей нумерации обох буферов ARROW и присвоение последней
точке 0, предидушей 1 и т.д как на рисунке GREEN. При вызове должно получиться так

for(j=0; j<(Bars-1);j++)
iCustom(NULL,0,"j_Macd",0,j)  была последняя зеленная точка
iCustom(NULL,0,"j_Macd",0,j+1) была последняя красная точка 
iCustom(NULL,0,"j_Macd",0,j+2) была предпоследняя зеленная точка и т.д.

Это Возможно? И если да, то как?
Файлы:
j_Macd.mq4  2 kb
RED.png  23 kb
GREEN.png  23 kb
 
Создать еще один буфер, только для номеров.
Цифры, на диаграмму, печатать текстовыми метками.
 
Taras Slobodyanik:
Создать еще один буфер, только для номеров.
Цифры, на диаграмму, печатать текстовыми метками.

Это как? Можно пример кода?

 
Zviad Kajaia:

Это как? Можно пример кода?

конечно)

SetIndexBuffer(0,buffer,INDICATOR_CALCULATIONS);

ObjectCreate(0,label_name,OBJ_TEXT,0,label_time,label_price);
 
Taras Slobodyanik:

конечно)

Я не очень в кодинге, так что простите за вопросы )))

мне кажется Вы не поняли суть вопроса.

если появилас красная точка - обнуление предидушей нумерации обох буферов ARROW и присвоение последней

красной точке 0, предидушей точке 1 и т.д как на рисунке RED.

как определить label_time скажем пятой точки?

и если даже OBJ_TEXT будет нумероватся правильно, как потом вызвать текст в iCustom ?

 
Zviad Kajaia:

если появилас красная точка - обнуление предидушей нумерации обох буферов ARROW и присвоение последней
красной точке 0, предидушей точке 1 и т.д как на рисунке RED.

а для чего нужна нумерация? (если все цифры идут последовательно от начала до конца)
и так понятно что первая точка - первая, а последняя - последняя...

просто расставить последовательные цифры, и при появлении новой точки перерисовывать их?
 
Taras Slobodyanik:

а для чего нужна нумерация? (если все цифры идут последовательно от начала до конца)
и так понятно что первая точка - первая, а последняя - последняя...

просто расставить последовательные цифры, и при появлении новой точки перерисовывать их?

При вызове из тс как сравнить скажем точки 3 и 4? если они не имеют какието метки? iCustom(NULL,0,"j_Macd",0,j+сколько?) 

 
Zviad Kajaia:

При вызове из тс как сравнить скажем точки 3 и 4? если они не имеют какието метки? iCustom(NULL,0,"j_Macd",0,j+сколько?) 

так же как с зигзагом - перебирать (искать) все точки с начала, и сравнивать
или же собирать массив точек, и с ним дальше работать (обновлять точки)

 
Taras Slobodyanik:

так же как с зигзагом - перебирать (искать) все точки с начала, и сравнивать
или же собирать массив точек, и с ним дальше работать (обновлять точки)

ну и как это будет в коде? 

Чтоб при вызове получился так

iCustom(NULL,0,"j_Macd",0,j)  была последняя красная точка
iCustom(NULL,0,"j_Macd",0,j+1) была последняя зеленная точка 

iCustom(NULL,0,"j_Macd",0,j+2) была предпоследняя красная точка и т.д.

на рисунках 0 это роследняя точка

В этом суть Вопроса