От новичка до эксперта: Автоматизация распознавания геометрических паттернов внутри базовых свечей зон ликвидности в MQL5
В статье описывается реализация модуля на MQL5, который анализирует бары младшего таймфрейма внутри каждой базовой свечи зоны ликвидности. Он обнаруживает свинговые точки и по объективным правилам классифицирует внутреннюю структуру: восходящий, нисходящий или симметричный треугольник, прямоугольник, M, W либо неопределенная структура. Индикатор отображает на графике метки геометрических фигур и добавляет название паттерна в алерты, сокращая необходимость ручной проверки на младшем таймфрейме.
От новичка до эксперта: Адаптивное управление рисками в стратегиях на основе ликвидности
В этой статье мы рассмотрим практические и надежные методы управления рисками, специально адаптированные для торговли на основе ликвидности. Вы научитесь защищать позиции во время ретестов, уверенно работать с ложными пробоями и распознавать признаки возможных манипуляций вблизи уровней. К концу статьи вы создадите адаптивный советник со встроенным контролем риска, способный управлять переворотами зон и исполнять стратегически обоснованные отложенные ордера.
От новичка до эксперта: Выявление переворотов зон ликвидности на языке MQL5
В этой статье представлен индикатор на языке MQL5, который обнаруживает перевороты зон ликвидности и управляет ими. Он выявляет зоны предложения и спроса на старших таймфреймах с помощью паттерна "база → импульс", применяет формализованные пороговые значения для пробоя и силы импульса и автоматически переворачивает зоны при изменении структуры. В результате получается динамическая карта поддержки и сопротивления, которая сокращает необходимость ручной перерисовки и дает понятный и практически применимый контекст для оценки сигналов и ретестов.
От новичка до эксперта: Усиление стратегий ликвидности за счет структурного подтверждения на нескольких таймфреймах
Согласованность структур ликвидности на старшем таймфрейме и разворотных паттернов на младшем может существенно повлиять как на вероятность, так и на направление следующего движения цены. Сочетая структурные зоны ликвидности на старших таймфреймах с точными подтверждениями разворота на младших, трейдеры могут точнее выбирать момент входа и повышать общее качество сделок. В этой статье показано, как усовершенствовать торговые стратегии на основе ликвидности с помощью структурного подтверждения на старшем таймфрейме и эффективно реализовать этот подход на языке MQL5.
Пошаговая реализация локальной системы стоп-лоссов на MQL5
В этой статье показано, как создать локальную систему стоп-лоссов в советнике MQL5, которая поддерживает уровни стоп-лосса на стороне терминала. В ней подробно рассматривается логика выполнения, обработчики событий, входные данные и объектно-ориентированный подход с использованием объектов CTrade, CPositionInfo, CHashMap/CHashSet, а также графических объектов. Вам предстоит реализовать одновременное отслеживание нескольких позиций, перемещаемые стоп-уровни, визуальные разделители и метки, а также функции очистки и разрыва соединения для создания практичного инструмента управления рисками.
От новичка до эксперта: Расширение стратегии на основе ликвидности с помощью трендовых фильтров
В статье стратегия на основе ликвидности дополняется простым трендовым фильтром: торговать от зон ликвидности только в направлении тренда, определяемого EMA(50). В ней объясняются правила фильтрации, представлен пригодный для повторного использования класс TrendFilter.mqh и показана его интеграция в советник на языке MQL5, а также сравниваются результаты тестирования исходной стратегии и стратегии с фильтром. Читатели получают четкий ориентир по направлению торговли, возможность сократить избыточную торговлю в контртрендовых фазах и готовые к использованию файлы исходного кода.
Создание индикатора Market Structure Sentinel на языке MQL5
В статье описывается создание индикатора Market Structure Sentinel на языке MQL5, который в режиме реального времени выявляет и визуализирует события в рамках концепций «умных денег» (SMC), включая слом структуры (BOS) и смену характера (CHOCH). В ней объясняются обнаружение свингов, структурная валидация и классификация тренда, а также добавляется компактная мини-панель для отслеживания бычьего или медвежьего тренда либо флэта, что позволяет быстрее интерпретировать ситуацию на графике.
Построение системы обнаружения дивергенций (Часть IV): Создание переиспользуемого модуля обнаружения дивергенций для MQL5
В статье логика обнаружения дивергенций, разработанная в этой серии, выносится в подключаемый файл DivergenceEngine.mqh, который можно повторно использовать в индикаторах и советниках на языке MQL5. В статье подробно описаны архитектура на основе структур, выбор осциллятора (MPO4 или RSI), работа с опорными точками и состоянием, а также минимальный API для доступа к данным. Советник на основе Parabolic SAR демонстрирует подключение модуля: коэффициент ускорения индикатора изменяется в зависимости от обнаруженной дивергенции. Этот пример дает понятную схему, которую можно повторно использовать без дублирования кода.
Интеграция ИИ в три концепции Smart Money (SMC): Ордер-блок (OB), слом структуры (BOS) и гэп справедливой стоимости (FVG)
В этом руководстве описано, как интегрировать обученную модель XGBoost (ONNX) в SMC-советник для оценки торговых сетапов перед их исполнением. Пайплайн на Python размечает исторические события по инструменту XAUUSD и формирует представление из 12 признаков, согласованное с советником. В результате получается воспроизводимый метод обучения, экспорта и встраивания модели, позволяющий советнику программно фильтровать сигналы ордер-блоков (OB), гэпов справедливой стоимости (FVG) и слома структуры (BOS).
Как обнаруживать и нормализовать объекты графика в MQL5 (часть 1): Создание движка обнаружения объектов графика
В этой статье рассматривается интерпретационный разрыв между визуальными объектами графика и алгоритмическим исполнением. Вы создадите системный детектор, который проходит по всем объектам графика, определяет аналитические типы и нормализует их геометрические данные (временные и ценовые координаты) в структурированный массив SChartObjectInfo. В реализации используются низкоуровневые функции MQL5, конвейер "фильтрация — извлечение — сохранение" и тестовый советник (EA), управляемый таймером, что в итоге дает переиспользуемый фреймворк для торговых входных данных на основе правил.
Автоматизация графических паттернов в MQL5 (Часть 1): Мультитаймфреймовый движок для анализа свинговой структуры
В этой статье представлен CSwingEngine — переиспользуемый класс на языке MQL5, который обнаруживает свинговые максимумы и минимумы на H4, присваивает им метки HH, LH, HL или LL и классифицирует рыночную структуру как трендовую или боковую. Свинги всегда определяются на H4 независимо от графика, на котором запущена программа, а каждая точка корректно отображается на младших таймфреймах благодаря штатной привязке к временным координатам типа datetime. Движок предоставляет понятный интерфейс для получения текущего состояния тренда и массива свингов, необходимых для распознавания паттернов с учетом рыночного контекста.
Альтернатива временным барам (Часть 4): Эффективность разных типов баров в трендовых стратегиях и стратегиях возврата к среднему
Обеспечивает ли улучшение статистических свойств доходностей прирост эффективности стратегии? Мы фиксируем число временных баров, тиковых баров, тиковых баров дисбаланса и тиковых баров серий на 60,5 млн тиков EURUSD, затем выполняем метаразметку точек входа по RSI, полосам Боллинджера и ADX/DI и оцениваем результаты с помощью перекрестной проверки с очисткой. Ни одно семейство баров не дает стабильного преимущества; эффективность меняется в узких пределах, а лучший вариант не проходит перестановочный тест. Читатели узнают, как контролировать перекрытие, утечку данных и множественную проверку гипотез в исследованиях баров.
От начального к среднему уровню: Файл шаблона графика (III)
Некоторое время назад я опубликовал статью, которая вызвала большую путаницу, и многие из тех, кто её прочитал, плохо её поняли. Итак, в этой статье мы как раз вернёмся к тому понятию, которое в своё время, казалось, не имело никакого смысла, и объясним его гораздо лучше. То есть мы рассмотрим, как разместить несколько индикаторов в одном подокне так, чтобы их можно было легко читать и понимать.
От начального к среднему уровню: Файл шаблона графика (II)
В статье показано, как применять индикаторы к графикам, созданным с помощью объекта OBJ_CHART, используя шаблоны, когда ChartIndicatorAdd в этом контексте не работает. Мы объясняем, как сохранить шаблон с индикатором, получить идентификатор графика и применить ChartApplyTemplate к нужной цели. Вы научитесь интегрировать индикаторы как ресурс, автоматизировать настройку встроенного графика и поймёте некоторые практические ограничения, например то, что индикаторы не появляются в стандартном окне.
От начального к среднему уровню: Файл шаблона графика (I)
В статье объясняется, как перенести настройки основного графика на встроенный в OBJ_CHART график, учитывая, что наследуется только часть шаблона. Мы покажем, как синхронизировать цвета и свойства, подстраиваться под изменения размера и применять настройки к внутреннему графику, используя идентификатор графика и явные вызовы обновления. Читатель научится предсказуемо воспроизводить внешний вид и поведение основного графика в OBJ_CHART.
От начального к среднему уровню: Объекты и подокна (III)
В этой статье описывается безопасный способ обработки удаления графических объектов: перехват событий, воссоздание объекта и восстановление минимального набора свойств. Мы покажем, как избежать ошибок при работе с указателями, предотвратить нежелательное воссоздание объектов при закрытии и сохранять положение и размеры, обновляя их с помощью DRAG/CHANGE. Таким образом, индикатор остаётся целостным, а пользователь сохраняет часть своих настроек.
От начального к среднему уровню: Объекты и подокна (II)
В этой статье объясняется, как отслеживать и обрабатывать удаление объектов с графика в MQL5 с использованием событий MetaTrader 5. При обнаружении удаления объекта, созданного индикатором, код удаляет соответствующий экземпляр, чтобы избежать несогласованностей и появления оставшихся подокон. В этом подходе используются уникальные имена и файл заголовка, при этом приоритет отдаётся простоте и предсказуемости поведения.
Адаптивный индикатор Malaysian Engulfing (Часть 2): Оптимизированный диапазон баров ретеста
В статье к индикатору Malaysian Engulfing добавляется самоадаптивный слой: диапазон баров ретеста оптимизируется с помощью ограниченного полного перебора с оценкой по MFE и MAE. В статье подробно описаны модель данных, вспомогательные процедуры и реализация на MQL5, которая собирает исторические сетапы, рассчитывает MFE/MAE и выбирает лучший параметр. Читатели узнают, как отказаться от ручной настройки и запускать индикатор с параметрами, подходящими для конкретного контекста, на разных символах и таймфреймах.
От начального к среднему уровню: Объекты и подокна (I)
В статье подробно рассматриваются создание и размещение объекта OBJ_CHART в подокнах, при этом особое внимание уделяется различиям между главным окном и подокнами. Показывается, как интегрировать индикаторы с помощью ресурсов (#resource, ChartIndicatorAdd) и определять нужное подокно по краткому имени индикатора. В результате код становится более стабильным, переносимым и удобным для повторного использования.
От базового к среднему уровню: Ресурсы
В этой статье вы познакомитесь с концепцией, которая во многих случаях может оказаться чрезвычайно полезной и значительно упростить обмен вашими приложениями и проектами. Хотя эту концепцию непросто полностью объяснить в одной статье, того, что будет здесь изложено и объяснено, уже хватит, чтобы в будущем мы смогли сделать многое, в том числе и то, что иначе было бы невозможно. Именно поэтому эта статья ещё не была опубликована: чтобы у вас был вспомогательный материал и начальная база для изучения.
От начального к среднему уровню: Подокна (IV)
В этой статье мы увидим, что не всё так, как многим кажется поначалу. Одна из самых интересных особенностей программирования заключается в том, что мы можем гарантировать, что всё всегда будет именно так, как мы запланировали. Поэтому внимательно прочитайте эту статью, чтобы разобраться в некоторых из самых запутанных понятий, связанных с использованием подокон. Если вы поймёте то, что будет здесь объяснено, вы сможете понять многое из того, что мы будем делать дальше.
От начального к среднему уровню: Подокна (III)
В этом тексте подробно рассматривается использование подокон в индикаторах MQL5: их базовое создание, обнаружение экземпляров и предотвращение дублирования. В нём также рассматриваются INDICATOR_SHORTNAME, запрос сведений об окнах и индикаторах графика, а также различие между отображением на основном графике и в отдельном окне. Здесь также показано, как задать высоту и границы подокна, чтобы стандартизировать интерфейс и упростить размещение объектов.
От начального к среднему уровню: Подокна (II)
В статье подробно рассматривается использование подокон в MetaTrader 5 и показывается, как направление вычислений в OnCalculate влияет на буферы и построение средних. На практике объясняется, как связываются индикаторы с помощью FIRST INDICATOR’S DATA и PREVIOUS INDICATOR’S DATA, каков эффект цепочного удаления зависимых индикаторов и как ведёт себя indicatorseparatewindow. Читатель научится диагностировать проблемы с отображением и создавать индикаторы, которые будут корректно работать в подокнах.
От начального к среднему уровню: Подокна (I)
В этой статье мы начнём разбирать, как работать с подокнами в MetaTrader 5 с помощью MQL5. Это обширная тема с несколькими практическими аспектами, которые могут оказаться непростыми, поэтому мы начнём с краткого введения. И всё же, дорогой читатель, важно, чтобы вы поняли то, о чём мы здесь поговорим, ведь это может сыграть большую роль в вашем будущем.
GoertzelBrain: Адаптивное спектральное обнаружение циклов с помощью ансамбля нейронных сетей в MQL5
GoertzelBrain сочетает спектральный анализ по Гертцелю с ансамблем нейронных сетей, обучаемых в режиме онлайн, чтобы преобразовывать признаки циклов в сигнал подтверждения направления. Индикатор формирует компактный вектор признаков на основе доминирующего периода, амплитуды, уровня достоверности и их динамики, а также локальной волатильности, и выдает значение +1, −1 или 0. В статье приводится полная реализация на языке MQL5, объясняются архитектура и процесс конструирования признаков, а также показано, как использовать индикатор в качестве направленного фильтра.
Свинговые экстремумы и откаты в MQL5 (Часть 3): Определение структурной валидности за рамками простых максимумов и минимумов
В статье представлен советник MQL5, который переводит первичное обнаружение свингов на уровень основанного на правилах модуля структурной валидации. Свинги подтверждаются сломом структуры (break of structure), импульсным смещением, снятием ликвидности или удержанием уровня во времени (time-based respect), после чего связываются с картой ликвидности (liquidity map) и структурной машиной состояний (structural state machine). В результате получаются учитывающие контекст точки входа и стопы, привязанные к подтверждённым уровням, что помогает фильтровать шум и систематизировать исполнение сделок.
От начального к среднему уровню: Технические индикаторы (II)
В этой статье мы покажем, как создать индикатор на MQL5, который рисует несколько скользящих средних на одном графике, сокращая объём дублирующегося кода. Используются iMA, буферы индикатора, CopyBuffer, PlotIndexSetInteger/String и постоянная структура, объединяющая периоды, методы и цвета. Размеры indicatorbuffers и indicatorplots определяются на основе Averange.Size(). Такой подход упрощает сопровождение и позволяет добавлять или удалять скользящие средние, изменяя только один список.
Разработка индикатора рыночной энтропии: торговая система, основанная на теории информации
В статье рассматривается разработка индикатора рыночной энтропии, основанного на принципах теории информации, для измерения неопределённости и информационного содержания финансовых рынков. Применяя к ценовым движениям такие понятия, как энтропия Шеннона, индикатор количественно определяет, находится ли рынок в структурированном (трендовом), переходном или хаотичном состоянии.
От начального к среднему уровню: Технические индикаторы (I)
В этой статье мы рассмотрим основные принципы использования технических индикаторов, встроенных в MetaTrader 5 и поддерживаемых этой платформой. Знание и понимание подобных индикаторов может значительно упростить, ускорить и сделать более эффективной реализацию решения, поскольку вам не придется беспокоиться о необходимых вычислениях. Платформа сама выполняет их за нас.
От начального к среднему уровню: Перегрузка операторов (VI)
Здесь мы реализуем удаление с помощью перегрузки операторов. Без сомнения, эту статью многим придётся изучать довольно долго, чтобы усвоить всё, что здесь будет показано. Хочу напомнить тебе, что то, что мы увидим, — лишь малая и незначительная часть всего того, что мы называем программированием.
Как реализовать прогнозирование с помощью AutoARIMA в MQL5
В статье представлена реализация алгоритма AutoARIMA на языке MQL5, позволяющего строить модели ARIMA без ручной настройки. Метод оценивает d с помощью эвристики на основе дисперсии, подгоняет модель ARMA(p,q) посредством градиентной оптимизации с Adam и выбирает p и q по AICc. Код возвращает одношаговый прогноз цены, полученный путем дифференцирования, оценки модели и восстановления ряда до уровня цены, и может быть сразу вызван для ряда Close.
Автоматизация индикатора рыночной энтропии: Торговая система на основе теории информации
В этой статье представлен советник, автоматизирующий ранее представленную методику рыночной энтропии. Он рассчитывает быструю и медленную энтропию, моментум и состояния сжатия, подтверждает сигналы и исполняет ордера с уровнями SL/TP и опциональным разворотом позиции. В результате получается практичный настраиваемый инструмент, применяющий сигналы на основе теории информации без ручной интерпретации.
От новичка до эксперта: Автоматизация внутридневных стратегий
Мы переводим идею ретеста EMA(50) в советник для внутридневной торговли, основанный на поведении цены. В исследовании формализуются трендовый уклон, взаимодействие с EMA (проколоть/пробить и закрыться), подтверждение реакции и дополнительные фильтры, после чего они реализуются в MQL5 с использованием модульных функций и дескрипторов с безопасным управлением ресурсами. Визуальное тестирование в Тестере стратегий позволяет проверить корректность сигналов. В результате получается понятный шаблон для кодирования дискреционных отскоков.
Свинговые экстремумы и откаты в MQL5 (Часть 2): Автоматизация стратегии с помощью советника
Индикатор свинговых экстремумов и откатов (Swing Extremes and Pullbacks) основан на рыночной структуре младшего таймфрейма и затем согласовывается со старшим таймфреймом. Он выявляет свинговые экстремумы, в которых цена становится статистически уязвимой к развороту. Он визуализирует зоны перерастяжения и отката, позволяя заранее оценить поведение цены при возврате к среднему.
Свинговые экстремумы и откаты в MQL5 (Часть 1): Разработка мультитаймфреймового индикатора
В этой статье мы автоматизируем систему на основе индикатора свинговых экстремумов и откатов, преобразующую необработанное ценовое движение младшего таймфрейма (LTF) в структурированную карту намерений рынка и точно определяющую свинговые максимумы, свинговые минимумы и коррекционные фазы в реальном времени. Благодаря программному отслеживанию микроструктурных сдвигов система позволяет выявлять возможные развороты до их полного развития, превращая шум в практически применимую информацию.
Интеграция внешних приложений с использованием 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-код.
От начального до среднего уровня: Перегрузка операторов (V)
В этой статье мы рассмотрим, как изменить код, чтобы реализовать решение, совершенно отличающееся от того, что многие считают возможным в MQL5. Важное замечание: чтобы правильно понять данный материал, необходимо хорошо усвоить понятия, рассмотренные в предыдущих статьях.
От начального до среднего уровня: Перегрузка операторов (IV)
В этой статье мы сделаем первое приближение к тому, чтобы показать, как можно реализовать перегрузку оператора индексации, а также оператора присваивания, стараясь предложить всем практический и интересный подход. То, что мы здесь увидим, — лишь часть того, что я ещё намерен показать и что напрямую связано с перегрузкой этих операторов.
От начального до среднего уровня: Перегрузка операторов (III)
В этой статье мы рассмотрим, как реализовать перегрузку как логических операторов, так и операторов сравнения. Для этого требуется определённая осторожность и немалая доля внимания. Даже небольшая оплошность при реализации перегрузки этих операторов может привести к тому, что весь код окажется совершенно непригодным для использования. Если в перегрузке возникнут какие-либо проблемы, всю базу данных, созданную на основе результатов, сгенерированных кодом, придётся либо полностью отбросить, либо, как минимум, целиком перепроверить.