Программы MQL5

Для того чтобы mql5-программа могла работать, она должна быть скомпилирована (кнопка "Компилировать" или клавиша F7). Компиляция должна пройти без ошибок (допускаются предупреждения, которые необходимо проанализировать). При этом в соответствующей директории terminal_dir\MQL5\Experts, terminal_dir\MQL5\indicators или terminal_dir\MQL5\scripts должен быть создан выполняемый файл с тем же именем и расширением EX5. Именно этот файл может быть запущен на выполнение.

Особенности работы mql5-программ описаны в разделах:

Эксперты, пользовательские индикаторы и скрипты прикрепляются к одному из открытых графиков путем перетаскивания мышью из окна "Навигатор" клиентского терминала на соответствующий график (технология Drag'n'Drop). MQL5-программы могут работать только при включенном клиентском терминале.

Для того чтобы эксперт прекратил свою работу, его необходимо удалить с графика. Для этого из контекстного меню графика следует выбрать "Список экспертов", далее выбрать сответник из списка и нажать кнопку "Удалить". На работу советника также влияет состояние кнопки "Авто-торговля".

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

Пользовательские индикаторы и советники работают до тех пор, пока их явно не удалят с графика; информация о прикрепленных советниках и пользовательских индикаторах сохраняется между запусками клиентского терминала.

Скрипты выполняются однократно и удаляются автоматически по завершению своей работы, либо по закрытию или изменению состояния текущего графика, либо по завершению работы клиентского терминала. При повторном запуске клиентского терминала скрипты не запускаются, так как информация о них не сохраняется.

На одном графике могут работать максимум по одному эксперту и скрипту и неограниченное количество индикаторов.

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