Редактирование, компиляция и запуск программ

Все программы в MetaTrader 5 являются компилируемыми. Это означает, что исходный код, который пишется на языке MQL5, должен быть откомпилирован для получения бинарного (или двоичного) представления — именно оно и будет выполняться в терминале.

Редактирование и компиляцию программ обеспечивает MetaEditor.

Редактирование MQL-программы в редакторе MetaEditor

Редактирование MQL-программы в редакторе MetaEditor

Исходный код — это текст, написанный по правилам MQL5 и сохраненный в файл с расширением mq5. Файл с откомпилированной программой получит то же имя, но расширение ex5.

В простейшем случае одному исполняемому файлу соответствует один файл с исходным кодом, но, как мы увидим в дальнейшем, для написания сложных программ часто приходится делить исходный код на несколько файлов — один главный и несколько вспомогательных, специальным образом подключаемых из главного. В этом случае главный файл по-прежнему должен иметь расширение mq5, а подключенные из него — расширение mqh. В этом случае в генерируемый исполняемый файл фактически попадут инструкции из всех исходных файлов. Таким образом, источником для создания одного исполняемого файла (программы) могут быть несколько файлов с исходным кодом. Все это, упомянутое здесь для полноты картины, мы начнем осваивать лишь во второй части книги.

Набор всех правил, по которым разрешено конструировать программы на MQL5, будем далее называть синтаксисом MQL5. Только строгое следование синтаксису позволяет писать программы, понятные компилятору. По сути, обучение программированию заключается в последовательном знакомстве со всеми правилами конкретного языка, в нашем случае — MQL5. И это — основная задача данной книги.

Обычно для компиляции исходного кода используется команда MetaEditor Файл -> Компилировать, или достаточно просто нажать F7. Но существуют и другие, специальные способы компиляции — мы поговорим о них позднее. Процесс компиляции сопровождается выводом изменяющегося статуса в лог редактора (когда MQL-программа состоит из нескольких файлов с исходным кодом, подключение каждого файла отмечается на отдельной строке лога).

Компиляция MQL-программы в редакторе MetaEditor

Компиляция MQL-программы в редакторе MetaEditor

Признаком успешной компиляции является отсутствие ошибок ("0 errors"). Наличие предупреждений не сказывается на результате компиляции, но сигнализирует о потенциальных проблемах, поэтому их рекомендуется исправлять наравне с ошибками (о том, как это делать, мы расскажем позже). В идеале предупреждений быть не должно ("0 warnings").

В результате успешной компиляции mq5-файла мы получаем одноименный файл с расширением ex5. Навигатор в MetaTrader 5 отображает в виде дерева все исполняемые ex5-файлы, находящиеся в папке MQL5 и её подпапках, в том числе и только что откомпилированный.

Навигатор MetaTrader 5 с откомпилированной MQL-программой

Навигатор MetaTrader 5 с откомпилированной MQL-программой

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

Кроме того, разработчикам часто требуется выполнить программу в режиме отладки — для поиска причин ошибок. Для этой цели существует даже не одна специальная команда — мы обратимся к ним в разделе Работа над ошибками и отладка.