Скачать MetaTrader 5

Timer()

Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
Вадим
706
Вадим 2010.03.27 14:19 

В индикаторе используется функция Timer(). Начальная инициализация прописана правильно, но таймер не активизируется при перезагрузке терминала. Активировать его удается только если изменить input  параметры индикатора. Ну и естественно при перекомпиляции индикатора таймер тоже активируется.

o_o
Модератор
23909
o_o 2010.03.27 14:45  
Rinng писал(а) # :

В индикаторе используется функция Timer(). Начальная инициализация прописана правильно, но таймер не активизируется при перезагрузке терминала. Активировать его удается только если изменить input  параметры индикатора. Ну и естественно при перекомпиляции индикатора таймер тоже активируется.

несколько похожие проблемы наблюдаются и при других ситуациях. (в МТ4)

Например в индикаторе прописано в инициализации - переопределение толщины линии. При переинициализации (или перекомпилировании) все проходит нормально, но при перезагрузке терминала - толщина не изменяется.

По-моему это одинаковые проблемы, которые идут ещё с МТ4.


Вадим
706
Вадим 2010.03.27 14:56  

Получается что при запуске терминала я должен вручную выискивать все свои индикаторы с OnTimer() и активировать их. Очень не удобно ,  тем более если индикаторов десяков несколько. А если они еще обрабатывают важную рыночную информацию....  сколько можно ценного потерять если забыть активировать их.

MetaQuotes
Админ
25033
Renat Fatkhullin 2010.03.27 15:19  
Приведите рабочий пример кода, пожалуйста.

Rashid Umarov
Админ
11992
Rashid Umarov 2010.03.27 17:55  
Renat писал(а) # :
Приведите рабочий пример кода, пожалуйста.

Вот индикатор CCI из стандартной поставки, в который встроен таймер. Работает после перезагрузки правильно.
Файлы:
cci.mq5 4 kb
Вадим
706
Вадим 2010.03.27 19:07  
Renat писал(а) # :
Приведите рабочий пример кода, пожалуйста.

Код у меня достаточно большой со множеством пользовательских функций.

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

Запустил на новом окне графика цен....

В итоге оказалось что индикатор рабочий полностью, а глюк был в окне старого графика цен с индикатором.

Старое окно графика цен не инициализировалось при перезапуске терминала. 

Вадим
706
Вадим 2010.03.31 13:11  

Всё таки видимо нужно обратить внимание на функцию onTimer(). Её работа не достаточно устойчива по сравнению с onTick(). Я понимаю что пойск ошибки в данном случаи сравни с поиском плавающего контакта в большом аппарате. Но у onTimer() большие перспективные возможности и поэтому хотелось бы, чтобы она работала гораздо устойчивее. Обнаружил что выход за размер массива на одном индикаторе крашит таймер на другом. Но проблема в том,что это происходит не всегда. Поэтому конкретные факты привести не могу. Видимо эту информацию нужно воспринимать как сигнал о возможной проблеме.

Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий