Тормоза при запуске терминала

 

Для того чтобы ресурсоемкий индикатор,  не тормозил первый запуск терминала, я делаю примерно так

int start()
   { 
     if (Perv_zapusk==false){Perv_zapusk=true;return(0);}

К сожалению, такой способ не видит различий между запуском "вместе с терминалом" и запуском "в запущенном терминале",  индикатор рассчитается в любом случае со второго тика

ПоделИтесь, товарищи, более элегантным решением проблемы?

 
может возвращаемое от RefreshRates поможет.
 
sergeev:
может возвращаемое от RefreshRates поможет.



Можно попробовать, но вряд ли у меня что-то получиться, RefreshRates при подкачке данных выдаст TRUE, и когда он явно произойдет, и пр. непонятности

Вот, каким макаром из индикатора узнать, что терминал весь нарисовался... 

 
Можно через isConnected() попробовать.
 
Integer:
Можно через isConnected() попробовать.

Почти идеально- индикатор курит бамбук до isConnected()==TRUE

Фишка в том, что защита от тормозов запуска терминала мне более надобна оффлайн (имеется ввиду исследовательская работа)-  нагромождение тяжелых индюков, хорошо бы без зацикливаний и делений на ноль, и переодических ибийств terminal.exe

Онлайн, обычно, код уже в достаточной мере  оптимизирован, либо можно забить на тормоза (имеется ввиду уже торговля)

 
Признаться, я думал есть какой-н. распространенный способ облегчить запуск терминала((
 

Хм. Запоминаем текущее время. Пока не пройдет N секунд- выходить. 

Наверно можно еще как-то доставать загрузку процессора. 

 

заводим глобальную переменную, например calculate. если она есть и = 1 - индикатор работает, если нет или != 1 - return сразу после старта. пишем два скрипта ON и OFF: первый создает calculate = 1, второй - удаляет или делает = 0.

при старте терминала calculate нет и индикатор не считается. когда есть охота увидеть результаты расчета - сбрасываем ON, появляется calculate = 1 и на следующем тике индикатор начинает свою работу и работает до тех пор пока не сбросите OFF.

Еще проще (если не надо видеть график когда индикатор не считается): разрешить ему расчеты на всех таймах кроме одного, например МN.

перед выходом из терминала сбросили calculate или перешли на MN и при следующем старте индикатор не считается.

Это конечно ручник а не автомат, но есть фишка которая может оказаться полезной: расчет можно остановить в любой момент без отсоединения индикатора для освобождения процессора для других задач.

 
makskeep:

Почти идеально- индикатор курит бамбук до isConnected()==TRUE

до IsConected он и так курит бамбук - тиков то нет и его расчетов тоже ;)

 
используй систему маркеров
 
ForexTools:

до IsConected он и так курит бамбук - тиков то нет и его расчетов тоже ;)

Что-то неверно в этом утверждении.

Звучит так, что если на оффлайновый график накинуть индикатор- то индикатор не будет рассчитываться. 

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