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

icon

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

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

Новая статья
последние | лучшие
preview
Разработка системы репликации (Часть 61): Нажатие кнопки воспроизведения в сервисе (II)

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

В данной статье мы рассмотрим изменения, которые позволят системе репликации/моделирования работать более эффективно и безопасно. Также я не оставлю без внимания тех, кто хочет извлечь максимум пользы из использования классов. Кроме того, рассмотрим специфическую проблему в MQL5, которая снижает производительность кода при работе с классами, и объясним, как ее решить.
preview
Оптимизация Роем Жуков — Beetle Swarm Optimization (BSO)

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

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

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

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

Нейросети в трейдинге: Масштабируемые трансформеры со структурной декомпозицией признаков (Окончание)

Статья посвящена практической реализации Field-Aware архитектуры для алгоритмической торговли в среде MQL5. Рассматривается проблема слабой переносимости классических attention-моделей на финансовые данные: нестабильность вне выборки, чувствительность к смене рыночного режима и избыточная вычислительная сложность.
preview
Переосмысливаем классические стратегии (Часть 13): Обновление стратегии по пересечению скользящих (Часть 2)

Переосмысливаем классические стратегии (Часть 13): Обновление стратегии по пересечению скользящих (Часть 2)

Мы попробуем внедрить дополнительные улучшения в нашу стратегию по пересечению скользящих средних, чтобы постараться снизить задержку и повысить надежность за счет дополнительного анализа данных. Как мы знаем, проецирование данных в многомерное пространство иногда может улучшить производительность моделей машинного обучения. Давайте посмотрим, что это на практике означает для нас, трейдеров. Также увидим, как можно использовать этот эффективный принцип в терминале MetaTrader 5.
preview
Выборочные методы MCMC: Алгоритм выборки по уровням (Slice sampling)

Выборочные методы MCMC: Алгоритм выборки по уровням (Slice sampling)

В этой статье исследуется метод выборки по уровням (slice sampling) — адаптивный алгоритм MCMC, который самостоятельно регулирует параметры сэмплирования. Его эффективность продемонстрирована на моделях байесовской линейной и логистической регрессии, а результаты сравниваются с классическими частотными методами.
preview
Алгоритм оптимизации бабочек — Butterfly Optimization Algorithm (BOA)

Алгоритм оптимизации бабочек — Butterfly Optimization Algorithm (BOA)

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

Нейросети в трейдинге: Единая архитектура взаимодействия рыночных признаков и торгового контекста (OneTrans)

В статье рассматривается архитектура фреймворка OneTrans, предложенного для эффективной работы с длинными последовательностями событий, и анализируются ключевые инженерные решения, лежащие в его основе. Особое внимание уделяется механизмам оптимизации вычислений внимания — пирамидальной схеме обработки токенов, использованию кэширования Key/Value и современных алгоритмов ускорения внимания, таких как FlashAttention-2.
preview
Моделирование рынка (Часть 12): Сокеты (VI)

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

В данной статье мы рассмотрим, как решить некоторые проблемы и вопросы, возникающие при использовании кода, написанного на Python внутри других программ. А если говорить более конкретно, то мы покажем распространенную проблему, возникающую при использовании Excel в связке с MetaTrader 5, хотя для этого общения мы будем использовать Python. Однако у данной реализации есть небольшой недостаток. Это происходит не во всех, а только в некоторых конкретных случаях. Когда это происходит, необходимо понять причину. В сегодняшней статье мы начнем объяснять, как решить эту проблему.
preview
Моделирование рынка (Часть 05): Создание класса C_Orders (II)

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

В данной статье я расскажу, как Chart Trade вместе с советником будет обрабатывать запрос на закрытие всех открытых позиций пользователя. Звучит просто, но есть несколько осложняющих моментов, и нужно знать, как управлять ими.
preview
Создание панели администратора торговли на MQL5 (Часть XI): Современный интерфейс мессенджера в платформе (I)

Создание панели администратора торговли на MQL5 (Часть XI): Современный интерфейс мессенджера в платформе (I)

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

Нейросети в трейдинге: Потоковые модели с остаточной высокочастотной адаптацией (модуль HTR)

Продолжаем работу над реализацией подходов, предложенных авторами фреймворка ResFlow. В статье представлена реализация высокочастотного модуля HTR. В нем контекст и локальная динамика приводятся к сопоставимому виду, проходят рекуррентный блок, а затем формируют согласованное внутреннее представление потока.
preview
Знакомство с языком MQL5 (Часть 28): Освоение API и функции WebRequest в языке MQL5 (II)

Знакомство с языком MQL5 (Часть 28): Освоение API и функции WebRequest в языке MQL5 (II)

В этой статье вы научитесь получать ценовые данные с внешних платформ с помощью API и функции WebRequest на языке MQL5. Вы узнаете, как структурируются URL, как форматируются ответы API, как преобразовать серверные данные в читаемые строки, а также как находить конкретные значения в ответах JSON и получать их оттуда.
preview
Клиент в Connexus (Часть 7): Добавление клиентского уровня

Клиент в Connexus (Часть 7): Добавление клиентского уровня

В настоящей статье мы продолжаем разработку библиотеки Connexus. В настоящей главе мы создаем класс CHttpClient, отвечающий за отправку запроса и получение ордера. Мы также рассматриваем концепцию моков (mocks), отделяя библиотеку от функции WebRequest, что обеспечивает большую гибкость для пользователей.
preview
Искусство ведения логов (Часть 6): Сохранение логов в базу данных

Искусство ведения логов (Часть 6): Сохранение логов в базу данных

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

Автоматизация индикатора настроений рынка (индикатора сентимента)

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

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

В этой статье мы наконец решим проблемы моделирования тиков на одноминутном баре, чтобы те могли сосуществовать с реальными тиками. Таким образом, мы избежим возникновения проблем в будущем. Представленный здесь контент предназначен только для образовательных целей. Ни в коем случае его не следует рассматривать как приложение, предназначенное для чего-то иного, кроме изучения и освоения представленных концепций.
preview
Улучшенная оптимизация сталкивающихся тел — Enhanced Colliding Bodies Optimization (ECBO)

Улучшенная оптимизация сталкивающихся тел — Enhanced Colliding Bodies Optimization (ECBO)

В статье рассматривается алгоритм Colliding Bodies Optimization (CBO), основанный на физике одномерных столкновений тел. Базовая версия алгоритма не содержит настраиваемых параметров, что делает её простой. Поэтому за основу реализации была взята расширенная версия ECBO, дополненная памятью столкновений и механизмом кроссовера, что позволило алгоритму показать достойные результаты и занять место в рейтинговой таблице.
preview
Генеративно-состязательные сети (GAN) для синтетических данных в сфере финансового моделирования (Часть 2): Создание синтетического символа для тестирования

Генеративно-состязательные сети (GAN) для синтетических данных в сфере финансового моделирования (Часть 2): Создание синтетического символа для тестирования

В этой статье мы создаем синтетический символ с использованием генеративно-состязательной сети (GAN), которая включает в себя генерацию реалистичных финансовых данных, имитирующих поведение реальных рыночных инструментов, таких как EURUSD. Модель GAN изучает закономерности и волатильность на основе исторических рыночных данных и создает синтетические ценовые данные с аналогичными характеристиками.
preview
Создание торговой панели администратора на MQL5 (Часть IX): Организация кода (II): Модуляризация

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

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

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

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

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

Осцилляторы ADX и CCI — это индикаторы следования за трендом и импульса, которые можно использовать в паре при разработке советника. Мы рассмотрим, как их можно систематизировать, используя все 3 основных режима машинного обучения. Созданные с помощью Мастера советники позволяют нам оценить паттерны, представленные этими двумя индикаторами. Начнем с рассмотрения того, как к этим паттернам можно применить обучение с учителем.
preview
Торговые инструменты на MQL5 (Часть 2): Улучшение интерактивного торгового помощника через динамическую визуализацию

Торговые инструменты на MQL5 (Часть 2): Улучшение интерактивного торгового помощника через динамическую визуализацию

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

Возможности Мастера MQL5, которые вам нужно знать (Часть 64): Использование паттернов каналов Демарка и конвертов с ядром белого шума

Осциллятор Демарка (DeMarker Oscillator) и конверты (Envelopes) — это инструменты, определяющие импульс и уровни поддержки/сопротивления, которые можно использовать в паре при разработке советника. В предыдущей статье были представлены эти два индикатора. Здесь же мы добавим к ним машинное обучение. Мы используем рекуррентную нейронную сеть, которая применяет ядро белого шума (white-noise kernel) для обработки векторизованных сигналов от этих двух индикаторов. Это делается в пользовательском файле класса сигналов (signal class), который взаимодействует с Мастером MQL5 для создания советника.
preview
Разработка торговых стратегий с использованием осцилляторов Parafrac и Parafrac V2: Оценка эффективности при одиночном входе

Разработка торговых стратегий с использованием осцилляторов Parafrac и Parafrac V2: Оценка эффективности при одиночном входе

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

Создание самооптимизирующихся советников на MQL5 (Часть 7): Одновременная торговля на нескольких периодах

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

Нейросети в трейдинге: Адаптивная факторная токенизация (MTmixAtt)

Статья разбирает архитектуру MTmixAtt для адаптивной структуризации признаков и показывает первый шаг практической реализации в MQL5 — модуль AutoToken. Описаны выравнивание эмбеддингов, матрица выбора, механизм Top‑K и разреженная селекция. Приведен класс CNeuronAutoToken на базе OpenCL. Читатель получает работающий блок компрессии признакового пространства и основу для дальнейшего смешивания токенов и MoE.
preview
Знакомство с языком MQL5 (Часть 31): Освоение API и функции WebRequest в языке MQL5 (V)

Знакомство с языком MQL5 (Часть 31): Освоение API и функции WebRequest в языке MQL5 (V)

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

Автоматизация торговых стратегий на MQL5 (Часть 21): Улучшение торговли на основе нейронных сетей с помощью адаптивных темпов обучения

В этой статье мы улучшим торговую стратегию на основе нейронной сети на MQL5 с помощью адаптивного темпа обучения (adaptive learning rate) для повышения точности. Мы разработаем и внедрим это улучшение, а затем протестируем его работу. В заключении приводятся рекомендации по оптимизации алгоритмической торговли.
preview
Возможности Мастера MQL5, которые вам нужно знать (Часть 63): Использование паттернов каналов Демарка и конвертов

Возможности Мастера MQL5, которые вам нужно знать (Часть 63): Использование паттернов каналов Демарка и конвертов

Осциллятор Демарка (DeMarker Oscillator) и конверты (Envelopes) — это инструменты, определяющие импульс и уровни поддержки/сопротивления, которые можно использовать в паре при разработке советника. Поэтому мы рассматриваем каждый паттерн отдельно, чтобы определить, что может быть полезным, а чего потенциально следует избегать. Как всегда, мы используем советник, собранный в Мастере, вместе с функциями паттернов, встроенными в класс сигналов советника (Expert Signal).
preview
Машинное обучение и Data Science (Часть 43): Поиск скрытых паттернов в индикаторах с помощью моделей латентных гауссовых смесей LGMM

Машинное обучение и Data Science (Часть 43): Поиск скрытых паттернов в индикаторах с помощью моделей латентных гауссовых смесей LGMM

У вас когда-нибудь возникало ощущение, что за графиком скрывается что-то большее, какая-то закономерность? Какой-то секретный код, расшифровав который, вы могли бы точно понять, куда движутся цены? Представляю вашему вниманию LGMM — детектор скрытых закономерностей на рынке. Эта модель машинного обучения помогает выявлять такие скрытые закономерности на рынке.
preview
Знакомство с языком MQL5 (Часть 29): Освоение API и функции WebRequest в языке MQL5 (III)

Знакомство с языком MQL5 (Часть 29): Освоение API и функции WebRequest в языке MQL5 (III)

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

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

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

Трейдинг с экономическим календарем MQL5 (Часть 10): Перетаскиваемая панель и hover-эффекты на кнопках

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

Создание торговой панели администратора на MQL5 (Часть XII): Интеграция форекс-калькулятора

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

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

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

Знакомство с языком MQL5 (Часть 30): Освоение API и функции WebRequest в языке MQL5 (IV)

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

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

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

Нейросети в трейдинге: Масштабируемые трансформеры со структурной декомпозицией признаков (Основные компоненты)

Продолжаем разработку FAT: декомпозиция признаков по полям, отдельные проекции Query/Key/Value и параметрическое масштабирование внимания. Описаны OpenCL‑кернел многоголового внимания, свёрточный объект CNeuronFieldAwareConv и интеграция в CNeuronMHFAT с контролем памяти и градиентов. Читатель получает готовые компоненты для MQL5‑моделей, устойчивость к шуму и масштабируемость по числу полей и голов.
preview
Возможности Мастера MQL5, которые вам нужно знать (Часть 71): Использование паттернов MACD и OBV

Возможности Мастера MQL5, которые вам нужно знать (Часть 71): Использование паттернов MACD и OBV

Осциллятор схождения-расхождения скользящих средних (Moving-Average-Convergence-Divergence, MACD) и индикатор балансового объема (On-Balance-Volume, OBV) - еще одна пара индикаторов, которые можно использовать совместно в советнике MQL5. Как это принято в данной серии статей, данная комбинация индикаторов дополняет друг друга: MACD подтверждает тренды, а OBV проверяет объем. Как обычно, мы используем Мастер MQL5 для построения паттернов и тестирования потенциала, который может иметь эта пара индикаторов.