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

icon

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

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

Новая статья
последние | лучшие
preview
Разработка инструментария для анализа Price Action (Часть 57): Создание модуля классификации состояния рынка на MQL5

Разработка инструментария для анализа Price Action (Часть 57): Создание модуля классификации состояния рынка на MQL5

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

Встраивание торговой дисциплины в код (Часть 1): Как создать системную дисциплину в реальной торговле с помощью MQL5

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

Создание самооптимизирующихся советников на MQL5 (Часть 14): Преобразования данных как параметры настройки регулятора с обратной связью

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

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

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

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

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

От начального до среднего уровня: Struct (VII)

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

Разработка инструментария для анализа Price Action (Часть 56): Анализ принятия и отвержения на границах сессии с помощью CP

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

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

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

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

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

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

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

Искусство работы с логами (Часть 9): Применяем паттерн Builder-класса и настраиваем конфигурации по умолчанию

В этой статье демонстрируется, как кардинально упростить использование библиотеки Logify с помощью паттерна "Builder" и автоматических конфигураций по умолчанию. Рассматриваются структура специализированных Builder-классов, приемы работы с ними при помощи интеллектуальной подсказки (автодополнения), а также способы обеспечения функционального логирования даже без ручной настройки. Кроме того, статья описывает доработки для сборки MetaTrader 5 5100.
preview
Разработка инструментария для анализа Price Action (Часть 60): Объективное построение трендовых линий по свингам для структурного анализа

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

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

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

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

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

В этом занятии мы создадим продвинутый мультисигнальный советник с использованием стандартной библиотеки MQL5. Такой подход позволяет нам органично сочетать встроенные сигналы с нашей пользовательской логикой, демонстрируя, как построить мощный и гибкий торговый алгоритм. Читайте далее.
preview
Разработка индикатора Market Memory Zones: Зоны вероятного возврата цены

Разработка индикатора Market Memory Zones: Зоны вероятного возврата цены

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

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

Узнайте, как организованно отображать логи прямо на графике MetaTrader, используя рамки, заголовки и автоматическую прокрутку. В этой статье мы показываем, как создать визуальную систему логирования с помощью MQL5, идеально подходящую для отслеживания действий вашего робота в реальном времени.
preview
Изучение Стандартной библиотеки MQL5 (часть 1): Знакомство с CTrade, CiMA и CiATR

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Свинговые экстремумы и откаты в MQL5 (Часть 1): Разработка мультитаймфреймового индикатора

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

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

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

Свинговые экстремумы и откаты в MQL5 (Часть 2): Автоматизация стратегии с помощью советника

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

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

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

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

В этой статье мы рассмотрим, как два немного отличающихся подхода могут существенно повлиять на всю методологию реализации как с точки зрения производительности, так и с точки зрения проектирования дискового ввода-вывода с целью предотвращения проблем совместимости между различными приложениями.
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
От начального до среднего уровня: Очереди, списки и деревья (I)

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

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

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

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

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

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

Разработка индикатора рыночной энтропии: торговая система, основанная на теории информации

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