Помогите с ошибкой в функции!

 
Приветствую. 5:33 утра, всю ночь пишу советник и завис... Есть функция которая должна считать средний размер бара за определенный период, но она считает только раз, при запуске, а дальше просто не обновляется. Что не так?

//======== Средняя величина бара в пипсах ================
double AverageBar(int countCandles)
{
double size=0;
double returnSize=0;
for(int i=1; i<countCandles; i++) 
{
size+=iHigh(Symbol(),TimeFrame,i)-iLow(Symbol(),TimeFrame,i);
returnSize=size/countCandles;
}
return(returnSize/Point);
}
 
Nikolay Bosuy:
Приветствую. 5:33 утра, всю ночь пишу советник и завис... Есть функция которая должна считать средний размер бара за определенный период, но она считает только раз, при запуске, а дальше просто не обновляется. Что не так?

for(int i=1; i<=countCandles; i++) 

Если  начинаем с 1, может так правильнее?

 
Oleksii Chepurnyi:

Если  начинаем с 1, может так правильнее?

Пробовал, не помогает

 
Nikolay Bosuy:

Пробовал, не помогает

Я не про то ) Я про правильность расчетов. К примеру, countCandles == 5, в цикле суммируем 4 бара, а делим на 5

 

А, стоп

double AverageBar(int countCandles)
{
double size=0;
double returnSize=0;
for(int i=1; i<=countCandles; i++) 
{
size+=iHigh(Symbol(),TimeFrame,i)-iLow(Symbol(),TimeFrame,i);
}
returnSize=size/countCandles;
return(returnSize/Point);
}

Может так? Если я правильно понял о чем речь )

 
Oleksii Chepurnyi:

Я не про то ) Я про правильность расчетов. К примеру, countCandles == 5, в цикле суммируем 4 бара, а делим на 5

Это только к точности, это не проблема. Проблема в том, что данные не обновляются. Если использую вместо  countCandles значение Bars, то есть все доступные бары, то все работает и обновляется, а вот с  countCandles не обновляется

 
Oleksii Chepurnyi:

А, стоп

Может так? Если я правильно понял о чем речь )

Та же ерунда

 
Даже так не работает
//======== Средняя величина бара в пипсах ================
double AverageBar(int countCandles)
{
double size=0;
double returnSize=0;
for(int i=1; i<=countCandles; i++) 
{
size+=(iHigh(Symbol(),TimeFrame,i)-iLow(Symbol(),TimeFrame,i))/Point;
}
returnSize=size/countCandles;
return(returnSize);
}
В чем же дело? Помогите знатоки!
 
" не обновляется " - выдает одно и то же значение?
 
Oleksii Chepurnyi:
" не обновляется " - выдает одно и то же значение?

Да. Меняю countCandles значение меняется и во время теста одно и то же

 
Nikolay Bosuy:

Да. Меняю countCandles значение меняется и во время теста одно и то же

2020.12.09 06:14:04.387 Martin (USDCHF,M1)      9.100000000002993
2020.12.09 06:15:03.532 Martin (USDCHF,M1)      9.700000000003593
2020.12.09 06:16:12.903 Martin (USDCHF,M1)      9.500000000002283
2020.12.09 06:17:01.443 Martin (USDCHF,M1)      9.200000000002539
2020.12.09 06:18:02.698 Martin (USDCHF,M1)      9.300000000002083
2020.12.09 06:19:00.605 Martin (USDCHF,M1)      9.100000000001883
2020.12.09 06:20:01.287 Martin (USDCHF,M1)      9.500000000001174
2020.12.09 06:21:00.415 Martin (USDCHF,M1)      8.700000000000374
2020.12.09 06:22:08.131 Martin (USDCHF,M1)      8.999999999999007
2020.12.09 06:23:01.748 Martin (USDCHF,M1)      9.099999999998554
2020.12.09 06:24:02.164 Martin (USDCHF,M1)      7.799999999998918
2020.12.09 06:25:02.006 Martin (USDCHF,M1)      7.099999999998773
2020.12.09 06:26:00.459 Martin (USDCHF,M1)      6.599999999999939
2020.12.09 06:27:00.533 Martin (USDCHF,M1)      6.700000000000593
Причина обращения: