Справка по MetaEditorПроекты и MQL5 Algo ForgeРабота с MQL5 Algo Forge

Работа с MQL5 Algo Forge

MQL5 Algo Forge — встроенная в MetaEditor система контроля версий и хранения данных на базе Git. Она работает прежде всего с папкой MQL5, содержащей все алгоритмы, и специальной папкой Shared Projects, в которой хранятся публичные проекты.

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

Коммит (commit) фиксирует состояние файлов в определенный момент времени. Каждый коммит имеет уникальный идентификатор и сообщение с описанием внесенных изменений. История проекта формируется из коммитов, веток и связей между ними.

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

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

Основной сценарий работы:

  1. Получение изменений из удаленного репозитория — перед началом работы локальная копия должна соответствовать актуальной версии проекта в MQL5 Algo Forge.
  2. Изменение файлов — редактируйте код, добавляйте новые файлы, исправляйте ошибки или реализуйте новые функции. MetaEditor автоматически определит внесенные изменения.
  3. Фиксация изменений — создайте коммит, чтобы сохранить изменения в истории проекта. Для удобства MetaEditor автоматически отправляет созданный коммит в удаленный репозиторий.

Начало работы #

Перед началом работы необходимо авторизоваться в MetaEditor с помощью аккаунта MQL5.community. Начать работу с Git для выбранного каталога можно следующими способами:

  • Добавить файл или папку в Git с помощью команды «Добавить папку/файл в Git». Команда доступна для файлов и папок внутри каталога MQL5, но не внутри Shared Projects. После добавления в репозитории MQL5 будет создан новый коммит.
  • Создать новый проект в Shared Projects. Новый проект появится в вашей учетной записи на сайте MQL5 Algo Forge как отдельный репозиторий.
  • Создать форк публичного проекта на сайте MQL5 Algo Forge, а затем клонировать его в MetaEditor. Все файлы проекта появятся в папке Shared Projects.

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

1. Щелкните правой кнопкой мыши на файле или папке в окне Навигатора.

Контекстное меню файла/папки

2. Щелкните правой кнопкой мыши по вкладке открытого файла.

Контекстное меню вкладки

3. Щелкните правой кнопкой мыши в области редактора кода.

Контекстное меню редактора кода

4. В верхнем меню выберите Git.

Git в верхнем меню

Эти команды выполняют операции Git и взаимодействуют с MQL5 Algo Forge.

  • Получить обновления Git — получение последних изменений из удаленного репозитория. Git загружает новые коммиты с сервера и объединяет их с локальной версией проекта.
  • Отправить изменения в Git — отправка локальных изменений на удаленный репозиторий. MetaEditor автоматически выполняет Git Push после каждого Git Commit, но при необходимости команду можно запустить вручную, например если автоматическая отправка завершилась ошибкой.
  • Зафиксировать изменения в Git — фиксация текущего состояния проекта в истории версий. MetaEditor автоматически отправляет созданный коммит в удаленный репозиторий. Коммит служит контрольной точкой, к которой можно вернуться в дальнейшем.
  • Добавить файл/папку в Git — добавление файла или папки в список изменений, подготовленных для фиксации. После этого MetaEditor автоматически создает коммит и отправляет его в удаленный репозиторий.
  • Посмотреть разницу с Git — просмотреть изменения в подготовленных к фиксации файлах. На панели сравнения отображаются добавленные, удаленные и измененные строки.
  • Откатить изменения в Git — удалить подготовленные изменения, которые еще не были зафиксированы в коммите.
  • Посмотреть журнал Git — посмотреть все коммиты с указанием даты, автора и сообщения коммита. Это позволяет отслеживать, кто, что и когда изменил.
  • Ветка Git — открыть меню для создания новой ветки и переключения между ветками. Каждая ветка представляет отдельную линию разработки, которую можно использовать для тестирования, а затем удалить или объединить с основной веткой.

Добавление файлов #

Чтобы добавить локальный файл или папку в репозиторий MQL5, щелкните по нему правой кнопкой мыши и выберите «Добавить файл/папку в Git». Откроется окно со списком файлов, которые будут добавлены.

  • MetaEditor автоматически выбирает файлы, подходящие для добавления в Git, и исключает, например, бинарные файлы.
  • Git отслеживает файлы, а не папки. Поэтому при добавлении папки в репозиторий Git добавляет файлы, находящиеся внутри нее.
  • Пустую папку добавить не получится, поскольку в ней нет файлов для отслеживания.

Добавление папки в Git

Выберите нужные файлы и нажмите OK. MetaEditor добавит их в новый коммит и сразу отправит коммит в удаленный репозиторий.

Добавленные и отслеживаемые файлы помечаются специальным значком Нет изменений.

Добавленные файлы и папки

Создание веток #

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

Щелкните правой кнопкой мыши по файлу или папке, выберите «Ветка Git», а затем «Новая». В открывшемся окне укажите название ветки и нажмите OK.

Создание новой ветки

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

Переключение между ветками #

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

Щелкните правой кнопкой мыши по файлу или папке и выберите «Втка Git». В списке веток выберите нужную ветку.

Создание коммитов #

Измененные файлы и папки помечаются специальным значком Изменен.

Измененные файлы

Перед созданием коммита можно просмотреть изменения в файле. Для этого щелкните по нему правой кнопкой мыши и выберите «Посмотреть разницу с Git».

Изменения в файле

Для отправки изменений щелкните правой кнопкой мыши по файлу или папке и выберите «Отправить изменения в Git».

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

Отправка в Git

Нажмите ОК — MetaEditor создаст коммит и отправит его в удаленный репозиторий.

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

Получение изменений #

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

Чтобы получить все доступные изменения, щелкните правой кнопкой мыши папку и выберите «Получить обновления из Git». При этом на вкладке «Журнал» появится информация о выполненной операции, включая сведения о полученных изменениях.

Вкладка «Журнал» с операциями Git

Откат изменений #

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

Чтобы отменить изменения в файле или папке, щелкните по ним правой кнопкой мыши и выберите «Откатить изменения в Git».

Если в проекте изменено несколько файлов, откроется окно выбора. Выберите файлы, изменения которых необходимо отменить, и нажмите ОК.

Окно отката изменений

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

Отмена коммитов #

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

Щелкните правой кнопкой мыши по нужному файлу или папке и выберите «Посмотреть журнал Git», чтобы открыть историю коммитов. Затем щелкните правой кнопкой мыши коммит, который необходимо отменить, и выберите «Откатиться к ревизии».

Окно отката коммитов

MetaEditor создаст новый коммит, отменяющий изменения выбранного коммита, при этом вся история проекта сохранится.

Удаление файлов #

Чтобы удалить файл или папку, щелкните по ним правой кнопкой мыши и выберите «Удалить». Файл или папка будут удалены из локальной копии проекта.

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

Удаление публичных проектов #

Чтобы удалить проект из папки Shared Projects, щёлкните по нему правой кнопкой мыши и выберите «Удалить публичный проект».

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

Просмотр истории коммитов #

История коммитов для конкретного файла или папки содержит комментарии, имена авторов и даты. Она позволяет отслеживать изменения файла или папки на протяжении всего времени работы над проектом.

Щелкните правой кнопкой мыши по файлу или папке и выберите «Посмотреть журнал Git».

В верхней части окна отображаются следующие столбцы:

  • Комментарий — описание, указанное при создании коммита.
  • Автор — имя пользователя (логин учетной записи MQL5.community), создавшего коммит.
  • Date — дата и время создания коммита.

Окно истории изменений

Выберите коммит в списке — в нижней части окна появятся файлы, которые были изменены, добавлены или удалены в этом коммите.

Окно изменений коммита

При помощи иконок отображается вид изменений:

  • Добавлен — файл добавлен;
  • Изменен — файл изменен;
  • Удаленный (Deleted) — файл удален.

Щелкните правой кнопкой мыши коммит, чтобы открыть следующие команды:

  • Сравнить с текущей версией — открыть окно со сравнением текущего состояния файла и выбранного коммита.
  • Сравнить с предыдущей ревизией — открыть окно со сравнением предыдущей версии и выбранного коммита.
  • Откатиться к ревизии — отменить изменения выбранного коммита.