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

icon

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

Следите за новыми публикациями и участвуйте в их обсуждении на форуме!

Новая статья
последние | лучшие
preview
Создание пользовательских индикаторов в MQL5 (Часть 8): Интеграция объёма для углублённого анализа рыночного профиля (Market Profile)

Создание пользовательских индикаторов в MQL5 (Часть 8): Интеграция объёма для углублённого анализа рыночного профиля (Market Profile)

В этой статье мы расширяем гибридный индикатор рыночного профиля Time Price Opportunity (TPO) в MQL5 за счёт интеграции данных объёма для расчёта точки контроля по объёму, области стоимости и средневзвешенной по объёму цены с настраиваемыми вариантами подсветки. Система вводит расширенные возможности, такие как определение начального баланса, линии продления ключевых уровней, режим split-профиля и альтернативные TPO-символы, например квадраты или круги, для улучшенного анализа графика на нескольких таймфреймах.
preview
От начального до среднего уровня: Struct (IV)

От начального до среднего уровня: Struct (IV)

В данной статье мы рассмотрим, как создавать так называемый структурный код, в котором весь контекст и способы манипулирования переменными и информацией помещаются в структуру, чтобы создать подходящий контекст для реализации любого кода. Итак, мы рассмотрим необходимость использования приватной (private) части кода, чтобы отделить то, что является общедоступным, от того, что не является таковым, соблюдая тем самым правило инкапсуляции и сохраняя контекст, для которого была создана структура данных.
preview
Автоматизация греков Блэка-Шоулза: Расширенный скальпинг и микроструктурная торговля

Автоматизация греков Блэка-Шоулза: Расширенный скальпинг и микроструктурная торговля

Гамма и Дельта изначально разрабатывались как инструменты управления рисками для хеджирования опционной экспозиции, но со временем они превратились в мощные инструменты для продвинутого скальпинга, моделирования потока ордеров и торговли на основе рыночной микроструктуры. Сегодня они служат индикаторами ценовой чувствительности и поведения ликвидности в режиме реального времени, позволяя трейдерам с удивительной точностью прогнозировать краткосрочную волатильность.
preview
От начального до среднего уровня: Struct (III)

От начального до среднего уровня: Struct (III)

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

Нейросети в трейдинге: Многодоменная архитектура анализа финансовых данных (Окончание)

В статье завершается построение фреймворка MDL и его интеграция в среду MQL5/OpenCL. Реализован объект верхнего уровня, объединяющий признаки, сценарии и задачи в единый вычислительный процесс. Проведено тестирование на исторических данных, показавшее устойчивую работу модели и её способность адаптироваться к изменяющимся рыночным условиям.
preview
Автоматизация торговых стратегий в MQL5 (Часть 29): Создание системы торговли по гармоническому паттерну "Гартли" на основе Price Action

Автоматизация торговых стратегий в MQL5 (Часть 29): Создание системы торговли по гармоническому паттерну "Гартли" на основе Price Action

В этой статье мы разрабатываем систему распознавания гармонических паттернов "Гартли" (Gartley) на языке MQL5, которая определяет бычьи и медвежьи гармонические паттерны "Гартли" с использованием точек разворота и уровней Фибоначчи, запуская сделки с точными уровнями входа, стоп-лосса и тейк-профита. Мы также улучшим визуальное представление паттерна с помощью графических объектов — треугольников, линий тренда и меток, которые чётко отображают структуру паттерна XABCD.
preview
Ординальное кодирование номинальных переменных

Ординальное кодирование номинальных переменных

В настоящей статье мы обсудим и продемонстрируем, как преобразовать номинальные предикторы в числовые форматы, подходящие для алгоритмов машинного обучения, используя как Python, так и MQL5.
preview
Машинное обучение и Data Science (Часть 40): Использование уровней Фибоначчи в данных машинного обучения

Машинное обучение и Data Science (Часть 40): Использование уровней Фибоначчи в данных машинного обучения

Уровни коррекции Фибоначчи — популярный инструмент в техническом анализе. Их используют для определения потенциальных зон разворота. В этой статье мы рассмотрим, как эти уровни коррекции можно преобразовать в целевые переменные для моделей машинного обучения, чтобы помочь им лучше понимать рынок.
preview
Разработка инструментария для анализа Price Action (Часть 30): Советник CCI Zero Line

Разработка инструментария для анализа Price Action (Часть 30): Советник CCI Zero Line

Будущее – за автоматизацией анализа движения цен. В этой статье мы используем индикатор Dual CCI (Commodity Channel Index – индекс товарного канала), стратегию пересечения нулевой линии (Zero Line Crossover), EMA и анализ движения цены, чтобы разработать инструмент, который генерирует торговые сигналы и задает уровни стоп-лосса и тейк-профита с помощью ATR. Прочитайте эту статью, чтобы узнать наш подход к разработке советника CCI Zero Line.
preview
Разработка инструментария для анализа Price Action (Часть 48): Индекс гармонии нескольких таймфреймов с панелью взвешенного смещения

Разработка инструментария для анализа Price Action (Часть 48): Индекс гармонии нескольких таймфреймов с панелью взвешенного смещения

В этой статье представлен инструмент "Multi-Timeframe Harmony Index" – продвинутый советник для MetaTrader 5, который рассчитывает взвешенное смещение рынка по нескольким таймфреймам, сглаживает значения с помощью EMA и выводит результат на аккуратной панели на графике. Он поддерживает настраиваемые алерты и автоматически наносит сигналы покупки и продажи на график, когда значение смещения пересекает значимые пороги. Подходит трейдерам, которые используют анализ нескольких таймфреймов, чтобы соотносить точки входа с общей структурой рынка.
preview
Алгоритм поисковой оптимизации Эбола — Ebola Optimization Search Algorithm (EOSA)

Алгоритм поисковой оптимизации Эбола — Ebola Optimization Search Algorithm (EOSA)

В статье рассматривается алгоритм EOSA, вдохновлённый механизмами распространения вируса Эбола: короткодистанционной передачей через близкий контакт (эксплуатация) и длиннодистанционной передачей через путешествия (исследование). Анализ оригинальной публикации выявил критические проблемы в математических формулах и нереализуемую на практике эпидемиологическую модель, что потребовало существенной переработки алгоритма для получения работоспособной реализации.
preview
Алгоритм Стрекозы — Dragonfly Algorithm (DA)

Алгоритм Стрекозы — Dragonfly Algorithm (DA)

В данной статье рассмотрим алгоритм стрекозы (Dragonfly Algorithm, DA), вдохновлённый коллективным поведением стрекоз в природе — их способностью координировать полёт в стае, избегая столкновений, следуя за добычей и уклоняясь от хищников. Разберём, как пять простых поведенческих правил и адаптивный механизм перехода от исследования к эксплуатации реализуются на MQL5, и проверим алгоритм на нашем тестовом стенде.
preview
Моделирование рынка (Часть 08): Сокеты (II)

Моделирование рынка (Часть 08): Сокеты (II)

Как вам идея создать что-то практичное с помощью сокетов? В сегодняшней статье мы начнем создавать мини-чат. Давайте рассмотрим вместе, как это делается, - это будет очень интересно. Помните, что приведенный здесь код предназначен исключительно для образовательных целей. Не стоит использовать его в коммерческих целях или в готовых приложениях, так как он не обеспечивает безопасности передачи данных и можно увидеть содержимое, передаваемое по сокету.
preview
Разработка инструментария для анализа Price Action (Часть 51): Инновационная технология поиска свечных паттернов на графике

Разработка инструментария для анализа Price Action (Часть 51): Инновационная технология поиска свечных паттернов на графике

Эта статья предназначена для алгоритмических трейдеров, количественных аналитиков и разработчиков MQL5, которые хотят глубже разобраться в распознавании свечных паттернов на практике. В ней подробно рассматривается советник CandlePatternSearch.mq5 – полноценная система для обнаружения, визуализации и отслеживания классических свечных формаций в MetaTrader 5. Помимо детального разбора кода, в статье рассматриваются архитектура решения, логика обнаружения паттернов, интеграция графического интерфейса и механизмы алертов, а также показано, как можно эффективно автоматизировать традиционный анализ Price Action.
preview
Оптимизация Роем Жуков — Beetle Swarm Optimization (BSO)

Оптимизация Роем Жуков — Beetle Swarm Optimization (BSO)

Рассматриваем гибрид BAS+PSO (BSO), где BAS добавляет локальный сигнал направления, а PSO обеспечивает обмен лучшими решениями в рое. Приведены математическая модель, псевдокод, реализация класса на MQL5 и результаты тестирования в типовом стенде. Материал позволяет воспроизвести алгоритм, настроить параметры и понять, как трёхкратные оценки за итерацию отражаются на эффективности.
preview
Как построить мультивалютную netting-сетку с точным CatBoost и swap/carry-слоем в MQL5

Как построить мультивалютную netting-сетку с точным CatBoost и swap/carry-слоем в MQL5

В статье разбирается мультивалютный netting-советник для MetaTrader 5 с валютным графом из 28 пар, набором из 19 M1‑признаков и двумя моделями CatBoost, выполняемыми в MQL5 без упрощений. Показано, как прогнозы управляют сеткой лимитных заявок, режимными фильтрами, инвентарём и swap/carry при учёте брокерских ограничений, а также как обеспечить воспроизводимость через self‑test и проверку совпадения Python и MQL5.
preview
От начального до среднего уровня: Определения (II)

От начального до среднего уровня: Определения (II)

В этой статье мы продолжим знакомство с директивой #define, но на этот раз мы сосредоточимся на второй форме ее использования, то есть на создании макросов. Поскольку данная тема может быть немного сложной, мы решили использовать приложение, которое мы изучаем уже некоторое время. Надеюсь, вам понравится сегодняшняя статья.
preview
Трейдинг с экономическим календарем MQL5 (Часть 4): Обновление новостей в панели управления в реальном времени

Трейдинг с экономическим календарем MQL5 (Часть 4): Обновление новостей в панели управления в реальном времени

В этой статье мы расширим возможности нашей панели экономического календаря, внедрив обновления новостей в реальном времени для поддержания актуальности рыночной информации. Мы интегрируем методы извлечения данных в реальном времени в MQL5 для непрерывного обновления событий на панели управления и повышения отзывчивости интерфейса. Это обновление обеспечивает нам доступ к последним экономическим новостям непосредственно с панели управления, оптимизируя торговые решения на основе самых свежих данных.
preview
Возможности Мастера MQL5, которые вам нужно знать (Часть 74): Использование паттернов Ишимоку и ADX-Wilder с обучением с учителем

Возможности Мастера MQL5, которые вам нужно знать (Часть 74): Использование паттернов Ишимоку и ADX-Wilder с обучением с учителем

В продолжение нашей предыдущей статьи, где мы представили пару индикаторов Ишимоку и ADX, рассмотрим, как эту пару можно улучшить с помощью обучения с учителем. Ишимоку и ADX представляют собой взаимодополняющую пару уровней поддержки/сопротивления и тренда. Наш подход обучения с учителем использует нейронную сеть, которая задействует ядро глубокого спектрального смешения (Deep Spectral Mixture Kernel) для точной настройки прогнозов этой пары индикаторов. Как обычно, это делается в пользовательском файле класса сигналов (signal class), который взаимодействует с Мастером MQL5 для сборки советника.
preview
Статистический арбитраж на коинтегрированных акциях (Часть 2): Советник, тестирование и оптимизация

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

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

Преодоление ограничений машинного обучения (Часть 7): Автоматический выбор стратегии

В этой статье показано, как автоматически определять потенциально прибыльные торговые стратегии с помощью MetaTrader 5. Решения "белого ящика", основанные на неконтролируемой матричной факторизации, быстрее настраиваются, лучше поддаются интерпретации и предоставляют четкие рекомендации относительно того, какие стратегии следует сохранить. Решения "черного ящика", хотя и требуют больше времени, лучше подходят для сложных рыночных условий, которые подходы "белого ящика" могут не учитывать. Присоединяйтесь к нашему обсуждению того, как наши торговые стратегии могут помочь нам тщательно подбирать прибыльные стратегии при любых обстоятельствах.
preview
Сеточный советник на клеточном автомате с онлайн-обучением в MQL5 (Часть III): Живой граф признаков

Сеточный советник на клеточном автомате с онлайн-обучением в MQL5 (Часть III): Живой граф признаков

Третья статья серии вводит обучаемый граф признаков в архитектуре Cellular10K: веса связей feature → feature онлайн усиливаются после верных прогнозов и ослабляются после ошибок. Разбираются мягкая инициализация, шаг message passing, локальное правило обучения в стиле Хебба, ограничение весов, нормировка и decay. Показана интеграция с клеточным автоматом и бинарным предиктором, а также метрики диагностики и практические пороги запуска для контроля переобучения.
preview
Тестер стратегий для Python и MetaTrader 5 (Часть 1): Торговый симулятор

Тестер стратегий для Python и MetaTrader 5 (Часть 1): Торговый симулятор

Модуль MetaTrader 5 для Python, предоставляет удобный способ открывать сделки в приложении MetaTrader 5 с помощью Python, но у него есть серьезная проблема: в нем нет возможностей тестера стратегий, присутствующих в приложении MetaTrader 5. В этой серии статей мы создадим фреймворк для бэктестинга ваших торговых стратегий в средах Python.
preview
Разработка системы репликации (Часть 60): Нажатие кнопки воспроизведения в сервисе (I)

Разработка системы репликации (Часть 60): Нажатие кнопки воспроизведения в сервисе (I)

Мы уже давно работаем только над индикаторами, но теперь пришло время снова заставить сервис работать, и мы видим, как строится график на основе предоставленных данных. Однако, поскольку не всё так просто, придется быть внимательным, чтобы понять то, что ждет нас впереди.
preview
Архитектура системы машинного обучения в MetaTrader 5 (Часть 1): Утечка данных и исправление меток времени

Архитектура системы машинного обучения в MetaTrader 5 (Часть 1): Утечка данных и исправление меток времени

Прежде чем мы сможем даже начать использовать машинное обучение в нашей торговле на MetaTrader 5, крайне важно разобраться с одной из самых недооцененных ловушек — утечкой данных. Эта статья раскрывает, как утечка данных, в частности ловушка с метками времени в MetaTrader 5, может исказить производительность нашей модели и привести к ненадежным торговым сигналам. Углубляясь в механику этой проблемы и предлагая стратегии ее предотвращения, мы прокладываем путь к созданию надежных моделей машинного обучения, которые будут давать достоверные прогнозы в условиях реальной торговли.
preview
От начального до среднего уровня: Индикатор (IV)

От начального до среднего уровня: Индикатор (IV)

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

Переосмысливаем классические стратегии (Часть 14): Анализ нескольких стратегий

В этой статье мы продолжаем построение ансамбля торговых стратегий с использованием генетического оптимизатора MT5 для настройки параметров стратегий. Сегодня мы проанализируем данные в Python, чтобы проверить, сможет ли такая модель лучше предсказывать, какая стратегия окажется более успешной и какая сработает точнее, и окажется ли это эффективнее прямого прогнозирования доходности. Сразу скажу, что тестирование приложения с такой статистической моделью показало резкое ухудшение в результатах. Все дело в генетическом оптимизаторе — к сожалению, он отдает предпочтение коррелированным стратегиям. Поэтому мы пересмотрим метод, чтобы сохранить фиксированные веса голосов и сосредоточить оптимизацию на настройках индикаторов.
preview
Нейросети в трейдинге: Обучение глубоких спайкинговых моделей (Интеграция спайков)

Нейросети в трейдинге: Обучение глубоких спайкинговых моделей (Интеграция спайков)

В статье представлена практическая реализация ключевых компонентов фреймворка SEW-ResNet средствами MQL5. Использование динамических массивов и спайковых механизмов позволяет гибко строить архитектуру модели и эффективно обрабатывать финансовые временные ряды. Предложенные решения показывают, как SEW-ResNet может оптимизировать вычисления и улучшить выделение значимых признаков.
preview
От начального до среднего уровня: События (I)

От начального до среднего уровня: События (I)

Учитывая всё, что было показано до настоящего момента, я думаю, что теперь мы можем начать реализовывать некое приложение для запуска какого-либо символа непосредственно на графике. Однако сначала нам нужно поговорить о довольно запутанном понятии для новичков, а именно о том, что приложения, разработанные на MQL5 и предназначенные для отображения на графике, создаются не так, как мы видели до сих пор. В этой статье мы начнем разбираться в этом немного лучше.
preview
Конвейеры обработки данных (пайплайны) в MQL5

Конвейеры обработки данных (пайплайны) в MQL5

В этой статье рассмотрим ключевой этап подготовки данных для машинного обучения, который быстро приобретает все большее значение. Конвейеры предварительной обработки данных. По сути, это упрощенная последовательность этапов преобразования данных, на которых происходит подготовка исходных данных перед их передачей в модель. Какой бы неинтересной она ни показалась непосвященным на первый взгляд, такая «стандартизация данных» не только экономит время обучения и затраты на выполнение, но и в значительной степени способствует более качественному обобщению. В этой статье сосредоточимся на некоторых функциях предварительной обработки SCIKIT-LEARN и, хотя мы не будем использовать Мастер MQL5, вернемся к нему в последующих статьях.
preview
Разработка торговой стратегии: Метод Butterfly Oscillator

Разработка торговой стратегии: Метод Butterfly Oscillator

В этой статье мы продемонстрировали, как можно преобразовать увлекательную математическую концепцию Butterfly Curve («кривая-бабочка») в практичный торговый инструмент. Мы разработали индикатор Butterfly Oscillator и создали на его основе базовую торговую стратегию. Эта стратегия эффективно сочетает уникальные циклические сигналы осциллятора с традиционным подтверждением тренда на основе скользящих средних, формируя системный подход к выявлению потенциальных точек входа на рынок.
preview
Как заменить WebSocket EA на TradeMux REST в MetaTrader 5

Как заменить WebSocket EA на TradeMux REST в MetaTrader 5

Статья продолжает серию об AI Hedge Fund и снимает три ограничения v4: репутации аналитиков теперь персистентны в SQLite, EA выведен из критического пути исполнения, а сигналы совета пятнадцати рассылаются на несколько брокеров через TradeMux REST API. Логика совета и риск-менеджмента не менялась: Python получает данные через MetaTrader 5 SDK и исполняет ордера напрямую. Результат — устойчивость к перезапускам и масштабирование на несколько терминалов.
preview
Разрабатываем пользовательский индикатор рыночных настроений

Разрабатываем пользовательский индикатор рыночных настроений

В этой статье мы разрабатываем пользовательский индикатор рыночных настроений, который классифицирует рыночные настроения как бычьи, медвежьи, в режиме risk-on, в режиме risk-off или нейтральные. Благодаря анализу нескольких таймфреймов индикатор дает трейдерам более ясное представление об общем рыночном уклоне и краткосрочных подтверждениях.
preview
Разработка системы репликации (Часть 70): Настройка времени (III)

Разработка системы репликации (Часть 70): Настройка времени (III)

В данной статье мы рассмотрим, как правильно и эффективно использовать функцию CustomBookAdd. Несмотря на кажущуюся простоту, она имеет множество нюансов. Например, позволяет сообщить указателю мыши, находится ли пользовательский символ на аукционе, торгуется ли он или рынок закрыт. Представленные здесь материалы предназначены только для обучения. Ни в коем случае нельзя рассматривать это приложение как окончательное, цели которого будут иные, кроме изучения представленных концепций.
preview
Моделирование рынка (Часть 15): Сокеты (IX)

Моделирование рынка (Часть 15): Сокеты (IX)

В этой статье мы расскажем об одном из возможных решений того, что мы пытались показать, то есть как позволить пользователю Excel выполнить действие в MetaTrader 5 без отправки ордеров, открытия или закрытия позиции. Идея заключается в том, что пользователь использует Excel для проведения фундаментального анализа какого-то символа. И что при использовании только Excel, можно указать советнику, работающему в MetaTrader 5, открыть или закрыть определенную позицию.
preview
Разработка инструментария для анализа Price Action (Часть 40): ДНК-профиль рынка

Разработка инструментария для анализа Price Action (Часть 40): ДНК-профиль рынка

В этой статье рассматривается уникальный профиль каждой валютной пары через призму исторической динамики ее цены. Вдохновляясь концепцией генетической ДНК, которая задает уникальный генетический код каждого живого существа, мы применяем аналогичный подход к рынкам, рассматривая динамику цены как "ДНК" каждой валютной пары. Анализируя такие структурные характеристики, как волатильность, свинги, откаты, всплески и особенности сессий, инструмент выявляет базовый профиль, который отличает одну пару от другой. Этот подход дает более глубокое понимание поведения рынка и помогает трейдерам системно соотносить стратегии с естественными склонностями каждого инструмента.
preview
Алгоритм искусственной коронарной циркуляции — Artificial Coronary Circulation System (ACCS)

Алгоритм искусственной коронарной циркуляции — Artificial Coronary Circulation System (ACCS)

Метаэвристический алгоритм, имитирующий рост коронарных артерий в сердце человека для задач оптимизации. Использует принципы ангиогенеза (роста новых сосудов), бифуркации (разветвления) и обрезки слабых ветвей для поиска оптимальных решений в многомерном пространстве. Проверка его эффективности на широком спектре задач принесла неожиданные результаты.
preview
Методика рыночного позиционирования по VGT на базе тау Кендалла и дистанционной корреляции

Методика рыночного позиционирования по VGT на базе тау Кендалла и дистанционной корреляции

В этой статье мы рассмотрим, как можно использовать взаимодополняющую пару индикаторов для анализа недавней 5-летней истории ETF-фонда Vanguard Information Technology Index Fund. Рассматривая два варианта алгоритмов — тау Кендалла и дистанционная корреляция, — мы стремимся выбрать не только идеальную пару индикаторов для торговли с использованием VGT, но и подходящие пары сигнальных паттернов, сочетающие эти два индикатора.
preview
Алгоритм оптимизации быков — Bull Optimization Algorithm (BOA)

Алгоритм оптимизации быков — Bull Optimization Algorithm (BOA)

Представляем эволюционный алгоритм без оператора селекции: лучшая особь становится единственным партнёром по скрещиванию для всей популяции, а классическая мутация заменена мультипликативной с самонастраивающимся шагом. В статье разбираем три ключевые идеи, реализуем алгоритм на MQL5 во фреймворке C_AO и проверяем его на стандартном стенде и античитер-тесте — где BOA вплотную приближается к порогу топ-45, но не входит в рейтинг.
preview
Торговые инструменты на MQL5 (Часть 3): Создание панели сканера по нескольким таймфреймам для стратегической торговли

Торговые инструменты на MQL5 (Часть 3): Создание панели сканера по нескольким таймфреймам для стратегической торговли

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