Статьи с примерами программирования на языке MQL5

icon

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

Эти статьи будут полезны как новичкам в автоматическом трейдинге, так и подготовленным трейдерам с опытом программирования и торговли. Здесь вы найдете не только примеры, но и новые идеи.

Новая статья
последние | лучшие
preview
Разработка инструментария для анализа Price Action (Часть 60): Объективное построение трендовых линий по свингам для структурного анализа

Разработка инструментария для анализа Price Action (Часть 60): Объективное построение трендовых линий по свингам для структурного анализа

Мы предлагаем подход к трендовым линиям на основе четких правил, который не опирается на опорные точки индикаторов и использует упорядоченные свинги, полученные непосредственно из ценовых данных. В статье разбираются выявление свингов, проверка их размера по ATR или фиксированным порогам, а также подтверждение восходящих и нисходящих структур, после чего эти правила реализуются на языке MQL5 без перерисовки и с избирательным выводом. Вы получаете четкий и воспроизводимый способ отслеживать структурные уровни поддержки и сопротивления, который надежно работает в разных рыночных условиях.
preview
Искусство ведения логов (Часть 7): Как отображать логи на графике

Искусство ведения логов (Часть 7): Как отображать логи на графике

Узнайте, как организованно отображать логи прямо на графике MetaTrader, используя рамки, заголовки и автоматическую прокрутку. В этой статье мы показываем, как создать визуальную систему логирования с помощью MQL5, идеально подходящую для отслеживания действий вашего робота в реальном времени.
preview
Разработка динамического мультивалютного советника (Часть 6): Адаптивная чувствительность к спреду при высокочастотном переключении символов

Разработка динамического мультивалютного советника (Часть 6): Адаптивная чувствительность к спреду при высокочастотном переключении символов

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

От начального до среднего уровня: Песочница и MetaTrader

Вы знаете, что такое песочница? Вы знаете, как с ней работать? Если ответ на любой из этих вопросов «нет», прочитайте эту статью, чтобы понять базовый принцип работы песочницы. И разберитесь с тем, почему MetaTrader 5 использует песочницу для обеспечения целостности некоторых своих данных. Материалы, представленные здесь, преследуют исключительно дидактические цели. Ни в коем случае не рассматривайте приложение как окончательное, целью которого не является изучение представленных концепций.
preview
Теория графов: Алгоритм Форда—Фалкерсона для оценки ликвидности и пропускной способности рынка

Теория графов: Алгоритм Форда—Фалкерсона для оценки ликвидности и пропускной способности рынка

В статье представлен советник на MQL5, который адаптирует метод максимального потока Форда-Фалкерсона в фильтр ликвидности и пропускной способности. Рыночные структуры — максимумы/минимумы свингов, ценовой дисбаланс (FVG), ордер-блоки и пулы ликвидности — образуют ориентированный граф с пропускной способностью ребер, определяемой объемом, ценовой реакцией, расстоянием и качеством структуры. Максимальный поток позволяет оценить возможности ICT-сделок, отфильтровать слабые пути и использовать динамическое управление размером позиции для последовательного двухэтапного процесса принятия решений.
preview
Разработка инструментария для анализа Price Action (Часть 67): Автоматизация мониторинга уровней поддержки и сопротивления в MQL5

Разработка инструментария для анализа Price Action (Часть 67): Автоматизация мониторинга уровней поддержки и сопротивления в MQL5

В этой статье реализован полноценный советник на языке MQL5, который в реальном времени отслеживает вручную построенные уровни поддержки и сопротивления. Он синхронизирует горизонтальные линии, обнаруживает приближения, касания, пробои, развороты и ретесты, а также выполняет проверку свечных паттернов при необходимости. Алерты и маркеры на графике обеспечивают четкую и воспроизводимую обратную связь, позволяя сохранить ручной анализ и при этом автоматизировать отслеживание ключевых ценовых уровней.
preview
Адаптивный индикатор Malaysian Engulfing (Часть 1): Обнаружение паттернов и валидация ретеста

Адаптивный индикатор Malaysian Engulfing (Часть 1): Обнаружение паттернов и валидация ретеста

Реализуем концепцию Malaysian Engulfing в MQL5 с помощью двух согласованных индикаторов. Один применяет строгие правила поглощения по телам свечей для точного обнаружения паттерна; другой использует машину состояний, чтобы отслеживать дальнейшее развитие — откаты и ретесты с учетом заданного окна наблюдения — прямо на графике. В результате получается повторяемый рабочий процесс на основе правил, который заменяет субъективные визуальные оценки программируемой логикой.
preview
От начального до среднего уровня: События в объектах (IV)

От начального до среднего уровня: События в объектах (IV)

В этой статье мы завершим то, что было начато в предыдущей. То есть, полностью интерактивный способ изменения размеров объектов непосредственно на графике. Хотя многие представляют, что для создания подобного потребуется гораздо более глубокое знание MQL5, вы заметите, что с помощью простых концепций и базовых знаний мы можем реализовать способ работы с объектами непосредственно на графике. Это дает очень интересный и увлекательный результат.
preview
Искусство работы с логами (Часть 8): Самопереводящиеся записи об ошибках

Искусство работы с логами (Часть 8): Самопереводящиеся записи об ошибках

В этой восьмой части серии «Искусство работы с логами» мы исследуем реализацию многоязычных сообщений об ошибках в Logify — мощной библиотеке логирования для MQL5. Вы узнаете, как структурировать ошибки с контекстом, переводить сообщения на несколько языков и динамически форматировать логи по уровням логирования. И всё это — с чистым, расширяемым и готовым к продакшену дизайном.
preview
От начального до среднего уровня: Навигация по песочнице

От начального до среднего уровня: Навигация по песочнице

В данной статье мы рассмотрим два способа наблюдения за содержимым песочницы и даже взаимодействия с ним, используя MetaTrader 5 в качестве базовой платформы. Понимание содержания этой статьи имеет основополагающее значение для понимания того, что будет рассмотрено в последующих статьях.
preview
От начального до среднего уровня: Произвольный доступ (I)

От начального до среднего уровня: Произвольный доступ (I)

В сегодняшней статье мы впервые столкнемся с произвольным доступом к содержимому файла. Это относится как к записи, так и к чтению информации и данных, хранящихся в файле. Однако, поскольку эта тема достаточно обширна, чтобы осветить её в одной статье, здесь мы ограничимся лишь вводным описанием вопроса произвольного доступа.
preview
От начального до среднего уровня: События в объектах (III)

От начального до среднего уровня: События в объектах (III)

В данной статье мы подготовим базу для того, что будет рассмотрено в следующей публикации. Мы также рассмотрим, как разрешить редактирование и перемещение объекта типа OBJ_LABEL в полностью интерактивном режиме. Иными словами, мы можем изменить как текст, так и положение объекта OBJ_LABEL, не открывая окно свойств объекта.
preview
Преодоление проблем доступности в торговых инструментах на MQL5 (Часть II): Включению голосовых функций в советнике с помощью Python-движка синтеза речи

Преодоление проблем доступности в торговых инструментах на MQL5 (Часть II): Включению голосовых функций в советнике с помощью Python-движка синтеза речи

Давайте обсудим, как можно сделать наших советников разговорчивыми, используя технологию преобразования текста в речь, при совместном применении Python и MQL5. После прочтения этой статьи вы ознакомитесь с рабочим примером советника, который озвучивает динамическую рыночную информацию. Вы освоите применение TTS (преобразование текста в речь), функции WebRequest, и узнаете, как библиотеки Python интегрируются с языком MQL5 для создания по‑настоящему голосового торгового инструмента.
preview
Двумерные копулы в MQL5: (Часть 3) Реализация и настройка смешанных моделей копул

Двумерные копулы в MQL5: (Часть 3) Реализация и настройка смешанных моделей копул

В статье наш набор инструментов для работы с копулами расширяется смешанными копулами, реализованными непосредственно в MQL5. Мы строим смеси Клейтона–Франка–Гумбеля и Клейтона–Стьюдента-t–Гумбеля, оцениваем их с помощью EM и вводим управление разреженностью через SCAD с кросс-валидацией. Предоставленные скрипты настраивают гиперпараметры, сравнивают смеси с использованием информационных критериев и сохраняют обученные модели. Практики могут применять эти компоненты для учета асимметричной хвостовой зависимости и встраивать выбранную модель в индикаторы или советники.
preview
Изучение Стандартной библиотеки MQL5 (часть 1): Знакомство с CTrade, CiMA и CiATR

Изучение Стандартной библиотеки MQL5 (часть 1): Знакомство с CTrade, CiMA и CiATR

Стандартная библиотека MQL5 — чрезвычайно полезный инструмент при разработке торговых алгоритмов для MetaTrader 5. В этой серии мы будем учиться создавать с помощью нее эффективные торговые инструменты для MetaTrader 5. Под инструментами подразумеваются собственные советники, индикаторы и другие вспомогательные средства. Сегодня мы разработаем трендового советника с использованием классов CTrade, CiMA и CiATR. Тема будет полезна всем — и начинающим, так и опытным разработчикам. Приятного чтения.
preview
От начального до среднего уровня: События в объектах (II)

От начального до среднего уровня: События в объектах (II)

В данной статье мы рассмотрим принцип работы трех последних типов событий, которые может генерировать объект. Разбираться в этом будет очень увлекательно, так как в итоге мы сделаем то, что многим может показаться безумием, но это вполне возможно и дает весьма удивительный результат.
preview
Разработка динамического мультивалютного советника (Часть 8): Ротация капитала в зависимости от времени суток

Разработка динамического мультивалютного советника (Часть 8): Ротация капитала в зависимости от времени суток

В этой статье представлен механизм ротации капитала по торговым сессиям на языке MQL5, который распределяет риск по торговым сессиям вместо равномерной экспозиции в течение всего дня. Мы подробно разберем бюджеты риска по сессиям в рамках дневного лимита, динамический расчет лота на основе оставшегося риска сессии и автоматические ежедневные сбросы. При исполнении сделок используется специфичная для каждой сессии логика пробоя и торговли против ложного движения с подтверждением волатильности по ATR. В результате читатель получает практический шаблон, который позволяет направлять капитал туда, где условия конкретной сессии статистически наиболее сильны, сохраняя при этом контроль над экспозицией в течение всего дня.
preview
Разработка инструментария для анализа Price Action (Часть 65): Создание системы для мониторинга и анализа построенных вручную уровней Фибоначчи

Разработка инструментария для анализа Price Action (Часть 65): Создание системы для мониторинга и анализа построенных вручную уровней Фибоначчи

Инструмент коррекции Фибоначчи – важный элемент анализа Price Action, указывающий ключевые уровни возможной рыночной реакции. Однако его эффективность часто ограничена необходимостью постоянного ручного наблюдения, из-за чего часть сетапов может быть пропущена. В этой части серии представлен инструмент, который с помощью MQL5 синхронизирует и активно отслеживает вручную построенные уровни Фибоначчи, сочетая дискреционный подход с автоматизированным контролем.
preview
Преодоление проблем доступности в торговых инструментах на MQL5 (Часть IV): Удаленная голосовая торговля

Преодоление проблем доступности в торговых инструментах на MQL5 (Часть IV): Удаленная голосовая торговля

Узнайте о практическом способе выполнения сделок в MetaTrader 5 из голосовых сообщений Telegram с помощью промежуточного ПО на Python и советника MQL5, выступающего в качестве HTTP-клиента. В статье рассматриваются архитектура, опрос WebRequest, очереди в памяти, парсинг JSON с удалением нулевых символов-терминаторов и ограниченная грамматика команд с размером лота по умолчанию 0,001. Вы настроите среду и проверите задержку передачи данных, подходящую для мобильных интернет-соединений.
preview
От начального до среднего уровня: FileSave и FileLoad

От начального до среднего уровня: FileSave и FileLoad

В сегодняшней статье рассмотрим некоторые способы работы с библиотечными функциями FileSave и FileLoad. Хотя многие считают их малоперспективными из-за некоторых ограничений или трудностей, которые они вызывают в определенных сценариях, правильное понимание того, как работают эти две функции, может сэкономить нам много работы в определенные моменты. Кроме того, они являются отличным способом работы с лог-файлами.
preview
Изучение стандартной библиотеки MQL5 (Часть 7): Создание интерактивных меток позиций с помощью класса CCanvas

Изучение стандартной библиотеки MQL5 (Часть 7): Создание интерактивных меток позиций с помощью класса CCanvas

В этой статье мы рассмотрим, как создать инструмент визуализации информации о позициях, используя класс CCanvas из стандартной библиотеки MQL5. Этот проект укрепит ваши навыки работы с библиотечными модулями и дает трейдерам практический инструмент для визуализации открытых позиций и взаимодействия с ними непосредственно на графике в реальном времени. Присоединяйтесь к обсуждению и узнайте больше.
preview
Разработка инструментария для анализа Price Action (Часть 68): Панель RSI с привязкой к цене на языке MQL5

Разработка инструментария для анализа Price Action (Часть 68): Панель RSI с привязкой к цене на языке MQL5

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

Преодоление проблем доступности в торговых инструментах на MQL5 (Часть III): Двунаправленное голосовое взаимодействие между трейдером и советником

Создадим локальный двунаправленный голосовой интерфейс для MetaTrader 5 с помощью WebRequest в MQL5 и двух сервисов Python. В статье реализовано автономное распознавание речи с помощью Vosk, обнаружение фразы активации, HTTP‑endpoint для получения команд и сервер преобразования текста в речь на локальном хосте. Вы подключите советника, который будет получать команды, открывать сделки и возвращать голосовые подтверждения для возможности работать без помощи рук.
preview
Модульная архитектура индикаторов в MQL5 (Часть 1): Хватит копировать и вставлять — начните писать масштабируемый, переиспользуемый код

Модульная архитектура индикаторов в MQL5 (Часть 1): Хватит копировать и вставлять — начните писать масштабируемый, переиспользуемый код

В статье разработан объектно-ориентированный каркас для индикаторов MQL5 путем преобразования примитивного примера в пригодные для постоянного использования модули. В ней формализуется частичный пересчет буфера в OnCalculate, логика переносится в классы, вынесенные в заголовочные файлы (CAppliedPrice, CSma), а также вводятся CSubIndiBase, CIndicatorBase и реестр для централизации требований. В результате получаются переносимые компоненты, изолированные входные параметры и аккуратно организованные буферы при минимуме шаблонного кода, что ускоряет сборку новых индикаторов и упрощает их обслуживание.
preview
Изучение Стандартной библиотеки MQL5 (Часть 6): Оптимизация сгенерированного советника

Изучение Стандартной библиотеки MQL5 (Часть 6): Оптимизация сгенерированного советника

В данном обсуждении мы продолжаем работу над ранее разработанным мультисигнальным советником с целью изучения и применения доступных методов оптимизации. Цель состоит в том, чтобы определить, можно ли существенно улучшить торговые показатели советника путем систематической оптимизации на основе исторических данных.
preview
От начального до среднего уровня: Очереди, списки и деревья (V)

От начального до среднего уровня: Очереди, списки и деревья (V)

В этой статье мы реализовали первые компоненты древовидной структуры. Поскольку я понимаю, что эта структура может быть очень сложной на начальном этапе обучения, мы будем внедрять её спокойно и шаг за шагом. Таким образом, каждый сможет понять, как работает дерево и когда лучше всего его использовать.
preview
От начального до среднего уровня: Произвольный доступ (II)

От начального до среднего уровня: Произвольный доступ (II)

В этой статье мы рассмотрим, как два немного отличающихся подхода могут существенно повлиять на всю методологию реализации как с точки зрения производительности, так и с точки зрения проектирования дискового ввода-вывода с целью предотвращения проблем совместимости между различными приложениями.
preview
Автоматизация классических рыночных методов в MQL5 (Часть 2): Закон причины и следствия Вайкоффа — ценовые цели по графику "крестики-нолики"

Автоматизация классических рыночных методов в MQL5 (Часть 2): Закон причины и следствия Вайкоффа — ценовые цели по графику "крестики-нолики"

В статье создаётся автономный советник на MQL5, реализующий полный цикл Вайкоффа: он распознаёт накопление и распределение с помощью конечного автомата, входит в рынок в точке LPS/LPSY — последней точке поддержки или последней точке предложения — и рассчитывает цели выхода по графику «крестики-нолики» в соответствии с законом причины и следствия Вайкоффа. Подробно рассматриваются размер клетки на основе ATR диапазона, разворот на одну клетку, проверка корректности целевой цены и резервная цель 2R. Читатель получает рабочий код, который можно запускать без внешних зависимостей.
preview
От начального до среднего уровня: Очереди, списки и деревья (II)

От начального до среднего уровня: Очереди, списки и деревья (II)

Это статья, которую вам, уважаемый читатель, следует внимательно изучить. Это связано с типом материала, который будет в нём изложен. Хотя мы постарались изложить материал максимально просто и познавательно, представленная здесь информация, несомненно, может показаться довольно сложной для тех, кто только начинает изучать программирование. Тем не менее, это не повод для уныния или игнорирования того, что здесь объясняется, так как эта статья установит связь между двумя совершенно разными, хотя и тесно связанными темами.
preview
Изучение Стандартной библиотеки MQL5 (Часть 5): Мультисигнальный советник

Изучение Стандартной библиотеки MQL5 (Часть 5): Мультисигнальный советник

В этом занятии мы создадим продвинутый мультисигнальный советник с использованием стандартной библиотеки MQL5. Такой подход позволяет нам органично сочетать встроенные сигналы с нашей пользовательской логикой, демонстрируя, как построить мощный и гибкий торговый алгоритм. Читайте далее.
preview
Разработка инструментария для анализа Price Action (Часть 64): Синхронизация вручную построенных трендовых линий с автоматическим мониторингом

Разработка инструментария для анализа Price Action (Часть 64): Синхронизация вручную построенных трендовых линий с автоматическим мониторингом

Мониторинг построенных вручную трендовых линий требует постоянного наблюдения за графиком, поэтому легко пропустить важные взаимодействия цены с ними. В этой статье разрабатывается советник для мониторинга трендовых линий, который синхронизирует построенные вручную трендовые линии с логикой автоматического мониторинга на MQL5 и генерирует алерты, когда цена приближается к отслеживаемой линии, касается ее или пробивает ее.
preview
Изучение Стандартной библиотеки MQL5 (Часть 3): Советник на основе канала стандартного отклонения

Изучение Стандартной библиотеки MQL5 (Часть 3): Советник на основе канала стандартного отклонения

В этом обсуждении мы будем разрабатывать советник, используя классы CTrade и CChartObjectStdDevChannel, и применим несколько фильтров для повышения потенциальной прибыльности. На этом этапе мы применим на практике то, что обсуждали ранее. Кроме того, я представлю еще один простой подход, который поможет вам лучше понять стандартную библиотеку MQL5 и лежащую в ее основе кодовую базу. Присоединяйтесь, чтобы посмотреть, как эти идеи работают на практике.
preview
Изучение Стандартной библиотеки MQL5 (Часть 2): Интеграция и связывание компонентов

Изучение Стандартной библиотеки MQL5 (Часть 2): Интеграция и связывание компонентов

Сегодня мы делаем важный шаг к тому, чтобы помочь каждому разработчику понять, как читать структуры классов и быстро создавать советники с помощью стандартной библиотеки MQL5. Библиотека богата и расширяема, но при этом может показаться, что вам вручили сложный набор инструментов без руководства. Здесь мы делимся и обсуждаем альтернативный алгоритм интеграции — краткий, повторяемый рабочий сценарий, демонстрирующий, как надежно связывать классы в реальных проектах.
preview
Встраивание торговой дисциплины в код (Часть 6): Построение единого фреймворка дисциплины на MQL5

Встраивание торговой дисциплины в код (Часть 6): Построение единого фреймворка дисциплины на MQL5

В статье представлен унифицированный фреймворк обеспечения дисциплины на MQL5, которая объединяет модули белого списка символов, торговых часов и новостных фильтров, а также ежедневных лимитов сделок в рамках файла CDisciplineEngine.mqh. Объясняется централизованная проверка сделок и синхронизация состояний, выполняемые совместно дашбордом графиков и советником-принудителем. Читатели узнают, как авторизовывать ордера через единый шлюз, отслеживать разрешения в реальном времени и автоматически обеспечивать соблюдение правил на уровне всего терминала.
preview
От начального до среднего уровня: Очереди, списки и деревья (I)

От начального до среднего уровня: Очереди, списки и деревья (I)

В данной статье мы начнем изучать небольшую серию концепций, имеющих огромное значение для тех, кто действительно хочет научиться программировать правильно. Поскольку вначале это может показаться очень сложным, несмотря на то что в основе лежат простые элементы, мы будем разбирать материал постепенно. Итак, давайте начнём разбираться, что такое очереди данных.
preview
Изучение стандартной библиотеки MQL5 (Часть 9): Использование ALGLIB для фильтрации избыточного числа сигналов пересечения скользящих средних

Изучение стандартной библиотеки MQL5 (Часть 9): Использование ALGLIB для фильтрации избыточного числа сигналов пересечения скользящих средних

Во время боковых движений цены трейдеры сталкиваются с избыточными сигналами от множественных пересечений скользящих средних. Сегодня мы обсудим, как ALGLIB предварительно обрабатывает исходные данные о ценах для формирования отфильтрованных сигнальных серий пересечений, которые также могут генерировать оповещения при их возникновении. Давайте разберёмся, как можно использовать математическую библиотеку в программах на MQL5.
preview
Изучение стандартной библиотеки MQL5 (Часть 8): Ведение журнала сделок гибридной системы с помощью CFileTxt

Изучение стандартной библиотеки MQL5 (Часть 8): Ведение журнала сделок гибридной системы с помощью CFileTxt

В этой статье мы рассмотрим классы модуля File Operations стандартной библиотеки MQL5 для создания надежного модуля отчетности, который автоматически генерирует CSV-файлы, готовые для использования в Excel. В процессе работы мы четко разграничим сделки, выполненные вручную, и ордера, выполненные алгоритмом, закладывая основу для надежной и поддающейся аудиту отчетности по сделкам.
preview
Изучение Стандартной библиотеки MQL5 (Часть 4): Создание библиотеки пользовательских сигналов

Изучение Стандартной библиотеки MQL5 (Часть 4): Создание библиотеки пользовательских сигналов

Сегодня мы используем стандартную библиотеку MQL5 для создания пользовательских классов сигналов и позволяем мастеру MQL5 собрать для нас профессиональный советник. Такой подход упрощает разработку, позволяя даже начинающим программистам создавать надежные советники без глубоких знаний в области программирования, сосредоточившись на настройке параметров и оптимизации стратегии. Давайте шаг за шагом разберем этот процесс.
preview
От начального до среднего уровня: Классы (I)

От начального до среднего уровня: Классы (I)

В этой статье мы рассказываем, что такое класс и почему возникла эта концепция. Хотя тема интересна, здесь мы сосредоточимся на принципах, лежащих в основе программирования на MQL5. Эта статья — лишь введение.
preview
От начального до среднего уровня: Очереди, списки и деревья (IV)

От начального до среднего уровня: Очереди, списки и деревья (IV)

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