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

icon

Изучайте язык программирования торговых стратегий MQL5 по опубликованным здесь статьям, большая часть которых написана вами - членами сообщества. Все статьи разделены на категории для быстрого поиска ответа по тому или иному аспекту программирования: "Интеграция", "Тестер", "Торговые стратегии" и многое другое.

Следите за новыми публикациями и участвуйте в их обсуждении на форуме!

Новая статья
последние | лучшие
preview
От одиночного CatBoost к Cross-Fitted Stack в MQL5: ансамбль без утечки будущего и отдельный audit-forward 2026

От одиночного CatBoost к Cross-Fitted Stack в MQL5: ансамбль без утечки будущего и отдельный audit-forward 2026

Статья показывает, как построить stack-ансамбль для MetaTrader 5 без утечки данных между уровнями и расхождений инференса. Реализован purged expanding walk-forward с 72-часовым разрывом, три разнородных CatBoost-классификатора, калибраторы вероятности и размера позиции, а также встраивание 31 модели в советник MQL5. Отдельный аудит 2026 года демонстрирует границы применимости профилей и сравнение с неизменяемой базовой линией.
preview
Машинное обучение и Data Science (Часть 48): Насколько важны трансформеры для трейдинга?

Машинное обучение и Data Science (Часть 48): Насколько важны трансформеры для трейдинга?

От ChatGPT до Gemini и множества других инструментов на базе искусственного интеллекта для генерации текста, изображений и видео – трансформеры произвели фурор в мире искусственного интеллекта. Но применимы ли они в финансовой сфере, в частности в трейдинге? Постараемся разобраться.
preview
База данных — это просто (Часть 1): Легковесный ORM-фреймворк для MQL5 на базе SQLite

База данных — это просто (Часть 1): Легковесный ORM-фреймворк для MQL5 на базе SQLite

В данной статье представлен структурированный подход к управлению данными SQLite в MQL5 с помощью ORM-слоя для MetaTrader 5. В нем представлены базовые классы для моделирования сущностей и доступа к базе данных, fluent API для CRUD, хуки рефлексии для OnGet/OnSet, а также макросы для быстрого определения моделей. В практических примерах кода показано создание таблиц, привязка полей, вставка, обновление, выборка и удаление записей. Разработчики получают готовые к повторному использованию типобезопасные компоненты, которые сводят к минимуму однотипный SQL-код.
preview
Машинное обучение и Data Science (Часть 47): Прогнозирование рынка с помощью модели DeepAR на Python

Машинное обучение и Data Science (Часть 47): Прогнозирование рынка с помощью модели DeepAR на Python

В этой статье мы попробуем спрогнозировать движения рынка с помощью достаточно хорошей модели прогнозирования временных рядов под названием DeepAR. Модель представляет собой сочетание глубоких нейронных сетей и авторегрессионных свойств, характерных для таких моделей, как ARIMA и VAR (векторная авторегрессионная модель).
preview
Эволюция городских советов — City Councils Evolution (CCE)

Эволюция городских советов — City Councils Evolution (CCE)

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

Нейросети в трейдинге: Адаптация прогноза при смене рыночного режима (Объект верхнего уровня)

Представлен объект верхнего уровня CNeuronOMPBOCL для адаптации рыночного представления внутри энкодера. Он объединяет байесовскую остаточную поправку, групповой затвор, раздельные истории Source и Target, оценку Mismatch и KL-ограничение. Разобраны инициализация, режимы работы, числовые проверки, прямой и обратный проходы в MQL5/OpenCL. Реализация разделяет прогноз и последующее обновление параметров и даёт готовый слой для дальнейшей интеграции в модель.
preview
Алгоритм оптимизации на основе кровеносной системы — Circulatory System Based Optimization (CSBO)

Алгоритм оптимизации на основе кровеносной системы — Circulatory System Based Optimization (CSBO)

CSBO — алгоритм, вдохновлённый кровеносной системой, рассматривается как разностно-ориентированный метод: венозное движение, систематический круг с кроссовером и лёгочная мутация. Приведена реализация в виде класса C_AO_CSBO для MQL5 с переводом в максимизацию, нормировкой шагов и двухфазными эпохами. Представлены итоги, исходники и практические настройки.
preview
Репликация и моделирование рынка: Большой финал

Репликация и моделирование рынка: Большой финал

Я знаю, что многие, возможно, думали, что я опубликую ещё несколько статей, чтобы объяснить другие аспекты этой системы. Недостающие элементы легко реализовать. Тем не менее, её разработка позволит вам проверить, насколько вы действительно готовы.
preview
Нейросети в трейдинге: Адаптация прогноза при смене рыночного режима (OpenCL примитивы)

Нейросети в трейдинге: Адаптация прогноза при смене рыночного режима (OpenCL примитивы)

Статья продолжает практическую реализацию фреймворка OMPB для адаптации прогнозных моделей к смене рыночного режима. Рассматриваем вычислительную декомпозицию фреймворка и реализуем недостающие OpenCL-примитивы: ограниченный Disagreement, распространение градиента Mismatch и поэлементный расчёт KL-дивергенции для байесовского слоя. Полученные компоненты образуют параллельную GPU-основу без переноса больших промежуточных тензоров на CPU и подготавливают сборку полноценного OMPB-слоя в библиотеке нейронных сетей MQL5.
preview
От начального до среднего уровня: Перегрузка операторов (V)

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

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

Разработка индикатора Volume Bubble на MQL5 с использованием стандартного отклонения

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

Разработка инструментария для анализа Price Action (Часть 72): Создание индикатора заполнения гэпов на MQL5

Инструмент заполнения гэпов выходного дня для MetaTrader 5, готовый к использованию советниками: он обнаруживает гэпы, подтверждает их полное заполнение и записывает детерминированные значения Buy и Sell в буферы индикатора. Он восстанавливает исторические события, отслеживает рынок в реальном времени без перерисовки и визуализирует структуру гэпов непосредственно на графике. Настраиваемые алерты и наглядные графические объекты поддерживают как ручной анализ, так и автоматическое исполнение.
preview
Возможности Мастера MQL5, которые вам нужно знать (Часть 98): Использование сигма-точечного фильтра Калмана и капсульной сети в пользовательском классе сигналов

Возможности Мастера MQL5, которые вам нужно знать (Часть 98): Использование сигма-точечного фильтра Калмана и капсульной сети в пользовательском классе сигналов

В этой статье представлен пользовательский класс CSignalUKFCapsNet, написанный на MQL5. Этот класс используется с Мастером MQL5 при сборке советника. После выбора в Мастере он определяет сигналы входа советника. При создании этого пользовательского класса были объединены сигма-точечный фильтр Калмана и капсульная нейронная сеть. Алгоритм представлен в четырех режимах работы, а его реализация в виде пользовательского класса для Мастера MQL5 позволяет тестировать различные методы трейлинг-стопа и системы управления капиталом.
preview
Моделирование рынка: В единстве — сила (III)

Моделирование рынка: В единстве — сила (III)

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

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

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

Пайплайны Codex: от Python до MQL5 для выбора индикаторов — анализ ETF XLF по нескольким кварталам с применением машинного обучения

Мы продолжаем рассматривать, как можно выстроить пайплайн выбора индикаторов при работе с «нетипичным» активом в MetaTrader. MetaTrader 5 в первую очередь используется для торговли на рынке Форекс, и это оправданно с учётом доступной ликвидности; однако аргументы в пользу торговли за пределами этой «зоны комфорта» становятся всё более убедительными — не только благодаря стремительному росту таких платформ, как Robinhood, но и из-за неустанного стремления большинства трейдеров получить преимущество. В этой статье мы рассматриваем ETF XLF, а также завершаем наш обновлённый пайплайн простым MLP.
preview
Разработка инструментария для анализа Price Action (Часть 74): Создание советника MQL5 на основе буферов индикатора

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

В этой статье реализован советник MQL5, который подключается к индикатору гэпов выходного дня через iCustom() и CopyBuffer() и считывает шесть буферов с сигналами на покупку и продажу, а также уровнями SL/TP. Он проверяет требования брокера к минимальному расстоянию до стоп-уровней, обрабатывает подтверждение закрытым баром и контролирует дублирование сигналов, а также исполняет ордера с настраиваемым магическим числом. Советник также включает механику переноса стоп-лосса при достижении срединного уровня между входом и тейк-профитом, а также процедуру тестирования на исторических данных, позволяющую проверить поведение и адаптировать параметры под вашу конфигурацию.
preview
Возможности Мастера MQL5, которые вам нужно знать (Часть 97): Использование выпуклой оболочки и миниатюрной GRU-сети в пользовательском классе трейлинг-стопа

Возможности Мастера MQL5, которые вам нужно знать (Часть 97): Использование выпуклой оболочки и миниатюрной GRU-сети в пользовательском классе трейлинг-стопа

В этой статье рассматривается пользовательский класс Мастера MQL5 для трейлинг-стопов. Пользовательский класс CTrailingConvexHullGRU создается путем объединения алгоритма выпуклой оболочки и GRU-сети. Как и в других статьях серии, разрабатывается модель, которую можно тестировать с советниками, собранными Мастером MQL5, и настраивать с помощью различных классов управления капиталом и сигналов входа. В тестировании используются классы сигналов Envelopes и RSI.
preview
Разработка инструментария для анализа Price Action (Часть 73): Построение системы торговых сигналов для гэпов выходного дня в MQL5

Разработка инструментария для анализа Price Action (Часть 73): Построение системы торговых сигналов для гэпов выходного дня в MQL5

Мы расширяем инструментарий для работы с гэпами выходного дня индикатором, который преобразует структуру гэпа в торговые сигналы. Когда цена подтверждает возврат обратно в гэп, индикатор отображает стрелки Buy и Sell, устанавливает тейк-профит на противоположной границе и размещает стоп-лосс по экстремумам текущей недели. Он работает без перерисовки, восстанавливает исторические сигналы, обновляется в реальном времени и предоставляет буферы, пригодные для использования советником, с метками входа и уровнями TP/SL.
preview
Моделирование рынка: В единстве — сила (II)

Моделирование рынка: В единстве — сила (II)

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

Причинный граф как признак машинного обучения

В статье условный граф причинности Грейнджера по 10 валютным парам и трём таймфреймам преобразуется в числовые признаки для CatBoost и MQL5. Абляция сравнивает модели price-only, graph-only и price+graph: графовые признаки почти не работают самостоятельно, но в сочетании с ценой улучшают контекст, режимную фильтрацию и риск. На форварде совместная модель показала более высокий Profit Factor и меньшую просадку.
preview
От начального до среднего уровня: Перегрузка операторов (III)

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

В этой статье мы рассмотрим, как реализовать перегрузку как логических операторов, так и операторов сравнения. Для этого требуется определённая осторожность и немалая доля внимания. Даже небольшая оплошность при реализации перегрузки этих операторов может привести к тому, что весь код окажется совершенно непригодным для использования. Если в перегрузке возникнут какие-либо проблемы, всю базу данных, созданную на основе результатов, сгенерированных кодом, придётся либо полностью отбросить, либо, как минимум, целиком перепроверить.
preview
Моделирование рынка: В единстве — сила (I)

Моделирование рынка: В единстве — сила (I)

Мы подходим к финишной прямой. Разработка системы репликации/моделирования почти завершена. Конечно, нам ещё предстоит доделать кое-что, но по сравнению со всем, что мы уже сделали, реализовать оставшееся будет несложно. Однако всё, что будет показано в этой статье, необходимо как следует усвоить и понять. Поэтому я желаю вам приятного чтения и, прежде всего, получить удовольствие от этого последнего этапа пути.
preview
Алгоритм оптимизации на основе приспособленности — Fitness Dependent Optimizer (FDO)

Алгоритм оптимизации на основе приспособленности — Fitness Dependent Optimizer (FDO)

Разбираем FDO — алгоритм, вдохновлённый роением пчёл, но интересный не пчёлами. Формулы просты, но направление шага фиксирует агента на луче к глобально лучшему, сводя поиск к одной степени свободы. Мы воспроизводим канонику, сопоставляем результат с равномерным случайным перебором на том же бюджете вычислений и устраняем дефект минимальной правкой. Прилагаются готовая реализация на MQL5, полный протокол тестов и методика нуль‑модели для оценки пользы итераций.
preview
Нейросети в трейдинге: Адаптация прогноза при смене рыночного режима (OMPB)

Нейросети в трейдинге: Адаптация прогноза при смене рыночного режима (OMPB)

В статье разбирается фреймворк OMPB для онлайн-калибровки прогнозов при сдвиге распределения временных рядов. Рассматриваются архитектура, PAC-Bayes сертификат с учётом временной зависимости и измерение расхождения Mismatch между исходной и целевой областями. На практике начинается адаптация под MQL5: реализован байесовский линейный слой, который станет основой корректирующего модуля и позволит настраивать модель без полного переобучения.
preview
Пайплайны Codex: от Python к MQL5 для выбора индикаторов — анализ ETF FXI за несколько кварталов

Пайплайны Codex: от Python к MQL5 для выбора индикаторов — анализ ETF FXI за несколько кварталов

Мы продолжаем рассматривать возможности использования MetaTrader за пределами «зоны комфорта» форекс-трейдинга, обратив внимание на ещё один торгуемый актив — ETF FXI. В отличие от предыдущей статьи, где мы попытались охватить «слишком много», углубившись не только в выбор индикаторов, но и в рассмотрение комбинаций индикаторных паттернов, в этой статье мы сделаем небольшой шаг назад и сосредоточимся в большей степени на выборе индикаторов. Наш конечный продукт в данном случае задуман как своего рода пайплайн, который может помочь рекомендовать индикаторы для различных активов при наличии достаточного объема их ценовой истории.
preview
Моделирование рынка: Position View (XX)

Моделирование рынка: Position View (XX)

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

Реализация шаблона "Декоратор" в MQL5: Добавление логирования, измерения времени выполнения и фильтрации к любому индикатору без изменения исходного кода

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

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

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

Возможности Мастера MQL5, которые вам нужно знать (Часть 96): Использование вейвлетного порогового преобразования и сети LSTM в пользовательском классе управления капиталом

В этой статье рассматривается пользовательский класс Мастера MQL5 для управления капиталом. Пользовательский класс CMoneyWaveletLSTM создается объединением алгоритма вейвлетного порогового преобразования и сети LSTM. Как и в других статьях серии, разработанную модель можно тестировать с советниками, собранными в Мастере MQL5 и настраиваемыми с использованием различных классов трейлинг-стопов и входных сигналов. Как и в предыдущих статьях, в качестве сигнала входа используются встроенный класс Envelopes и класс RSI.
preview
Разработка индикатора Market Memory Zones: Зоны вероятного возврата цены

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

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

Возможности Мастера MQL5, которые вам нужно знать (Часть 94): Использование выборки из резервуара и линейной регрессии в пользовательском классе трейлинг-стопа

В этой статье мы переходим к пользовательской реализации класса для Мастера MQL5, посвященной трейлинг-стопам. Пользовательский класс CTrailingReservoirLinReg создается путем объединения алгоритма выборки из резервуара и сети линейной регрессии. Как и в других статьях серии, это решение можно тестировать с советниками, собранными Мастером MQL5 и настраиваемыми с различными сигналами входа и классами управления капиталом.
preview
Моделирование рынка: Position View (XIX)

Моделирование рынка: Position View (XIX)

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

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

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

Моделирование рынка: Position View (XVIII)

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

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

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

Осваиваем графики Kagi в MQL5 (Часть 2): Реализация автоматизированной торговли на основе Kagi

Узнайте, как в MQL5 создать полноценный торговый советник на основе графиков Kagi: от построения сигналов и исполнения ордеров до визуальных маркеров и трехэтапного трейлинг-стопа. Статья содержит полный исходный код, результаты тестирования и доступный для скачивания файл .set.
preview
Моделирование рынка: Position View (XVII)

Моделирование рынка: Position View (XVII)

В предыдущей статье мы сделали так, чтобы индикатор отображал финансовый результат. Однако не всем нравится использовать этот режим отображения. Причины могут различаться от трейдера к трейдеру, хотя в некоторых случаях они кажутся мне вполне разумными и оправданными. Адаптировать код, чтобы предоставить такую возможность, — отнюдь не одна из самых сложных задач. На самом деле это довольно просто. В этой статье мы рассмотрим, как это сделать.
preview
Автоматизированный риск-менеджмент для прохождения челленджей проп-фирм

Автоматизированный риск-менеджмент для прохождения челленджей проп-фирм

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

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

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