От начального к среднему уровню: Подокна (IV)
В этой статье мы увидим, что не всё так, как многим кажется поначалу. Одна из самых интересных особенностей программирования заключается в том, что мы можем гарантировать, что всё всегда будет именно так, как мы запланировали. Поэтому внимательно прочитайте эту статью, чтобы разобраться в некоторых из самых запутанных понятий, связанных с использованием подокон. Если вы поймёте то, что будет здесь объяснено, вы сможете понять многое из того, что мы будем делать дальше.
Стресс-тестирование последовательностей сделок методом Монте-Карло в MQL5
Бэктест показывает лишь одну траекторию из множества возможных исходов. Данный MQL5-скрипт выполняет 1000 бутстрап-передискретизаций Монте-Карло для ряда P&L по сделкам, строит на графике веерную диаграмму процентилей с помощью CCanvas и выводит вероятность разорения, Value at Risk (VaR) и наихудшую просадку на уровне 95-го процентиля. В результате получается практический взгляд на траекторный риск и подверженность просадкам, выходящий за рамки одной кривой эквити.
Нейронная сеть на практике: График функции ReLU
Мы создадим индикатор, полностью написанный на MQL5, для отображения на графике функции активации и её производной, взяв в качестве примера ReLU. Мы объясним влияние производных на выбор функции активации и необходимые меры предосторожности в недифференцируемых точках. Читатель сможет интерактивно визуализировать кривые и получит практическую основу, чтобы решать, когда стоит использовать те или иные функции активации, а когда — нет.
От начального к среднему уровню: Подокна (III)
В этом тексте подробно рассматривается использование подокон в индикаторах MQL5: их базовое создание, обнаружение экземпляров и предотвращение дублирования. В нём также рассматриваются INDICATOR_SHORTNAME, запрос сведений об окнах и индикаторах графика, а также различие между отображением на основном графике и в отдельном окне. Здесь также показано, как задать высоту и границы подокна, чтобы стандартизировать интерфейс и упростить размещение объектов.
Нейронная сеть на практике: Рождение C_Neuron
В статье показано, как инкапсулировать нейрон в MQL5 с помощью класса C_Neuron, с весами, смещением и числом входов, задаваемым параметром. Мы подробно разберём вычисление функции потерь на основе метода наименьших квадратов и организацию данных обучения в массивах. Так можно легко менять входы и повторять эксперименты, не изменяя реализацию.
Мультитаймфреймовый движок без утечек дескрипторов с чтением закрытых баров в MQL5
В статье рассматриваются две типичные проблемы, возникающие при работе с несколькими таймфреймами в MQL5: утечки дескрипторов индикаторов, приводящие к исчерпанию ресурсов, и перерисовка в результате считывания формирующегося бара (индекс 0). В статье представлен MTFEngine.mqh — единый подключаемый файл, который создаёт и отслеживает дескрипторы в одном месте, а также по умолчанию выполняет все операции чтения из закрытых баров (индекс 1). Пример D1–H4–H1 демонстрирует, как данный подход позволяет сохранить техническую корректность сигналов и их соответствие графикам.
От начального к среднему уровню: Подокна (II)
В статье подробно рассматривается использование подокон в MetaTrader 5 и показывается, как направление вычислений в OnCalculate влияет на буферы и построение средних. На практике объясняется, как связываются индикаторы с помощью FIRST INDICATOR’S DATA и PREVIOUS INDICATOR’S DATA, каков эффект цепочного удаления зависимых индикаторов и как ведёт себя indicatorseparatewindow. Читатель научится диагностировать проблемы с отображением и создавать индикаторы, которые будут корректно работать в подокнах.
MQL5 Bootstrap (IV): Вспомогательные средства для трейлинг-стопов и переноса стоп-лосса в безубыток
В этой статье представлены переиспользуемые утилиты MQL5 для управления трейлинг-стопами и переносом стоп-лосса в безубыток. В ней рассматриваются трейлинг-стоп с фиксированным расстоянием в пунктах, трейлинг на основе скользящей средней, ATR и Parabolic SAR, трейлинг в денежном выражении и периодический трейлинг, а также перенос стоп-лосса в безубыток по пунктам и в денежном выражении. Предусмотрены пороги активации, логика пошагового переноса, защита от переноса стопа в обратном направлении и проверка ограничений брокера. Примеры кода и классы Bootstrap показывают, как интегрировать эти вспомогательные средства в советники, чтобы стандартизировать управление позициями и сократить дублирование кода.
Декомпозиция частичной информации: Когда два индикатора вместе информативнее, чем каждый по отдельности
Мы представляем библиотеку декомпозиции частичной информации для MQL5, которая разделяет информацию двух источников о целевой переменной на четыре атома: два уникальных (по одному для каждого источника), общий и синергетический. В реализации используются квантильное разбиение на бины, предвычисленные логарифмы и подгонка по принципу максимальной энтропии (для I_ccs). Результаты сопоставляются с нулевой моделью на основе блочных перестановок, поскольку на конечных выборках оценки атомов превышают ноль. Используйте ее для отбора пар индикаторов и проверки статистической значимости, включая поправку на множественные сравнения на уровне семейства тестов.
Рыночная микроструктура в MQL5 (Часть 8): Оценка силы микротренда
В восьмой части добавляется побарная оценка силы микротренда для NQ M1. Функция GetMicroTrendStrength() формирует непрерывную композитную оценку в диапазоне [-1, +1] из согласованности EMA, нормализованного по ATR положения цены, согласованности наклонов и объема. Штраф за противоречие подавляет конфликты между согласованностью EMA и положением цены. Сессионно-адаптивные пороги масштабируются в зависимости от показателя достоверности из седьмой части, регулируя частоту сигналов в разных режимах. Результаты включают метку с семью состояниями, бинарный сигнал и проверку устойчивости, откалиброванные по 514 нью-йоркским сессиям (май 2024 г. - май 2026 г.).
MQL5 Bootstrap (III): Упрощенные средства работы с новостями
В этой статье представлены унифицированная модель новостей и набор переиспользуемых классов MQL5 для работы с Экономическим календарем MetaTrader 5. Вы сможете получать, фильтровать и кэшировать события по времени, валюте, стране и важности с помощью единого интерфейса для трех провайдеров: встроенного календаря, CSV и SQLite. Фреймворк поддерживает экспорт и импорт, поиск следующего и предыдущего событий, а также надежное тестирование на истории в Тестере стратегий без изменения торговой логики.
За пределами GARCH (Часть VIII): Библиотека MMAR и ее использование в советнике
Эта статья завершает проект MMAR фасадным классом CMMAR и демонстрационным советником для MetaTrader 5. Фасад предоставляет компактный API (настройка, Fit(), Forecast()), объединяющий анализ разбиений, подгонку спектра и моделирование методом Монте-Карло. Вы узнаете, как загружать данные, подгонять модель и получать прогноз волатильности, а также использовать диагностику и обработку статусов для надежного применения модели в советниках.
MQL5 Bootstrap (II): Основные валидаторы для надежных торговых систем
В статье создается переиспользуемый слой валидации для советников MQL5. В ней реализованы правила размера лота и его нормализации, проверки SL/TP и уровня заморозки, нормализация цен по количеству знаков, проверка достаточности маржи, фильтрация неизменных уровней при модификации, контроль лимита ордеров на счете, обнаружение нового бара, проверка доступности символа для торговли, новостные окна экономического календаря и функции определения торговых сессий. В результате код становится чище, а число ошибок терминала в реальной торговле уменьшается.
Персистентная гомология в MQL5: Алгоритм приведения и диаграмма персистентности
Мы завершаем реализацию персистентной гомологии в MQL5, приводя граничную матрицу Вьеториса-Рипса к диаграмме персистентности. В статье реализованы столбцовое приведение над Z/2 (CTDAReduction), контейнер диаграммы с аналитическими методами (CTDADiagram) и фасад CTDA, запускающий шестиэтапный пайплайн одним вызовом. Результаты проверяются сравнением с Ripser до численного совпадения, что позволяет надежно вычислять метрики по диаграммам.
Рыночная микроструктура в MQL5 (Часть 7): Классификация рыночных режимов
Мы объединяем одиннадцать показателей минутной рыночной микроструктуры из частей 2-6 в итоговую метку режима с оценкой достоверности и направлением. Функция RegimeClassifier(), работающая на основе правил, определяет один из шести режимов — нормальный, стрессовый, шумовой, информированный, трендовый или возврат к среднему. Пороги получены эмпирически по 514 сессиям NQ на таймфрейме M1 (май 2024 г. - май 2026 г.). Результат работы включает MARKET_REGIME, RegimeAnalysis и PopulateRegimeAnalysis(): один вызов позволяет получить данные для расчета размера позиции, размещения стоп-лоссов и фильтрации сигналов.
За пределами GARCH (Часть VII): Прогнозирование волатильности методом Монте-Карло в MQL5
Мы реализуем модуль CMonteCarlo, который преобразует подогнанные параметры MMAR в прогноз волатильности методом Монте-Карло. Модуль выполняет N независимых симуляций на выбранном горизонте прогнозирования и возвращает среднее, медиану, стандартное отклонение и 95-процентный доверительный интервал на основе процентилей. При необходимости доступны значения каждого прогона. Адаптивная глубина каскада выбирает минимальное k, при котором b^k покрывает горизонт прогнозирования, обеспечивая быстродействие и согласованность симуляции.
Рыночная микроструктура в MQL5 (Часть 6): Поток ордеров
В этой статье в MicroStructure_Foundation.mqh добавляются шесть функций анализа потока ордеров и новая структура OrderFlowAnalysis: VPINOHLC, дисбаланс потока с учетом направления, интенсивность торговли относительно базового уровня за 20 сессий, индекс умных денег как разность поздней и ранней внутрисессионной доходности, моментум потока и функция-обертка, возвращающая вес достоверности. Достоверность сигнала потока фильтруется по шуму из пятой части и интенсивности скачков из четвертой. Реализация откалибрована на 602 нью-йоркских сессиях NQ на таймфрейме M1 и формирует готовые внутридневные сигналы потока с описанными пороговыми значениями.
Создание индикатора профиля объёма "Спектр ликвидности" (Liquidity Spectrum) на языке MQL5
Создайте в MQL5 профиль объёма «Спектр ликвидности», который распределяет объём по равным ценовым интервалам за выбранный период анализа с использованием цен закрытия свечей. В данном руководстве рассматриваются получение данных с помощью функций копирования, разбиение по ценовым интервалам и нормализация, а также отрисовка прямоугольников объёма и линий POC с использованием объектов графика и временных смещений для выявления на графике зон ликвидности с высокой активностью.
За пределами GARCH (Часть VI): Фракционное броуновское движение и мультипликативный каскад в MQL5
В этой статье реализуется модуль моделирования MMAR: по параметрам, полученным при подгонке (H, распределение, коэффициенты, выборочная волатильность), он строит синтетические ценовые траектории. Модуль строит мультифрактальное торговое время с помощью мультипликативного каскада, генерирует фракционное броуновское движение методом Дэвиса — Харта или разложением Холецкого, масштабирует его до целевой волатильности и строит составной процесс посредством деформации времени. Читатели получат класс на языке MQL5, пригодный для многократного использования, рекомендации по выбору метода в зависимости от длины траектории и этапы валидации для сценарного тестирования и применения метода Монте-Карло в следующей части.
Рыночная микроструктура в MQL5 (Часть 5): Микроструктурный шум
В статье файл MicroStructure_Foundation.mqh дополняется структурой MicrostructureAnalysis и пятью функциями для анализа изменений цены на таймфрейме M1: прокси для котируемого спреда, спреда по модели Ролла, коэффициента шума на основе OHLC, дисбаланса ордеров и компонента неблагоприятного отбора. Функция-обертка заполняет эти поля и связывает их с показателями волатильности из четвертой части. Эмпирические пороги получены по 602 нью-йоркским сессиям фьючерса NQ E-mini за период с января 2024 г. по июнь 2026 г. Они помогают фильтровать сигналы волатильности, выбирать величину риска и выявлять эффекты рыночного трения, обусловленные спредом.
Нейронная сеть на практике: Когда использовать искусственный нейрон и как он работает в MQL5
Мы реализовали в MQL5 нейрон, обученный методом стохастического градиентного спуска, и сравнили его функцию потерь с линейной регрессией. С помощью кода и графиков мы показываем, как нормализация, выбор скорости обучения и структура задачи влияют на сходимость. Статья предлагает руководство по отладке обучения, интерпретации поведения ошибки и выбору подходящей архитектуры или функции активации.
За пределами GARCH (Часть V): Подгонка мультифрактального спектра в MQL5
В этой статье мы реализуем модуль подгонки спектра: из tau(q) вычисляем f(alpha) дискретным преобразованием Лежандра, затем с помощью BLEIC подгоняем нормальный, биномиальный, пуассоновский и гамма-спектры с покомпонентными ограничениями. Выбирается модель с минимальной SSE; ее параметры — например, alpha_min, alpha_max или alpha_0, gamma — становятся входными параметрами каскада для мультифрактального моделирования.
Рыночная микроструктура в MQL5 (Часть 4): Волатильность с эффектом памяти
В статье к MicroStructure_Foundation.mqh добавляются восемь функций: расчет реализованной волатильности, волатильности с поправкой на длительность и фракционной волатильности; прокси по мотивам FIGARCH; индекс кластеризации; оценка асимметрии GJR-GARCH через библиотеку Дьюба (Dube); обнаружение скачков по бипауэр-вариации и функция-обертка. Реализация MFDFA переработана: вместо прежней прокси по разбросу τ она возвращает традиционную метрику Δα, получаемую преобразованием Лежандра, и заполняет поле достоверности R². Пороги получены по данным 514 нью-йоркских сессий фьючерса NQ E-mini Nasdaq 100 (май 2024 г. - май 2026 г.); новый подключаемый файл не создается.
Оптимизация на основе кривых Безье — Bezier Curve-based Optimization (BCO)
Разбираем Bezier Curve-based Optimization (BCO) — один из самых современных алгоритмов, в котором новые решения строятся как точки на кривых Безье. Переносим его в MQL5 и проверяем на стандартном стенде, композитном тесте и стенде со сдвигом области поиска. Попутно выясняем, что на самом деле обеспечивает его эффективность.
За пределами GARCH (Часть IV): Реализация анализа разбиений в MQL5
В этой статье мы переходим от исследований на Python к нативной инженерной реализации на MQL5. Мы создаем первый модуль библиотеки MMAR: общий заголовочный файл с константами, класс OLS-регрессии на основе SVD, оценщик обобщенного показателя Херста и механизм анализа разбиений. Последний вычисляет функцию разбиения, определяет tau(q), оценивает H интерполяцией точки пересечения с нулем и оценивает мультифрактальность по результатам трех диагностических тестов. При проверке на 500 000 барах EURUSD на таймфрейме M10 механизм менее чем за четыре секунды правильно определил данные как мультифрактальные. Четвертая часть серии из восьми статей. В пятой части кривая tau(q) будет подгоняться к четырем распределениям-кандидатам с использованием преобразования Лежандра.
Рыночная микроструктура в MQL5 (Часть 3): Оценка параметра d модели ARFIMA методом GPH
В файл MicroStructure_Foundation.mqh добавлена функция оценки параметра d (ключевого параметра модели ARFIMA), основанная на методе GPH. Функция GPHEstimator() оценивает d по регрессии лог-периодограммы. Функция PopulateARFIMAAnalysis() сохраняет d с показателем достоверности R² и проверяет теоретическую связь H = d + 0,5. Исследование 72 сессий US100 на таймфрейме M1 дало объединенную оценку d = -0,006. Это согласуется с границей случайного блуждания, установленной во второй части.
Как подключить ИИ-агентов к MetaTrader 5 через MCP
В статье показано, как подключить ИИ-агентов напрямую к MetaTrader 5, создав полноценный сервер MCP (Model Context Protocol) на Python. Подробно описаны архитектура, клиентская обёртка MetaTrader 5, обработчики рыночных данных и ордеров, а также регистрация инструментов через stdio, тестирование с помощью MCP Inspector и подключение к таким клиентам, как Claude Desktop или OpenClaw. В результате получается стандартизированный мост для запросов на естественном языке, получения данных в реальном времени и безопасного исполнения ордеров в MetaTrader 5.
Нейросети в трейдинге: Управление риском через распределение результатов (Окончание)
Торговая адаптация AC-SRM объединяет подготовленный энкодер рынка, Актёра и два распределительных Критика на MQL5 и OpenCL. Спектральная оценка распределения результатов используется для обучения политики с учётом неблагоприятных исходов. Рассмотрены офлайн-подготовка по завершённым результатам торговых действий и последовательное онлайн-обучение в тестере MetaTrader 5 с собственной схемой перекрёстных целевых моделей Критиков. Приведены результаты эксперимента и практические ограничения подхода.
От начального к среднему уровню: Подокна (I)
В этой статье мы начнём разбирать, как работать с подокнами в MetaTrader 5 с помощью MQL5. Это обширная тема с несколькими практическими аспектами, которые могут оказаться непростыми, поэтому мы начнём с краткого введения. И всё же, дорогой читатель, важно, чтобы вы поняли то, о чём мы здесь поговорим, ведь это может сыграть большую роль в вашем будущем.
Рыночная микроструктура в MQL5 (Часть 2): Измерение долгой памяти с помощью оценщиков Херста
Во второй части мы сосредоточимся на выявлении долгой памяти во внутридневных данных. Реализованы три взаимодополняющих оценщика показателя Херста. Их результаты объединяются в составную оценку с весами достоверности, зависящими от числа валидных масштабов регрессии. Итоговые H и показатель достоверности записываются в общую структуру анализа, что позволяет индикаторам действовать только тогда, когда H выходит за пределы нейтрального диапазона 0,40-0,60: при H выше 0,60 выбирать следование за трендом, а ниже 0,40 — возврат к среднему.
За пределами GARCH (Часть III): Построение MMAR и вердикт
Получив во второй части мультифрактальные параметры, в этой статье мы построим полный процесс MMAR. Мы строим мультипликативный каскад торгового времени, генерируем фракционное броуновское движение с помощью алгоритма Дэвиса — Харта на основе БПФ и объединяем оба компонента в X(t) = B_H[theta(t)]. Прогноз волатильности получаем моделированием методом Монте-Карло по 1000 траекториям, а затем сравниваем его с прогнозом GARCH на тех же данных EURUSD на таймфрейме M5. Превосходит ли фрактальная архитектура Мандельброта по качеству прогноза подход Энгла, основанный на условной дисперсии? Третья часть серии из восьми статей, посвященной созданию нативной библиотеки и советника на MQL5.
GoertzelBrain: Адаптивное спектральное обнаружение циклов с помощью ансамбля нейронных сетей в MQL5
GoertzelBrain сочетает спектральный анализ по Гертцелю с ансамблем нейронных сетей, обучаемых в режиме онлайн, чтобы преобразовывать признаки циклов в сигнал подтверждения направления. Индикатор формирует компактный вектор признаков на основе доминирующего периода, амплитуды, уровня достоверности и их динамики, а также локальной волатильности, и выдает значение +1, −1 или 0. В статье приводится полная реализация на языке MQL5, объясняются архитектура и процесс конструирования признаков, а также показано, как использовать индикатор в качестве направленного фильтра.
За пределами GARCH (Часть II): Оценка фрактальной размерности рынков
Опираясь на анализ функции разбиения из первой части, мы подробнее рассмотрим теоретическую основу, прежде чем завершить аналитический пайплайн. Сначала мы подробно и системно разберем показатель Херста: что он измеряет, что говорит о "памяти" рынка и почему важен для мультифрактальной модели доходности активов (MMAR). Затем мы дадим интуитивное объяснение мультифрактальных спектров и выясним, что f(alpha) показывает о неоднородности волатильности. Затем перейдем к реализации: определим функцию масштабирования tau(q), оценим H методом R/S и подгоним мультифрактальный спектр к четырем распределениям-кандидатам. К концу статьи у нас будет полный набор параметров для построения процесса MMAR в третьей части. Вторая часть серии из восьми статей.
Нейронная сеть на практике: Стохастический градиентный спуск
В статье на практических примерах объясняется, как вычислять и применять градиенты весов и смещения в линейном нейроне на MQL5, а также рассматривается стохастический вариант градиентного спуска. Мы анализируем критерии остановки, ограничение числа итераций и последствия частичной выборки. В терминале MetaTrader 5 отображаются результаты и построение простого графика. Читателю предлагается изменить обучающую выборку и проанализировать поведение модели.
За пределами GARCH (Часть I): Сравнение моделей MMAR Мандельброта и GARCH Энгла
В этой статье мы начинаем построение мультифрактальной модели доходности активов (MMAR) на данных EURUSD на таймфрейме M5. Мы загружаем рыночные данные через Python API для MetaTrader5 и анализируем функцию разбиения на неперекрывающихся интервалах, чтобы проверить наличие мультифрактального масштабирования. Результаты проверки позволят сделать эмпирически обоснованный вывод, обладают ли данные фрактальными свойствами. Это необходимый шаг перед построением MMAR и для решения, стоит ли вообще выходить за рамки GARCH.
Рыночная микроструктура в MQL5 (Часть 1): Надежный базовый слой
В этой статье мы закладываем базовый слой для инструментария рыночной микроструктуры на MQL5, состоящего из двенадцати частей. В данной статье реализованы математические функции с защитными проверками (SafeDivide, SafeLog, SafeSqrt, SafeExp, SafeTanh), устойчивая к сбоям проверка данных (ValidateSymbolV2, SafeCopyClose), усеченные статистические оценки (робастные оценки среднего и дисперсии), расчет наклона линейной регрессии, общие структуры данных и БПФ. В результате компиляции вы получаете единый подключаемый файл, который защищает индикаторы и советники от скрытых численных сбоев и стандартизирует поток данных для следующих частей серии.
Нейроструктурный торговый движок — NSTE (Часть II): Шестиступенчатый квантовый фильтр "Врата Джардина"
В этой статье представлены "Врата Джардина" — шестиступенчатый ортогональный фильтр сигналов для MetaTrader 5. Он проверяет прогнозы LSTM по шести независимым критериям: энтропии, интерференции (степени согласия) моделей-экспертов, уверенности, вероятности с поправкой на рыночный режим, направлению тренда и срабатыванию аварийного выключателя (Kill Switch) после серии убытков. Из 43 200 исходных сигналов за месяц только 127 проходят все шесть ступеней. Читатели получат полный код класса QuantumEdgeFilter на MQL5, логику калибровки порогов и анализ эффективности каждого этапа фильтрации.
Свинговые экстремумы и откаты в MQL5 (Часть 3): Определение структурной валидности за рамками простых максимумов и минимумов
В статье представлен советник MQL5, который переводит первичное обнаружение свингов на уровень основанного на правилах модуля структурной валидации. Свинги подтверждаются сломом структуры (break of structure), импульсным смещением, снятием ликвидности или удержанием уровня во времени (time-based respect), после чего связываются с картой ликвидности (liquidity map) и структурной машиной состояний (structural state machine). В результате получаются учитывающие контекст точки входа и стопы, привязанные к подтверждённым уровням, что помогает фильтровать шум и систематизировать исполнение сделок.
Алгоритм оптимизации скопы — Osprey Optimization Algorithm(OOA)
Алгоритм оптимизации скопы (OOA) — ещё один представитель метаэвристик с красивой метафорой и первыми местами на бенчмарках. Проверка на стенде показывает другое. В статье разбираем, какие две формулы ломают канон, исправляем их по одной с измерением вклада каждой правки и доводим алгоритм с 30% до 60%. На выходе — готовая реализация в C_AO с тремя параметрами для оптимизации торговых систем и понятный способ проверить любой новый алгоритм, прежде чем ему доверять.
Автоматическое принятие и отклонение изменений ML-советника в MIDAS/MQL5: защита от переобучения через проверку устойчивости
В статье рассматривается Robustness Guard для отбора изменений торговой ML-модели в MIDAS. Кандидаты сравниваются с зафиксированной базовой версией на нескольких временных блоках и принимаются только при улучшении целевой оценки без нарушения ограничений по Profit Factor, просадке, числу сделок, стабильности месяцев и концентрации по инструментам. Механизм перенесён в MQL5 и дополнен self-test и shadow-режимом.