Справка по MetaEditorПроекты и MQL5 Algo ForgeСоздание и работа с проектом

Создание и работа с проектом

MetaEditor предоставляет множество возможностей для работы с проектами. Вы можете объединять файлы в единую структуру, управлять настройками проекта и совместно работать над ним с помощью MQL5 Algo Forge и системы контроля версий.

Что такое проект

Проект — это файл MQPROJ, в котором хранятся настройки MQL5-программы, параметры компиляции и информация обо всех используемых файлах.

Двойной щелчок по файлу MQPROJ открывает вкладку «Проект» — отдельную рабочую область для удобной работы с проектами в окне Навигатора. На этой вкладке все файлы и папки проекта распределены по категориям.

Структура и настройки проекта    

Создание проекта #

В верхнем меню выберите «Файл \ Новый проект» или нажмите Ctrl+Shift+N. Выберите тип программы и продолжите работу в Мастере MQL5.

Создание нового проекта

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

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

Создание проекта на основе MQ5-файла #

Щелкните правой кнопкой мыши по файлу и выберите «Новый проект из исходного кода».

Создание нового проекта на основе исходного файла

В каталоге появится новый файл проекта MQPROJ с тем же именем. В проект автоматически добавятся основные свойства программы, указанные в виде #property в исходном файле: имя, копирайт, версия, ссылка на разработчика и описание. Все файлы, включенные в исходный код при помощи директивы #include, будут добавлены в раздел "Dependencies" проекта.

Свойства проект #

Настройки проекта можно изменять в отдельном диалоговом окне, не редактируя исходный код MQ5-файла. Для этого дважды щелкните файл MQPROJ на вкладке «Проект».

Структура и настройки проекта

Для проекта доступны следующие настройки:

  • Платформа — версия платформы, для которой разрабатывается продукт: MetaTrader 4 или MetaTrader 5.
  • Тип программы — вид программы: советник (торговый робот), индикатор, скрипт или библиотека.
  • Копирайт — информация об авторских правах, аналогично свойству "#property copyright ..." в исходном коде.
  • Ссылка — ссылка на разработчика, аналогично свойству "#property link ..." в исходном коде.
  • Версия — версия программы, аналогично свойству "#property version ..." в исходном коде.
  • Иконка — иконка программы, аналогично свойству "#property icon ..." в исходном коде.
  • Описание — описание программы, аналогично свойству "#property description ..." в исходном коде.
  • CPU — оптимизация компиляции под определенные наборы инструкций процессора: X64 Regular, AVX, AVX2 + FMA3, AVX512 + FMA3.
  • Максимальная оптимизация — при включении этой опции приложения выполняются быстрее.
  • Проверять вещественные делители — приложения с отключенной проверкой работают несколько быстрее, поскольку ошибки деления на ноль не проверяются при исполнении кода.
  • Использовать кэш оптимизации — при выполнении оптимизации тестер стратегий сохраняет все результаты выполненных проходов в кэш. Результаты сохраняются для каждого набора входных параметров. При повторной оптимизации на тех же параметрах это позволяет брать готовые результаты без затрат времени на повторные вычисления.
    Но для некоторых задач — например, при математических вычислениях — может потребоваться проводить расчеты независимо от наличия готовых результатов. В этом случае отключите в проекте опцию "Использовать кэш оптимизации". При этом сами результаты тестирования все равно будут сохраняться в кэше, чтобы вы могли посмотреть все данные по выполненным проходам в отчете тестера стратегий.
  • Рассчитывать индикатор на каждом тике в тестере — эта опция доступна только для проектов индикаторов. Она принудительно включает их расчет на каждом тике при работе в тестере стратегий. Настройка влияет только на работу в тестере стратегий. Непосредственно в платформе индикаторы всегда рассчитываются при поступлении каждого нового тика.
    При тестировании советников, использующих индикаторы, тестер стратегий рассчитывает значения индикатора только при обращении к его данным, то есть при запросе значений буферов индикатора. Это дает существенное ускорение при тестировании и оптимизации, если эксперту не требуется получать значения индикатора на каждом тике. Включите эту опцию, если индикатор должен рассчитываться на каждом тике.
    В тестере стратегий индикаторы также рассчитываются принудительно на каждом тике в следующих случаях:
  • при тестировании в визуальном режиме
  • при наличии в индикаторе функций EventChartCustom, OnChartEvent, OnTimer
  • если индикатор создан компилятором с номером билда ниже 1916
  • Показывать окно подтверждения перед запуском скрипта — предотвращает случайный запуск скрипта.
  • Показывать окно свойств перед запуском скрипта — позволяет просмотреть и изменить входные параметры перед запуском скрипта.

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

Добавление и удаление файлов из проекта #

Все файлы, используемые в исходном коде, автоматически добавляются в структуру проекта. Например, если подключить новый MQH-файл с помощью директивы #include, он будет автоматически показан в разделе "Dependencies" навигатора. В раздел "Headers" будут добавляться используемые заголовочные файлы, а в раздел "Resources" — изображения, звуки и другие MQL-программы, включенные в проект в виде ресурсов (директива #resource).

В разделе Sources показываются файлы с исходным кодом. В раздел Settings and files можно добавлять другие файлы, например, настройки для тестирования или шаблоны для графиков.

Для добавления существующих файлов в проект вручную и удаления из него файлов воспользуйтесь командами контекстного меню. Будьте внимательны при удалении: вы можете убрать файл из проекта (убрать привязку) или полностью удалить его с жесткого диска.

Добавление и удаление файлов из проекта

Команда "Добавить существующую папку" позволяет массово добавить в проект все поддерживаемые файлы из выбранного каталога.

При добавлении файла в проект вручную он не включается каким-либо образом в код программы и не копируется в каталог проекта. Файл только привязывается к проекту для отображения в его навигаторе.

Компиляция проекта #

Для получения исполняемого файла EX5 вы можете открыть либо проект, либо основной MQ5-файл программы, а затем выполнить команду компиляции (F7). Исполняемый файл будет создан в каталоге, где находится файл проекта MQPROJ.

Для удобства работы при компиляции группового проекта конечный исполняемый файл (EX5) автоматически копируется в папку Experts, Indicators или Scripts в зависимости от типа программы. Таким образом, вы сразу можете запустить программу в терминале без ее ручного копирования в нужный каталог.

Групповые проекты #

Shared Projects — специальный раздел для совместной работы над проектами. Любой проект, созданный в этом разделе, автоматически отправляется в онлайн-хранилище.

Для создания нового группового проекта выберите папку Shared Projects и нажмите "Новый проект" в контекстном меню:

Создание группового проекта

Далее пройдите стандартные шаги Мастера MQL5: задайте тип, имя и свойства будущей программы. Выбирайте для групповых проектов четкие и понятные имена, чтобы другие участники легко их различали. В имени допускаются только латинские буквы и цифры, пробелы не допускаются.

После создания общий проект появится на сайте MQL5 Algo Forge как приватный репозиторий под вашим аккаунтом.

Изменение видимости общих проектов #

Вы можете сделать репозиторий публичным или предоставить доступ к нему определенным пользователям. Щелкните правой кнопкой мыши папку проекта и выберите «Свойства публичного проекта».

В поле «Доступ» вместо «Приватный проект» выберите нужный вариант:

  • Приватный проект — доступ к проекту есть только у автора.
  • Свободное участие в проекте — присоединиться к проекту может любой пользователь.
  • Участие в проекте по запросу — для получения доступа к проекту необходимо отправить запрос автору

Настройка доступа к групповому проекту

Также можно предоставить доступ отдельному пользователю. Нажмите «добавить нового пользователя» и укажите его логин MQL5.community. В раскрывающемся списке «Права» выберите уровень доступа:

  • Чтение — пользователь может видеть все данные проекта и скачивать файлы проекта.
  • Чтение и запись — пользователь может видеть все данные проекта, скачивать файлы проекта и вносить в них изменения.
  • Администратор — пользователь получает все права уровня записи и чтение, а также дополнительно может управлять списком участников проекта.

Публичные проекты #

Публичный проект — это репозиторий, для которого установлена публичная видимость. Любой пользователь MQL5 может скачать файлы публичного проекта, создать его форк, чтобы получить собственную копию, работать вместе с владельцем или сопровождающими проекта и предлагать изменения в коде.

Вкладка «Публичные проекты» в MetaEditor находится в разработке. Доступные публичные проекты вы можете просматривать на сайте MQL5 Algo Forge — аналоге GitHub для сообщества разработчиков алгоритмических торговых систем.

Сайт публичных проектов

После создания форка публичного проекта его копия появится на сайте как публичный репозиторий в вашем аккаунте. После клонирования форка в MetaEditor он появится в разделе Shared Projects.

Изменение видимости проектов

Чтобы сделать существующий проект публичным, измените его настройки видимости. Это можно сделать с помощью специальной команды непосредственно в MetaEditor или на сайте MQL5 Algo Forge:

На странице репозитория нажмите «Настройки» в правом верхнем углу.

Страница настроек репозитория

Снимите флажок «Частный репозиторий» и нажмите «Сохранить настройки».

Изменение настроек репозитория