Трейдинг с экономическим календарем MQL5 (часть 12): Хранение данных в SQLite и предотвращение повторных сделок
В этой статье мы заменяем встроенный CSV-снимок слоем SQLite, который сохраняет события календаря и идентификаторы сработавших сделок между перезапусками. База данных хранится в общей папке терминала и используется как графиками в реальном времени, так и тестером стратегий, поэтому оба режима читают одни и те же данные без перекомпиляции. Загрузчик по запросу с индикатором выполнения на холсте получает историю из API календаря и сохраняет ее для повторного использования в автономном режиме.
Трейдинг с экономическим календарем MQL5 (Часть 11): Модульная новостная панель на Canvas
Мы перестраиваем информационную панель Экономического календаря MQL5: вместо монолитной панели, основанной на объектах, она становится модульной системой на Canvas, разделённой на четыре файла. В обновлении добавлены две темы оформления — светлая и тёмная, сворачиваемые группы дней, макет с изменяемым размером и прокруткой с пиксельной точностью, маркеры пересмотренных значений, а также обратный отсчёт в реальном времени со всплывающими уведомлениями. Кэш событий-кандидатов и таймер с ускоренной веткой, который перерисовывает только изменившиеся ячейки, повышают отзывчивость и упрощают расширение кодовой базы.
Создание объектно-ориентированного движка инференса ONNX на языке MQL5
В статье рассказывается, как запускать модели, обученные на Python, непосредственно в MetaTrader 5 с помощью функций ONNX терминала. Мы создаем класс MQL5, который инкапсулирует создание сеанса, фиксирует формы входных/выходных тензоров, применяет min-max-нормализацию признаков, чтобы повторять обработку, использованную при обучении, и запускает OnnxRun один раз на каждый бар, чтобы снизить нагрузку на ЦП. В результате получается надежный и удобный в сопровождении канал инференса для графиков в реальном времени и Тестера стратегий без использования сокетов или DLL-библиотек.
Построение системы обнаружения дивергенций: Создание пользовательского индикатора MPO4
Представляем MPO4 — осциллятор на основе рыночного давления, который учитывает тело и направление свечей в контексте текущей волатильности. В статье подробно рассматриваются математические основы индикатора, нормирование значений в ограниченном диапазоне и сглаживание с помощью EMA. Затем создается модуль дивергенций на основе опорных точек, предназначенный для работы без перерисовки. Вы получите полную реализацию на MQL5 и практические рекомендации по интерпретации сигналов, включая сравнение с RSI как альтернативным источником.
Адаптивный индикатор Malaysian Engulfing (Часть 2): Оптимизированный диапазон баров ретеста
В статье к индикатору Malaysian Engulfing добавляется самоадаптивный слой: диапазон баров ретеста оптимизируется с помощью ограниченного полного перебора с оценкой по MFE и MAE. В статье подробно описаны модель данных, вспомогательные процедуры и реализация на MQL5, которая собирает исторические сетапы, рассчитывает MFE/MAE и выбирает лучший параметр. Читатели узнают, как отказаться от ручной настройки и запускать индикатор с параметрами, подходящими для конкретного контекста, на разных символах и таймфреймах.
Как подключить ИИ-агентов к MetaTrader 5 через MCP
В статье показано, как подключить ИИ-агентов напрямую к MetaTrader 5, создав полноценный сервер MCP (Model Context Protocol) на Python. Подробно описаны архитектура, клиентская обёртка MetaTrader 5, обработчики рыночных данных и ордеров, а также регистрация инструментов через stdio, тестирование с помощью MCP Inspector и подключение к таким клиентам, как Claude Desktop или OpenClaw. В результате получается стандартизированный мост для запросов на естественном языке, получения данных в реальном времени и безопасного исполнения ордеров в MetaTrader 5.
За пределами GARCH (Часть III): Построение MMAR и вердикт
Получив во второй части мультифрактальные параметры, в этой статье мы построим полный процесс MMAR. Мы строим мультипликативный каскад торгового времени, генерируем фракционное броуновское движение с помощью алгоритма Дэвиса — Харта на основе БПФ и объединяем оба компонента в X(t) = B_H[theta(t)]. Прогноз волатильности получаем моделированием методом Монте-Карло по 1000 траекториям, а затем сравниваем его с прогнозом GARCH на тех же данных EURUSD на таймфрейме M5. Превосходит ли фрактальная архитектура Мандельброта по качеству прогноза подход Энгла, основанный на условной дисперсии? Третья часть серии из восьми статей, посвященной созданию нативной библиотеки и советника на MQL5.
За пределами GARCH (Часть II): Оценка фрактальной размерности рынков
Опираясь на анализ функции разбиения из первой части, мы подробнее рассмотрим теоретическую основу, прежде чем завершить аналитический пайплайн. Сначала мы подробно и системно разберем показатель Херста: что он измеряет, что говорит о "памяти" рынка и почему важен для мультифрактальной модели доходности активов (MMAR). Затем мы дадим интуитивное объяснение мультифрактальных спектров и выясним, что f(alpha) показывает о неоднородности волатильности. Затем перейдем к реализации: определим функцию масштабирования tau(q), оценим H методом R/S и подгоним мультифрактальный спектр к четырем распределениям-кандидатам. К концу статьи у нас будет полный набор параметров для построения процесса MMAR в третьей части. Вторая часть серии из восьми статей.
За пределами GARCH (Часть I): Сравнение моделей MMAR Мандельброта и GARCH Энгла
В этой статье мы начинаем построение мультифрактальной модели доходности активов (MMAR) на данных EURUSD на таймфрейме M5. Мы загружаем рыночные данные через Python API для MetaTrader5 и анализируем функцию разбиения на неперекрывающихся интервалах, чтобы проверить наличие мультифрактального масштабирования. Результаты проверки позволят сделать эмпирически обоснованный вывод, обладают ли данные фрактальными свойствами. Это необходимый шаг перед построением MMAR и для решения, стоит ли вообще выходить за рамки GARCH.
Использование Экономического календаря MQL5 для фильтрации новостей (Часть 4): Точное тестирование на истории со статическими данными
В этой статье реализован статический источник новостей на основе CSV для Тестера стратегий, позволяющий предварительно загружать и запрашивать исторические экономические события при тестировании на исторических данных. Он заменяет вызовы календаря в реальном времени в режиме тестера быстрым поиском в памяти, при этом логика работы в реальной торговле остается прежней и обеспечивает детерминированные, воспроизводимые результаты с явным контролем над тем, какие события включаются. Это позволяет надежно проверять новостные фильтры, временное удаление стопов и правила блокировки новых сделок.
Использование Экономического календаря MQL5 для фильтрации новостей (Часть 3): Сохранение работы при перезапусках терминала во время новостного окна
В статье представлена устойчивая к перезапуску модель хранения состояния для удаления стопов на время новостей. Состояние приостановки и исходные значения SL/TP для каждой позиции записываются в глобальные переменные терминала, считываются и реконструируются в OnInit() и удаляются после восстановления стопов. Это позволяет советнику продолжить активное окно приостановки после перекомпиляции или перезапуска и восстановить стопы только после окончания новостного окна.
Нейроструктурный торговый движок — NSTE (Часть I): Построение мультиаккаунтной системы с учетом ограничений проп-фирм
В этой статье закладывается архитектура мультиаккаунтной алгоритмической торговой системы, работающей с криптовалютными CFD в MetaTrader 5 с учетом ограничений проп-фирм. В ней определены три основных принципа — фиксированный долларовый риск, один скрипт на счет и централизованная конфигурация, — а затем подробно описаны разделение задач между Python и MQL5, 60-секундный цикл обработки и передача сигналов на основе JSON. В статье приводятся практические методы расчета размера лота, проверки безопасности и шаблоны управления позициями для надежного развертывания.
Использование Экономического календаря MQL5 для фильтрации новостей (Часть 1): Реализация временных окон до и после новостей в MQL5
Мы разработаем новостной фильтр на основе календаря на языке MQL5 без веб-запросов и внешних DLL. В части 1 рассматриваются загрузка и кэширование событий, сопоставление символов с валютами, фильтрация по уровню важности, определение окон до и после новостей, блокировка открытия новых сделок во время активного новостного периода и опциональное закрытие позиций перед новостью. В результате получается настраиваемый защитный механизм, совместимый с требованиями проп-фирм, который сокращает число ошибочных пауз в торговле и защищает входы в сделки в периоды волатильности.
Интеграция внешних приложений с использованием OAuth MQL5 Community
Узнайте, как добавить функцию "Войти с помощью MQL5" в ваше Android-приложение с помощью процесса для кода авторизации OAuth 2.0. В этом руководстве рассматриваются регистрация приложения, эндпоинты, URI перенаправления, Custom Tabs, обработка диплинков, а также бэкенд на PHP, который обменивает код на токен доступа по HTTPS. Вы реализуете аутентификацию реальных пользователей MQL5 и получите доступ к данным их профиля, таким как ранг и репутация.
База данных — это просто (Часть 1): Легковесный ORM-фреймворк для MQL5 на базе SQLite
В данной статье представлен структурированный подход к управлению данными SQLite в MQL5 с помощью ORM-слоя для MetaTrader 5. В нем представлены базовые классы для моделирования сущностей и доступа к базе данных, fluent API для CRUD, хуки рефлексии для OnGet/OnSet, а также макросы для быстрого определения моделей. В практических примерах кода показано создание таблиц, привязка полей, вставка, обновление, выборка и удаление записей. Разработчики получают готовые к повторному использованию типобезопасные компоненты, которые сводят к минимуму однотипный SQL-код.
Пайплайны Codex: от Python до MQL5 для выбора индикаторов — анализ ETF XLF по нескольким кварталам с применением машинного обучения
Мы продолжаем рассматривать, как можно выстроить пайплайн выбора индикаторов при работе с «нетипичным» активом в MetaTrader. MetaTrader 5 в первую очередь используется для торговли на рынке Форекс, и это оправданно с учётом доступной ликвидности; однако аргументы в пользу торговли за пределами этой «зоны комфорта» становятся всё более убедительными — не только благодаря стремительному росту таких платформ, как Robinhood, но и из-за неустанного стремления большинства трейдеров получить преимущество. В этой статье мы рассматриваем ETF XLF, а также завершаем наш обновлённый пайплайн простым MLP.
Разработка инструментария для анализа Price Action (Часть 74): Создание советника MQL5 на основе буферов индикатора
В этой статье реализован советник MQL5, который подключается к индикатору гэпов выходного дня через iCustom() и CopyBuffer() и считывает шесть буферов с сигналами на покупку и продажу, а также уровнями SL/TP. Он проверяет требования брокера к минимальному расстоянию до стоп-уровней, обрабатывает подтверждение закрытым баром и контролирует дублирование сигналов, а также исполняет ордера с настраиваемым магическим числом. Советник также включает механику переноса стоп-лосса при достижении срединного уровня между входом и тейк-профитом, а также процедуру тестирования на исторических данных, позволяющую проверить поведение и адаптировать параметры под вашу конфигурацию.
Разработка инструментария для анализа Price Action (Часть 73): Построение системы торговых сигналов для гэпов выходного дня в MQL5
Мы расширяем инструментарий для работы с гэпами выходного дня индикатором, который преобразует структуру гэпа в торговые сигналы. Когда цена подтверждает возврат обратно в гэп, индикатор отображает стрелки Buy и Sell, устанавливает тейк-профит на противоположной границе и размещает стоп-лосс по экстремумам текущей недели. Он работает без перерисовки, восстанавливает исторические сигналы, обновляется в реальном времени и предоставляет буферы, пригодные для использования советником, с метками входа и уровнями TP/SL.
Моделирование рынка: В единстве — сила (II)
До сих пор приложение, разрабатываемое в рамках этой серии статей, было сосредоточено исключительно на моделировании графической части. Однако, чтобы получить более полную систему, в которой мы сможем протестировать советник в рамках сервиса репликации/моделирования, нам также необходимо смоделировать торговый сервер. Вы заметите, что это моделирование будет включать только самые необходимые элементы. Тем не менее вы, уважаемый читатель, сможете дополнить недостающие части. Поскольку эти дополнительные компоненты не влияют на то, что я хочу показать, у нас уже более чем достаточно для реализации задуманного.
Моделирование рынка: В единстве — сила (I)
Мы подходим к финишной прямой. Разработка системы репликации/моделирования почти завершена. Конечно, нам ещё предстоит доделать кое-что, но по сравнению со всем, что мы уже сделали, реализовать оставшееся будет несложно. Однако всё, что будет показано в этой статье, необходимо как следует усвоить и понять. Поэтому я желаю вам приятного чтения и, прежде всего, получить удовольствие от этого последнего этапа пути.
Пайплайны Codex: от Python к MQL5 для выбора индикаторов — анализ ETF FXI за несколько кварталов
Мы продолжаем рассматривать возможности использования MetaTrader за пределами «зоны комфорта» форекс-трейдинга, обратив внимание на ещё один торгуемый актив — ETF FXI. В отличие от предыдущей статьи, где мы попытались охватить «слишком много», углубившись не только в выбор индикаторов, но и в рассмотрение комбинаций индикаторных паттернов, в этой статье мы сделаем небольшой шаг назад и сосредоточимся в большей степени на выборе индикаторов. Наш конечный продукт в данном случае задуман как своего рода пайплайн, который может помочь рекомендовать индикаторы для различных активов при наличии достаточного объема их ценовой истории.
Моделирование рынка: Position View (XX)
В этой статье мы рассмотрим, как изменить код индикатора позиции, чтобы создать своего рода тень, которая позволит нам увидеть, где в данный момент находится цена, всё ещё актуальная на торговом сервере. Этот механизм призван облегчить планирование операций, в ходе которых мы перемещаем уровни стоп-лосса или тейк-профита. Добавление этой функции, то есть ценовых теней, может показаться чрезвычайно сложной задачей. В этой статье я покажу, что реализовать это можно очень просто и на практике.
Моделирование рынка: Position View (XVIII)
В этой статье я показал, в максимально доступной форме, как можно модифицировать и доработать код, способный решать определённые задачи, при этом минимально изменяя уже существующий код. Мы добавим индикатор объема и одновременно не позволим пользователю или трейдеру удалять объекты, создаваемые индикатором позиции.
Моделирование рынка: Position View (XVII)
В предыдущей статье мы сделали так, чтобы индикатор отображал финансовый результат. Однако не всем нравится использовать этот режим отображения. Причины могут различаться от трейдера к трейдеру, хотя в некоторых случаях они кажутся мне вполне разумными и оправданными. Адаптировать код, чтобы предоставить такую возможность, — отнюдь не одна из самых сложных задач. На самом деле это довольно просто. В этой статье мы рассмотрим, как это сделать.
Автоматизированный риск-менеджмент для прохождения челленджей проп-фирм
В статье рассматривается разработка советника для инструмента GOLD, предназначенного для торговли в условиях проп-фирм: с фильтрами пробоев, мультитаймфреймовым анализом, надежным риск-менеджментом и строгой защитой от просадки. Советник помогает трейдерам проходить челленджи проп-фирм, избегая нарушений правил и стабилизируя исполнение сделок в условиях волатильного рынка.
Моделирование рынка: Position View (XVI)
В этой статье мы внесем необходимые изменения, чтобы индикатор позиции отображал финансовый результат. Таким образом, трейдер сможет получить представление о финансовом результате по открытой позиции. Кроме того, я расскажу вам о том, чего многие не знают, даже те, кто давно использует MQL5: как использовать статические переменные для совместного использования памяти и избежать объявления глобальной переменной в основном коде.
Интеграция MQL5 с пакетами обработки данных (Часть 9): Адаптивная оценка волатильности на основе энтропии
В этой статье представлен сквозной пайплайн: сбор данных MetaTrader 5, создание признаков на основе энтропии, волатильности и тренда, обучение классификатора PyTorch и предоставление прогнозов через API Flask. Советник MQL5 на каждом тике отправляет скользящее окно цен, получает вероятность и режим волатильности, а затем адаптивно рассчитывает размер позиции и расстояние до стоп-лосса. В результате получается ясная схема интеграции инференса машинного обучения с MetaTrader 5.
Моделирование рынка: Position View (XV)
В этой статье я постараюсь как можно проще объяснить, как можно использовать обмен сообщениями между приложениям. Цель в том, чтобы вы могли создать что-то работоспособное максимально простым и эффективным способом, когда это возможно. Не знаю, удастся ли мне донести идею, лежащую в основе этой концепции, поскольку тому, кто сталкивается с ней впервые, её не так-то просто понять. Кроме того, я воспользуюсь случаем, чтобы показать вам, как изменить систему репликации/моделирования, чтобы вы могли отлаживать советник или любой другой код, который разрабатываете. И всё это — столь же просто и прямо.
Интеграция MQL5 с пакетами обработки данных (часть 8): Использование графовых нейронных сетей для выявления зон ликвидности
В этой статье показано, как представить рыночную структуру в MQL5 в виде графа, представив максимумы и минимумы свингов как узлы графа с набором признаков. В статье обучается графовая нейронная сеть для оценки потенциальных зон ликвидности, после чего модель экспортируется в ONNX, а инференс в реальном времени выполняется в советнике. Рассматривается построение пайплайна данных, интеграция модели, визуализация зон на графике и использование сигналов для исполнения сделок по заданным правилам.
Изучение стандартной библиотеки MQL5 (Часть 14): Создание советника для динамического хеджирования с использованием ALGLIB (ap.mqh)
В этой статье представлен ap.mqh, порт ALGLIB для MQL5, и продемонстрировано его использование в многоактивных сценариях работы, требующих надежной линейной алгебры. Рассматривается почему встроенных индикаторов недостаточно, а затем реализуются полиномиальная регрессия, индикатор скользящей корреляционной матрицы и адаптивный оценщик коэффициента хеджа с использованием гребневой регрессии с разложением Холецкого. Практический код показывает, как вычислять z-показатели спреда и согласованно исполнять парные сделки полностью в MetaTrader 5.
Интеграция MQL5 с пакетами обработки данных (Часть 7): Построение многоагентных сред для межсимвольного взаимодействия
В статье представлена полная интеграция Python и MQL5 для многоагентной торговли: получение данных из MT5, расчет индикаторов, решения отдельных агентов и взвешенный консенсус, формирующий единое торговое решение. Сигналы сохраняются в JSON-файле, отдаются через Flask и используются советником MQL5 для исполнения сделок с расчетом объема позиции и уровней SL/TP на основе ATR. Маршруты Flask обеспечивают безопасное управление жизненным циклом и мониторинг состояния.
Интеграция MQL5 с пакетами обработки данных (Часть 6): Объединение рыночной обратной связи и адаптации модели
В этой части рассматривается объединение рыночной обратной связи в реальном времени – результатов текущих сделок, изменений волатильности и сдвигов ликвидности – с адаптивным обучением модели. Это сделает торговую систему отзывчивой и способной к постоянному самосовершенствованию.
Кодирование свечных моделей (Часть 3): Частотный анализ односвечных структур
В данной статье представлена схема частотного анализа закодированных свечных паттернов в MQL5. Преобразуя свечи в буквенные символы, можно анализировать историческое движение цен как статистическую последовательность, а не как визуальный график. Используя пару GBPUSD и золото на нескольких таймфреймах, в этом исследовании мы изучаем частоту появления отдельных типов свечей, выявляем доминирующие рыночные структуры и показываем симметрию между бычьими и медвежьими движениями цен. Результаты закладывают количественную основу для обнаружения паттернов и подготавливают почву для анализа многосвечных последовательностей и их прогностического потенциала в алгоритмических торговых системах.
Создание торговых систем с искусственным интеллектом на MQL5 (Часть 2): Разработка программы с интеграцией ChatGPT и пользовательским интерфейсом
В этой статье разрабатывается программа на языке MQL5 с интеграцией ChatGPT и пользовательским интерфейсом. Она задействует модуль разбора JSON из части 1 для отправки промптов в API OpenAI и отображения ответов на графике MetaTrader 5. Реализуется панель управления с полем ввода, кнопкой отправки и областью отображения ответа. Для пользовательского взаимодействия программа обрабатывает обмен данными с API и перенос текста по строкам.
Изучение стандартной библиотеки MQL5 (Часть 11): Как создать матричный индикатор структуры рынка в MQL5
Научитесь проектировать индикатор в MQL5, который преобразует тренд, импульс и волатильность в единый сырой показатель, используя matrix.mqh (ALGLIB). В статье рассматривается осциллятор с отдельным окном для проверки основной математики, а затем индикатор для основного графика, который отображает стрелки сигналов на покупку и продажу без перерисовки, когда показатель пересекает заданные пользователем пороговые значения. Дополнительный фильтр на основе долгосрочной EMA, минимальный интервал в барах между сигналами и встроенные оповещения делают инструмент практичным для торговли в реальном времени.
Создание торговых систем с искусственным интеллектом на MQL5 (Часть 1): Реализация обработки JSON для API ИИ
В этой статье разрабатывается модуль разбора JSON на языке MQL5 для обмена данными при интеграции с API ИИ. Основное внимание уделяется классу JsonValue для обработки JSON-структур. Реализуются методы сериализации и десериализации JSON-данных с поддержкой различных типов данных, таких как строки, числа и объекты. Это необходимо для взаимодействия с ИИ-сервисами, такими как ChatGPT, и служит основой для будущих торговых систем на базе ИИ, обеспечивая точную обработку данных.
Изучение стандартной библиотеки MQL5 (Часть 10): Канал полиномиальной регрессии
Сегодня мы рассмотрим еще одну составляющую ALGLIB и задействуем её математический потенциал, чтобы создать индикатор на основе полиномиальной регрессии (Polynomial Regression Channel). К концу этой статьи вы получите практические знания о разработке индикаторов с использованием стандартной библиотеки MQL5, а также полностью функциональный, математически обоснованный исходный код индикатора.
Создание торговых систем с искусственным интеллектом на MQL5 (Часть 9): Создание диспетчера сигналов ИИ
Мы превращаем торгового помощника на языке MQL5 с ИИ в систему с диспетчеризацией, которая осуществляет маршрутизацию семи торговых действий через единый центральный диспетчер. Построчный протокол "ключ:значение" ограничивает формат ответа ИИ, а каждому действию сопоставляются рыночные или отложенные ордера и стоп-уровни, адаптированные к конкретному инструменту. Интерфейс на основе канваса (canvas) с редактором промптов и попиксельной подгонкой текста делает сигналы единообразными, проверяемыми и готовыми к отображению на графике.
Создание торговых систем с искусственным интеллектом на MQL5 (Часть 8): Доработка интерфейса с анимацией, метриками времени и инструментами управления ответами
В этой статье мы дорабатываем торговую систему с ИИ на языке MQL5: добавляем в интерфейс анимацию загрузки для этапов подготовки запроса и ожидания ответа (или "размышления"), а также выводим в ответах метрики времени для более наглядной обратной связи. Добавляются инструменты управления ответами: кнопки повторной генерации для повторного обращения к ИИ и возможность экспортировать последний ответ в файл, что делает взаимодействие с системой проще и удобнее.
Возможности Мастера MQL5, которые вам нужно знать (Часть 86): Ускорение доступа к данным с помощью разреженной таблицы в пользовательском классе трейлинга
В этой статье мы перерабатываем ранее опубликованные материалы о тестировании торговых стратегий с помощью Мастера MQL5, уделяя больше внимания качеству, очистке и обработке входных данных. В предыдущих статьях мы рассмотрели множество пользовательских классов сигналов, пригодных для использования в Мастере MQL5. Теперь перейдем к пользовательскому классу трейлинга, поскольку выход из позиции также является важной частью любой торговой системы. Основная тема этой статьи – эффективность работы с данными и запросы диапазона со сложностью O(1). В качестве основных технологий используются MQL5, SQLite и Python с Polars; алгоритм – разреженная таблица, а в качестве фильтра валидации используется индикатор ATR.