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

icon

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

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

Новая статья
последние | лучшие
preview
От начального до среднего уровня: Перегрузка операторов (I)

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

В этой статье мы начнём изучать, как реализуется так называемая перегрузка операторов. Сначала мы рассмотрим, что лежит в основе этой реализации. Кроме того, мы убедимся, что всё не всегда так сложно, как кажется.
preview
От начального до среднего уровня: Очереди, списки и деревья (VIII)

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

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

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

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

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

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

Интеграция MQL5 с пакетами обработки данных (Часть 9): Адаптивная оценка волатильности на основе энтропии

В этой статье представлен сквозной пайплайн: сбор данных MetaTrader 5, создание признаков на основе энтропии, волатильности и тренда, обучение классификатора PyTorch и предоставление прогнозов через API Flask. Советник MQL5 на каждом тике отправляет скользящее окно цен, получает вероятность и режим волатильности, а затем адаптивно рассчитывает размер позиции и расстояние до стоп-лосса. В результате получается ясная схема интеграции инференса машинного обучения с MetaTrader 5.
preview
От начального до среднего уровня: Классы (III)

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

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

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

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

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

Эта статья призвана быть как можно более дидактичной, поскольку тема, которую мы будем рассматривать, сама по себе нередко вызывает немалую путаницу. Поэтому, уважаемый читатель, постарайтесь применить на практике то, что здесь объясняется. Если у вас возникнут какие-либо вопросы, обязательно оставляйте комментарии, ведь понять деструкторы — задача не из самых простых.
preview
Изучение стандартной библиотеки MQL5 (Часть 14): Создание советника для динамического хеджирования с использованием ALGLIB (ap.mqh)

Изучение стандартной библиотеки MQL5 (Часть 14): Создание советника для динамического хеджирования с использованием ALGLIB (ap.mqh)

В этой статье представлен ap.mqh, порт ALGLIB для MQL5, и продемонстрировано его использование в многоактивных сценариях работы, требующих надежной линейной алгебры. Рассматривается почему встроенных индикаторов недостаточно, а затем реализуются полиномиальная регрессия, индикатор скользящей корреляционной матрицы и адаптивный оценщик коэффициента хеджа с использованием гребневой ​​регрессии с разложением Холецкого. Практический код показывает, как вычислять z-показатели спреда и согласованно исполнять парные сделки полностью в MetaTrader 5.
preview
Автоматизация индикатора Market Memory Zones: Зоны, куда цена с высокой вероятностью вернется

Автоматизация индикатора Market Memory Zones: Зоны, куда цена с высокой вероятностью вернется

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

Изучение стандартной библиотеки MQL5 (Часть 13): Применение библиотеки математических решателей в торговле

Мы представляем полный рабочий процесс для адаптивной фильтрации в MQL5 с использованием решателя CNlEq, подобного алгоритму Левенберга — Марквардта. Советник подбирает параметры модели VAMAC — две экспоненциальные скользящие средние (EWMA) с масштабированием на основе ATR — путем передачи остатков и Якобиана через цикл механизма обратного обмена с решателем CNlEq, с возможностью использования численных или аналитических производных. Код, инструкции по настройке и тесты по паре GBPUSD на таймфрейме H1 показывают, как заменить статические пороги динамической переоценкой на закрытии каждого бара.
preview
Интеграция MQL5 с пакетами обработки данных (Часть 7): Построение многоагентных сред для межсимвольного взаимодействия

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

В статье представлена полная интеграция Python и MQL5 для многоагентной торговли: получение данных из MT5, расчет индикаторов, решения отдельных агентов и взвешенный консенсус, формирующий единое торговое решение. Сигналы сохраняются в JSON-файле, отдаются через Flask и используются советником MQL5 для исполнения сделок с расчетом объема позиции и уровней SL/TP на основе ATR. Маршруты Flask обеспечивают безопасное управление жизненным циклом и мониторинг состояния.
preview
Изучение стандартной библиотеки MQL5 (Часть 12): Мультитаймфреймный дашборд на основе составного показателя

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

В статье реализован CMultiTimeframeMatrix, переиспользуемый дашборд, который сопоставляет символы с таймфреймами и отображает числовой показатель с цветовой кодировкой. Показатель объединяет тренд и импульс с вычетом волатильности, обновляется по таймеру и учитывает ограничения производительности. Вы узнаете, как создавать пользовательский интерфейс с помощью CAppDialog/CLabel, вычислять метрики с помощью CMatrixDouble и встраивать компонент в простой советник для получения целостной картины рынка в реальном времени.
preview
Создание HTML-дашборда для Тестера стратегий и анализа проп-фирменных испытаний в MQL5

Создание HTML-дашборда для Тестера стратегий и анализа проп-фирменных испытаний в MQL5

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

Изучение стандартной библиотеки MQL5 (Часть 10): Канал полиномиальной регрессии

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Сегодня мы делаем важный шаг к тому, чтобы помочь каждому разработчику понять, как читать структуры классов и быстро создавать советники с помощью стандартной библиотеки MQL5. Библиотека богата и расширяема, но при этом может показаться, что вам вручили сложный набор инструментов без руководства. Здесь мы делимся и обсуждаем альтернативный алгоритм интеграции — краткий, повторяемый рабочий сценарий, демонстрирующий, как надежно связывать классы в реальных проектах.
preview
Как построить мультивалютную netting-сетку с точным CatBoost и swap/carry-слоем в MQL5

Как построить мультивалютную netting-сетку с точным CatBoost и swap/carry-слоем в MQL5

В статье разбирается мультивалютный netting-советник для MetaTrader 5 с валютным графом из 28 пар, набором из 19 M1‑признаков и двумя моделями CatBoost, выполняемыми в MQL5 без упрощений. Показано, как прогнозы управляют сеткой лимитных заявок, режимными фильтрами, инвентарём и swap/carry при учёте брокерских ограничений, а также как обеспечить воспроизводимость через self‑test и проверку совпадения Python и MQL5.
preview
Теория графов: Алгоритм Форда—Фалкерсона для оценки ликвидности и пропускной способности рынка

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

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

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

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

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

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

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

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

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

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

Система аудита счета в MQL5 (Часть 1): Проектирование пользовательского интерфейса

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

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

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

Теория графов: Применение алгоритма эвристического поиска A* в торговле

В статье эвристический алгоритм A* применяется к структуре рынка путем моделирования подтвержденных максимумов и минимумов свингов в качестве узлов графа, где веса ребер рассчитываются с учетом нормализованного по ATR расстояния, спреда и штрафов за шум. Модуль ищет наиболее эффективный маршрут для определения направления сделки и целевых уровней, а затем фильтрует сигналы по коэффициенту направленности, общей стоимости пути и противоположным свингам. TP привязывается к конечному узлу, а SL — к предыдущей структуре, с визуализацией на графике и настраиваемыми входными данными.
preview
Встраивание торговой дисциплины в код (Часть 5): Контроль соблюдения риск-ограничений на уровне счёта в MQL5

Встраивание торговой дисциплины в код (Часть 5): Контроль соблюдения риск-ограничений на уровне счёта в MQL5

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

Теория графов: Применение поиска в глубину (DFS) в торговых системах

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

От начального до среднего уровня: Словно мыльные пузыри

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

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

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