Интеграция MQL5 с пакетами обработки данных (часть 8): Использование графовых нейронных сетей для выявления зон ликвидности
В этой статье показано, как представить рыночную структуру в MQL5 в виде графа, представив максимумы и минимумы свингов как узлы графа с набором признаков. В статье обучается графовая нейронная сеть для оценки потенциальных зон ликвидности, после чего модель экспортируется в ONNX, а инференс в реальном времени выполняется в советнике. Рассматривается построение пайплайна данных, интеграция модели, визуализация зон на графике и использование сигналов для исполнения сделок по заданным правилам.
Возможности Мастера MQL5, которые вам нужно знать (Часть 90): Управление капиталом на основе дерева Фенвика и одномерной CNN в MQL5
В этой статье реализуется дерево Фенвика, или двоичное индексное дерево, для управления капиталом с учетом объема в советнике, собранном Мастером MQL5. Накопленный объем структурируется со сложностью O(log n), после чего применяются четыре режима масштабирования: линейный, консервативный, агрессивный и возврат к среднему. При необходимости эти режимы дополнительно фильтруются легковесной одномерной CNN. Практические тесты сравнивают алгоритм без фильтра и подход с фильтрацией CNN, демонстрируя адаптивное определение размера лота и контроль риска при различной топологии объема.
Алгоритм оптимизации на основе приспособленности — Fitness Dependent Optimizer (FDO)
Разбираем FDO — алгоритм, вдохновлённый роением пчёл, но интересный не пчёлами. Формулы просты, но направление шага фиксирует агента на луче к глобально лучшему, сводя поиск к одной степени свободы. Мы воспроизводим канонику, сопоставляем результат с равномерным случайным перебором на том же бюджете вычислений и устраняем дефект минимальной правкой. Прилагаются готовая реализация на MQL5, полный протокол тестов и методика нуль‑модели для оценки пользы итераций.
Возможности Мастера MQL5, которые вам нужно знать (Часть 98): Использование сигма-точечного фильтра Калмана и капсульной сети в пользовательском классе сигналов
В этой статье представлен пользовательский класс CSignalUKFCapsNet, написанный на MQL5. Этот класс используется с Мастером MQL5 при сборке советника. После выбора в Мастере он определяет сигналы входа советника. При создании этого пользовательского класса были объединены сигма-точечный фильтр Калмана и капсульная нейронная сеть. Алгоритм представлен в четырех режимах работы, а его реализация в виде пользовательского класса для Мастера MQL5 позволяет тестировать различные методы трейлинг-стопа и системы управления капиталом.
Три фильтра MACD на US_TECH100: Тестирование на данных брокера за пять лет
В этой статье тестируются три распространенных фильтра для стандартного пересечения MACD на US_TECH100 H1 с использованием нативных данных брокера за пять лет. Фильтры добавляются поэтапно: фильтр рыночного режима, согласование со старшим таймфреймом (HTF) и время американской сессии. Это позволяет изолировать добавочный эффект каждого фильтра. Результаты показывают, что выбор часов торговли дает гораздо больший эффект, чем доработки индикатора, тогда как рыночный режим и HTF сами по себе дают мало. Статья включает воспроизводимый классификатор рыночного режима на MQL5.
Вероятностный метод главных компонент на MQL5
Рассмотрены классический PCA и его вероятностная формулировка (PPCA). Представлен универсальный класс CPPCA для MQL5 с тремя алгоритмами обучения (EIG, SVD, EM). Выполнено сопоставление результатов со scikit-learn и разобраны подходы к выбору числа главных компонент (Scree Plot, AIC/BIC, кросс-валидация). Показано применение метрики Score (средний логарифм правдоподобия) для обнаружения смены распределения данных.
Моделирование рынка: Position View (XIX)
Один из вопросов, который доставлял мне наибольший дискомфорт, заключается в том, что класс C_ElementsTrade содержит код для обращения к позициям. Не воспринимайте это как ошибку, потому что на самом деле это не так. Однако из-за этого некоторые задачи, которые нам предстоит выполнить позже, становятся более рискованными с точки зрения ошибок. Вся работа по реализации индикатора позиции велась с расчетом на его использование в сервисе репликации/моделирования. Однако при запуске в этой среде у нас не будет никакого доступа к реальной позиции. Следовательно, любой вызов библиотеки MQL5, предназначенный для получения данных о позиции, не окажет никакого влияния на код.
Возможности Мастера MQL5, которые вам нужно знать (Часть 93): Использование суффиксного автомата и автокодировщика в пользовательском классе управления капиталом
В этой статье мы переходим к пользовательской реализации класса Мастера MQL5 для управления капиталом. Пользовательский класс CMoneySuffixAE создается путем объединения алгоритма суффиксного автомата и нейронной сети автокодировщика. Как и ранее, это решение можно тестировать с советниками, собранными Мастером MQL5 и настраиваемыми с различными сигналами входа и вариантами трейлинг-стопа.
Нейросети в трейдинге: Управление риском через распределение результатов (AC-SRM)
Средняя доходность не показывает, как распределены возможные прибыли и убытки, а значит, скрывает часть риска торговой стратегии. AC-SRM переносит этот риск в сам процесс обучения: политика оценивается по распределению результатов через спектральную меру риска, а не только по среднему значению. Практическую реализацию начинаем с OpenCL-кернела FQF_DistributionTargetGradient, который выбирает ближайшего к цели представителя распределения и формирует градиенты его значения и вероятности, подготавливая распределительный Критик для дальнейшей риск-ориентированной оптимизации.
Интеграция MQL5 с пакетами обработки данных (Часть 7): Построение многоагентных сред для межсимвольного взаимодействия
В статье представлена полная интеграция Python и MQL5 для многоагентной торговли: получение данных из MT5, расчет индикаторов, решения отдельных агентов и взвешенный консенсус, формирующий единое торговое решение. Сигналы сохраняются в JSON-файле, отдаются через Flask и используются советником MQL5 для исполнения сделок с расчетом объема позиции и уровней SL/TP на основе ATR. Маршруты Flask обеспечивают безопасное управление жизненным циклом и мониторинг состояния.
Эволюция городских советов — City Councils Evolution (CCE)
Выполняем каноническую реализацию CCE в рамках C_AO, воспроизводим тесты и показываем ключевой дефект: аддитивный покоординатный оператор тянет решения к нулю и деградирует на смещенных диапазонах. Предлагаем простой контрольный тест со сдвигом области поиска и модификацию на основе разностей, применяемую по всем координатам. В результате — исходники MQL5, методика проверки и улучшенная версия алгоритма.
Нейроструктурный торговый движок — NSTE (Часть I): Построение мультиаккаунтной системы с учетом ограничений проп-фирм
В этой статье закладывается архитектура мультиаккаунтной алгоритмической торговой системы, работающей с криптовалютными CFD в MetaTrader 5 с учетом ограничений проп-фирм. В ней определены три основных принципа — фиксированный долларовый риск, один скрипт на счет и централизованная конфигурация, — а затем подробно описаны разделение задач между Python и MQL5, 60-секундный цикл обработки и передача сигналов на основе JSON. В статье приводятся практические методы расчета размера лота, проверки безопасности и шаблоны управления позициями для надежного развертывания.
Возможности Мастера MQL5, которые вам нужно знать (Часть 87): Управление капиталом с масштабированием по волатильности на основе монотонной очереди в MQL5
В этой статье представлен пользовательский класс управления капиталом на языке MQL5, который адаптирует размер позиции к волатильности в реальном времени. Для поиска экстремумов в скользящем окне со сложностью O(N) используется монотонная очередь. Класс применяет обратное масштабирование по волатильности и при необходимости проверяет риск с помощью RBF-сети. Рассмотрим детали реализации метода Optimize и сравним результаты со встроенным классом Size-Optimized, чтобы оценить задержку и преимущества контроля риска.
Использование Экономического календаря MQL5 для фильтрации новостей (Часть 1): Реализация временных окон до и после новостей в MQL5
Мы разработаем новостной фильтр на основе календаря на языке MQL5 без веб-запросов и внешних DLL. В части 1 рассматриваются загрузка и кэширование событий, сопоставление символов с валютами, фильтрация по уровню важности, определение окон до и после новостей, блокировка открытия новых сделок во время активного новостного периода и опциональное закрытие позиций перед новостью. В результате получается настраиваемый защитный механизм, совместимый с требованиями проп-фирм, который сокращает число ошибочных пауз в торговле и защищает входы в сделки в периоды волатильности.
Автоматизация индикатора рыночной энтропии: Торговая система на основе теории информации
В этой статье представлен советник, автоматизирующий ранее представленную методику рыночной энтропии. Он рассчитывает быструю и медленную энтропию, моментум и состояния сжатия, подтверждает сигналы и исполняет ордера с уровнями SL/TP и опциональным разворотом позиции. В результате получается практичный настраиваемый инструмент, применяющий сигналы на основе теории информации без ручной интерпретации.
Разработка системы оценки портфеля из нескольких советников с учетом корреляции в MQL5
Большинство алгоритмических трейдеров оптимизируют советники по отдельности, но никогда не оценивают, как они работают вместе на одном счете. Коррелированные стратегии усиливают просадки, а не снижают их, пробелы в покрытии создают в портфеле слепые зоны на целые торговые сессии. В этой статье мы создадим полноценный оценщик портфеля на MQL5. Он считывает дневные P&L из CSV-файлов бэктестов, вычисляет полную матрицу корреляции Пирсона, строит карту торговой активности по часам и дням недели, оценивает диверсификацию по классам активов и выдает сводную оценку от A+ до F. Весь исходный код прилагается, внешние библиотеки не требуются.
Возможности Мастера MQL5, которые вам нужно знать (Часть 96): Использование вейвлетного порогового преобразования и сети LSTM в пользовательском классе управления капиталом
В этой статье рассматривается пользовательский класс Мастера MQL5 для управления капиталом. Пользовательский класс CMoneyWaveletLSTM создается объединением алгоритма вейвлетного порогового преобразования и сети LSTM. Как и в других статьях серии, разработанную модель можно тестировать с советниками, собранными в Мастере MQL5 и настраиваемыми с использованием различных классов трейлинг-стопов и входных сигналов. Как и в предыдущих статьях, в качестве сигнала входа используются встроенный класс Envelopes и класс RSI.
Возможности Мастера MQL5, которые вам нужно знать (Часть 97): Использование выпуклой оболочки и миниатюрной GRU-сети в пользовательском классе трейлинг-стопа
В этой статье рассматривается пользовательский класс Мастера MQL5 для трейлинг-стопов. Пользовательский класс CTrailingConvexHullGRU создается путем объединения алгоритма выпуклой оболочки и GRU-сети. Как и в других статьях серии, разрабатывается модель, которую можно тестировать с советниками, собранными Мастером MQL5, и настраивать с помощью различных классов управления капиталом и сигналов входа. В тестировании используются классы сигналов Envelopes и RSI.
Реализация алгоритма усечённого метода Ньютона с сопряжёнными градиентами в MQL5
В статье реализован оптимизатор на основе усечённого метода Ньютона с сопряжёнными градиентами (TNC) с покомпонентными ограничениями на переменные, а также подробно описаны его основные компоненты: масштабирование, проекция на границы, поиск по направлению и произведения матрицы Гессе на вектор с помощью конечных разностей. Она предоставляет обёртку целевой функции, поддерживающую аналитические или численные производные, и проверяет работоспособность решателя на тестовой функции Розенброка. Пример логистической регрессии демонстрирует, как использовать TNC в качестве непосредственной замены LBFGS.
Возможности Мастера MQL5, которые вам нужно знать (Часть 92): Использование индексации B-дерева и байесовской нейронной сети в пользовательском классе сигнала
В этой статье представлен очередной пользовательский класс сигнала MQL5 – CSignalBTreeBayesian. Здесь алгоритм сбалансированного дерева объединяется с нейронной сетью, построенной на байесовских принципах, для создания еще одного пользовательского сигнала. Благодаря Мастеру MQL5 его можно тестировать отдельно или вместе с другими сигналами.
Как реализовать прогнозирование с помощью AutoARIMA в MQL5
В статье представлена реализация алгоритма AutoARIMA на языке MQL5, позволяющего строить модели ARIMA без ручной настройки. Метод оценивает d с помощью эвристики на основе дисперсии, подгоняет модель ARMA(p,q) посредством градиентной оптимизации с Adam и выбирает p и q по AICc. Код возвращает одношаговый прогноз цены, полученный путем дифференцирования, оценки модели и восстановления ряда до уровня цены, и может быть сразу вызван для ряда Close.
Единый пайплайн валидации для защиты от переобучения бэктеста
В статье объясняется, почему стандартный метод пошагового тестирования (walk-forward) и k-блочная кросс-валидация завышают результаты на финансовых данных, а затем показано, как это исправить. Валидация внутри валидации (V-in-V) обеспечивает строгое разбиение данных и пошаговое тестирование с фиксированным началом (anchored) между окнами. Комбинаторно очищенная кросс-валидация (CPCV) устраняет утечки данных с помощью очистки и эмбарго, одновременно агрегируя результативность на уровне траекторий бэктеста. Комбинаторно симметричная кросс-валидация (CSCV) измеряет вероятность переобучения бэктеста (PBO). Практикующие специалисты получают целостную систему для оценки устойчивости к рыночным режимам и надежности отбора кандидатов.
Интеграция внешних приложений с использованием OAuth MQL5 Community
Узнайте, как добавить функцию "Войти с помощью MQL5" в ваше Android-приложение с помощью процесса для кода авторизации OAuth 2.0. В этом руководстве рассматриваются регистрация приложения, эндпоинты, URI перенаправления, Custom Tabs, обработка диплинков, а также бэкенд на PHP, который обменивает код на токен доступа по HTTPS. Вы реализуете аутентификацию реальных пользователей MQL5 и получите доступ к данным их профиля, таким как ранг и репутация.
Реализация шаблона "Декоратор" в MQL5: Добавление логирования, измерения времени выполнения и фильтрации к любому индикатору без изменения исходного кода
Сквозные аспекты, такие как логирование, измерение времени и пороговая фильтрация, не должны находиться внутри классов индикаторов. В данной статье показано, как применить шаблон проектирования "Декоратор" в MQL5 с общим интерфейсом IIndicator, базовым декоратором-владельцем CBaseDecorator и конкретными слоями-декораторами CLoggingDecorator, CTimingDecorator и CThresholdFilterDecorator. Для каждого советника можно комбинировать поведение декораторов, оставлять вычислительный код закрытым для изменений и обеспечивать детерминированную очистку удалением только внешнего декоратора.
Нейросети в трейдинге: Управление риском через распределение результатов (Вычислительная основа)
Продолжаем адаптацию AC-SRM к торговым задачам и переносим основные операции с распределением результатов на сторону OpenCL. Реализованы выборка из распределения, расчет спектральных весов и риск-чувствительная оценка, а также градиенты по значениям и вероятностям с учетом пути через квантильное кодирование. Полученные примитивы позволяют оценивать возможные торговые результаты с заданным отношением к риску и формировать согласованный обучающий сигнал для распределительной модели.
Возможности Мастера MQL5, которые вам нужно знать (Часть 94): Использование выборки из резервуара и линейной регрессии в пользовательском классе трейлинг-стопа
В этой статье мы переходим к пользовательской реализации класса для Мастера MQL5, посвященной трейлинг-стопам. Пользовательский класс CTrailingReservoirLinReg создается путем объединения алгоритма выборки из резервуара и сети линейной регрессии. Как и в других статьях серии, это решение можно тестировать с советниками, собранными Мастером MQL5 и настраиваемыми с различными сигналами входа и классами управления капиталом.
Освоение массивов премии и дисконта: Оптимизация торговли по дисбалансам в PD-массивах
В этой статье рассматривается специализированный трендовый советник, а также подробно объясняется, как формировать и использовать торговые сетапы, возникающие на основе дисбалансов, обнаруженных в PD-массивах. В этой статье будет подробно рассмотрен советник, специально разработанный для трейдеров, которые стремятся оптимизировать и использовать PD-массивы и дисбалансы в качестве критериев входа в сделки и принятия торговых решений. Кроме того, в статье будет рассмотрено, как правильно размечать и оценивать премиальные и дисконтные массивы, как подтверждать их валидность и использовать каждый из них в соответствующих рыночных условиях, чтобы по максимуму использовать возникающие в таких сценариях возможности.
Нейронная сеть на практике: Пример реализации элемента XOR
В этой статье я постараюсь показать вам, уважаемый читатель, что не всё так, как кажется. Часто мы склонны думать, что всё устроено определённым образом, хотя на самом деле в итоге можем поверить в то, что не обязательно соответствует действительности. Нейронные сети, безусловно, — одна из самых интересных тем. И с математической точки зрения, и с точки зрения электроники, и даже программного обеспечения. Вопреки тому, что многие считают или утверждают, нейронные сети — это далеко не проблема и не окончательное решение. Это лишь одно из направлений исследований, в котором нам следует продолжать разбираться и изучать, что происходит за кулисами.
От начального к среднему уровню: Перегрузка операторов (VI)
Здесь мы реализуем удаление с помощью перегрузки операторов. Без сомнения, эту статью многим придётся изучать довольно долго, чтобы усвоить всё, что здесь будет показано. Хочу напомнить тебе, что то, что мы увидим, — лишь малая и незначительная часть всего того, что мы называем программированием.
Использование Экономического календаря MQL5 для фильтрации новостей (Часть 4): Точное тестирование на истории со статическими данными
В этой статье реализован статический источник новостей на основе CSV для Тестера стратегий, позволяющий предварительно загружать и запрашивать исторические экономические события при тестировании на исторических данных. Он заменяет вызовы календаря в реальном времени в режиме тестера быстрым поиском в памяти, при этом логика работы в реальной торговле остается прежней и обеспечивает детерминированные, воспроизводимые результаты с явным контролем над тем, какие события включаются. Это позволяет надежно проверять новостные фильтры, временное удаление стопов и правила блокировки новых сделок.
От начального к среднему уровню: Технические индикаторы (I)
В этой статье мы рассмотрим основные принципы использования технических индикаторов, встроенных в MetaTrader 5 и поддерживаемых этой платформой. Знание и понимание подобных индикаторов может значительно упростить, ускорить и сделать более эффективной реализацию решения, поскольку вам не придется беспокоиться о необходимых вычислениях. Платформа сама выполняет их за нас.
От простых кнопок закрытия до панели управления рисками на основе правил в MQL5
В статье рассмотрено создание основанной на правилах панели управления рисками на графике в MetaTrader 5 с использованием Standard Library MQL5. В руководстве рассматриваются GUI на основе CAppDialog, ручная маршрутизация событий и автоматизированный цикл обновления. Мы привяжем события пользовательского интерфейса к CTrade для выполнения условного закрытия позиций, отображения чистой плавающей прибыли/убытка и считывания автоматизированных целевых значений непосредственно с графика.
Использование Экономического календаря MQL5 для фильтрации новостей (Часть 2): Временное удаление и восстановление стоп-уровней во время выхода новостей
Во второй части новостной фильтр расширяется для защиты открытых позиций во время новостных событий. Вместо закрытия сделок уровни стоп-лосса и тейк-профита временно снимаются и надежно сохраняются в памяти. После окончания новостного окна стоп-уровни восстанавливаются детерминированно и при необходимости корректируются, если цена уже пересекла исходные уровни. При этом соблюдаются правила брокера о минимальной дистанции. В результате получается механизм, который сохраняет исходную логику и структуру сделки, не вмешиваясь в логику открытия сделок, и оставляет управление за советником даже в период волатильности.
Нейросети в трейдинге: Управление риском через распределение результатов (Объект верхнего уровня)
Продолжаем адаптацию AC-SRM для задач финансовых рынков и вводим нейронный слой для риск-чувствительной оценки распределения возможных результатов. CNeuronACSRM упорядочивает прогнозируемые исходы, корректно выделяет нижний хвост распределения и возвращает градиенты в исходную индексацию FQF. В статье разбираются архитектура слоя, прямой и обратный проходы, а также влияние вероятностей на итоговую спектральную оценку риска.
Использование Экономического календаря MQL5 для фильтрации новостей (Часть 3): Сохранение работы при перезапусках терминала во время новостного окна
В статье представлена устойчивая к перезапуску модель хранения состояния для удаления стопов на время новостей. Состояние приостановки и исходные значения SL/TP для каждой позиции записываются в глобальные переменные терминала, считываются и реконструируются в OnInit() и удаляются после восстановления стопов. Это позволяет советнику продолжить активное окно приостановки после перекомпиляции или перезапуска и восстановить стопы только после окончания новостного окна.
Нейронная сеть на практике: Градиентный спуск
В этой статье я постараюсь как можно проще и нагляднее изложить один из самых спорных вопросов, возникающих при обсуждении нейронных сетей: как найти наилучшую возможную точку или минимальную функцию потерь. Я покажу разницу между линейной регрессией и градиентным спуском. Оба случая довольно просты и служат примером того, что не всегда путь, который кажется очевидным, действительно является лучшим.
Разработка индикатора рыночной энтропии: торговая система, основанная на теории информации
В статье рассматривается разработка индикатора рыночной энтропии, основанного на принципах теории информации, для измерения неопределённости и информационного содержания финансовых рынков. Применяя к ценовым движениям такие понятия, как энтропия Шеннона, индикатор количественно определяет, находится ли рынок в структурированном (трендовом), переходном или хаотичном состоянии.
От начального к среднему уровню: Технические индикаторы (II)
В этой статье мы покажем, как создать индикатор на MQL5, который рисует несколько скользящих средних на одном графике, сокращая объём дублирующегося кода. Используются iMA, буферы индикатора, CopyBuffer, PlotIndexSetInteger/String и постоянная структура, объединяющая периоды, методы и цвета. Размеры indicatorbuffers и indicatorplots определяются на основе Averange.Size(). Такой подход упрощает сопровождение и позволяет добавлять или удалять скользящие средние, изменяя только один список.