Накопление разницы значений ATR, помогите

 

Добрый день!

Профи помогите. Не могу решить одну задачу. Вот код:


datetime some_time=TimeCurrent();

int start()

{

double summ;

double razn;

int k=iBarShift("",PERIOD_M5,some_time); 

double VAL0=MathAbs(iATR(NULL,0,1,1))/Point;

double VAL1=MathAbs(iATR(NULL,0,1,0))/Point;

if (VAL1>VAL0)

{

razn =MathAbs((iATR(NULL,0,1,0))-(iATR(NULL,0,1,1)))/Point;

for(int i = k; i >= 1; i--)

{

summ=summ+razn;

}

Comment("Использовано периодов: ",k,"\n",

"ATR предыдущий: "+VAL0+"\n",

"ATR текущий: ",VAL1,"\n",

"Разница ATR: ",razn,"\n",

"НАКОПЛЕНИЕ РАЗНИЦЫ: ",summ,"\n");

}

return(0);

}

Суть такая: советник считает разницу между текущим значением ATR, и предыдущим. НО! Только при повышающимся ATR. 

Эта разница отображается в переменной "razn". Мне нужно, чтобы значение переменной "razn" cуммировалось/накапливалось в переменной "summ" c приходом каждого нового бара.

В текущей версии накопление "summ" неправильно работает. 

Подозреваю дело в циклах.


Документация по MQL5: Константы, перечисления и структуры / Константы графиков / Периоды графиков
Документация по MQL5: Константы, перечисления и структуры / Константы графиков / Периоды графиков
  • www.mql5.com
Все предопределенные периоды графиков имеют уникальные идентификаторы. Идентификатор PERIOD_CURRENT означает текущий период графика, на котором запущена mql5-программа.
 
Всё отбой. Проблема решена. Всем спасибо кто пытался. 
Причина обращения: