Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Задержки это как раз следствие оптимизации. Первая задержка при инициализации. Если индикатор (в ролике для МТ4) устанавливается на некий таймфрейм символа, для которого нет истории, или она не полна, то диаграммы на истории могут не строиться, или будут строиться с ошибками. И я это явление наблюдал. Обращаю Ваше внимание, что индикатор может устанавливаться на одном таймфрейме, брать исходные данные с другого, а показывать для третьего. Что бы отрисовывать диаграммы на истории только один раз и сразу без ошибок в OnCalculate добавлен кусочек кода, который проверяет готовность исходных данных, а потом еще пропускает пять вызовов OnCalculate для гарантии того, что теперь уж точно все исходные данные готовы. Что бы пользователь не думал, что индикатор висит, в лог выводятся сообщения pass 1 ... pas 2 и т.д. Как видите, никакого пересчета, нагрузка на терминал минимальна. В конечном итоге, пересчитывается только последняя диаграмма. Происходит это раз в минуту. Плохой способ? Возможно. Но ничего более крутого мне в голову не пришло.
Во второй раз задержка происходит при режиме, когда графическими примитивами управляет индикатор, а не терминал. Это сделано для обработки появления множества событий CHARTEVENT_CHART_CHANGE. Т.е. когда пользователь ни с того, ни с сего начнет дергать график туда сюда. Если пытаться такие события обрабатывать по мере поступления, то индикатор не справится с построениями и получится каша. Поэтому индикатор просто ничего не делает и при наступлении события возвращает управление. А вот когда пользователь прекращает генерировать событие, индикатор ждет три секунды, что бы убедиться, что новых событий уже точно не будет и только тогда перерисовывает диаграммы на новом месте. Только один раз! Да, получаем задержку. Но мы о ней честно предупреждаем, лишние ресурсы не потребляем, а когда возникают вопросы, объясняем свою позиции. Как это происходит сейчас )
И первый, и второй случай не обязательны к проявлению. И для себя я бы этих проверок не делал. Но для остальных приходится. Если найду, или кто то подскажет лучший путь, я тут же примусь за исправления.