Помогите iMAOnArray

 

Замучался.

Есть индикатор, в нем персчети идет в цикле слева на право. Есть три буфера: pair1,HistG,HistR.

Задача на основе pair1 построить гистограмму двухцветную, сгладив его.

Вот кусок кода который добавил.

Проблема. Вешаю индикатор на график, компилирую - все рисуется как надо. Потом вхожу в свойства индикатора, ничего не меняю и выхожу гистограмма исчезает, первый буфер отображается как и раньше. Вобщем корректно показывает все только если индикатор висит в окне и я его компилирую в эдиторе.

Вот такой код в цикле считает гистограмму. Не пойму почему не работает, в чем проблема

AVBI0=iMAOnArray(pair1,0,MA_Period,0,MA_Mode,i);

AVBI1=iMAOnArray(pair1,0,MA_Period,0,MA_Mode,i+1);

if (AVBI0>AVBI1) {HistG[i]=AVBI0;HistR[i]=EMPTY_VALUE;}

if (AVBI0<AVBI1) {HistR[i]=AVBI0;HistG[i]=EMPTY_VALUE;}

 
Dezil писал (а) >>

Замучался.

Есть индикатор, в нем персчети идет в цикле слева на право. Есть три буфера: pair1,HistG,HistR.

Задача на основе pair1 построить гистограмму двухцветную, сгладив его.

Вот кусок кода который добавил.

Проблема. Вешаю индикатор на график, компилирую - все рисуется как надо. Потом вхожу в свойства индикатора, ничего не меняю и выхожу гистограмма исчезает, первый буфер отображается как и раньше. Вобщем корректно показывает все только если индикатор висит в окне и я его компилирую в эдиторе.

Вот такой код в цикле считает гистограмму. Не пойму почему не работает, в чем проблема

AVBI0=iMAOnArray(pair1,0,MA_Period,0,MA_Mode,i);

AVBI1=iMAOnArray(pair1,0,MA_Period,0,MA_Mode,i+1);

if (AVBI0>AVBI1) {HistG[i]=AVBI0;HistR[i]=EMPTY_VALUE;}

if (AVBI0<AVBI1) {HistR[i]=AVBI0;HistG[i]=EMPTY_VALUE;}

Надо код индикатора смотреть. А не его кусочек.