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

icon

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

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

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

Как обучить MLP на признаках марковской цепи в MQL5

Статья описывает двухуровневый индикатор MarkovMLPOscillator: трехсостоянная марковская цепь на истории строит матрицу переходов и формирует 15 вероятностных признаков для каждого бара, а MLP обучается на них и прогнозирует направление через заданный горизонт. Рассмотрены генерация признаков, схема валидации на отложенной выборке и настройки параметров. Результат — интерпретируемый осциллятор с цветовой гистограммой, сглаженным сигналом и отображением текущей матрицы переходов.
preview
Разработка системы репликации (Часть 46): Проект Chart Trade (V)

Разработка системы репликации (Часть 46): Проект Chart Trade (V)

Устали тратить время на поиск того самого файла, который необходим для работы вашего приложения? Как насчет того, чтобы включить все в исполняемый файл? Так вы больше не будете тратить время на поиск необходимого. Знаю, что многие пользуются именно такой формой распространения и хранения вещей, но есть гораздо более подходящий способ. По крайней мере, что касается распространения исполняемых файлов и их хранения. Метод, который будет здесь представлен, может оказаться очень полезным, так как в качестве отличного помощника вы сможете использовать сам MetaTrader 5, а также MQL5. И это не так уж трудно и сложно для понимания.
preview
Разработка инструментария для анализа Price Action (Часть 31): Модуль распознавания свечных паттернов на Python (I) – ручное распознавание

Разработка инструментария для анализа Price Action (Часть 31): Модуль распознавания свечных паттернов на Python (I) – ручное распознавание

Свечные паттерны лежат в основе торговли Price Action и дают ценные сигналы о возможном развороте рынка или продолжении тренда. Представьте надежный инструмент, который постоянно отслеживает каждый новый бар, выявляет ключевые формации, такие как паттерны поглощения, молоты, доджи и звезды, и сразу уведомляет вас, когда обнаруживает значимый торговый сетап. Именно такой функционал мы и разработали. Независимо от того, новичок вы или опытный трейдер, эта система выдает оповещения в реальном времени о свечных паттернах, позволяя открывать сделки увереннее и эффективнее. Читайте дальше, чтобы узнать, как это работает и как может улучшить вашу торговую стратегию.
preview
Алгоритм сверчков — Cricket Algorithm (CA)

Алгоритм сверчков — Cricket Algorithm (CA)

В статье рассматривается алгоритм сверчков (Cricket Algorithm) - метаэвристический метод оптимизации, объединяющий элементы алгоритмов летучих мышей и светлячков с физическими законами распространения звука в атмосфере. Алгоритм моделирует поведение сверчков, ориентирующихся на стрекотание сородичей, используя закон Долбира и формулы акустики для управления поиском оптимальных решений.
preview
От матриц к модели: Как запустить ML-пайплайн в MQL5 и довести его до ONNX

От матриц к модели: Как запустить ML-пайплайн в MQL5 и довести его до ONNX

Показано, как организовать согласованный ML-конвейер в MetaTrader 5 с разделением ролей: Python обучает и экспортирует модель в ONNX, MQL5 воспроизводит нормализацию и PCA через matrix/vector и выполняет инференс. Такой подход делает входы модели стабильными и проверяемыми, а тестер стратегий MetaTrader 5 даёт метрики для анализа поведения системы.
preview
Разрабатываем мультивалютный советник (Часть 32): Секреты шага создания проекта оптимизации (II)

Разрабатываем мультивалютный советник (Часть 32): Секреты шага создания проекта оптимизации (II)

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

Нейросети в трейдинге: Гибридные модели прогнозирования с управляемой смесью распределений (Окончание)

В статье представлена адаптированная реализация фреймворка Lattice для анализа и прогнозирования рыночной динамики на реальных данных. Показано, как интеграция низко- и высокочастотных модулей, архетипов и адаптивного суммирования обеспечивает устойчивость модели и точность прогнозов.
preview
От начального до среднего уровня: Приоритеты операторов

От начального до среднего уровня: Приоритеты операторов

Это, несомненно, самый сложный вопрос, который можно объяснить исключительно теоретически. Поэтому я советую вам попрактиковаться с материалами, которые будут показаны здесь. Хотя на первый взгляд всё может показаться простым, данный вопрос с операторами можно понять только на практике в сочетании с постоянным изучением.
preview
Создание прибыльной торговой системы (Часть 2): Тонкости управления размером позиции

Создание прибыльной торговой системы (Часть 2): Тонкости управления размером позиции

Даже при использовании системы с положительными ожиданиями, на успех или неудачу может повлиять размер позиции. Это ключевой аспект управления рисками — преобразование статистических преимуществ в реальные результаты при одновременной защите вашего капитала.
preview
Автоматизация торговых стратегий в MQL5 (Часть 27): Выявление и визуализация гармонического паттерна "Краб" на основе Price Action

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

В этой статье мы разрабатываем систему распознавания гармонических паттернов "Краб" на языке MQL5, которая определяет бычьи и медвежьи гармонические паттерны "Краб" с использованием точек разворота и уровней Фибоначчи, запуская сделки с точными уровнями входа, стоп-лосса и тейк-профита. Мы добавляем визуальное представление с помощью графических объектов, таких как треугольники и линии тренда, для отображения структуры паттерна XABCD и торговых уровней.
preview
Фундаментальные предобученные модели в трейдинге: прогнозирование временных рядов с TimesFM 2.5 от Google в MetaTrader 5

Фундаментальные предобученные модели в трейдинге: прогнозирование временных рядов с TimesFM 2.5 от Google в MetaTrader 5

Прогнозирование временных рядов в трейдинге прошло путь от традиционных статистических моделей, таких как ARIMA, к подходам глубокого обучения, но оба варианта требуют сложной настройки и обучения. Вдохновленная достижениями NLP, модель Google TimesFM предлагает фундаментальную предобученную модель для временных рядов, способную давать сильные прогнозы даже без обучения под конкретную задачу. Для трейдеров это особенно ценно: модель можно эффективно дообучать на собственных данных с помощью легких методов вроде LoRA, снижая переобучение и одновременно адаптируясь к меняющимся рыночным условиям.
preview
Управление позициями: Безопасный пирамидинг с единым стопом в MQL5

Управление позициями: Безопасный пирамидинг с единым стопом в MQL5

В этой статье представлен CPyramidEngine – переиспользуемый класс на языке MQL5, который добавляет в любой советник дисциплинированное пирамидирование и требует для интеграции всего около шести изменений в коде. Движок обеспечивает соблюдение трех ограничений: размеры лотов должны строго уменьшаться, единый стоп – сдвигаться после каждого добавления, а каждая модификация – проходить проверку на уровне брокера. В статье разбираются типичные сценарии отказа наивных реализаций и показывается, как по мере добавления позиций сохранять общий риск по счету измеримым и контролируемым.
preview
Моделирование рынка (Часть 11): Сокеты (V)

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

Мы приступаем к реализации связи между Excel и MetaTrader 5, но сначала необходимо понять некоторые важные моменты, так вам не придется ломать голову, пытаясь понять, почему что-то работает или нет. И прежде, чем вы нахмуритесь, глядя на интеграцию Python и Excel, давайте посмотрим, как с помощью xlwings можно (в некоторой степени) управлять MetaTrader 5 через Excel. То, что мы покажем здесь, будет в основном сконцентрировано на образовательных задачах. Но не думайте, что мы можем делать только то, что будет рассмотрено здесь.
preview
Внедрение в MQL5 практических модулей из других языков (Часть 04): Модули time, date и datetime из Python

Внедрение в MQL5 практических модулей из других языков (Часть 04): Модули time, date и datetime из Python

В отличие от MQL5, язык программирования Python предлагает контроль и гибкость, когда речь заходит о работе со временем и управлении им. В этой статье мы реализуем модули, аналогичные модулям в языке MQL5 для более удобной обработки дат и времени, как в Python.
preview
Нейросети в трейдинге: Модели многократного уточнения прогнозов (Окончание)

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

Представляем фреймворк RAFT — мощный инструмент для анализа и прогнозирования финансовых временных рядов. Его гибкая и оптимизированная архитектура обеспечивает точность прогнозов, стабильность работы и ускоряет обработку данных. RAFT снижает риски ошибок и облегчает создание эффективных торговых стратегий.
preview
Как реализовать R/S-анализ и индикатор Хёрста в MQL5

Как реализовать R/S-анализ и индикатор Хёрста в MQL5

Индикатор показателя Хёрста для MQL5 реализован на основе R/S-анализа с OLS-регрессией в log-log пространстве. Теоретическая опора — результаты Gatheral–Jaisson–Rosenbaum (2014), согласно которым волатильность — дробное броуновское движение с H ≈ 0.10. Индикатор оценивает H в скользящем окне, выделяет антиперсистентный (H < 0.3), нейтральный и трендовый (H > 0.5) режимы, окрашивает линию и подаёт алерт при смене режима, помогая выбирать тип стратегии и управлять риском.
preview
Моделирование рынка (Часть 16): Сокеты (X)

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

Мы близки к завершению данного испытания. Однако, прежде чем приступить, я хочу, чтобы вы попытались понять эти две статьи, данную и предыдущую. Так вы действительно поймете следующую статью, в которой я рассмотрю исключительно ту часть, которая касается программирования на MQL5. Но я также постараюсь сделать её понятной. Если вы не понимаете эти две последние статьи, то вам будет тяжело понять и следующую, потому что материалы накапливаются. Чем больше вещей нужно сделать, тем больше нужно создать и понять для достижения цели.
preview
Управление рисками (Часть 4): Завершение ключевых методов класса

Управление рисками (Часть 4): Завершение ключевых методов класса

Эта статья — четвертая часть нашей серии статей об управлении рисками в MQL5, где мы продолжаем изучать продвинутые методы защиты и оптимизации торговых стратегий. Заложив важные основы в предыдущих статьях, теперь мы сосредоточимся на завершении всех оставшихся методов, которые были отложены в третьей части, включая функции для проверки достижения определенных уровней прибыли или убытков. Кроме того, в статье будут представлены новые ключевые события, обеспечивающие более точное и гибкое управление.
preview
От начального до среднего уровня: Операторы BREAK и CONTINUE

От начального до среднего уровня: Операторы BREAK и CONTINUE

В данной статье мы рассмотрим, как использовать операторы RETURN, BREAK и CONTINUE в цикле. Понимание того, что делает каждый из этих операторов в потоке выполнения цикла, очень важно для работы с более сложными приложениями. Представленные здесь материалы предназначены только для обучения. Ни в коем случае не рассматривайте его как окончательное приложение, целью которого не является изучение представленных концепций.
preview
Разработка инструментария для анализа Price Action (Часть 24): Инструмент количественного анализа Price Action

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

Свечные паттерны дают ценную информацию о возможном движении рынка. Одни свечи сигнализируют о продолжении текущего тренда, а другие предвещают разворот – в зависимости от того, где именно они формируются в структуре движения цены. В этой статье представлен советник, который автоматически определяет четыре ключевые свечные формации. В разделах ниже вы узнаете, как этот инструмент может улучшить ваш анализ Price Action.
preview
Разработка пользовательского индикатора матрицы эффективности торгового счёта

Разработка пользовательского индикатора матрицы эффективности торгового счёта

Этот индикатор выступает в роли средства контроля за соблюдением дисциплины, отслеживая в режиме реального времени состояние счета, прибыль/убыток и просадку и отображая панель показателей эффективности. Он может помочь трейдерам сохранять преемственность, избегать чрезмерной торговли и соблюдать правила отбора, установленные проп-трейдинговыми фирмами.
preview
От начального до среднего уровня: Операторы

От начального до среднего уровня: Операторы

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

Создание самооптимизирующихся советников на MQL5 (Часть 6): Предотвращение стоп-аутов

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

От начального до среднего уровня: Плавающая точка

Эта статья является кратким введением к понятию числа с плавающей точкой. Поскольку этот текст очень сложный, советую вам прочитать его спокойно и внимательно. Не рассчитывайте быстро освоить систему с плавающей точкой, она становится понятной только со временем, по мере появления опыта использования. Но эта статья поможет вам понять, почему ваше приложение иногда выдает результат, отличный от ожидаемого.
preview
Эко-эволюционный алгоритм — Eco-inspired Evolutionary Algorithm (ECO)

Эко-эволюционный алгоритм — Eco-inspired Evolutionary Algorithm (ECO)

В статье рассматривается алгоритм оптимизации ECO, основанный на экологических концепциях: популяции объединяются в хабитаты по принципу территориальной близости, обмениваются генетическим материалом внутри хабитатов и мигрируют между ними. Несмотря на богатый набор операторов и красивую биологическую метафору, алгоритм показал результат, какой, подробности ниже.
preview
Разработка системы репликации (Часть 75): Новый Chart Trade (II)

Разработка системы репликации (Часть 75): Новый Chart Trade (II)

В этой статье мы расскажем о классе C_ChartFloatingRAD. Это то, что позволяет Chart Trade работать. Однако на этом объяснение не закончится. Мы завершим его в следующей статье, так как содержание данной статьи довольно объемное и требует глубокого понимания. Представленные здесь материалы предназначены только для обучения. Ни в коем случае не рассматривайте его как окончательное приложение, целью которого не является изучение представленных концепций.
preview
Как получить синхронизированные массивы для использования в алгоритмах портфельной торговли

Как получить синхронизированные массивы для использования в алгоритмах портфельной торговли

Описан практический подход к синхронизации баров между инструментами портфеля в MQL5. Предложены классы для загрузки, хранения и выравнивания OHLCV с опциями: пустой бар или перенос значений предыдущего бара, выбор символа синхронизации и обработка асинхронных новых баров. Показаны примеры использования в индикаторах мультиграфиков и корзины. Читатель получает готовый API для стабильных портфельных расчетов.
preview
Нейросети в трейдинге: Поиск устойчивых закономерностей в разнородных рыночных данных (Окончание)

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

В статье представлена адаптация фреймворка INFNet в единый вычислительный конвейер для задач анализа финансовых временных рядов. Описана архитектура верхнеуровневого объекта, объединяющего последовательные, контекстные и сценарные потоки данных. Проведено тестирование на исторических данных EURUSD с оценкой устойчивости модели.
preview
От начального до среднего уровня: Переменные (III)

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

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

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

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

Возможности Мастера MQL5, которые вам нужно знать (Часть 54): Обучение с подкреплением с гибридным SAC и тензорами

Soft Actor Critic (мягкий актер-критик) — это алгоритм обучения с подкреплением, который мы рассматривали в предыдущей статье, где мы также представили Python и ONNX как эффективные подходы к обучению сетей. В этой статье мы вернемся к алгоритму с целью использования тензоров — вычислительных графов, которые часто используются в Python.
preview
Разработка инструментария для анализа движения цен (Часть 20): Внешние библиотеки (IV) — Correlation Pathfinder

Разработка инструментария для анализа движения цен (Часть 20): Внешние библиотеки (IV) — Correlation Pathfinder

Correlation Pathfinder предлагает новый подход к пониманию динамики валютных пар в рамках серии инструментов для анализа ценового действия. Этот инструмент автоматизирует сбор и анализ данных, предоставляя информацию о взаимодействии таких валютных пар, как EURUSD и GBPUSD. Практическая информация в реальном времени поможет вам более эффективно управлять рисками и выявлять торговые возможности.
preview
Нейросети в трейдинге: Спайково-семантический подход к пространственно-временной идентификации (Основные компоненты)

Нейросети в трейдинге: Спайково-семантический подход к пространственно-временной идентификации (Основные компоненты)

В статье мы подробно рассмотрели интеграцию модуля SSAM в блок SEW‑ResNeXt, демонстрируя, как фреймворк S3CE‑Net позволяет эффективно объединять спайковое внимание с остаточными блоками. Такая архитектура обеспечивает точную обработку временных и пространственных потоков данных и высокую стабильность обучения. Модульность и гибкость компонентов упрощают расширение модели и повторное использование проверенных методов.
preview
Использование регрессии Ренко-баров с корректировкой ошибок

Использование регрессии Ренко-баров с корректировкой ошибок

В статье показан регрессионный подход к прогнозированию Ренко-баров с помощью CatBoost: модель оценивает логарифмическую доходность следующего бара и неопределённость прогноза. Разобран каскад residual-моделей с OOF-валидацией через TimeSeriesSplit, shrinkage и общим early stopping, а также условная коррекция смещения. На EURUSD D1 получено снижение OOF-MAE и около 65% точности по направлению. Приведён рабочий скрипт для MetaTrader 5, формирующий сигнал, размер позиции, SL и TP в единицах кирпича.
preview
Торговые инструменты на языке MQL5 (Часть 10): Разработка системы отслеживания стратегии с визуальными уровнями и показателями эффективности

Торговые инструменты на языке MQL5 (Часть 10): Разработка системы отслеживания стратегии с визуальными уровнями и показателями эффективности

В данной статье мы разрабатываем систему отслеживания стратегий на языке MQL5, которая обнаруживает сигналы пересечения скользящих средних, отфильтрованные долгосрочной скользящей средней, моделирует или исполняет сделки с настраиваемыми уровнями TP и SL в пунктах, а также отслеживает результаты, такие как попадание в TP/SL, для анализа эффективности.
preview
Архитектура машинного обучения для MetaTrader 5 (Часть 14): Моделирование транзакционных издержек для разметки методом тройного барьера в MQL5

Архитектура машинного обучения для MetaTrader 5 (Часть 14): Моделирование транзакционных издержек для разметки методом тройного барьера в MQL5

В статье заданные вручную предположения об издержках в разметке методом тройного барьера заменяются измеренными данными. Скрипт MQL5 собирает у брокера распределение спреда, ставки свопа и свойства символа, а модель Python преобразует эти данные в min_ret, откалиброванный с учётом условий брокера, который можно передать в get_events(). После этого метки учитывают фактические издержки полного цикла сделки для выбранного инструмента и периода удержания позиции.
preview
От начального до среднего уровня: Массив (III)

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

В этой статье мы рассмотрим, как работать с массивами в MQL5, в том числе, как передавать информацию между функциями и процедурами с помощью массивов. Цель — подготовить вас к тому, что будет демонстрироваться и разъясняться в будущих материалах серии. Поэтому настоятельно рекомендую внимательно изучить то, что будет показано в этой статье.
preview
Создание торговой панели администратора на MQL5 (Часть IX): Организация кода (V). Класс AnalyticsPanel

Создание торговой панели администратора на MQL5 (Часть IX): Организация кода (V). Класс AnalyticsPanel

В этой статье мы рассмотрим, как получать рыночные данные в реальном времени и информацию о торговом счете, выполнять различные вычисления и отображать результаты на настраиваемой панели. Для достижения этой цели мы углубимся в разработку класса AnalyticsPanel, который будет включать в себя все эти функции, в том числе создание панелей. Эта работа является частью нашего продолжающегося расширения советника новой панели администратора (New Admin Panel EA), внедряющей расширенные функции с использованием принципов модульного проектирования и лучших практик организации кода.
preview
Моделирование рынка (Часть 09): Сокеты (III)

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

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

От новичка до эксперта: Мониторинг бэкэнд операций с использованием MQL5

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