Статьи с примерами программирования индикаторов на языке MQL5

icon

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

В статьях подробно объясняются приложенные исходные коды, скачивайте их в редактор MetaEditor и программируйте вместе с автором в процессе чтения.

Новая статья
последние | лучшие
preview
Создание индикатора для моделирования будущих свечей после пересечения EMA в MQL5

Создание индикатора для моделирования будущих свечей после пересечения EMA в MQL5

Пользовательский модуль моделирования будущих свечей обнаруживает пересечения быстрой и медленной EMA и сразу же строит проекцию синтетических свечей после сигнального бара. Он формирует тела и тени свечей по заданным правилам, отрисовывает их с помощью графических объектов и обновляется при каждом новом сигнале или изменении точки привязки. Вы получаете наглядное представление о возможном дальнейшем движении, позволяющее проверять выбранный момент для совершения сделки, визуализировать сценарии и отслеживать отмену сценария прямо на графике.
preview
От новичка до эксперта: Адаптивное управление рисками в стратегиях на основе ликвидности

От новичка до эксперта: Адаптивное управление рисками в стратегиях на основе ликвидности

В этой статье мы рассмотрим практические и надежные методы управления рисками, специально адаптированные для торговли на основе ликвидности. Вы научитесь защищать позиции во время ретестов, уверенно работать с ложными пробоями и распознавать признаки возможных манипуляций вблизи уровней. К концу статьи вы создадите адаптивный советник со встроенным контролем риска, способный управлять переворотами зон и исполнять стратегически обоснованные отложенные ордера.
preview
От новичка до эксперта: Автоматизация распознавания геометрических паттернов внутри базовых свечей зон ликвидности в MQL5

От новичка до эксперта: Автоматизация распознавания геометрических паттернов внутри базовых свечей зон ликвидности в MQL5

В статье описывается реализация модуля на MQL5, который анализирует бары младшего таймфрейма внутри каждой базовой свечи зоны ликвидности. Он обнаруживает свинговые точки и по объективным правилам классифицирует внутреннюю структуру: восходящий, нисходящий или симметричный треугольник, прямоугольник, M, W либо неопределенная структура. Индикатор отображает на графике метки геометрических фигур и добавляет название паттерна в алерты, сокращая необходимость ручной проверки на младшем таймфрейме.
preview
Разработка классического индикатора «Крестики-нолики» на языке MQL5

Разработка классического индикатора «Крестики-нолики» на языке MQL5

В данной статье на языке MQL5 реализован пользовательский индикатор «Крестики-нолики» (Point and Figure, PF), который отображает движение цены в столбцы X/O, используя фиксированный размер клетки и логику разворота через три клетки. Мы определяем базовую цену, преобразуем цены в интервалы клеток, управляем трендами и разворотами, автоматически масштабируем окно индикатора и отображаем символы с помощью объектов, обеспечивая четкое, независимое от времени представление трендов, прорывов и уровней поддержки и сопротивления.
preview
Персистентная гомология в MQL5: Алгоритм приведения и диаграмма персистентности

Персистентная гомология в MQL5: Алгоритм приведения и диаграмма персистентности

Мы завершаем реализацию персистентной гомологии в MQL5, приводя граничную матрицу Вьеториса-Рипса к диаграмме персистентности. В статье реализованы столбцовое приведение над Z/2 (CTDAReduction), контейнер диаграммы с аналитическими методами (CTDADiagram) и фасад CTDA, запускающий шестиэтапный пайплайн одним вызовом. Результаты проверяются сравнением с Ripser до численного совпадения, что позволяет надежно вычислять метрики по диаграммам.
preview
Рыночная микроструктура в MQL5 (Часть 3): Оценка параметра d модели ARFIMA методом GPH

Рыночная микроструктура в MQL5 (Часть 3): Оценка параметра d модели ARFIMA методом GPH

В файл MicroStructure_Foundation.mqh добавлена функция оценки параметра d (ключевого параметра модели ARFIMA), основанная на методе GPH. Функция GPHEstimator() оценивает d по регрессии лог-периодограммы. Функция PopulateARFIMAAnalysis() сохраняет d с показателем достоверности R² и проверяет теоретическую связь H = d + 0,5. Исследование 72 сессий US100 на таймфрейме M1 дало объединенную оценку d = -0,006. Это согласуется с границей случайного блуждания, установленной во второй части.
preview
Создание индикатора профиля объёма на уровнях поддержки и сопротивления в видимой области графика в MQL5

Создание индикатора профиля объёма на уровнях поддержки и сопротивления в видимой области графика в MQL5

Мы создаем индикатор «Профиль объема на уровнях поддержки и сопротивления (SnR)», который адаптируется к текущей видимой области графика в MetaTrader 5. Вы изучите методы определения видимой области графика, динамическую идентификацию SnR, изменение количества ценовых интервалов в зависимости от масштаба, масштабирование объёма в диапазоне от минимума до максимума, а также быструю отрисовку на графике, управляемую событием OnChartEvent. Данный подход отражает относительную значимость уровней SnR в зависимости от объема, позволяя сосредоточить внимание на графике на зонах, где возможны значимые ценовые реакции.
preview
Создание индикатора EquiVolume на языке MQL5

Создание индикатора EquiVolume на языке MQL5

Мы реализуем в MQL5 индикатор EquiVolume, который преобразует стандартные свечи в прямоугольники, ширина которых определяется объёмом торгов. Процесс включает выбор типа объёма, определение максимального объёма в диапазоне обратного просмотра, нормализацию всех значений относительно него и преобразование их в пропорциональную ширину прямоугольников. В результате на графике в MetaTrader 5 формируется структура, которая наглядно отображает интенсивность торговой активности наряду с движением цены.
preview
Как выявлять ликвидность на круглых ценовых уровнях в MQL5

Как выявлять ликвидность на круглых ценовых уровнях в MQL5

В статье представлен метод обнаружения психологических круглых уровней на языке MQL5: цены преобразуются в строки, после чего подсчитываются конечные нули (ZeroSize). В ней излагается теория институциональной ликвидности на целочисленных уровнях, объясняется логика GetZeroCount с нормализацией по размеру тика для предотвращения ошибок вычислений с плавающей точкой и подробно описывается иерархическая визуализация. Примеры для рынка Forex, металлов и криптовалют, а также фильтры по таймфреймам и входные параметры показывают, как на практике использовать совпадение факторов и базовые механизмы управления рисками.
preview
Пакетный подход к разработке на языке MQL5 с помощью KnitPkg

Пакетный подход к разработке на языке MQL5 с помощью KnitPkg

В статье предлагается подход, который помогает повысить надежность продуктов для MetaTrader, создаваемых на MQL, и эффективность разработки за счет повторно используемых "пакетов", которыми управляет KnitPkg — менеджер проектов для MQL5/MQL4. Пакет можно использовать как составной элемент других пакетов или как основу для конечных артефактов, запускаемых непосредственно на платформе MetaTrader, например советников, индикаторов и других программ.
preview
Создание интерактивного индикатора профиля объема AnchorFlow (MTF) на языке MQL5

Создание интерактивного индикатора профиля объема AnchorFlow (MTF) на языке MQL5

Мы реализуем интерактивный мультитаймфреймовый (MTF) профиль объема с якорной привязкой на языке MQL5 для MetaTrader 5. Индикатор строит профиль текущего таймфрейма на основном графике и профиль старшего таймфрейма (HTF) в подокне индикатора; оба профиля согласованы по положению общей линии с якорной привязкой и видимому диапазону. Вы освоите настройка количества ценовых интервалов (бинов) профиля с помощью клавиатуры (двойное нажатие клавиши E или S), надежную проверку таймфреймов, обновления с учетом видимой области графика и восстановление графических объектов, чтобы организовать надежную, синхронизированную работу с объемами.
preview
Создание традиционного индикатора Ренко с наложением на график в MQL5

Создание традиционного индикатора Ренко с наложением на график в MQL5

Создайте в MQL5 традиционный индикатор Ренко, который преобразует цены закрытия свечей в кирпичи фиксированного размера и отображает их на основном графике. Мы рассчитываем движение от цены закрытия последнего кирпича, создаем новые кирпичи заданного пользователем размера, подтверждаем развороты с помощью правила двух кирпичей, храним цены закрытия кирпичей в динамическом массиве и отображаем прямоугольники для визуализации тренда в режиме реального времени.
preview
Форма ценового ряда: Введение в топологический анализ данных и вложение Такенса в MQL5

Форма ценового ряда: Введение в топологический анализ данных и вложение Такенса в MQL5

В статье представлены практические основы анализа формы ценовых рядов в MQL5. Реализовано вложение Такенса с временной задержкой для построения облака точек в фазовом пространстве, а также вычисление полной матрицы попарных расстояний с возможностью выбора нормы. Классы CTDAPointCloud и CTDADistance сопровождаются демонстрационным скриптом, который выполняет вложение данных графика и выводит результаты, подготавливая входные данные для дальнейшей обработки топологическими инструментами.
preview
Фильтрация Вьеториса — Рипса в MQL5: Построение симплексов и граничной матрицы

Фильтрация Вьеториса — Рипса в MQL5: Построение симплексов и граничной матрицы

Мы преобразуем облако точек, построенное с помощью вложения ценового ряда, в фильтрацию Вьеториса — Рипса и соответствующую ей граничную матрицу. В статье вершины, ребра и треугольники перечисляются с указанием значений фильтрации и сортируются в порядке добавления в фильтрацию; также создаются таблицы поиска вершин и ребер за время O(1). Вы получаете классы CTDARips и CTDABoundary на MQL5, а также разреженную граничную матрицу над Z/2, пригодную для последующей редукции при вычислении персистентности.
preview
Создание пользовательских индикаторов для начинающих (Часть 1): Индикатор SuperTrend

Создание пользовательских индикаторов для начинающих (Часть 1): Индикатор SuperTrend

В данной статье описывается создание надежного индикатора SuperTrend на MQL5 с использованием полос на основе ATR, механизма фиксации полосы и строгого соблюдения индексации как в таймсериях, что позволяет избежать скрытых ошибок рекурсивного расчета и перерисовки на закрытых барах. Мы рассмотрим привязку буферов, управление хэндлом индикатора ATR, задание начальных значений и логику подтверждения стрелок. Сопутствующий торговый советник (EA) демонстрирует практическую интеграцию
preview
Как обнаруживать и нормализовать объекты графика в MQL5 (Часть 2): Сбор и структурирование данных из сложных аналитических объектов

Как обнаруживать и нормализовать объекты графика в MQL5 (Часть 2): Сбор и структурирование данных из сложных аналитических объектов

Нарисованные вручную аналитические объекты, такие как инструменты Фибоначчи и вилы Эндрюса, не видны автоматизированной торговой логике. В статье предлагается расширение базового детектора, позволяющее извлекать опорные точки, массивы уровней и геометрические смещения из сложных объектов. Вам предстоит реализовать многократно используемый сборщик, который нормализует необработанные данные графика, преобразуя их в структурированные массивы в памяти для принятия решений в рамках торговой стратегии.
preview
Конструирование признаков для машинного обучения (Часть 12): Фрактальные признаки в MQL5

Конструирование признаков для машинного обучения (Часть 12): Фрактальные признаки в MQL5

При прямом переносе детектора фракталов на MQL5 каждый паттерн записывается на центральном баре, поэтому буфер, считываемый советником (EA), содержит значение, которое стало доступно лишь на n баров позже. Мы реализуем CFractalFeatures.mqh с методом ProcessBar для побарной обработки и методом Compute для пересчёта всего ряда; реализация включает обнаружение фракталов, оценку их силы относительно фиксированного или масштабируемого по волатильности минимального порога силы, кольцевой буфер событий для уровней поддержки и сопротивления, а также сигналы пробоя с фильтрацией по тренду. Результат — восемнадцать буферов, значения в которых публикуются на баре подтверждения и проверены на соответствие эталонной реализации на Python с точностью до 1e-13.
preview
Конструирование признаков для машинного обучения (Часть 13): Признаки на основе сканирования трендов в Python

Конструирование признаков для машинного обучения (Часть 13): Признаки на основе сканирования трендов в Python

Сканирование трендов поддерживает как окна, направленные в будущее, так и окна, направленные в прошлое, а режим разметки по умолчанию небезопасен для вычисления признаков: он использует будущие данные и на случайных блужданиях повышает долю совпадений с направлением следующего бара значительно выше случайного уровня. Мы предлагаем специальную функцию-обертку get_trend_scanning_features, которая принудительно задает каузальный режим вычислений и возвращает только window, slope, t_value и rsquared. Во втором анализе количественно оцениваются ошибки, возникающие при применении используемого по умолчанию логарифмического преобразования к рядам, допускающим отрицательные значения.
preview
Конструирование признаков для машинного обучения (Часть 14): Признаки на основе сканирования трендов в MQL5

Конструирование признаков для машинного обучения (Часть 14): Признаки на основе сканирования трендов в MQL5

При наивном переносе вычисления признаков сканирования трендов на MQL5 каждое окно-кандидат пересчитывается на каждом баре с общей вычислительной сложностью O(H·L). В статье представлен файл CTrendScanningFeatures.mqh, в котором для каждого горизонта поддерживаются три обновляемые суммы с обновлением за O(1) на бар; результаты проверены по эталонной реализации на Python. Индикатор предоставляет четыре каузальных буфера — window, slope, t_value, rsquared — на баре подтверждения и исправляет инверсию знака, присутствующую в исходном обратном режиме разметки.
preview
Создание индикатора профиля объема с перекрестием на MQL5

Создание индикатора профиля объема с перекрестием на MQL5

Мы реализуем интерактивный индикатор профиля объема с перекрестием на MQL5 для MetaTrader 5. С помощью перекрестия, управляемого перетаскиванием с зажатой правой кнопкой мыши, вы выделяете область графика; затем индикатор формирует адаптивные ценовые интервалы, накапливает тиковый или реальный объем, определяет уровень максимального объема (POC) и отображает профиль на графике. Вы попрактикуетесь в организации взаимодействия на основе OnChartEvent(), преобразовании координат курсора в координаты времени и цены, а также в использовании моделей исходной цены (цена закрытия, медианная цена, типичная цена, взвешенная цена закрытия, OHLC4) для анализа объема по запросу.
preview
Создание инструмента воспроизведения баров на MQL5

Создание инструмента воспроизведения баров на MQL5

В этой статье рассказывается, как создать на MQL5 для MetaTrader 5 интерактивный инструмент воспроизведения баров, который отображает исторические свечи по одной, не раскрывая будущих данных. Вы реализуете пользовательскую отрисовку свечей с помощью DRAW_COLOR_CANDLES, событийно-ориентированный механизм воспроизведения с обработчиками OnChartEvent и OnTimer, панель управления с кнопкой «Воспроизведение/Пауза», перетаскиваемый якорь воспроизведения и имитационную торговлю с кнопками «Buy» и «Sell» и линиями стоп-лосса (SL) и тейк-профита (TP). При этом активный бар будет оставаться в видимой области графика, чтобы вы могли отрабатывать навыки дискреционного анализа и исполнения сделок.
preview
Создание объектно-ориентированного расчетного модуля сессионного VWAP на MQL5

Создание объектно-ориентированного расчетного модуля сессионного VWAP на MQL5

В этой статье показано, как реализовать сессионный VWAP на MQL5 в виде пригодного для повторного использования подключаемого класса, который строго сбрасывает накопленные значения в полночь по времени брокера. Расчетный модуль вычисляет VWAP и взвешенные по объему полосы отклонения только по закрытым барам и задает временную привязку накопления с помощью MqlDateTime, чтобы избежать искажений из-за отсутствующих свечей. Вспомогательный индикатор отображает базовую линию и полосы, а советник считывает сигналы один раз на бар, что обеспечивает согласованное выполнение, экономное использование ресурсов процессора и надежное тестирование.