Jocimar Lopes
Jocimar Lopes
developer в free worker
Jocimar Lopes
Опубликовал статью Low-Frequency Quantitative Strategies in MetaTrader 5 (Part 3): A Regime-Adaptive Mean-Reversion Swing Trading System
Low-Frequency Quantitative Strategies in MetaTrader 5 (Part 3): A Regime-Adaptive Mean-Reversion Swing Trading System

The article describes and codes MR Swing in MQL5, a mean‑reversion swing approach that combines a 200‑day hysteresis channel with Value Charts, DVO, and SVAPO. We document entry/exit rules for bull and bear regimes and show five‑year backtests on six high‑liquidity Nasdaq stocks. The complete EA code and backtest configurations are provided for reproducibility.

Jocimar Lopes
Опубликовал статью Низкочастотные количественные стратегии в MetaTrader 5: (Часть 2) Бэктестинг Lead/Lag-анализа в SQL и MetaTrader 5
Низкочастотные количественные стратегии в MetaTrader 5: (Часть 2) Бэктестинг Lead/Lag-анализа в SQL и MetaTrader 5

В статье описывается полный конвейер, использующий анализ данных для поиска низкочастотных торговых возможностей Lead/Lag. Пошагово строится анализатор Lead/Lag на основе кросс-корреляции, с особым вниманием к самым распространенным ошибкам, которые новички чаще всего допускают при разработке запросов для анализа межактивной диффузии информации. После скрининга десятков коинтегрированных и коррелированных пар выбирается торговая пара-кандидат, оценивается её торговая реализуемость в чистом SQL-бэктесте. После того как пара проходит отбор, стратегия тестируется в MetaTester для оптимизации параметров. Советник с соответствующими настройками бэктеста и входными параметрами оптимизации предоставляется вместе со скриптами Python и SQL.

Jocimar Lopes
Опубликовал статью Низкочастотные количественные стратегии в MetaTrader 5: (Часть 1) Настройка OLAP-ориентированного хранилища данных
Низкочастотные количественные стратегии в MetaTrader 5: (Часть 1) Настройка OLAP-ориентированного хранилища данных

В статье описывается практический конвейер данных для количественного анализа на базе хранилища Parquet, секционирования по схеме Hive и DuckDB. Подробно рассматривается перенос выбранных таблиц SQLite в Parquet, структурирование рыночных данных по источнику, символу, таймфрейму и дате, а также запросы к ним с помощью оконных функций SQL. Пример Golden Cross иллюстрирует оценку будущей доходности по нескольким символам. Прилагаемые скрипты Python отвечают за загрузку данных, преобразование и выполнение.

Jocimar Lopes
Опубликовал статью Статистический арбитраж на основе коинтегрированных акций (заключительная часть): Анализ данных с помощью специализированной БД
Статистический арбитраж на основе коинтегрированных акций (заключительная часть): Анализ данных с помощью специализированной БД

В статье рассказывается, как объединить SQLite (OLTP) с DuckDB (OLAP) для обработки данных статистического арбитража. Колоночный движок DuckDB, оператор ASOF JOIN и встроенные функции для работы с массивами ускоряют выполнение основных задач, таких как сопоставление котировок со сделками и RWEC, при этом зафиксировано увеличение скорости от 2 до 23 раз по сравнению с SQLite при работе с большими массивами данных. Вы получаете более простые запросы и более быструю аналитику, при этом исполнение операций по-прежнему осуществляется в SQLite.

Jocimar Lopes
Опубликовал статью Статистический арбитраж на основе коинтегрированных акций (Часть 10): Обнаружение структурных разрывов
Статистический арбитраж на основе коинтегрированных акций (Часть 10): Обнаружение структурных разрывов

В данной статье представлен тест Чоу для выявления структурных разрывов в зависимостях между парами переменных, а также применение метода кумулятивной суммы квадратов (CUSUM) для мониторинга и раннего выявления структурных разрывов. В статье объявление о партнерстве между Nvidia и Intel и заявление правительства США о введении внешнеторговых пошлин приводятся в качестве примеров, иллюстрирующих, соответственно, инверсию наклона и сдвиг пересечения. Предоставляются скрипты на Python для всех тестов.

Jocimar Lopes
Опубликовал статью Статистический арбитраж на основе коинтегрированных акций (Часть 9): Бэктестирование обновлений весов портфеля
Статистический арбитраж на основе коинтегрированных акций (Часть 9): Бэктестирование обновлений весов портфеля

В данной статье описывается использование файлов CSV для тестирования на исторических данных обновлений весов портфеля в стратегии, основанной на возврате к среднему значению и использующей статистический арбитраж на основе коинтегрированных акций. Это включает в себя как заполнение базы данных результатами сравнения собственных векторов в скользящих окнах (RWEC), так и сравнение отчетов по бэктесту. В то же время в статье подробно описывается роль каждого параметра RWEC и его влияние на общий результат бэктеста, а также показывается, как сравнение относительного просадки может помочь нам в дальнейшей оптимизации этих параметров.

Jocimar Lopes
Опубликовал статью Статистический арбитраж на основе коинтегрированных акций (Часть 8): Сравнение собственных векторов на скользящих окнах для ребалансировки портфеля
Статистический арбитраж на основе коинтегрированных акций (Часть 8): Сравнение собственных векторов на скользящих окнах для ребалансировки портфеля

В этой статье предлагается использовать сравнение собственных векторов со скользящим окном для ранней диагностики дисбаланса и ребалансировки портфеля в рамках стратегии статистического арбитража, основанной на возврате к среднему (mean-reversion) и коинтегрированных акциях. Данный метод противопоставляется традиционной валидации с помощью ADF-теста на внутривыборочных и вневыборочных данных (IS/OOS), показывая, что сдвиги собственных векторов могут сигнализировать о необходимости ребалансировки даже в тех случаях, когда IS/OOS ADF всё ещё указывает на стационарность спреда. Хотя этот метод предназначен в первую очередь для мониторинга торговли в реальном времени, в статье делается вывод, что сравнение собственных векторов также может быть интегрировано в систему скоринга — хотя его реальный вклад в эффективность стратегии ещё предстоит проверить.

Chacha Ian Maroa
Chacha Ian Maroa 2025.12.05
Great article
Jocimar Lopes
Опубликовал статью Статистический арбитраж на основе коинтегрированных акций (Часть 7): Система оценки 2
Статистический арбитраж на основе коинтегрированных акций (Часть 7): Система оценки 2

В данной статье описываются два дополнительных критерия оценки, используемых при отборе корзин акций для торговли в стратегиях возврата к среднему, а точнее — в статистическом арбитраже на основе коинтеграции. Данная статья дополняет предыдущую публикацию, в которой были представлены показатели ликвидности и силы векторов коинтеграции, а также стратегические критерии — временной интервал и период ретроспективы, — за счет включения показателей стабильности векторов коинтеграции и времени возврата к среднему значению (полупериод). В статье приведены результаты бэктеста с применением новых фильтров с комментариями, а также предоставлены файлы, необходимые для его воспроизведения.

Jocimar Lopes
Опубликовал статью Статистический арбитраж на основе коинтегрированных акций (Часть 6): Система оценки
Статистический арбитраж на основе коинтегрированных акций (Часть 6): Система оценки

В данной статье мы предлагаем систему оценки стратегий возврата к среднему значению, основанную на статистическом арбитраже коинтегрированных акций. В статье предлагаются критерии, которые варьируются от ликвидности и транзакционных издержек до количества рангов коинтеграции и времени возврата к среднему значению, при этом учитываются стратегические критерии — частота данных (временной интервал) и период обратного обзора для тестов на коинтеграцию, которые оцениваются до того, как будет сформирован итоговый оценочный балл (rank_score). Предоставляются файлы, необходимые для воспроизведения бэктеста, а также приводятся комментарии к его результатам.

Jocimar Lopes
Опубликовал статью Статистический арбитраж на основе коинтегрированных акций (Часть 5): Отбор активов
Статистический арбитраж на основе коинтегрированных акций (Часть 5): Отбор активов

В данной статье предлагается процесс отбора активов для стратегии торговли на основе статистического арбитража с использованием коинтегрированных акций. Система начинается с обычной фильтрации по экономическим факторам, таким как сектор активов и отрасль, и заканчивается составлением перечня критериев для системы оценки. Для каждого статистического теста, использованного в скрининге, был разработан соответствующий класс на языке Python: Коэффициент корреляции Пирсона, коинтеграция Энгл-Грейнджера, коинтеграция Йохансена и стационарность по ADF/KPSS. Эти классы Python сопровождаются личным комментарием автора об использовании ИИ-помощников в разработке программного обеспечения.

Jocimar Lopes
Опубликовал статью Статистический арбитраж с использованием коинтегрированных акций (Часть 4): Обновление параметров модели в реальном времени
Статистический арбитраж с использованием коинтегрированных акций (Часть 4): Обновление параметров модели в реальном времени

В данной статье описывается простой, но комплексный алгоритм статистического арбитража для торговли корзиной коинтегрированных акций. В него входит полнофункциональный скрипт на языке Python для загрузки и хранения данных; тесты на корреляцию, коинтеграцию и стационарность, а также пример реализации сервиса Metatrader 5 для обновления базы данных и соответствующий советник. Здесь приведены некоторые проектные решения для справки и в целях содействия воспроизведению эксперимента.

Jocimar Lopes
Опубликовал статью Статистический арбитраж на коинтегрированных акциях (Часть 3): Настройка базы данных
Статистический арбитраж на коинтегрированных акциях (Часть 3): Настройка базы данных

В данной статье представлен пример реализации сервиса на MQL5 для обновления вновь созданной базы данных, используемой в качестве источника для анализа данных и для торговли корзиной коинтегрированных акций. Подробно объясняется логика проектирования базы данных, а также приводится описание структуры данных (data dictionary) для справки. Предоставлены скрипты на MQL5 и Python для создания базы данных, инициализации её схемы и загрузки рыночных данных.

Jocimar Lopes
Опубликовал статью Статистический арбитраж на коинтегрированных акциях (Часть 2): Советник, тестирование и оптимизация
Статистический арбитраж на коинтегрированных акциях (Часть 2): Советник, тестирование и оптимизация

В данной статье представлен пример реализации советника для торговли корзиной из четырёх акций компаний, котирующихся на Nasdaq. Сначала акции были отфильтрованы на основе тестов на корреляцию Пирсона. Затем для отфильтрованной группы была проведена проверка на коинтеграцию с помощью тестов Йохансена. Наконец, стационарность коинтегрированного спреда проверялась с помощью тестов ADF и KPSS. Здесь мы рассмотрим некоторые замечания по поводу этого процесса, а также результаты бэктестов после небольшой оптимизации.

Jocimar Lopes
Опубликовал статью Статистический арбитраж на основе коинтегрированных акций (Часть 1): Tесты Энгла — Грейнджера и Йохансена на коинтеграцию
Статистический арбитраж на основе коинтегрированных акций (Часть 1): Tесты Энгла — Грейнджера и Йохансена на коинтеграцию

Эта статья призвана стать понятным и дружелюбным введением для трейдеров в наиболее распространенные тесты на коинтеграцию, а также простым руководством по интерпретации их результатов. Тесты Энгла — Грейнджера и Йохансена позволяют выявлять статистически значимые пары или группы активов, обладающие общей долгосрочной динамикой. Тест Йохансена особенно полезен для портфелей из трех и более активов, так как он рассчитывает силу коинтеграционных векторов для всех инструментов одновременно.

Jocimar Lopes
Опубликовал статью Статистический арбитраж посредством возврата к среднему значению в парной торговле: Обыграем рынок с помощью математики
Статистический арбитраж посредством возврата к среднему значению в парной торговле: Обыграем рынок с помощью математики

Эта статья описывает фундаментальные основы статистического арбитража на уровне портфеля. Ее цель — облегчить понимание принципов статистического арбитража читателям, не обладающим глубокими математическими познаниями, и предложить отправную концептуальную конструкцию. Статья включает в себя работающего экспертного советника, некоторые заметки о его тестировании на исторических данных в пределах одного года, а также соответствующие настройки конфигурации тестирования на исторических данных (файл .ini) для воспроизведения эксперимента.

Ishtiaq Ahmad
Ishtiaq Ahmad 2025.04.11
Mystery solved. 😊😊😊
Jocimar Lopes
Опубликовал статью Разработка MQTT-клиента для MetaTrader 5: методология TDD (финал)
Разработка MQTT-клиента для MetaTrader 5: методология TDD (финал)

Статья является последней частью серии, описывающей этапы разработки нативного MQL5-клиента для протокола MQTT 5.0. Хотя библиотека еще не готова к использованию, в этой части мы будем использовать наш клиент для обновления пользовательского символа с помощью тиков (или цен), полученных от другого брокера. В конце статьи вы найдете дополнительную информацию о текущем состоянии библиотеки и узнаете о том, чего не хватает для ее полного соответствия протоколу MQTT 5.0, о возможном плане действий и о том, как следить за развитием библиотеки и вносить в нее свой вклад.

Jocimar Lopes
Опубликовал статью Разработка MQTT-клиента для MetaTrader 5: методология TDD (Часть 6)
Разработка MQTT-клиента для MetaTrader 5: методология TDD (Часть 6)

Статья является шестой частью серии, описывающей этапы разработки нативного MQL5-клиента для протокола MQTT 5.0. В этой части я опишу основные изменения в нашем первом рефакторинге, получение рабочего проекта наших классов построения пакетов, создание пакетов PUBLISH и PUBACK, а также семантику кодов причин PUBACK.

Jocimar Lopes
Опубликовал статью Разработка MQTT-клиента для MetaTrader 5: методология TDD (Часть 5)
Разработка MQTT-клиента для MetaTrader 5: методология TDD (Часть 5)

Статья является пятой частью серии, описывающей этапы разработки нативного MQL5-клиента для протокола MQTT 5.0. В этой части мы опишем структуру пакетов PUBLISH - как мы устанавливаем их флаги публикации (Publish Flags), кодируем строки названий тем и устанавливаем идентификаторы пакетов, когда это необходимо.

Jocimar Lopes
Опубликовал статью Разработка MQTT-клиента для MetaTrader 5: методология TDD (Часть 4)
Разработка MQTT-клиента для MetaTrader 5: методология TDD (Часть 4)

Статья является четвертой частью серии, описывающей этапы разработки нативного MQL5-клиента для протокола MQTT. В этой части мы рассматриваем свойства MQTT v5.0, их семантику, то, как мы читаем некоторые из них, а также приводим краткий пример того, как свойства можно использовать для расширения протокола.

Jocimar Lopes
Опубликовал статью Разработка MQTT-клиента для MetaTrader 5: методология TDD (Часть 3)
Разработка MQTT-клиента для MetaTrader 5: методология TDD (Часть 3)

Статья является третьей частью серии, описывающей этапы разработки нативного MQL5-клиента для протокола MQTT. В этой части мы подробно описываем применение принципа разработки через тестирование для реализации обмена пакетами CONNECT/CONNACK. В конце этого шага наш клиент ДОЛЖЕН уметь вести себя соответствующим образом при работе с любыми возможными результатами сервера при попытке подключения.

12