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

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

MetaEditor позволяет удобно работать над большими проектами: объединять множество файлов в одну структуру, управлять настройками проекта и вести совместную разработку с командой программистов через версионное онлайн-хранилище MQL5 Storage.

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

Проект — это отдельный файл с расширением "MQPROJ", в котором хранятся настройки программы, параметры компиляции и информация обо всех используемых файлах. Для удобной работы с проектом предусмотрена отдельная вкладка в Навигаторе. В ней по категориям отображаются все используемые файлы: включаемые, ресурсные, заголовочные и т.д.

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

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

Новый проект создать так же легко, как и обычную MQL5-программу. Нажмите "Новый проект", а затем в Мастере MQL5 выберите тип создаваемой программы:

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

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

Мастер также позволяет создавать пустые проекты. Это удобно при нестандартных разработках с собственной структурой файлов, когда шаблоны по умолчанию не подходят. В этом случае создается только пустой файл настроек "mqproj". Файлы для исходного кода в последующем необходимо создать самостоятельно.

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

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

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

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

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

Доступ к основным настройкам проекта организован через отдельное диалоговое окно, а не через редактирование исходного кода, как при работе с одиночными MQ5-файлами. Чтобы открыть настройки проекта, нажмите "Свойства проекта Свойства" в его контекстном меню. Для проекта доступны следующие настройки:

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

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

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

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

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

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

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

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

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

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

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

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

MetaEditor позволяет вести совместную разработку приложений с командой программистов. Для этого прямо в редактор интегрировано онлайн-хранилище MQL5 Storage:

  • Версионное хранение — вы всегда можете посмотреть, кто и какие изменения сделал, и при необходимости откатить их.
  • Доступ к проекту онлайн — вы и другие участники проекта имеют доступ к проекту с любого компьютера через аккаунт MQL5.community.
  • Уведомления об изменениях в проекте — будьте в курсе любых изменений в файлах или настройках проекта. Для получения уведомлений на мобильный телефон укажите свой MetaQuotes ID в разделе "Настройки \ Безопасность" вашего профиля MQL5.community. Общение с командой можно организовать в групповом чате.
  • Вы сами определяется права для участников — просмотр или редактирование.
  • Вы можете вести публичные проекты со свободным участием и легко находить единомышленников — все доступные публичные проекты показываются в отдельной вкладке MetaEditor, откуда любой желающий может подать заявку на участие.

Для работы с групповыми проектами предусмотрен раздел Shared Projects. Если у вас еще не подключено хранилище, выполните в контекстном меню этой папки команду Activate MQL5 Storage. MetaEditor сразу же проверит, есть ли в вашем хранилище сохраненные данные, а также доступны ли вам какие-либо групповые проекты. Имеющиеся данные будут сразу же извлечены из хранилища и загружены на компьютер. Доступные групповые проекты будут показаны в разделе Shared Projects; чтобы получить их, нажмите "Извлечь файлы из хранилища" в контекстном меню.

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

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

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

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

Чтобы разрешить другим участникам работать с проектом, откройте его свойства: здесь можно назначить права конкретным пользователям, а также задать общие параметры групповой работы:

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

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

Чтобы предоставить права на проект конкретному пользователю, нажмите "добавить нового пользователя" и укажите его логин на MQL5.community. Далее выберите права:

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

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

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

У каждого группового проекта в MQL5 Storage есть настройки публичности: проект может быть приватным или же открытым для участия других пользователей. Все проекты, к которым можно свободно присоединиться, отображаются в отдельной вкладке "Публичные проекты".

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

Чтобы принять участие в проекте, нажмите "Присоединиться". После этого он появится в разделе "Shared Projects". Далее нажмите "Получить обновления из хранилища Получить обновления из хранилища" в контекстном меню проекта, чтобы загрузить его на компьютер.

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

Просмотр настроек проекта