может возвращаемое от RefreshRates поможет.
Можно попробовать, но вряд ли у меня что-то получиться, RefreshRates при подкачке данных выдаст TRUE, и когда он явно произойдет, и пр. непонятности
Вот, каким макаром из индикатора узнать, что терминал весь нарисовался...
Можно через isConnected() попробовать.
Почти идеально- индикатор курит бамбук до isConnected()==TRUE
Фишка в том, что защита от тормозов запуска терминала мне более надобна оффлайн (имеется ввиду исследовательская работа)- нагромождение тяжелых индюков, хорошо бы без зацикливаний и делений на ноль, и переодических ибийств terminal.exe
Онлайн, обычно, код уже в достаточной мере оптимизирован, либо можно забить на тормоза (имеется ввиду уже торговля)
Хм. Запоминаем текущее время. Пока не пройдет N секунд- выходить.
Наверно можно еще как-то доставать загрузку процессора.
заводим глобальную переменную, например calculate. если она есть и = 1 - индикатор работает, если нет или != 1 - return сразу после старта. пишем два скрипта ON и OFF: первый создает calculate = 1, второй - удаляет или делает = 0.
при старте терминала calculate нет и индикатор не считается. когда есть охота увидеть результаты расчета - сбрасываем ON, появляется calculate = 1 и на следующем тике индикатор начинает свою работу и работает до тех пор пока не сбросите OFF.
Еще проще (если не надо видеть график когда индикатор не считается): разрешить ему расчеты на всех таймах кроме одного, например МN.перед выходом из терминала сбросили calculate или перешли на MN и при следующем старте индикатор не считается.
Это конечно ручник а не автомат, но есть фишка которая может оказаться полезной: расчет можно остановить в любой момент без отсоединения индикатора для освобождения процессора для других задач.
Почти идеально- индикатор курит бамбук до isConnected()==TRUE
до IsConected он и так курит бамбук - тиков то нет и его расчетов тоже ;)
до IsConected он и так курит бамбук - тиков то нет и его расчетов тоже ;)
Что-то неверно в этом утверждении.
Звучит так, что если на оффлайновый график накинуть индикатор- то индикатор не будет рассчитываться.
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Для того чтобы ресурсоемкий индикатор, не тормозил первый запуск терминала, я делаю примерно так
int start()
{
if (Perv_zapusk==false){Perv_zapusk=true;return(0);}
К сожалению, такой способ не видит различий между запуском "вместе с терминалом" и запуском "в запущенном терминале", индикатор рассчитается в любом случае со второго тика
ПоделИтесь, товарищи, более элегантным решением проблемы?