Как заставить индюкатор считать один раз?

 
Пишу индюкатор и отлаживаю его. Результат обработки на каждом тике выводится в лог экспертов. Так как это не скрипт, то он исполняется при поступлении каждого тика. На этапе отладки хотелось бы сделать так, чтобы он единожды вычислял результат и затем не реагировал на последующие тики. Или, скажем, реагировал только раз в несколько минут, или раз в несколько тиков. Короче, хочется иногда просто посмотреть на результаты в логе и спокойно оценить их в течение нескольких минут. Кто как это делает, поделитесь идеями, пожалуйста. Подозреваю, что можно как-то использовать Volume[], но пока не проверял.
 
Простой флаг bool first поможет ;)
А ещё можно попробовать весь старт временно в инит перенести.
 
Спасибо, komposter. Ну а если, скажем, индюкатор должен вычисляться (и выводить в лог) раз в 100 тиков, начиная с первого после запуска индюкатора, можно ли так вот?
int _VolumeOnStart; // Глобальная переменная тикового объема нулевого бара при запуске советника
int init()
{
_VolumeOnStart = Volume[0]; // вместо Volume[] можно воспользоваться iVolume(), указав более крупный ТФ
...
return(0);
}

...

int start()
{
if ( ( Volume[0] - _VolumeOnStart ) % 100 == 1 )   { все вычисления старта и вывод в лог; } // вместо Volume[] можно и iVolume(), указав более крупный ТФ
return( 0 );
}
 
Может я чего не понимаю, но зачем так сложно? 
start() вызывается на каждом тике. Сделать статик каунтер, на каждом тике прибавлять единичку, когда каунтер стал равен 100, сделать свое темное дело и обнулить каунтер, и все по-новой.
 
Ну я фактически так и сделал. Это разве сложно?
Я-то хочу, чтобы при новой компиляции или смене ТФ индюкатор пересчитался на первом же тике, а потом запускался на 101-м, 201-м и т.п.
Откровенно говоря, я до сих пор не понимал смысл статических переменных. Пока необходимости в них не было. Ну сейчас вроде как понял.
 
if(NewBars!=Bars){
   Запускаем пересчет значений();
   NewBars=Bars;
}
 
Можно пересчитывать по приходу каждого нового бара 
 
 
 
if(NewBars!=Bars){
   SumBars++
   if(SumBars>30){ 
      Запускаем пересчет значений();
      SumBars =0;
   }
   NewBars=Bars;
} 

                 



Можно пересчитывать по  сумме новых баров 






Или такой вариант
 
Mathemat писал (а):
Я-то хочу, чтобы при новой компиляции или смене ТФ индюкатор пересчитался на первом же тике, а потом запускался на 101-м, 201-м и т.п.
Ну так сделай чтобы темное дело делалось при каунтер = 0, а обнуление его происходило после 100. 
Сложность-то мне померещилась когда Волюмы увидел...
 
Всем ответившим большое спасибо за помощь.
 
И еще один момент - уже не вопрос, а констатация: в выходные тиков нет, а индюкатор, допустим, отлаживать надо. Ну и фиг с ним, пусть в выходные работает как скрипт - тем более что у меня графических буферов там нет, хе-хе... Я так понимаю, что достаточно убрать все индюкозависимые #property, скопировать измененный файл в каталог скриптов и компильнуть.
 
Можно еще запустить тестирование в визуальном режиме и набросить на график индикатор.
Причина обращения: