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

icon

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

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

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

Торговые инструменты MQL5 (Часть 33): Создание системы документации с расширенным форматированием для программ на языке MQL5

Мы расширяем возможности мастера настройки из части 9, чтобы создать для MetaTrader 5 систему документации, встроенную в график и использующую холст для отрисовки. Панель имеет вкладки и поддерживает прокрутку, форматирование фрагментов текста, изображения и интерактивные элементы управления; для её отрисовки используется сглаживание методом суперсэмплинга. В результате получился движок документации для многократного использования, который можно встроить в любую программу на языке MQL5 для отображения автономной документации прямо на графике.
preview
Алгоритм оптимизации, вдохновлённый охотой лисы —  Fox-inspired Optimization Algorithm (FOX)

Алгоритм оптимизации, вдохновлённый охотой лисы — Fox-inspired Optimization Algorithm (FOX)

Разбираем FOX (Fox-inspired Optimization Algorithm): реализуем алгоритм в MQL5, детально проверяем ветви "прыжка" и "блуждания" и показываем, как притяжение к нулю и фиксированный масштаб шага мешают поиску в торговых диапазонах. Пошагово измеряем вклад каждого механизма на тестовом стенде и объясняем расхождения формул и кода. В конце — готовый к использованию класс C_AO_FOX и исправленная версия с шагом в долях диапазона.
preview
Фундаментальные модели для торговли (Часть III): Запуск генеративной ИИ-модели прогнозирования в MetaTrader 5

Фундаментальные модели для торговли (Часть III): Запуск генеративной ИИ-модели прогнозирования в MetaTrader 5

Мы демонстрируем отображение прогнозов Kronos на графике в реальном времени средствами MQL5 и пайплайн оценки, спроектированный для исключения заглядывания в будущее. Прогнозы из детерминированных выгрузок оцениваются для каждого горизонта в сравнении с базовым прогнозом случайного блуждания (15 113 прогнозных значений), затем используются в простом торговом правиле в Тестере стратегий на EURUSD H1. Результаты не выявляют торгового преимущества и показывают, как высокий порог может дать убедительный на вид, но малоинформативный результат тестирования на исторических данных с очень небольшим числом сделок.
preview
Создание графической библиотеки для MetaTrader 5 по образцу Cairo (Часть 4): Сглаживание, покрытие и композиция

Создание графической библиотеки для MetaTrader 5 по образцу Cairo (Часть 4): Сглаживание, покрытие и композиция

Теперь растеризатор накапливает точное покрытие интервалов по оси X и покрытие по оси Y, вычисляемое по выборкам, а затем использует его при композиции через CairoBlendOver в формате ARGB без предумножения. CairoAaSamples задает число выборок по вертикали во время выполнения. Затраты почти линейно зависят от этого числа и в основном приходятся на ребра фигур. В результате получаются сглаженные границы, корректная композиция полупрозрачных фигур и возможность регулировать производительность.
preview
Версионирование параметров советника в MQL5 с помощью файлов

Версионирование параметров советника в MQL5 с помощью файлов

В этой статье рассказывается, как реализовать версионирование параметров на языке MQL5 с помощью бинарных файлов и упакованных структур. Здесь показано, как с помощью функций FileWriteStruct и FileReadStruct в режиме FILE_BIN записывать и считывать записи фиксированного размера, содержащие номера версий, временные метки и контрольную сумму. Вы также узнаете, как обнаруживать изменения с помощью контрольных сумм, безопасно добавлять записи в конец файла и загружать последнюю конфигурацию, не перезаписывая предыдущие настройки.
preview
Создание традиционного индикатора Ренко с наложением на график в MQL5

Создание традиционного индикатора Ренко с наложением на график в MQL5

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

Метаразметка классических стратегий (Часть 1): Фильтрация сделок по RSI и определение размера позиций

В условиях тренда RSI накапливает убытки, поскольку генерирует сигнал при каждом пересечении порога независимо от рыночного режима. Вторичный классификатор на основе случайного леса, обученный на 12 контекстных признаках — наклоне импульса RSI, скорости тренда EMA50, нормированном по ATR отклонении цены от трендовой средней и девяти других, — фильтрует исходные сигналы и масштабирует размер позиции в зависимости от уверенности классификатора на данных EURUSD H1. В результатах сравниваются исходный RSI, RSI с метафильтрацией и RSI с адаптивным размером позиции за 16-месячный период вне обучающей выборки с анализом показателей по отдельным сделкам и просадок.
preview
От прогноза цены к узкому торговому уравнению

От прогноза цены к узкому торговому уравнению

Исследуется прогноз следующего часового движения EURUSD H1 на длинной истории. Сравнивается исходное ценовое уравнение с простейшим ориентиром, после чего задача переносится на направление и величину следующего изменения с хронологическим разделением данных. Отдельно анализируется переход 23:00→00:00 и его поведение на 100 последовательных двухмесячных участках вне обучения. Читатель получает воспроизводимую схему подготовки данных и отбора сигналов по уверенности.
preview
Создание графической библиотеки для MetaTrader 5 по образцу Cairo (Часть 3): Ребра и первая фигура с заливкой

Создание графической библиотеки для MetaTrader 5 по образцу Cairo (Часть 3): Ребра и первая фигура с заливкой

В третьей части реализован построчный растеризатор, написанный целиком на языке MQL5. Мы преобразуем отрезки пути в ребра, записанные в направлении сверху вниз, проходим по каждой строке, сортируем точки пересечения и применяем ненулевое правило заливки, чтобы определить, какие пиксели находятся внутри фигуры. В результате получается метод Fill(path, color, buffer, w, h), который рисует прямоугольники, звезды, глифы или фигуры с 2 000 ребрами без отдельного кода для каждого типа фигуры. Его можно сразу использовать в ваших проектах на языке MQL5.
preview
Создание системы торговой аналитики (Часть 1): Основы и архитектура системы

Создание системы торговой аналитики (Часть 1): Основы и архитектура системы

Мы проектируем простой внешний пайплайн аналитики торговых операций для MetaTrader 5 и реализуем его бэкенд на Python с использованием Flask и SQLite. В статье определяются архитектура, модель данных и API с поддержкой версий, а также показано, как настроить среду, инициализировать базу данных и локально запустить сервер. В результате вы получаете понятную основу для сбора записей о закрытых торговых операциях из MetaTrader 5 и их хранения для последующего анализа.
preview
RiskGate: Централизованное управление рисками для нескольких советников

RiskGate: Централизованное управление рисками для нескольких советников

Во многих конфигурациях MetaTrader 5 на одном счете работают несколько советников, поэтому управление рисками оказывается разрозненным, а экспозиция по коррелирующим инструментам остается незамеченной. В статье представлен RiskGate — централизованный сервис, который оценивает торговые намерения советников на уровне всего счета: советники отправляют сигнал в формате JSON, а сервис возвращает поля approved, lot и reason. Вы увидите схему взаимодействия клиента и сервера, примеры правил (лимит дневного убытка, лимиты экспозиции и корреляции), архитектуру обработчика, проверенную модульными тестами, и пример советника. В результате обеспечивается согласованное управление рисками на уровне портфеля, а сами советники становятся проще.
preview
Пользовательские инструменты отладки и профилирования для разработки на MQL5 (Часть II): Профилирование советников и тестирование торговой логики

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

Мы создаём компактный профилировщик, который записывает в CSV количество вызовов, минимальное, максимальное и среднее время выполнения, а также количество медленных вызовов, и простую среду запуска тестов, которая формирует детерминированные отчёты об успешном или неуспешном прохождении тестов. В статье объясняется, где размещать замеры в советнике, как выполнять выборку тиков и как сохранять возможность тестирования чистых вычислений. Выполнение сначала скрипта, а затем профилирующего советника позволяет получить воспроизводимые данные для регрессионного анализа.
preview
Конструирование признаков для машинного обучения (Часть 7): Энтропийные признаки в Python

Конструирование признаков для машинного обучения (Часть 7): Энтропийные признаки в Python

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

Адаптивное сглаживание цен в MQL5: фильтр Калмана с оценкой шума без внешних библиотек

Скользящие средние с фиксированным весовым коэффициентом вносят запаздывание, которое не учитывает смену рыночных режимов. В данной работе представлен индикатор на основе адаптивного скалярного фильтра Калмана, реализованный штатными средствами MQL5. Он оценивает дисперсию шума процесса Q по дисперсии приращений цены в скользящем окне, а дисперсию шума измерений R — по дисперсии цены в скользящем окне, применяет ограничение снизу для обеспечения численной устойчивости и пересчитывает коэффициент усиления Калмана на каждом баре. Линия индикатора, отображаемая поверх ценового графика, сравнивается с 20-периодной EMA по показателям MAE, RMSE, запаздывания и гладкости для количественной оценки качества отслеживания цены и подавления шума.
preview
Поиск торгового преимущества (Часть 1): Использование дискретного преобразования Фурье (ДПФ) и импульсной нейронной сети (SNN) в торговом роботе

Поиск торгового преимущества (Часть 1): Использование дискретного преобразования Фурье (ДПФ) и импульсной нейронной сети (SNN) в торговом роботе

В этой статье мы приводим аргументы в пользу сочетания дискретного преобразования Фурье (ДПФ) и импульсной нейронной сети (SNN) в торговом роботе. Преобразование Фурье позволяет представить данные в виде колебаний, а не в виде исходных значений. Для интерпретации этих циклов мы используем импульсную нейронную сеть (SNN), которая, в отличие от обычных сетей, накапливает потенциал за счёт изменяющихся во времени электрических зарядов и генерирует импульс только при достижении заданного порога. Сочетание этих двух модулей позволяет нам точнее определять моменты отдельных рыночных движений, что в теории должно давать сигналы входа со строгим математическим подтверждением.
preview
От клонирования и коммитов к CI: Расширенные возможности MQL5 Algo Forge

От клонирования и коммитов к CI: Расширенные возможности MQL5 Algo Forge

Мы разбираем возможности Algo Forge, важные для повседневной работы с MQL5: открытие репозиториев в MetaEditor, перевод README, вкладку Units, защиту веток и тегов, внесение правок в браузере, пакеты и CI на хосте с Windows. В статье приведены точные настройки и необходимые метки раннера, а также показано, как разрешать слияние (merge) только после успешной сборки. Вы получите воспроизводимые инструкции по защите кода, автоматизации компиляции и публикации артефактов.
preview
Форма ценового ряда: Введение в топологический анализ данных и вложение Такенса в MQL5

Форма ценового ряда: Введение в топологический анализ данных и вложение Такенса в MQL5

В статье представлены практические основы анализа формы ценовых рядов в MQL5. Реализовано вложение Такенса с временной задержкой для построения облака точек в фазовом пространстве, а также вычисление полной матрицы попарных расстояний с возможностью выбора нормы. Классы CTDAPointCloud и CTDADistance сопровождаются демонстрационным скриптом, который выполняет вложение данных графика и выводит результаты, подготавливая входные данные для дальнейшей обработки топологическими инструментами.
preview
Конструирование признаков для машинного обучения (Часть 5): Микроструктурные признаки на Python

Конструирование признаков для машинного обучения (Часть 5): Микроструктурные признаки на Python

В статье представлен набор микроструктурных признаков из главы 19, реализованный в модуле afml.features.microstructure, и описана двухуровневая архитектура для работы как только с данными OHLCV, так и с добавлением тиковых данных. Мы рассматриваем оценки спреда и волатильности по Роллу и Корвину — Шульцу, лямбду Кайла, лямбду Амихуда и лямбду Хасбрука, VPIN, а также признаки дисбаланса на уровне баров — всё это реализовано в вычислительных ядрах, ускоренных с помощью Numba. Один проход с использованием np.searchsorted определяет границы баров, что позволяет выполнять параллельные вычисления с помощью prange и получать матрицу признаков с индексом по барам, готовую для дальнейшего использования в моделях машинного обучения.
preview
Разработка динамического мультивалютного советника (Часть 9): Фильтрация шума исполнения с учетом микроструктуры рынка

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

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

Фундаментальные модели для торговли (Часть II): Декодирование, авторегрессия и точный KV-кэш

Мы завершаем нативную реализацию Kronos на MQL5: создаем декодировщик, этапы decode_s1 и decode_s2 предиктора с подводными камнями перекрестного внимания и авторегрессионный цикл, формирующий прогноз на несколько баров. Затем мы проводим профилирование и ускоряем реализацию примерно в 4,5 раза с помощью точного KV-кэша и предварительно транспонированных весов, сверяя результаты каждого этапа с результатами PyTorch.
preview
Метаразметка классических стратегий (Часть 2): Фильтрация сделок по ADX и определение размера позиций

Метаразметка классических стратегий (Часть 2): Фильтрация сделок по ADX и определение размера позиций

Пересечение линий DI часто дает сигналы на боковом рынке, где +DI и -DI колеблются без устойчивого преобладания одной из линий. Мы создаем двухслойную гибридную модель: алгоритм выбора гиперпараметров TPE в Optuna оптимизирует фильтр рыночного режима по порогу ADXR, периоду расчета DI и минимальному расстоянию между линиями DI, чтобы максимизировать точность (precision) сигналов на отложенном валидационном интервале; затем случайный лес использует одиннадцать признаков, рассчитанных на основе ADX, для допуска входов в рынок или определения размера позиций с помощью afml.bet_sizing. Полученная модель отфильтровывает всплески сигналов на боковом рынке и калибрует размер позиции при торговле EURUSD на H1.
preview
Фильтрация Вьеториса — Рипса в MQL5: Построение симплексов и граничной матрицы

Фильтрация Вьеториса — Рипса в MQL5: Построение симплексов и граничной матрицы

Мы преобразуем облако точек, построенное с помощью вложения ценового ряда, в фильтрацию Вьеториса — Рипса и соответствующую ей граничную матрицу. В статье вершины, ребра и треугольники перечисляются с указанием значений фильтрации и сортируются в порядке добавления в фильтрацию; также создаются таблицы поиска вершин и ребер за время O(1). Вы получаете классы CTDARips и CTDABoundary на MQL5, а также разреженную граничную матрицу над Z/2, пригодную для последующей редукции при вычислении персистентности.
preview
Кэширование метаданных символов и расписаний торговых сессий в MQL5: Устранение лишних вызовов SymbolInfo в мультисимвольных советниках

Кэширование метаданных символов и расписаний торговых сессий в MQL5: Устранение лишних вызовов SymbolInfo в мультисимвольных советниках

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

Конструирование признаков для машинного обучения (Часть 6): Признаки микроструктуры рынка в MQL5

В статье представлен CMicrostructureFeatures — класс на языке MQL5 для расчета признаков микроструктуры рынка на уровне баров: спреда Ролла и ценового воздействия по Роллу, спреда и сигмы Корвина — Шульца, лямбды Кайла, показателя неликвидности Амихуда (ILLIQ) и лямбды Хасбрука. Расчеты основываются исключительно на данных OHLCV с использованием скользящих окон. В статье разъясняется, как использование тикового объема MetaTrader 5 влияет на оценки лямбды; при этом оценки спреда остаются независимыми от объема. Скрипт проверяет размеры выходных данных и соблюдение базовых ограничений на их значения.
preview
Создание системы торговой аналитики (Часть 3): Сохранение данных о сделках MetaTrader 5 в SQLite

Создание системы торговой аналитики (Часть 3): Сохранение данных о сделках MetaTrader 5 в SQLite

В этой статье мы расширим бэкенд на Flask, чтобы надежно принимать, проверять и сохранять данные о закрытых сделках из MetaTrader 5 с помощью SQLite и Flask-SQLAlchemy. В нем реализованы проверка обязательных полей, преобразование временных меток, сохранение данных в транзакциях с откатом при ошибке и работающие эндпоинты получения всех сделок, отдельных записей и базовой сводки. В результате получается полноценный пайплайн данных с локальным тестированием: он сохраняет записи о сделках и предоставляет доступ к ним через структурированный API для дальнейшего анализа.
preview
Интерактивное управление зонами спроса и предложения на MQL5 (Часть I): От ручной работы к автоматизации жизненного цикла

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

Заменяет статические графические объекты автоматизированными зонами с сохраняемым состоянием, управляемыми классом-оболочкой CZone. Система синхронизирует пользовательские прямоугольники, задает размеры зон по ATR (средний истинный диапазон), подтверждает пробои по последовательным закрытиям свечей, применяет правила перехода в призрачное состояние и деактивации, объединяет близлежащие структуры с порогом объединения 1.5×ATR и продлевает границы зон вперед по времени. Трейдеры получают устойчивые уровни, которые обновляются автоматически и позволяют сократить объем рутинной работы с графиками.
preview
Каналы линейной регрессии на MQL5: Построение статистически обоснованных доверительных и прогнозных полос

Каналы линейной регрессии на MQL5: Построение статистически обоснованных доверительных и прогнозных полос

В статье реализованы каналы скользящей регрессии методом МНК на языке MQL5 и рассчитываются доверительные и прогнозные полосы с использованием критических значений t-распределения Стьюдента вместо фиксированного множителя стандартного отклонения. В ней объясняется расширение полос по краям окна, обусловленное рычагом наблюдения, полученный результат сравнивается с полосами Боллинджера и каналами Дончиана, а также рассматриваются предпосылки МНК применительно к ценовым данным. Описан способ отрисовки с использованием пяти линий, обеспечивающий надежное отображение в MetaTrader 5.
preview
Создание индикатора EquiVolume на языке MQL5

Создание индикатора EquiVolume на языке MQL5

Мы реализуем в MQL5 индикатор EquiVolume, который преобразует стандартные свечи в прямоугольники, ширина которых определяется объёмом торгов. Процесс включает выбор типа объёма, определение максимального объёма в диапазоне обратного просмотра, нормализацию всех значений относительно него и преобразование их в пропорциональную ширину прямоугольников. В результате на графике в MetaTrader 5 формируется структура, которая наглядно отображает интенсивность торговой активности наряду с движением цены.
preview
Интерактивное управление зонами спроса и предложения на MQL5 (Часть III): Анализ зон и отслеживание взаимодействий цены с зоной

Интерактивное управление зонами спроса и предложения на MQL5 (Часть III): Анализ зон и отслеживание взаимодействий цены с зоной

Мы расширяем программную основу управления зонами спроса и предложения с сохранением состояния для MetaTrader 5, добавляя количественную модель допуска зон в систему и специализированный механизм взаимодействия цены с зонами. Зоны-кандидаты получают балльную оценку по структурной симметрии, объемной активности участников рынка и смещению, нормированному по ATR, а затем распределяются по категориям качества на основе объективных критериев. Допущенные в систему зоны проходят детерминированный жизненный цикл, в ходе которого отслеживается первое касание, проверяются отскоки или подтверждаются пробои; при этом собирается полная телеметрия для анализа и обеспечения воспроизводимости.
preview
Проектирование конечного автомата торговой стратегии на MQL5: Замена вложенных конструкций if-else явными состояниями

Проектирование конечного автомата торговой стратегии на MQL5: Замена вложенных конструкций if-else явными состояниями

Вложенные условные конструкции if-else внутри функции OnTick() создают неявные состояния, которые сложно изолировать, отлаживать и расширять без возникновения регрессионных ошибок. Реализация конечного автомата (FSM) на MQL5 использует интерфейс IState, посредник CStrategyContext и четыре конкретных состояния, чтобы отделить логику обнаружения от логики поведения. Структура из трёх подключаемых файлов устраняет циклические зависимости подключаемых файлов и чётко разделяет объявления, определения и создание экземпляров, делая внесение изменений безопаснее, а отладку — быстрее.
preview
Нейросети в трейдинге: Habi — быстрое принятие решений без сложного планирования (формирование и оценка действий)

Нейросети в трейдинге: Habi — быстрое принятие решений без сложного планирования (формирование и оценка действий)

Продолжаем торговую адаптацию фреймворка Habi на MQL5 с использованием OpenCL. Разбираем реализацию выходных слоёв Decoder и Critic, передачу общих параметров латентного распределения вместе с пакетом торговых действий и подготовку обучающих сигналов по эталону, историческим результатам и TD-цели. Показываем, как объединяются прямой градиент критика и сигнал, прошедший через декодер и латентную выборку. Это позволяет подготовить компоненты к последующей сборке и обучению торговой модели.
preview
Архитектура машинного обучения в MetaTrader 5 (Часть 18): Исправленный последовательный бутстрэп — клонирование, стирание типа и инструментарий сравнения

Архитектура машинного обучения в MetaTrader 5 (Часть 18): Исправленный последовательный бутстрэп — клонирование, стирание типа и инструментарий сравнения

В статье выявляются два дефекта, которые сводят на нет эффект последовательного бутстрэпа при перекрестной проверке: стирание типа SequentiallyBootstrappedBaggingClassifier и несоответствие размерностей на уровне фолда из-за клонирования полного набора информационных интервалов наблюдений. Предлагаемое исправление сохраняет принадлежность классификатора к исходному классу, добавляет функцию _find_seq_bagging() для повторной передачи в CalibratorCV.fit данных t1, ограниченных текущим фолдом, и сбрасывает состояние при каждом разбиении. Новый модуль bootstrap_comparison выводит OOF-метрики и на наблюдениях вне бутстрэп-выборки (OOB), а также данные об использовании памяти, позволяя проверить правильность применения последовательного отбора и количественно оценить его влияние.
preview
Конструирование признаков для машинного обучения (Часть 8): Энтропийные признаки в MQL5

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

Реализация на MQL5 четырех методов оценки энтропии — энтропии Шеннона, подстановочной оценки энтропии (Plug-In), сложности Лемпеля — Зива и энтропии Контоянниса — для последовательности, полученной по тиковому правилу внутри бара. CopyTicksRange() ограничивает доступные данные окном тикового кеша брокера, поэтому признаки можно рассчитывать только для недавних баров. В реализации тики из структуры MqlTick кодируются по направлению изменения цены Bid, операции, зависящие от NumPy, заменяются методами работы с массивами, а для использования в советниках и индикаторах предоставляются файлы CEntropyFeatures.mqh и EntropyViewer.mq5.
preview
Отложенная загрузка хендлов индикаторов в MQL5: Менеджер ресурсов для мультитаймфреймовых советников

Отложенная загрузка хендлов индикаторов в MQL5: Менеджер ресурсов для мультитаймфреймовых советников

Мультитаймфреймовые торговые советники, которые инициализируют все хэндлы индикаторов в OnInit(), несут фиксированные затраты на запуск, даже если большинство хэндлов никогда не используется. CIndicatorCache использует отложенную загрузку с поиском по составному ключу, методы получения/освобождения AcquireHandle() и ReleaseHandle() с подсчетом ссылок и детерминированный метод FlushAll() для полной очистки кэша. Хэндлы создаются при первом запросе и повторно используются на последующих тиках, что сокращает задержку при запуске, позволяет избежать повторного выделения памяти в куче и предотвращает утечки ресурсов терминала благодаря централизованному владению ресурсами.
preview
Цифровая обработка сигналов для трейдеров: Создаем библиотеку фильтров Элерса на языке MQL5

Цифровая обработка сигналов для трейдеров: Создаем библиотеку фильтров Элерса на языке MQL5

Мы реализуем фильтры цифровой обработки сигналов (ЦОС) по методам Элерса в единой библиотеке MQL5, пригодной для многократного использования, и на ее основе создадим два индикатора. В Roofing Filter за двухполюсным фильтром верхних частот (ФВЧ) следует Super Smoother, что позволяет выделить диапазон периодов 10–48 баров, пригодный для торговли. Even Better Sinewave нормирует сигнал примерно до диапазона ±1: в циклических рыночных режимах он колеблется, а при трендах удерживается у предельного уровня, что позволяет анализировать циклы и выявлять смены рыночного режима на графиках и в советниках.
preview
Низкочастотные количественные стратегии в MetaTrader 5 (Часть 3): Система свинг-трейдинга на основе возврата к среднему значению с адаптацией к рыночным режимам

Низкочастотные количественные стратегии в MetaTrader 5 (Часть 3): Система свинг-трейдинга на основе возврата к среднему значению с адаптацией к рыночным режимам

В статье описывается и приводится код стратегии MR Swing на языке MQL5 — это подход к свинг-трейдингу на основе возврата к среднему значению, сочетающий 200-дневный канал гистерезиса с индикаторами Value Chart (график стоимости), DVO и SVAPO. Мы описываем правила входа в позиции и выхода из них для бычьего и медвежьего режимов и приводим результаты пятилетнего бэктестирования на шести высоколиквидных акциях, котирующихся на Nasdaq. Для обеспечения воспроизводимости результатов предоставляются полный код советника и настройки бэктестирования.
preview
Нейросети в трейдинге: Habi — быстрое принятие решений без сложного планирования (Окончание)

Нейросети в трейдинге: Habi — быстрое принятие решений без сложного планирования (Окончание)

Завершаем адаптацию фреймворка Habi для алгоритмической торговли с использованием MQL5 и OpenCL. Рассматриваем построение моделей, подготовку эталонных действий на истории и офлайн-обучение. Показываем, как критик учится оценивать денежные последствия торговых решений и как его оценки используются для обновления политики в режиме имитации онлайн-торговли. На примере EURUSD H1 за январь–апрель 2026 года разбираем проверку готовых моделей и ограничения полученных результатов.
preview
Встраивание торговой дисциплины в код (Часть 8): Подтверждение сетапов и контроль разрешения торговли

Встраивание торговой дисциплины в код (Часть 8): Подтверждение сетапов и контроль разрешения торговли

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

Возможности Мастера MQL5, которые вам нужно знать (Часть 99): Использование KD-дерева и эхо-сети (ESN) в пользовательском классе управления капиталом

В этой статье описывается пользовательский класс управления капиталом CMoneyKDTreeESN, совместимый с Мастером MQL5 и объединяющий алгоритм KD-дерева и эхо-сеть (ESN). Мы применяем KD-дерево к логарифмическим доходностям и ATR (среднему истинному диапазону), чтобы получить оценку риска, а ESN отслеживает недавнюю рыночную динамику и выдает множитель объема позиции с ограниченным диапазоном значений. Наш класс можно использовать в различных советниках, созданных с помощью Мастера MQL5, как показано здесь на примере сигналов Envelopes и RSI; общая цель — регулировать рисковую экспозицию в условиях высокой волатильности и хвостового риска.
preview
Персистентное хранилище "ключ — значение" в MQL5: Плоские файлы как легковесная база данных для хранения состояния советника

Персистентное хранилище "ключ — значение" в MQL5: Плоские файлы как легковесная база данных для хранения состояния советника

Благодаря облегченной архитектуре системы сохранения данных торговые советники (EA) могут сохранять счетчики, флаги и временные метки между перезапусками терминала. Используя только средства MQL5, CPersistentStore записывает удобочитаемый файл формата key=value в папку MQL5/Files и обслуживает запросы на чтение из кэша со сквозной записью на основе CHashMap через типизированный API. В статье анализируются операции со сложностью O(1) и O(n), риски неполной записи и отсутствие блокировки файлов, проводится сравнение с глобальными переменными терминала (GlobalVariables) и SQLite, а также приводится демонстрационный пример с детерминированной повторной загрузкой состояния.