Справка по MetaEditorРазработка программКомпиляция

Компиляция

Компиляция — это процесс перевода исходного кода MQL4/MQL5-программы на машинный язык. Ее результатом является создание исполняемого файла программы (*EX4 или *.EX5), который может быть запущен в торговой платформе.

Компиляция состоит из нескольких этапов:

  • Лексический анализ
  • Синтаксический анализ
  • Семантический анализ
  • Генерация кода
  • Оптимизация кода
  • Скомпилировать можно любой файл (*.MQ4, *.MQ5 или *.MQH), однако исполняемый файл (*.EX4 или *.EX5) может быть получен только в результате компиляции основного MQ4/MQ5-файла программы или проекта.
  • Исполняемый файл создается в собственном закрытом формате, что скрывает исходный алгоритм программы.
  • Скомпилированные исполняемые EX4/EX5-файлы можно распространять без исходных MQ4, MQ5 и MQH-файлов. Без них отладка невозможна. Также не рекомендуется распространять исполняемые EX4/EX5-файлы, полученные в процессе отладки.

Чтобы получить исполняемый файл программы, откройте основной исходный файл или проект через "Навигатор", а затем нажмите  "Компилировать Компилировать" в меню "Файл" или "F7". Протокол процесса компиляции будет отображен на вкладке "Ошибки" в окне "Инструменты". Если компиляция прошла без ошибок, вы можете запустить полученную программу в торговой платформе.

Компиляция программы с выводом результатов во вкладке "Ошибки"

Если в процессе компиляции возникли ошибки или предупреждения, их описание будет показано на вкладке "Ошибки".

Ошибки компиляции обозначаются иконками Ошибка как на вкладке "Ошибки", так и в самом коде при переходе к ним. При их возникновении исполняемый файл программы (*EX4 или *.EX5) не создастся. Чтобы перейти к строке, где возникла ошибка, дважды щелкните мышью на ошибке или нажмите "Перейти к строке Перейти к строке" в контекстном меню. Номер строки и столбца, где была найдена ошибка, показываются в соответствующих колонках.

Предупреждения, обозначаемые иконкой Предупреждение, указывают на места возможного появления ошибок. То есть компилятор обращает внимание на те места исходного кода, которые могли быть неверно интерпретированы (например, неявная смена типа значения). Перейти к такой строке в коде можно точно так же, как и в случае с ошибками.

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

Режим компиляции #

В редакторе предусмотрено два режиме компиляции: с максимальной оптимизацией кода и без оптимизации.

Отсутствие оптимизации значительно сокращает время создания исполняемого файла. Используйте этот режим в активной стадии разработки, когда требуется быстро проверить написанный код. А уже при компиляции программы для реальной работы включайте режим максимальной оптимизации для наилучшей производительности.

Для переключения между режимами используйте меню "Сборка" или меню команды компиляции на панели инструментов:

Управляйте режимом компиляции

Параметр "Максимальная оптимизация" в настройках проекта выполняет ту же функцию.

  • Полное описание ошибок компиляции приведено в справочнике по языку MQL4/MQL5.
  • При наличии предупреждений исполняемый файл создается. Однако их не рекомендуется игнорировать. Предупреждения указывают на потенциальные ошибки в коде.
  • При компиляции исполняемый файл (*.EX4 или *.EX5) создается в том же каталоге, что и основной исходный файл  программы (*.MQ4 или *.MQ5) или проект.
  • Исполняемый файл metaeditor.exe можно использовать как внешний компилятор в сторонних IDE.