English
preview
Опубликуйте код статьи в MQL5 Algo Forge за 10 минут: пошаговый гайд

Опубликуйте код статьи в MQL5 Algo Forge за 10 минут: пошаговый гайд

MetaTrader 5Примеры |
97 4
MetaQuotes
MetaQuotes

Содержание


Введение

Ваша статья уже опубликована на 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 рекомендуем изучить следующие источники:

Последние комментарии | Перейти к обсуждению на форуме трейдеров (4)
Vladislav Boyko
Vladislav Boyko | 26 мая 2026 в 12:49

Именование

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

[Тип материала]-[ID статьи]-[Краткая тема]

Например: Article-21732-Code-Tears-And-Algo-Forge. Такое имя сразу связывает проект со статьёй и упрощает навигацию.

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

У меня задумка такая. Я создал organization, в которой будут собраны репозитории, относящиеся к одной серии статей. Это как "папка", которая оборачивает связанные между собой репозитории, добавляет контекст и позволяет дать репозиториям лаконичные имена. Открываешь организацию, и в ней аккуратно собраны все репозитории, относящиеся к серии статей (и только они).

Vladislav Boyko
Vladislav Boyko | 26 мая 2026 в 12:58
[Тип материала]-[ID статьи]-[Краткая тема]

Например: Article-21732-Code-Tears-And-Algo-Forge. Такое имя сразу связывает проект со статьёй и упрощает навигацию.

У меня дела обстоят вот так:

  • Один репозиторий может последовательно развиваться в нескольких статьях.
  • В одной статье может учавствовать несколько репозиториев.

Поэтому мне совершенно не годится такая схема.

Сама идея хорошая и отлично подойдет большинству авторов (я думаю). Но я прошу разрешить не соблюдать это, если человек может аргументированно объяснить, почему ему это не подходит.

Vladislav Boyko
Vladislav Boyko | 26 мая 2026 в 13:15

Типизация

  • Empty — если в статье много файлов, которые необходимо компилировать раздельно...

То можно разделить их на несколько репозиториев (зачастую).

В качестве идеи для тех, у кого достаточно энтузиазма и дисциплины, чтобы заморочиться.

Max Brown
Max Brown | 27 мая 2026 в 12:51
Это определенно поможет мне оставаться организованной в дальнейшем, и я установлю его в эти выходные.

Спасибо.
Переосмысливаем классические стратегии (Часть 16): Стратегия пробоя двойных полос Боллинджера Переосмысливаем классические стратегии (Часть 16): Стратегия пробоя двойных полос Боллинджера
Эта статья знакомит читателя с переосмысленной версией классической стратегии пробоев полос Боллинджера. В ней определены ключевые недостатки первоначального подхода, такие как его хорошо известная подверженность ложным пробоям. Цель статьи - представить возможное решение: торговую стратегию двойных полос Боллинджера (Double Bollinger Band). Этот относительно малоизвестный подход устраняет слабые места классической версии и предлагает более динамичный взгляд на финансовые рынки. Он помогает преодолеть старые ограничения, определенные первоначальными правилами, предлагая трейдерам более устойчивую и адаптивную систему.
Неопределённость как модель (Часть 6): Множественная регрессия и диагностика Неопределённость как модель (Часть 6): Множественная регрессия и диагностика
Практическое введение в множественную регрессию с детерминированными факторами для финансовых рядов. Рассматриваются постановка и матричная форма МНК, диагностика остатков, EDA/CDA, R-квадрат и скорректированный R-квадрат, F-тест, RESET, тест Бройша–Пагана, VIF и расстояние Кука. Показаны приёмы работы с регрессорами: фиктивные переменные, нелинейные трансформации и взаимодействия. Примеры с трендом, днями недели и новостями помогают отбирать факторы и строить пригодные для прогноза модели.
Разработка инструментария для анализа Price Action (Часть 48): Индекс гармонии нескольких таймфреймов с панелью взвешенного смещения Разработка инструментария для анализа Price Action (Часть 48): Индекс гармонии нескольких таймфреймов с панелью взвешенного смещения
В этой статье представлен инструмент "Multi-Timeframe Harmony Index" – продвинутый советник для MetaTrader 5, который рассчитывает взвешенное смещение рынка по нескольким таймфреймам, сглаживает значения с помощью EMA и выводит результат на аккуратной панели на графике. Он поддерживает настраиваемые алерты и автоматически наносит сигналы покупки и продажи на график, когда значение смещения пересекает значимые пороги. Подходит трейдерам, которые используют анализ нескольких таймфреймов, чтобы соотносить точки входа с общей структурой рынка.
Разработка инструментария для анализа Price Action (Часть 47): Отслеживание торговых сессий Forex и пробоев в MetaTrader 5 Разработка инструментария для анализа Price Action (Часть 47): Отслеживание торговых сессий Forex и пробоев в MetaTrader 5
Глобальные рыночные сессии задают ритм торгового дня, и понимание того, как они пересекаются, важно для выбора моментов входа и выхода. В этой статье мы создадим интерактивного советника для визуализации торговых сессий, который наглядно показывает часы работы мировых рынков прямо на графике. Советник автоматически строит цветные прямоугольники для сессий Азии, Токио, Лондона и Нью-Йорка, обновляя их в реальном времени по мере открытия и закрытия каждой сессии. В нем есть кнопки-переключатели на графике, динамическая информационная панель и бегущая строка с сообщениями о текущем состоянии и пробоях. Протестированный на разных брокерах, этот советник сочетает точность и удобную визуальную подачу, помогая видеть переходы волатильности, выявлять пробои между сессиями и сохранять визуальную связь с динамикой мирового рынка.