Нейронная сеть на практике: Начинаем строить цепочку
Пришло время начать разбираться в том, как соединять перцептроны в цепочку. Это позволит нам реализовать то, что известно как сеть перцептронов. Эта сеть составляет основу всего того, что вы знаете и используете как ту или иную форму «искусственного интеллекта». Однако построение такой сети связано с рядом трудностей. Здесь мы начнём разбираться, в чём они заключаются.
Создание объектно-ориентированного движка инференса ONNX на языке MQL5
В статье рассказывается, как запускать модели, обученные на Python, непосредственно в MetaTrader 5 с помощью функций ONNX терминала. Мы создаем класс MQL5, который инкапсулирует создание сеанса, фиксирует формы входных/выходных тензоров, применяет min-max-нормализацию признаков, чтобы повторять обработку, использованную при обучении, и запускает OnnxRun один раз на каждый бар, чтобы снизить нагрузку на ЦП. В результате получается надежный и удобный в сопровождении канал инференса для графиков в реальном времени и Тестера стратегий без использования сокетов или DLL-библиотек.
Альтернатива временным барам (Часть 2): Построение баров серий в MQL5
Мы реализуем тиковые, объемные и долларовые бары серий в Python и MQL5 и встраиваем их в существующий фреймворк построения баров. В статье подробно описаны обновление двух накопителей, офлайн-калибровка с начальными значениями для каждого направления, сохранение состояния в советниках и проверка совпадения результатов Python и MQL5. Бары серий (runs bar) выявляют односторонние всплески активности, которые может скрывать метрика чистого дисбаланса, улучшая тем самым охват данных в спокойные сессии и для моделей возврата к среднему.
От начального к среднему уровню: Файл шаблона графика (I)
В статье объясняется, как перенести настройки основного графика на встроенный в OBJ_CHART график, учитывая, что наследуется только часть шаблона. Мы покажем, как синхронизировать цвета и свойства, подстраиваться под изменения размера и применять настройки к внутреннему графику, используя идентификатор графика и явные вызовы обновления. Читатель научится предсказуемо воспроизводить внешний вид и поведение основного графика в OBJ_CHART.
Нейронная сеть на практике: Вопрос шкалы
Среди широкой публики бытует ложное представление о том, что нейронная сеть или искусственный интеллект могут в некотором смысле постигать мир, в котором мы живём. В некоторых случаях это даже может быть правдой. Но вам, если вы хотите добиться более быстрой сходимости нейронной сети или даже отдельного нейрона, нужно понимать, что шкала используемых значений часто влияет на скорость сходимости. Кроме того, в этой статье я покажу кое-что странное, что происходит в нейронных сетях. Это сведёт вас с ума и заставит задуматься о многом в этой теме.
Построение системы обнаружения дивергенций: Создание пользовательского индикатора MPO4
Представляем MPO4 — осциллятор на основе рыночного давления, который учитывает тело и направление свечей в контексте текущей волатильности. В статье подробно рассматриваются математические основы индикатора, нормирование значений в ограниченном диапазоне и сглаживание с помощью EMA. Затем создается модуль дивергенций на основе опорных точек, предназначенный для работы без перерисовки. Вы получите полную реализацию на MQL5 и практические рекомендации по интерпретации сигналов, включая сравнение с RSI как альтернативным источником.
Альтернатива временным барам (Часть 1): Построение баров активности и дисбаланса в Python и MQL5
В данной статье сэмплирование по времени заменяется альтернативными типами баров Лопеса де Прадо. Представлены две согласованные реализации: унифицированный модуль Python для пакетной обработки истории тиков и объектно-ориентированная библиотека MQL5 для советников, работающих в реальном времени. В статье рассматриваются инфраструктура Parquet/Dask, очистка данных и единый API. Отдельно решаются практические задачи: фильтрация временных баров с нулевым тиковым объемом, инициализация порога дисбаланса, сохранение состояния экспоненциально взвешенного среднего (EWM) и обеспечение совпадения результатов Python и MQL5.
Перекрестный рекуррентный количественный анализ (CRQA) в MQL5: Разработка полноценной библиотеки анализа
В этой статье библиотека RQA для MQL5 расширяется до перекрестного рекуррентного количественного анализа (Cross Recurrence Quantification Analysis, CRQA) для сравнения двух временных рядов. Мы реализуем вложение двух рядов, построение матрицы перекрёстной рекуррентности, адаптированные метрики (CRR, CDET, CLAM, CENTR и другие), а также анализ в скользящем окне с возможностью ускорения на графическом процессоре (GPU) через OpenCL. Готовый к использованию индикатор сравнивает два торговых инструмента (символа) в режиме реального времени, поддерживая выравнивание по временным меткам и нормализацию для практического межрыночного анализа.
От начального к среднему уровню: Объекты и подокна (III)
В этой статье описывается безопасный способ обработки удаления графических объектов: перехват событий, воссоздание объекта и восстановление минимального набора свойств. Мы покажем, как избежать ошибок при работе с указателями, предотвратить нежелательное воссоздание объектов при закрытии и сохранять положение и размеры, обновляя их с помощью DRAG/CHANGE. Таким образом, индикатор остаётся целостным, а пользователь сохраняет часть своих настроек.
От начального к среднему уровню: Объекты и подокна (II)
В этой статье объясняется, как отслеживать и обрабатывать удаление объектов с графика в MQL5 с использованием событий MetaTrader 5. При обнаружении удаления объекта, созданного индикатором, код удаляет соответствующий экземпляр, чтобы избежать несогласованностей и появления оставшихся подокон. В этом подходе используются уникальные имена и файл заголовка, при этом приоритет отдаётся простоте и предсказуемости поведения.
Нейросети в трейдинге: Диффузионная генерация торговых планов (Вычислительная основа)
Продолжаем торговую адаптацию фреймворка DPCC и рассматриваем семь OpenCL-кернелов для коррекции торгового плана. На основе диагностики нарушений определяем порядок изменения действий, формируем варианты поправок и повторно проверяем их последствия на заданных ценовых сценариях. Разбираем сравнение предложений, выбор улучшения и контроль бюджета проверок. Итоговые статусы и диагностика позволяют отличить успешную коррекцию от завершения поиска с оставшимися нарушениями.
Нейронная сеть на практике: Перцептрон
В этой статье перцептрон представлен как основа нейронной сети, а также подробно описана его реализация на MQL5. Мы объясним, что такое функции активации и их производные, в чём разница между прямым распространением и обратным распространением, а также как используется функция потерь наименьших квадратов и градиент. Вы научитесь обучать веса и смещения, проверять результат с помощью тестовых скриптов и настраивать скорость обучения для достижения стабильной сходимости.
Адаптивный индикатор Malaysian Engulfing (Часть 2): Оптимизированный диапазон баров ретеста
В статье к индикатору Malaysian Engulfing добавляется самоадаптивный слой: диапазон баров ретеста оптимизируется с помощью ограниченного полного перебора с оценкой по MFE и MAE. В статье подробно описаны модель данных, вспомогательные процедуры и реализация на MQL5, которая собирает исторические сетапы, рассчитывает MFE/MAE и выбирает лучший параметр. Читатели узнают, как отказаться от ручной настройки и запускать индикатор с параметрами, подходящими для конкретного контекста, на разных символах и таймфреймах.
Нейронная сеть на практике: Градиент
В статье объясняется, почему и как используется градиент при обучении перцептрона, исходя из метода наименьших квадратов и правила цепочки для получения частных производных. Мы покажем реализацию вычисления градиента в классе C_Neuron на языке MQL5 и проверим её на примерах с 1 и 2 входами. Вы научитесь настраивать веса и смещение с помощью градиентного спуска, а также подготовитесь к прямому и обратному распространению.
Создание пользовательского тикового графика в MQL5
Узнайте, как реализовать в MQL5 тиковый график, в котором каждый бар строится из фиксированного количества тиков, а не по времени. В статье рассматриваются создание и настройка пользовательского символа, получение тиков в режиме реального времени, формирование значений OHLC и передача данных с помощью функции CustomRatesUpdate. Такой подход позволяет получить свечи, формируемые по рыночной активности, которые точнее отражают интенсивность рынка и краткосрочный импульс для точного внутридневного анализа.
От начального к среднему уровню: Объекты и подокна (I)
В статье подробно рассматриваются создание и размещение объекта OBJ_CHART в подокнах, при этом особое внимание уделяется различиям между главным окном и подокнами. Показывается, как интегрировать индикаторы с помощью ресурсов (#resource, ChartIndicatorAdd) и определять нужное подокно по краткому имени индикатора. В результате код становится более стабильным, переносимым и удобным для повторного использования.
От базового к среднему уровню: Ресурсы
В этой статье вы познакомитесь с концепцией, которая во многих случаях может оказаться чрезвычайно полезной и значительно упростить обмен вашими приложениями и проектами. Хотя эту концепцию непросто полностью объяснить в одной статье, того, что будет здесь изложено и объяснено, уже хватит, чтобы в будущем мы смогли сделать многое, в том числе и то, что иначе было бы невозможно. Именно поэтому эта статья ещё не была опубликована: чтобы у вас был вспомогательный материал и начальная база для изучения.
Нейронная сеть на практике: Функции активации
Это, без сомнения, статья на тему, которую мне до сих пор больше всего понравилось писать. В ней я показал, что на самом деле нам не нужно ничего особенного, чтобы достичь определённой цели. Мы можем достичь этого разными способами, если у нас есть необходимые знания и готовность учиться и посвящать себя этому делу. Я от всей души благодарю всех, кто помог мне с выбором функций. Приведённый здесь материал носит исключительно учебный характер. Ни в коем случае не следует рассматривать это как нечто, предназначенное для чего-либо, кроме обучения и изучения представленных концепций.
Нейросети в трейдинге: Диффузионная генерация торговых планов (DPCC)
Рассматриваем адаптацию фреймворка DPCC для построения торговых планов с учётом ограничений счёта. Разбираются принципы диффузионной генерации траекторий, модельной проекции и проверки допустимости последовательности действий. Для финансовых рынков используется сценарное моделирование состояния счёта. Практическая часть посвящена OpenCL-кернелам DPCCRollout и DPCCRolloutReduce, которые рассчитывают последствия планов и определяют их допустимость по заданным ценовым сценариям.
От начального к среднему уровню: Подокна (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 нейрон, обученный методом стохастического градиентного спуска, и сравнили его функцию потерь с линейной регрессией. С помощью кода и графиков мы показываем, как нормализация, выбор скорости обучения и структура задачи влияют на сходимость. Статья предлагает руководство по отладке обучения, интерпретации поведения ошибки и выбору подходящей архитектуры или функции активации.