Опубликуйте код статьи в MQL5 Algo Forge за 10 минут: пошаговый гайд
Содержание
- Введение
- Подготовка окружения
- Авторизация
- Создание проекта
- Типизация
- Именование
- Файловый состав
- Организация папок
- README
- Кодировка и сборка
- Git-фиксация
- Публичный режим
- Мультистатейные проекты
- Контрольный список
- Заключение
Введение
Ваша статья уже опубликована на MQL5? Тогда сделайте следующий шаг: превратите код из статьи в полноценный проект в MQL5 Algo Forge. Не оставляйте исходники только в архиве. Перенесите их в репозиторий, чтобы читатели видели актуальную версию проекта, понятную структуру файлов, историю изменений и нормальное описание. Algo Forge работает на базе Git, но в MetaEditor основные действия уже встроены в интерфейс, а README.md становится лицом проекта.
![]()
Подготовка окружения
Подготовьте Ваш логин MQL5, все файлы из статьи и готовый README.md. Не откладывайте публикацию проекта на потом. Создайте его сразу, пока весь код, настройки и вспомогательные материалы у вас под рукой.
Для публикации своего проекта в репозиторий потребуется сделать всего несколько простых шагов. Публикация кода займёт не больше 10 минут, и вы забудете про путаницу с архивами, а ваш проект будет жить и обновляться в облаке.
Авторизация
Откройте MetaEditor. Перейдите на вкладку Tools -> Options -> Community и убедитесь, что вы вошли под своим MQL5-аккаунтом. Без этой авторизации MetaEditor не сможет работать с MQL5 Algo Forge.

1. Авторизируйтесь в MetaEditor своим логином и паролем mql5.com
Создание проекта
Откройте окно Navigator. Найдите папку Shared Projects. Нажмите по ней правой кнопкой мыши и выберите "Новый проект". Создавайте проект именно здесь: это правильная точка входа в Algo Forge из MetaEditor.

2. Создайте новый проект в редакторе кода
Типизация
Выберите тип проекта по содержимому статьи:
- Expert Advisor — если публикуете советник;
- Custom Indicator — если публикуете индикатор;
- Script — если публикуете скрипт;
- Service — если публикуете сервис;
- Library — если публикуете библиотеку;
- Empty — если в статье много файлов, которые необходимо компилировать раздельно, и нужна пустая заготовка.
Если сомневаетесь, и в проекте только один главный компилируемый файл, то берите тот тип, который соответствует главному компилируемому файлу. Так MetaEditor сразу создаст удобную основу проекта.
Если же в статье целый набор различных файлов, которые необходимо компилировать раздельно, то такой проект изначально должен создаваться как "Пустой", и далее наполняться файлами самостоятельно.
Если создать не пустой проект и разместить в нём, например, два и более скрипта, то скомпилироваться сможет только один из них. При попытке компиляции других скриптов, получим ошибку, что файл такого типа уже существует в проекте.

3. Выберите тип создаваемого проекта в соответствии с содержимым статьи
Именование
Используйте имя, которое мы вам передадим. Если имени пока нет, придерживайтесь понятной схемы:
[Тип материала]-[ID статьи]-[Краткая тема]
Например: Article-21732-Code-Tears-And-Algo-Forge. Такое имя сразу связывает проект со статьёй и упрощает навигацию.
Файловый состав
Перенесите в проект всё, без чего читатель не сможет собрать, запустить или проверить код:
- основной файл .mq5;
- файлы .mqh;
- библиотеки;
- .set пресеты;
- изображения;
- CSV, TXT и другие данные;
- дополнительные ресурсы, которые использует проект.
Не ограничивайтесь одним главным файлом. Если статья опирается на модуль, ресурс или набор настроек, добавьте и его. Полный проект всегда полезнее для читателя, чем неполный архив.

4. Наполните проект файлами из статьи
Организация папок
Не сваливайте всё в одну кучу. Разберите проект так, чтобы в нём было легко ориентироваться. В окне Projects MetaEditor сам показывает файлы по логическим разделам: Sources, Headers, Resources, Settings and files, а зависимости выводит отдельно. Именно такой порядок помогает сразу увидеть, где основной код, где заголовки, где ресурсы и где служебные файлы.
Если переносите старый архив, сначала соберите все его файлы в одну аккуратную папку проекта, а потом подключите их в MetaEditor. Так вы ничего не потеряете и не запутаетесь в версиях.

5. Разложите файлы по своим папкам в проекте
README
Возьмите готовый README.md, который мы вам пришлём, и положите его в корень проекта. Не убирайте его во вложенные папки. Именно README открывает проект читателю: объясняет, что это за код, что входит в проект и с чего начать. Без него репозиторий выглядит как набор безымянных файлов.

6. Положите файл описания проекта README.md в корневую папку проекта
Кодировка и сборка
Перед отправкой остановитесь на минуту и проверьте проект:
- все файлы из статьи добавлены;
- основной .mq5 файл на месте;
- README.md лежит в корне;
- проект компилируется без ошибок;
- старые текстовые файлы, если вы переносите их из архива, сохранены в UTF-8.

7. Сохраните все файлы проекта в кодировке UTF-8
Если проект состоит из одного главного компилируемого файла, то компиляцию можно выполнить щелчком ПКМ в окне Навигатора по имени проекта и выборе из контекстного меню команды "Компилировать".
Если же в проекте множество компилируемых файлов, то компилировать необходимо раздельно каждый, иначе получим ошибку компиляции.

8.1 Проверьте успешность компиляции проекта

8.2 Если исполняемых компилируемых файлов много, то скомпилируйте их раздельно
Git-фиксация
Добавьте новые файлы в Git через команду "Добавить файл/папку в Git", а затем нажмите "Зафиксировать изменения в Git". Напишите короткий и понятный комментарий к коммиту: что вы добавили или обновили. Не оставляйте это поле пустым. Хорошие комментарии помогают и вам, и читателям позже быстро понять историю проекта.
В обычном сценарии этого шага достаточно: MetaEditor фиксирует состояние проекта и отправляет изменения в облако. Если проект уже существует и вы продолжаете работу над ним, сначала выполните "Получить обновления из Git", а уже потом добавляйте свои правки. Так вы избежите лишних конфликтов между локальной и облачной версиями.

9.1 Перед началом работы с проектом получайте изменения из хранилища

9.2 По завершении работы отправляйте локальные изменения в хранилище

9.3 Обязательно комментируйте каждый коммит
Публичный режим
Когда проект готов и синхронизирован, откройте его веб-версию в Algo Forge и сделайте его публичным. До этого момента он может оставаться частным. Публикуйте проект тогда, когда убедитесь, что в нём есть весь код, README и рабочая структура.

10. Если проект должен быть публичным, снимите с него галочку приватного проекта
Мультистатейные проекты
Если у вас серия статей по одной библиотеке, индикатору или советнику, не загружайте только последнюю версию без контекста. Добавляйте версии последовательно от первой статьи до последней и, при необходимости, оформляйте соответствующие релизы в веб-интерфейсе Algo Forge. Так читатель сразу увидит, какая версия проекта относится к какой статье.

11. По каждой статье серии создаём очередную релизную версию репозитория для сохранения истории развития проекта
Контрольный список
Перед завершением убедитесь, что:
- проект создан в Shared Projects;
- имя проекта указано правильно;
- все файлы из статьи добавлены;
- структура проекта читается без путаницы;
- README.md лежит в корне;
- проект компилируется;
- изменения зафиксированы и отправлены в Algo Forge;
- при необходимости проект открыт для публичного доступа.
Заключение
Не оставляйте код статьи только приложением к публикации. Оформите его как проект. Так вы сделаете материал полезнее, упростите поддержку, сохраните историю изменений и дадите читателям удобную точку входа в вашу работу. Статья объясняет идею. Проект в MQL5 Algo Forge показывает её в действии.
Для детального ознакомления с работой MQL5 Algo Forge рекомендуем изучить следующие источники:
- Как начать работу с MQL5 Algo Forge — базовый гид для быстрого старта;
- Код, слёзы и Algo Forge — рассказ с примерами о переходе на Algo Forge;
- Цикл статей "Переходим на MQL5 Algo Forge":
Предупреждение: все права на данные материалы принадлежат MetaQuotes Ltd. Полная или частичная перепечатка запрещена.
Переосмысливаем классические стратегии (Часть 16): Стратегия пробоя двойных полос Боллинджера
Неопределённость как модель (Часть 6): Множественная регрессия и диагностика
Разработка инструментария для анализа Price Action (Часть 48): Индекс гармонии нескольких таймфреймов с панелью взвешенного смещения
Разработка инструментария для анализа Price Action (Часть 47): Отслеживание торговых сессий Forex и пробоев в MetaTrader 5
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Именование
Используйте имя, которое мы вам передадим. Если имени пока нет, придерживайтесь понятной схемы:
Например: Article-21732-Code-Tears-And-Algo-Forge. Такое имя сразу связывает проект со статьёй и упрощает навигацию.
Просьба не делать это обязательным стандартом для людей, у которых есть собственные соображения об организации репозиториев.
У меня задумка такая. Я создал organization, в которой будут собраны репозитории, относящиеся к одной серии статей. Это как "папка", которая оборачивает связанные между собой репозитории, добавляет контекст и позволяет дать репозиториям лаконичные имена. Открываешь организацию, и в ней аккуратно собраны все репозитории, относящиеся к серии статей (и только они).
Например: Article-21732-Code-Tears-And-Algo-Forge. Такое имя сразу связывает проект со статьёй и упрощает навигацию.
У меня дела обстоят вот так:
Поэтому мне совершенно не годится такая схема.
Сама идея хорошая и отлично подойдет большинству авторов (я думаю). Но я прошу разрешить не соблюдать это, если человек может аргументированно объяснить, почему ему это не подходит.
Типизация
То можно разделить их на несколько репозиториев (зачастую).
В качестве идеи для тех, у кого достаточно энтузиазма и дисциплины, чтобы заморочиться.
Спасибо.