Программы MQL5
© 2000-2011, MetaQuotes Software Corp.
342
События клиентского терминала
Init
Сразу же после того, как клиентский терминал загрузит программу (эксперт или пользовательский
индикатор) и запустит процесс инициализации глобальных переменных, будет послано событие
Init, которое обрабатывается функцией OnInit(), если она есть. Это событие также генерируется
после смены финансового инструмента и/или периода графика, после перекомпиляции программы
в редакторе MetaEditor, после смены входных параметров из окна настройки эксперта или
пользовательского индикатора. Советник также инициализируется после смены счета. Для
скриптов событие Init не генерируется.
Deinit
Перед деинициализацией глобальных переменных и выгрузкой программы (эксперт или
пользовательский индикатор) клиентский терминал посылает программе событие Deinit. Событие
Deinit также генерируется при завершении работы клиентского терминала, при закрытии графика,
непосредственно перед сменой финансового инструмента и/или периода графика, при удачной
перекомпиляции программы, при смене входных параметров, а также при смене счета.
Причинудеинициализации можно получить из параметра, переданного в функцию OnDeinit().
Выполнение функции OnDeinit() ограничивается 2.5 секундами. Если за это время функция не
закончила свою работу, то ее выполнение завершается принудительно. Для скриптов событие
Deinit не генерируется.
Start
Событие Start – это специальное событие для активизации скрипта после его загрузки. Это
событие обрабатывается функцией OnStart. Событие Start экспертам и пользовательским
индикаторам не посылается.
NewTick
Событие NewTick генерируется при поступлении новых котировок, и обрабатывается функцией
OnTick() у присоединенных советников. Если при поступлении новой котировки выполнялась
функция OnTick, запущенная на предыдущей котировке, то пришедшая котировка будет
проигнорирована советником, так как соответствующее событие не будет поставлено в очередь
событий эксперта.
Все пришедшие во время выполнения программы новые котировки программой игнорируются до
тех пор, пока не завершится очередное выполнение функции OnTick(). После этого функция будет
запущена только после прихода очередной новой котировки.
Событие NewTick генерируется независимо от того, запрещена или разрешена автоматическая
торговля (кнопка "Разрешить/запретить Авто-торговлю"). Запрет автоматической торговли
означает только запрет на отправку торговых запросов из эксперта, работа эксперта не
прекращается.
Запрет автоматической торговли путем нажатия на указанную кнопку не прерывает текущее
выполнение функции OnTick(). Функция OnTick() не запускается на выполнение при открытом окне
свойств советника.