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

icon

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

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

Новая статья
последние | лучшие
preview
Автоматизация торговых стратегий на MQL5 (Часть 22): Создание системы зонального восстановления для трендовой торговли по индикатору Envelopes

Автоматизация торговых стратегий на MQL5 (Часть 22): Создание системы зонального восстановления для трендовой торговли по индикатору Envelopes

Мы разработаем систему зонального восстановления (Zone Recovery System), интегрированную со стратегией трендовой торговли на основе конвертов (Envelopes trend-trading strategy) на MQL5. Также мы опишем архитектуру использования индикаторов RSI и конвертов для инициирования сделок и управления зональным восстановлением с целью минимизации потерь. На практике и в ходе тестирования мы продемонстрируем, как создать эффективную автоматизированную торговую систему для динамичных рынков.
preview
Внедрение в MQL5 практических модулей из других языков (Часть 04): Модули time, date и datetime из Python

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

В отличие от MQL5, язык программирования Python предлагает контроль и гибкость, когда речь заходит о работе со временем и управлении им. В этой статье мы реализуем модули, аналогичные модулям в языке MQL5 для более удобной обработки дат и времени, как в Python.
preview
Адаптивная архитектура Smart Money (ASMA): Интеграция логики SMC с анализом сентимента для динамического переключения стратегий

Адаптивная архитектура Smart Money (ASMA): Интеграция логики SMC с анализом сентимента для динамического переключения стратегий

В этой теме рассматривается, как построить адаптивную архитектуру Smart Money (ASMA) — интеллектуального советника, который объединяет концепции Smart Money Concepts (Order Blocks, Break of Structure, Fair Value Gaps) с рыночными настроениями в реальном времени, чтобы автоматически выбирать наиболее подходящую торговую стратегию исходя из текущего рыночного режима.
preview
Оптимизация торговли на снятии ликвидности: Как различать снятие ликвидности и сдвиги рыночной структуры

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

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

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

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

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

В статье мы подробно рассмотрели интеграцию модуля SSAM в блок SEW‑ResNeXt, демонстрируя, как фреймворк S3CE‑Net позволяет эффективно объединять спайковое внимание с остаточными блоками. Такая архитектура обеспечивает точную обработку временных и пространственных потоков данных и высокую стабильность обучения. Модульность и гибкость компонентов упрощают расширение модели и повторное использование проверенных методов.
preview
Неопределенность как модель (Часть 1): Случайные величины — язык неопределенности

Неопределенность как модель (Часть 1): Случайные величины — язык неопределенности

В статье системно излагается теория случайных величин, служащая базой для анализа и моделирования неопределенности на финансовых рынках. Рассматриваются определения и свойства одномерных величин, функции распределения (CDF) и плотности (PDF), а также различия между дискретными, непрерывными и смешанными моделями. Теоретический материал опирается на интуитивные аналогии с массой и плотностью. Приложение к статье содержит практические примеры использования стандартной библиотеки MQL5 для расчета вероятностей, квантилей и моментов распределений. Также в нем демонстрируются графические возможности платформы MetaTrader 5 для визуального анализа данных через построение кривых PDF, CDF и графиков QQ-Plot.
preview
От начального до среднего уровня: Операторы BREAK и CONTINUE

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

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

Нейросети в трейдинге: Внимание, память и рыночные паттерны в GDformer (Окончание)

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

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

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

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

В этом обсуждении рассматриваются проблемы, возникающие при работе с большими базами кодов. Мы рассмотрим лучшие практики организации кода в MQL5 и реализуем практический подход для повышения читаемости и масштабируемости исходного кода нашей панели торгового администратора. Кроме того, мы начнем разработку повторно используемых компонентов кода, которые потенциально могут принести пользу другим разработчикам при создании алгоритмов. Присоединяйтесь к обсуждению.
preview
Оптимизация нейробоидами — Neuroboids Optimization Algorithm (NOA)

Оптимизация нейробоидами — Neuroboids Optimization Algorithm (NOA)

Новая авторская биоинспирированная метаэвристика оптимизации — NOA (Neuroboids Optimization Algorithm), объединяющая принципы коллективного интеллекта и нейронных сетей. В отличие от классических методов, алгоритм использует популяцию самообучающихся "нейробоидов", каждый с собственной нейросетью, адаптирующей стратегию поиска в реальном времени. Статья раскрывает архитектуру алгоритма, механизмы самообучения агентов и перспективы применения этого гибридного подхода в сложных задачах оптимизации.
preview
Разработка пользовательского индикатора матрицы эффективности торгового счёта

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

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

Конструирование признаков для машинного обучения (Часть 1): дробное дифференцирование — стационарность без потери памяти

Целочисленное дифференцирование заставляет выбирать между стационарностью и памятью: доходности (d = 1) стационарны, но отбрасывают всю информацию об уровне цены; исходные цены (d = 0) сохраняют память, но нарушают предпосылку стационарности, важную для моделей машинного обучения. В статье реализован метод дробного дифференцирования с окном фиксированной ширины (FFD) из главы 5 AFML: get_weights_ffd — итеративная рекурсия с отсечением по порогу, frac_diff_ffd — ограниченное скалярное произведение для каждого бара, fracdiff_optimal — бинарный поиск минимального стационарного d*.
preview
Инженерия признаков с Python и MQL5 (Часть IV): Распознавание свечных паттернов с помощью UMAP-регрессии

Инженерия признаков с Python и MQL5 (Часть IV): Распознавание свечных паттернов с помощью UMAP-регрессии

Методы уменьшения размерности широко используются для повышения производительности моделей машинного обучения. Мы рассмотрим относительно новый метод UMAP (Uniform Manifold Approximation and Projection) — приближение и проекция на равномерном многообразии. Эта новая методика разработана специально для решения проблемы артефактов и искажений в данных, которые присущи традиционным методам. UMAP — это эффективный метод уменьшения размерности, который позволяет группировать похожие свечные графики новым способом, снижая вероятность ошибок на данных, не входящих в выборку, и улучшая результаты торговли.
preview
Нейросети в трейдинге: Агрегация движения по времени (Окончание)

Нейросети в трейдинге: Агрегация движения по времени (Окончание)

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

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

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

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

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

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

Мы приступаем к реализации связи между Excel и MetaTrader 5, но сначала необходимо понять некоторые важные моменты, так вам не придется ломать голову, пытаясь понять, почему что-то работает или нет. И прежде, чем вы нахмуритесь, глядя на интеграцию Python и Excel, давайте посмотрим, как с помощью xlwings можно (в некоторой степени) управлять MetaTrader 5 через Excel. То, что мы покажем здесь, будет в основном сконцентрировано на образовательных задачах. Но не думайте, что мы можем делать только то, что будет рассмотрено здесь.
preview
Алгоритм сверчков — Cricket Algorithm (CA)

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

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

Взаимная информация как критерий для поэтапного отбора признаков

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

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

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

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

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

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

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

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

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

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

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

Автоматизация торговых стратегий на MQL5 (Часть 20): Мультисимвольная стратегия с использованием CCI и AO

В этой статье мы разработаем мультисимвольную торговую стратегию с использованием индикаторов CCI и AO для выявления разворотов тренда. Мы рассмотрим проектирование, реализацию на языке MQL5 и процесс тестирования стратегии на исторических данных. В заключении приводятся советы по повышению эффективности работы.
preview
Как создать и оптимизировать торговую систему на основе циклов (Detrended Price Oscillator — DPO)

Как создать и оптимизировать торговую систему на основе циклов (Detrended Price Oscillator — DPO)

В этой статье объясняется, как спроектировать и оптимизировать торговую систему с использованием индикатора «Бестрендовый ценовой осциллятор» (Detrended Price Oscillator, DPO) на MQL5. В ней описывается основная логика индикатора, демонстрирующая, как он определяет краткосрочные циклы, отфильтровывая долгосрочные тенденции. С помощью серии пошаговых примеров и простых стратегий читатели узнают, как его кодировать, определять сигналы входа и выхода, а также проводить тестирование на истории. Наконец, в статье представлены практические методы оптимизации для повышения эффективности и адаптации системы к изменчивым рыночным условиям.
preview
Нейросети в трейдинге: Агрегация движения по времени (Основные компоненты)

Нейросети в трейдинге: Агрегация движения по времени (Основные компоненты)

В этой статье теория встречается с практикой. Мы реализуем ключевые модули фреймворка TMA — MPE и MPA. Здесь данные обретают смысл, а кросс-внимание превращается в инструмент точного анализа рыночной динамики. Минимум избыточных операций, максимум эффективности — шаг к интеллектуальному трейдингу нового поколения.
preview
Эко-эволюционный алгоритм — Eco-inspired Evolutionary Algorithm (ECO)

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

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

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

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

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

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

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

Рассмотрим алгоритмическую процедуру, которая позволит свести к минимуму общее количество случаев стоп-аутов в прибыльных сделках. Проблема, с которой мы столкнулись, весьма сложна, и большинство решений, предложенных в ходе обсуждений в сообществе, не содержат установленных и неизменных правил. Наш алгоритмический подход к решению проблемы увеличил прибыльность сделок и снизил средний убыток на сделку. Однако необходимо внести дополнительные улучшения, чтобы полностью отсортировать все сделки, которые будут закрыты по стопу-ауту. Наше решение представляет собой неплохой первый шаг, доступный для всех желающих.
preview
Автоматизация торговых стратегий на MQL5 (Часть 18): Envelopes Trend Bounce Scalping - Базовая инфраструктура и генерация сигналов (Часть I)

Автоматизация торговых стратегий на MQL5 (Часть 18): Envelopes Trend Bounce Scalping - Базовая инфраструктура и генерация сигналов (Часть I)

В этой статье мы создадим основную инфраструктуру для советника Envelopes Trend Bounce Scalping (скальпинг на коррекции на основе конвертов) на MQL5. Мы инициализируем конверты и другие индикаторы для генерации сигналов. Также мы настроим тестирование стратегии на истории, чтобы подготовиться к исполнению сделок в следующей части.
preview
Создание торговой панели администратора на MQL5 (Часть VIII): Панель аналитики

Создание торговой панели администратора на MQL5 (Часть VIII): Панель аналитики

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

Автоматизация торговых стратегий на MQL5 (Часть 23): Зональное восстановление с трейлинг-стопом и логикой корзин

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

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

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

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

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

Автоматизация торговых стратегий на MQL5 (Часть 25): Советник для торговли по линиям тренда с аппроксимацией методом наименьших квадратов и динамической генерацией сигналов

В данной статье мы разрабатываем программу для торговли по линиям тренда, которая использует аппроксимацию методом наименьших квадратов (least squares fit) для определения линий поддержки и сопротивления, генерируя динамические сигналы на покупку и продажу при касании ценой этих линий и открывая позиции по полученным сигналам.
preview
Разработка инструментария для анализа движения цен (Часть 20): Внешние библиотеки (IV) — Correlation Pathfinder

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

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