После перезапуска терминала нет отрисовки индикатора - страница 4

 
Viktar Dzemikhau:
Это понятно. А в цикле почему не получаются значения?

Вы точно запускали код? Сначала даёт несколько "холостых", но затем данные подготавливаются и мы оказываемся в

     }
//--- па баммм! данные получили
   Comment(copy);
//--- return value of prev_calculated for next call
   return(rates_total);
  }
//+------------------------------------------------------------------+

Никаких циклов.

 
Ваш код я не запускал. Я несколько часов назад подобное написал. Это работает. Но я же выше писал, что это лучше в ините было бы сделать. Но там оно не работатает. Я об этом.
 
Viktar Dzemikhau:
Ваш код я не запускал. Я несколько часов назад подобное написал. Это работает. Но я же выше писал, что это лучше в ините было бы сделать. Но там оно не работатает. Я об этом.

В индикаторе в OnInit() можно только инициализировать переменные. d=0; s=-1 и тому подобное. 

Не, конечно можно один раз (ВНИМАНИЕ: один раз!!!) запросить CopyHigh с PERIOD_CURRENT, PERIOD_H1 и PERIOD_H4 - для небольшого ускорения. Но не более того.

Только когда пройдёт первый OnCalculate() - Это признак готовности индикатора к работе.

 
Vladimir Karputov:

В индикаторе в OnInit() можно только инициализировать переменные. d=0; s=-1 и тому подобное. 

Не, конечно можно один раз (ВНИМАНИЕ: один раз!!!) запросить CopyHigh с PERIOD_CURRENT, PERIOD_H1 и PERIOD_H4 - для небольшого ускорения. Но не более того.

Только когда пройдёт первый OnCalculate() - Это признак готовности индикатора к работе.

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

Причина обращения: