Автоматизация торговых стратегий в MQL5 (Часть 27): Выявление и визуализация гармонического паттерна "Краб" на основе Price Action
В этой статье мы разрабатываем систему распознавания гармонических паттернов "Краб" на языке MQL5, которая определяет бычьи и медвежьи гармонические паттерны "Краб" с использованием точек разворота и уровней Фибоначчи, запуская сделки с точными уровнями входа, стоп-лосса и тейк-профита. Мы добавляем визуальное представление с помощью графических объектов, таких как треугольники и линии тренда, для отображения структуры паттерна XABCD и торговых уровней.
Построение моделей волатильности в MQL5 (Часть I): Первичная реализация
В этой статье мы представляем библиотеку MQL5 для моделирования волатильности, разработанную так, чтобы функционировать аналогично пакету arch в Python. В настоящее время библиотека поддерживает спецификацию распространённых моделей условного среднего: HAR, AR, Constant Mean и Zero Mean, а также моделей условной волатильности: Constant Variance, ARCH и GARCH.
Тестер стратегий для Python и MetaTrader 5 (Часть 02): Работа с барами, тиками и реализация встроенных функций в симуляторе
В этой статье мы представим функции, аналогичные тем, которые предоставляет модуль Python–MetaTrader 5, предоставляя симулятору привычный интерфейс и собственный механизм внутренней обработки баров и тиков.
Разработка инструментария для анализа Price Action (Часть 43): Вероятностный анализ свечных паттернов и пробоев
Улучшите рыночный анализ с помощью советника Candlestick Probability на MQL5 – компактного инструмента, который преобразует исходные ценовые бары в вероятностную аналитику в реальном времени по конкретному инструменту. Он классифицирует пин-бары, паттерны поглощения и доджи на закрытии бара, использует фильтрацию с учетом волатильности по ATR и при необходимости подтверждение пробоя. Советник рассчитывает простые и взвешенные по объему проценты отработки, помогая понять, каков типичный исход каждого паттерна на конкретных символах и таймфреймах. Маркеры на графике, компактная информационная панель и интерактивные переключатели позволяют быстро проверять результаты и сосредоточиться на нужном. Экспортируйте подробные CSV-логи для последующего анализа вне терминала. Используйте советник, чтобы строить вероятностные профили, оптимизировать стратегии и превращать распознавание паттернов в измеримое преимущество.
Разработка инструментария для анализа Price Action (Часть 42): Интерактивное тестирование на графике с кнопочной логикой и статистическими уровнями
В мире, где важны скорость и точность, инструменты анализа должны быть столь же умными, как и рынки, на которых мы торгуем. В этой статье представлен советник с кнопочной логикой – интерактивная система, которая мгновенно преобразует исходные ценовые данные в значимые статистические уровни. Одним кликом мыши он вычисляет и отображает среднее, отклонение, процентили и другие показатели, превращая продвинутую аналитику в понятные сигналы на графике. Он выделяет зоны, где цена с наибольшей вероятностью отскочит, откатится или пробьет уровень, что делает анализ и быстрее, и практичнее.
Сеточный советник на клеточном автомате с онлайн-обучением в MQL5
В статье разобрана архитектура советника на клеточном автомате с 10 000 адаптирующихся параметров и независимым бинарным предиктором на горизонте 10 баров. Показано трёхуровневое онлайн-обучение, эволюция стратегий и валидация через кольцевой буфер и матрицу ошибок. Параметры входа сведены к Magic Number, торговые настройки вычисляются из ATR и пяти геномов. Тест EURUSD H1 дал ориентировочный Hit Rate около 58% против ~51% у фиксированной MLP.
Двумерные копулы в MQL5 (Часть 2): Реализация архимедовых копул в MQL5
Во второй части серии мы рассматриваем свойства двумерных архимедовых копул и их реализацию в MQL5. Мы также изучаем применение копул для разработки простой стратегии парного трейдинга.
Архитектура системы машинного обучения в MetaTrader 5 (Часть 4): Скрытый изъян пайплайна финансового ML — одновременность меток
Узнайте, как исправить критический изъян в финансовом машинном обучении, который приводит к переобученным моделям и плохой работе в реальной торговле, — одновременность меток. При использовании метода тройного барьера (triple-barrier) обучающие метки перекрываются во времени, нарушая базовое предположение IID большинства ML-алгоритмов (алгоритмов машинного обучения). В статье показано практическое решение через взвешивание наблюдений: как измерять временное перекрытие торговых сигналов, рассчитывать взвешивание наблюдений с учётом уникальной информации и применять эти веса в scikit-learn для построения более устойчивых классификаторов. Освоение этих техник поможет сделать торговые модели более устойчивыми, надёжными и прибыльными.
Разработка инструментария для анализа Price Action (Часть 41): Создание советника для статистического анализа ценовых уровней на MQL5
Статистика всегда лежала в основе финансового анализа. По определению статистика – это дисциплина, которая собирает, анализирует, интерпретирует и представляет данные в осмысленном виде. Теперь представьте, что тот же подход применяется к свечам – необработанная ценовая динамика преобразуется в измеримые показатели. Насколько полезно было бы знать для заданного периода центральную тенденцию, разброс и распределение поведения рынка? В этой статье мы покажем именно такой подход и разберем, как статистические методы превращают свечные данные в четкие, практические сигналы.
Двумерные копулы в MQL5 (Часть 1): Реализация гауссовой копулы и t-копулы Стьюдента для моделирования зависимостей
Это первая часть серии статей, посвящённых реализации двумерных копул в MQL5. В статье представлен код, реализующий гауссову копулу и t-копулу Стьюдента. Также рассматриваются основы статистических копул и связанные с ними темы. Код основан на Python-пакете ArbitrageLab от Hudson and Thames.
Разработка инструментария для анализа Price Action (Часть 40): ДНК-профиль рынка
В этой статье рассматривается уникальный профиль каждой валютной пары через призму исторической динамики ее цены. Вдохновляясь концепцией генетической ДНК, которая задает уникальный генетический код каждого живого существа, мы применяем аналогичный подход к рынкам, рассматривая динамику цены как "ДНК" каждой валютной пары. Анализируя такие структурные характеристики, как волатильность, свинги, откаты, всплески и особенности сессий, инструмент выявляет базовый профиль, который отличает одну пару от другой. Этот подход дает более глубокое понимание поведения рынка и помогает трейдерам системно соотносить стратегии с естественными склонностями каждого инструмента.
Статистический арбитраж на основе коинтегрированных акций (заключительная часть): Анализ данных с помощью специализированной БД
В статье рассказывается, как объединить SQLite (OLTP) с DuckDB (OLAP) для обработки данных статистического арбитража. Колоночный движок DuckDB, оператор ASOF JOIN и встроенные функции для работы с массивами ускоряют выполнение основных задач, таких как сопоставление котировок со сделками и RWEC, при этом зафиксировано увеличение скорости от 2 до 23 раз по сравнению с SQLite при работе с большими массивами данных. Вы получаете более простые запросы и более быструю аналитику, при этом исполнение операций по-прежнему осуществляется в SQLite.
Разработка инструментария для анализа Price Action (Часть 39): Автоматизация обнаружения BOS и ChOCh на MQL5
В этой статье представлена Fractal Reaction System – компактная система на MQL5, которая преобразует фрактальные опорные точки в сигналы рыночной структуры, пригодные для практического применения. Используя логику закрытых баров, чтобы избежать перерисовки, советник предупреждает о смене характера (ChOCh) и подтверждает пробои структуры (BOS), рисует сохраняемые графические объекты, а также ведет журнал и выдает алерты по каждому подтвержденному событию (на десктопных и мобильных устройствах, в том числе со звуком). Ниже разберем проектирование алгоритма, примечания по реализации, результаты тестирования и полный код советника, чтобы вы могли самостоятельно скомпилировать, протестировать и запустить данный инструмент.
Разработка инструментария для анализа Price Action (Часть 38): VWAP на основе тикового буфера и модуль расчета дисбаланса на коротком окне
В Части 38 мы создаем для MT5 панель мониторинга промышленного уровня, которая преобразует необработанные тики в практические торговые сигналы. Советник накапливает тиковые данные для расчета тиковой VWAP (Volume Weighted Average Price, средневзвешенной по объему цены), метрики дисбаланса (индикатора потока Flow) на коротком окне и размера позиции на основе ATR. Затем он отображает спред, ATR и индикатор потока в виде столбиков с минимальным мерцанием. Система рассчитывает рекомендуемый размер лота и стоп 1R, а также выдает настраиваемые алерты для узкого спреда, сильного потока и ситуаций с торговым преимуществом. Автоматическая торговля намеренно отключена; основное внимание уделяется надежной генерации сигналов и удобству использования.
Алгоритм Цветовой Гармонии — Color Harmony Algorithm (CHA)
Разбираем алгоритм цветовой гармонии (CHA) — метаэвристику оптимизации, опирающуюся на теорию цветовой гармонии Манселла. Показываем устройство круга тонов, шаблоны гармонии, чередование фаз концентрации и рассеивания, а также роль памяти решений. От теоретического каркаса до рабочей реализации на MQL5 и честного тестирования на стандартном бенчмарке.
Как обучить MLP на признаках марковской цепи в MQL5
Статья описывает двухуровневый индикатор MarkovMLPOscillator: трехсостоянная марковская цепь на истории строит матрицу переходов и формирует 15 вероятностных признаков для каждого бара, а MLP обучается на них и прогнозирует направление через заданный горизонт. Рассмотрены генерация признаков, схема валидации на отложенной выборке и настройки параметров. Результат — интерпретируемый осциллятор с цветовой гистограммой, сглаженным сигналом и отображением текущей матрицы переходов.
Методика рыночного позиционирования по VGT на базе тау Кендалла и дистанционной корреляции
В этой статье мы рассмотрим, как можно использовать взаимодополняющую пару индикаторов для анализа недавней 5-летней истории ETF-фонда Vanguard Information Technology Index Fund. Рассматривая два варианта алгоритмов — тау Кендалла и дистанционная корреляция, — мы стремимся выбрать не только идеальную пару индикаторов для торговли с использованием VGT, но и подходящие пары сигнальных паттернов, сочетающие эти два индикатора.
Нейросети в трейдинге: Оценка риска по несогласованности представлений (Основные компоненты)
В статье реализована адаптация ReGEN-TAD под MQL5: риск трактуется как согласованность двух путей анализа — трансформера (контекст) и рекуррентной сети (динамика). Введён модуль токенизации разности, который формирует токен риска в общем пространстве признаков и передаёт его в последующие решения. Практический итог — готовые блоки для интеграции оценки уверенности в советники и для последующего обучения и тестирования.
Разработка инструментария для анализа Price Action (Часть 37): Индикатор смещения настроений
Рыночные настроения – одна из самых недооцененных, но при этом мощных сил, влияющих на движение цены. В то время как большинство трейдеров полагаются на запаздывающие индикаторы или догадки, советник Sentiment Tilt Meter (STM) преобразует рыночные данные в наглядный визуальный ориентир и в реальном времени показывает, склоняется ли рынок к бычьему или медвежьему сценарию либо остается нейтральным. Это упрощает подтверждение сделок, помогает избегать ложных входов и эффективнее выбирать момент входа в рынок.
Основы байесовского вывода в дискретном и непрерывном случаях: от теории к практической реализации моделей
В статье рассматриваются основы байесовской статистики в дискретном и непрерывном случаях. Мы пройдём путь от классической теоремы Байеса и простых примеров с подбрасыванием монеты до сопряжённых распределений и динамического байесовского обновления, позволяющего проводить анализ котировок в режиме реального времени. На примере бета-биномиальной модели реализован простой индикатор разладки (change point detection), помогающий определять смену рыночного режима.
Алгоритм оптимизации быков — Bull Optimization Algorithm (BOA)
Представляем эволюционный алгоритм без оператора селекции: лучшая особь становится единственным партнёром по скрещиванию для всей популяции, а классическая мутация заменена мультипликативной с самонастраивающимся шагом. В статье разбираем три ключевые идеи, реализуем алгоритм на MQL5 во фреймворке C_AO и проверяем его на стандартном стенде и античитер-тесте — где BOA вплотную приближается к порогу топ-45, но не входит в рейтинг.
От сигнала к сделке через цепочку агентов: LangChain-архитектура поверх MQL5
Описана архитектура, в которой MQL5-советник выполняет только сбор данных и исполнение, а логика вынесена в Python-сервер с тремя агентами LangChain: сигнальным, новостным и риск-менеджером. Агенты последовательно обрабатывают запрос по WebSocket, при отказе любого возвращается hold. Решения и фактический PnL сохраняются в SQLite, формируя память и статистику. Читатель получит схему взаимодействия, протокол команд и подход к обратной связи.
Греки опционов по Блэку — Шоулзу: Гамма и Дельта
Гамма и Дельта измеряют, как стоимость опциона реагирует на изменения цены базового актива. Дельта отражает скорость изменения цены опциона относительно базового актива, а Гамма измеряет, как сама Дельта изменяется по мере движения цены. Совместно они описывают направленную чувствительность и выпуклость опциона — критически важные параметры для динамического хеджирования и торговых стратегий, основанных на волатильности.
MetaTrader 5 и экономический календарь MQL5: как превратить новости в воспроизводимую торговую систему
В статье системно изложен подход к новостной торговле в MetaTrader 5 на базе встроенного экономического календаря: структура данных, функции API, правила синхронизации времени и фильтрация событий. Описаны методы кэширования и инкрементального обновления без перегрузки сервера. Приведён рабочий механизм экспорта истории в ресурс .EX5 для детерминированного тестирования тем же алгоритмом.
Статистический арбитраж на основе коинтегрированных акций (Часть 10): Обнаружение структурных разрывов
В данной статье представлен тест Чоу для выявления структурных разрывов в зависимостях между парами переменных, а также применение метода кумулятивной суммы квадратов (CUSUM) для мониторинга и раннего выявления структурных разрывов. В статье объявление о партнерстве между Nvidia и Intel и заявление правительства США о введении внешнеторговых пошлин приводятся в качестве примеров, иллюстрирующих, соответственно, инверсию наклона и сдвиг пересечения. Предоставляются скрипты на Python для всех тестов.
Интеграция MQL5 с пакетами обработки данных (Часть 5): Адаптивное обучение и гибкость
В этой части основное внимание уделяется созданию гибкой, адаптивной торговой модели, обученной на исторических данных XAUUSD. Мы подготовим ее к экспорту в ONNX и потенциальной интеграции в системы реальной торговли.
Статистический арбитраж на основе коинтегрированных акций (Часть 9): Бэктестирование обновлений весов портфеля
В данной статье описывается использование файлов CSV для тестирования на исторических данных обновлений весов портфеля в стратегии, основанной на возврате к среднему значению и использующей статистический арбитраж на основе коинтегрированных акций. Это включает в себя как заполнение базы данных результатами сравнения собственных векторов в скользящих окнах (RWEC), так и сравнение отчетов по бэктесту. В то же время в статье подробно описывается роль каждого параметра RWEC и его влияние на общий результат бэктеста, а также показывается, как сравнение относительного просадки может помочь нам в дальнейшей оптимизации этих параметров.
Статистический арбитраж на основе коинтегрированных акций (Часть 8): Сравнение собственных векторов на скользящих окнах для ребалансировки портфеля
В этой статье предлагается использовать сравнение собственных векторов со скользящим окном для ранней диагностики дисбаланса и ребалансировки портфеля в рамках стратегии статистического арбитража, основанной на возврате к среднему (mean-reversion) и коинтегрированных акциях. Данный метод противопоставляется традиционной валидации с помощью ADF-теста на внутривыборочных и вневыборочных данных (IS/OOS), показывая, что сдвиги собственных векторов могут сигнализировать о необходимости ребалансировки даже в тех случаях, когда IS/OOS ADF всё ещё указывает на стационарность спреда. Хотя этот метод предназначен в первую очередь для мониторинга торговли в реальном времени, в статье делается вывод, что сравнение собственных векторов также может быть интегрировано в систему скоринга — хотя его реальный вклад в эффективность стратегии ещё предстоит проверить.
Алгоритм оптимизации грифов — Buzzard Optimization Algorithm (BUZOA)
BUZOA — популяционный метаэвристический алгоритм, в котором каждый агент на каждой итерации случайно выбирает одну из трёх тактик охоты: узкий поиск вокруг личного рекорда, классический PSO-шаг к лидеру стаи или полную телепортацию в случайную точку пространства. В статье разбирается реализация алгоритма на MQL5, показывается найденная в оригинальной формулировке ошибка знака коэффициента и приводятся результаты бенчмарка на стандартном тестовом стенде.
Разработка инструментария для анализа Price Action (Часть 35): Обучение и развертывание прогнозных моделей
Исторические данные – вовсе не "мусор", а основа любого надежного рыночного анализа. В этой статье мы шаг за шагом пройдем путь от сбора истории до ее использования для обучения прогностической модели, а затем – до развертывания этой модели для прогнозирования цен в реальном времени. Давайте разберемся, как это сделать.
Статистический арбитраж на основе коинтегрированных акций (Часть 7): Система оценки 2
В данной статье описываются два дополнительных критерия оценки, используемых при отборе корзин акций для торговли в стратегиях возврата к среднему, а точнее — в статистическом арбитраже на основе коинтеграции. Данная статья дополняет предыдущую публикацию, в которой были представлены показатели ликвидности и силы векторов коинтеграции, а также стратегические критерии — временной интервал и период ретроспективы, — за счет включения показателей стабильности векторов коинтеграции и времени возврата к среднему значению (полупериод). В статье приведены результаты бэктеста с применением новых фильтров с комментариями, а также предоставлены файлы, необходимые для его воспроизведения.
Моделирование рынка: Первые шаги на SQL в MQL5 (I)
В сегодняшней статье мы начнём изучать использование SQL в коде MQL5. Мы также рассмотрим, как можно создать базу данных. Или, точнее, как создать файл базы данных в SQLite, используя ресурсы или процедуры, включенные в язык MQL5. Мы также увидим, как создать таблицу, а затем как установить связь между таблицами с помощью первичного и внешнего ключей. Всё это, опять же, с использованием MQL5. Мы увидим, как легко создать код, который в будущем можно будет перенести в другие реализации SQL, используя класс, помогающий скрыть созданную реализацию. И, что самое важное, мы увидим, что в разные моменты мы можем столкнуться с риском того, что при использовании SQL что-то пойдет не так. Это происходит так, потому что в коде MQL5 SQL-код всегда будет помещаться внутри строки.
Популяционные алгоритмы оптимизации: строим защиту от читеров
Проведён повторный прогон алгоритмов на обновлённых функциях и предложен метод быстрой проверки их «честности». Составной тест объединяет пять разных ландшафтов и исключает выигрыш за счёт геометрии отдельных задач, позволяя быстро оценить реальную поисковую способность алгоритма. Прилагается скрипт для предварительной валидации алгоритмов перед применением к оптимизации торговых стратегий.
Как создать и оптимизировать торговую систему на основе циклов (Detrended Price Oscillator — DPO)
В этой статье объясняется, как спроектировать и оптимизировать торговую систему с использованием индикатора «Бестрендовый ценовой осциллятор» (Detrended Price Oscillator, DPO) на MQL5. В ней описывается основная логика индикатора, демонстрирующая, как он определяет краткосрочные циклы, отфильтровывая долгосрочные тенденции. С помощью серии пошаговых примеров и простых стратегий читатели узнают, как его кодировать, определять сигналы входа и выхода, а также проводить тестирование на истории. Наконец, в статье представлены практические методы оптимизации для повышения эффективности и адаптации системы к изменчивым рыночным условиям.
Разработка инструментария для анализа Price Action (Часть 32): Модуль распознавания свечных паттернов на Python (II) – Распознавание с помощью Ta-Lib
В этой статье мы перешли от ручной реализации распознавания свечных паттернов на Python к использованию TA-Lib – библиотеки, распознающей более шестидесяти различных паттернов. Эти формации дают ценную информацию о возможных разворотах рынка и продолжении тренда. Читайте дальше, чтобы узнать больше.
Использование регрессии Ренко-баров с корректировкой ошибок
В статье показан регрессионный подход к прогнозированию Ренко-баров с помощью CatBoost: модель оценивает логарифмическую доходность следующего бара и неопределённость прогноза. Разобран каскад residual-моделей с OOF-валидацией через TimeSeriesSplit, shrinkage и общим early stopping, а также условная коррекция смещения. На EURUSD D1 получено снижение OOF-MAE и около 65% точности по направлению. Приведён рабочий скрипт для MetaTrader 5, формирующий сигнал, размер позиции, SL и TP в единицах кирпича.
Статистический арбитраж на основе коинтегрированных акций (Часть 6): Система оценки
В данной статье мы предлагаем систему оценки стратегий возврата к среднему значению, основанную на статистическом арбитраже коинтегрированных акций. В статье предлагаются критерии, которые варьируются от ликвидности и транзакционных издержек до количества рангов коинтеграции и времени возврата к среднему значению, при этом учитываются стратегические критерии — частота данных (временной интервал) и период обратного обзора для тестов на коинтеграцию, которые оцениваются до того, как будет сформирован итоговый оценочный балл (rank_score). Предоставляются файлы, необходимые для воспроизведения бэктеста, а также приводятся комментарии к его результатам.
Моделирование рынка (Часть 23): Первые шаги на SQL (VI)
В этой статье мы рассмотрим, как выполнить визуализацию и, следовательно, поймем, как структурирована база данных. Это было сделано с помощью анализа внутренней структуры базы данных. Хотя подобные вещи могут показаться излишними, они вполне оправданы, если мы действительно намерены стать администраторами баз данных. Да, есть люди, которые зарабатывают на жизнь, поддерживая и создавая базы данных.
Создание прибыльной торговой системы (Часть 2): Тонкости управления размером позиции
Даже при использовании системы с положительными ожиданиями, на успех или неудачу может повлиять размер позиции. Это ключевой аспект управления рисками — преобразование статистических преимуществ в реальные результаты при одновременной защите вашего капитала.
Статистический арбитраж на основе коинтегрированных акций (Часть 5): Отбор активов
В данной статье предлагается процесс отбора активов для стратегии торговли на основе статистического арбитража с использованием коинтегрированных акций. Система начинается с обычной фильтрации по экономическим факторам, таким как сектор активов и отрасль, и заканчивается составлением перечня критериев для системы оценки. Для каждого статистического теста, использованного в скрининге, был разработан соответствующий класс на языке Python: Коэффициент корреляции Пирсона, коинтеграция Энгл-Грейнджера, коинтеграция Йохансена и стационарность по ADF/KPSS. Эти классы Python сопровождаются личным комментарием автора об использовании ИИ-помощников в разработке программного обеспечения.