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

icon

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

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

Новая статья
последние | лучшие
preview
Преодоление ограничений машинного обучения (Часть 3): Новый взгляд на неустранимую ошибку

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

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

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

Параболический SAR и индекс относительной бодрости (Relative Vigour Index, RVI) — еще одна пара индикаторов, которые можно использовать совместно в советнике MQL5. Эти индикаторы, как и рассмотренные ранее, также дополняют друг друга, поскольку SAR определяет тренд, а RVI проверяет импульс. Как обычно, мы используем Мастер MQL5 для построения и тестирования любого потенциала, который может иметь эта пара индикаторов.
preview
Знакомство с языком MQL5 (Часть 35): Освоение API и функции WebRequest в языке MQL5 (IX)

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

Узнайте, как обнаруживать действия пользователей в MetaTrader 5, отправлять запросы в API искусственного интеллекта, извлекать ответы и реализовывать прокрутку текста на панели.
preview
Создание торговой панели администратора на MQL5 (Часть XII): Интеграция форекс-калькулятора

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

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

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

В этой статье мы разрабатываем улучшенную информационную панель, дополняющую предыдущую часть, добавляя функции перетаскивания и сворачивания для улучшения взаимодействия с пользователем, сохраняя при этом мониторинг позиций с несколькими символами и показателей счета в режиме реального времени.
preview
Автоматизация торговых стратегий на MQL5 (Часть 19): Envelopes Trend Bounce Scalping — Исполнение сделок и управление рисками (Часть II)

Автоматизация торговых стратегий на MQL5 (Часть 19): Envelopes Trend Bounce Scalping — Исполнение сделок и управление рисками (Часть II)

В статье реализуется исполнение сделок и управление рисками для стратегии скальпинга на коррекции на основе конвертов (Envelopes Trend Bounce) на языке MQL5. Мы внедряем механизмы размещения ордеров и контроля рисков, такие как стоп-лосс и определение размера позиции. В заключение мы переходим к тестированию и оптимизации, опираясь на основы, заложенные в Части 18.
preview
Моделирование рынка (Часть 20): Первые шаги на SQL (III)

Моделирование рынка (Часть 20): Первые шаги на SQL (III)

Хотя мы можем выполнять операции с базой данных, содержащей около 10 записей, но материал усваивается гораздо лучше, когда мы работаем с файлом, который содержит более 15 тысяч записей. То есть, если бы мы попытались создать такое вручную, то эта задача была бы огромной. Однако трудно найти такую базу данных, даже для учебных целей, доступную для скачивания. Но на самом деле нам не нужно к этому прибегать, мы можем использовать MetaTrader 5 для создания базы данных для себя. В сегодняшней статье мы рассмотрим, как это сделать.
preview
Знакомство с языком MQL5 (Часть 34): Освоение API и функции WebRequest в языке MQL5 (VIII)

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

В этой статье вы узнаете, как создать панель управления в MetaTrader 5. Мы разберем основы добавления полей ввода, кнопок действий и меток для отображения текста. Используя проектный подход, вы увидите, как настроить панель, в которой пользователи могут вводить сообщения и в итоге отображать ответы API-сервера.
preview
От начального до среднего уровня: Наследование

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

Без сомнения, данная статья потребует от вас значительного времени, чтобы понять, как и почему работают описанные здесь материалы. Это объясняется тем, что всё, что здесь будет показано, изначально ориентировано на объектно-ориентированное программирование, но на самом деле оно основано на принципах структурного программирования.
preview
Как подключить LLM к советнику MQL5 через Python-сервер

Как подключить LLM к советнику MQL5 через Python-сервер

В статье разобраны три ключевые преграды интеграции LLM с MetaTrader 5: отсутствие прямого доступа, жёсткие rate limits и безопасность API‑ключей при архитектурных ограничениях MQL5. Предложена схема с локальным Python‑сервером как мостом между советником и OpenRouter. Рассматриваются WebSocket и fallback на TCP, хранение ключа на сервере, пакетная обработка нескольких символов и формирование технического промпта. Читатель получит готовую архитектуру, снижающую задержки и издержки.
preview
Возможности Мастера MQL5, которые вам нужно знать (Часть 68): Использование паттернов TRIX и процентного диапазона Уильямса с сетью косинусного ядра

Возможности Мастера MQL5, которые вам нужно знать (Часть 68): Использование паттернов TRIX и процентного диапазона Уильямса с сетью косинусного ядра

В продолжение нашей предыдущей статьи, где мы представили пару индикаторов TRIX и процентного диапазона Уильямса, мы рассмотрим, как эту пару индикаторов можно расширить с помощью машинного обучения. TRIX и процентный диапазон Уильямса представляют собой взаимодополняющую пару, отражающую тренд и уровни поддержки/сопротивления. Наш подход на основе машинного обучения использует сверточную нейронную сеть (convolution neural network), в архитектуре которой задействуется косинусное ядро (cosine kernel) при точной настройке прогнозов этой пары индикаторов. Как обычно, это делается в пользовательском файле класса сигналов (signal class), который взаимодействует с Мастером MQL5 для создания советника.
preview
Торговые инструменты на языке MQL5 (Часть 7): Информационная панель для мониторинга позиций на счете в разрезе символов

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

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

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

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

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

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

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

Мы продолжаем улучшать возможности торговли с экономическим календарем MQL5 и сегодня добавим перетаскиваемую панель, которая позволит перемещать элементы, чтобы при необходимости лучше видеть график. Также добавим эффекты при наведении курсора на кнопки, чтобы еще больше улучшить работу с панелью.
preview
Моделирование рынка (Часть 19): Первые шаги на SQL (II)

Моделирование рынка (Часть 19): Первые шаги на SQL (II)

Как мы объясняли в первой статье о SQL, нет смысла тратить время на программирование процедур для выполнения того, что уже включено в SQL. Однако, если не знать самых основ, вы не сможете ничего сделать с помощью SQL, чтобы воспользоваться всеми преимуществами, которые предлагает этот инструмент. Поэтому в данной статье мы рассмотрим, как выполнять основные задачи в базах данных.
preview
Возможности Мастера MQL5, которые вам нужно знать (Часть 67): Использование паттернов TRIX и процентного диапазона Уильямса

Возможности Мастера MQL5, которые вам нужно знать (Часть 67): Использование паттернов TRIX и процентного диапазона Уильямса

Тройной экспоненциальный осциллятор скользящей средней (Triple Exponential Moving Average Oscillator, TRIX) и осциллятор процентного диапазона Уильямса (Williams Percentage Range Oscillator) — это еще одна пара индикаторов, которые можно использовать совместно в советнике MQL5. Эта пара индикаторов, как и те, которые мы недавно рассматривали, также дополняет друг друга, поскольку TRIX определяет тренд, а процентный диапазон подтверждает уровни поддержки и сопротивления. Как всегда, мы используем Мастер MQL5 для оценки потенциала индикаторов.
preview
Конструктор советников MQL5 (Часть 1): Простой статический шаблон

Конструктор советников MQL5 (Часть 1): Простой статический шаблон

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

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

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

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

В этой статье показано, как интегрировать API Google Generative AI в MetaTrader 5 с помощью языка MQL5. Вы научитесь структурировать API-запросы, обрабатывать ответы сервера, извлекать контент, сгенерированный ИИ, управлять лимитами API и сохранять результаты в текстовый файл для удобного доступа.
preview
Торговые инструменты на языке MQL5 (Часть 6): Динамическая голографическая панель с импульсной анимацией и элементами управления

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

В этой статье мы создаем динамическую голографическую панель на MQL5 для мониторинга инструментов и таймфреймов с помощью RSI, оповещений о волатильности и параметров сортировки. Добавляем анимацию импульсов, интерактивные кнопки и голографические эффекты, чтобы сделать инструмент визуально привлекательным и отзывчивым.
preview
Машинное обучение и Data Science (Часть 41): YOLOv8v для поиска паттернов на рынках Forex и акций

Машинное обучение и Data Science (Часть 41): YOLOv8v для поиска паттернов на рынках Forex и акций

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

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

Статья завершает перенос и интеграцию ключевых компонентов фреймворка MTmixAtt в архитектуру торговой модели для анализа рыночных данных. Продемонстрировано, как адаптивная токенизация и блоки MTmixAttBlock позволяют эффективно выявлять локальные и глобальные паттерны, учитывать сценарии поведения цены.
preview
Создание самооптимизирующихся советников на MQL5 (Часть 7): Одновременная торговля на нескольких периодах

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

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

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

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

Искусство ведения логов (Часть 7): Как отображать логи на графике

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

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

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

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

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

Пользовательские инструменты отладки и профилирования для разработки на MQL5 (Часть I): Расширенное логирование

Узнайте, как реализовать мощный пользовательский фреймворк для логирования в MQL5, который выходит за рамки простых операторов Print() за счет поддержки уровней серьезности, множества обработчиков вывода и автоматической ротации файлов — и все это с возможностью настройки «на лету». Интегрируйте синглтон CLogger с ConsoleLogHandler и FileLogHandler для захвата контекстных журналов с метками времени как на вкладке «Эксперты», так и в постоянных файлах. Оптимизируйте отладку и трассировку производительности в ваших советниках с помощью понятных, настраиваемых форматов журналов и централизованного управления.
preview
Трейдинг с экономическим календарем MQL5 (Часть 9): Расширение интерактивности с новостями через динамический скроллбар и улучшенное отображение

Трейдинг с экономическим календарем MQL5 (Часть 9): Расширение интерактивности с новостями через динамический скроллбар и улучшенное отображение

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

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

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

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

Продолжаем перенос современных подходов, предложенных авторами фреймворка MTmixATT, на задачи финансовых временных рядов. Представлены практические реализации модулей Multi-Mix Attention и разреженного выбора эксперта, позволяющие структурировать признаки и формировать динамически адаптивных экспертов на основе текущих рыночных данных. Особое внимание уделено оригинальности подхода и его потенциалу для адаптивного структурного анализа рынка.
preview
Возможности Мастера MQL5, которые вам нужно знать (Часть 66): Использование паттернов FrAMA и индекса силы с ядром скалярного произведения

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

Индикатор FrAMA и осциллятор индекса силы (Force Index) — инструменты анализа тренда и объема, которые можно использовать в паре при разработке советника. В продолжение нашей предыдущей статьи, в которой мы представили эту пару, рассмотрим применимость к ней машинного обучения. Мы используем сверточную нейронную сеть (convolution neural network), которая применяет ядро скалярного произведения (dot-product kernel) для построения прогнозов на основе входных данных этих индикаторов. Это делается в пользовательском файле класса сигналов (signal class), который взаимодействует с Мастером MQL5 для создания советника.
preview
Торговые инструменты MQL5 (Часть 4):  Улучшаем панель мультитаймфреймового сканера — динамическое позиционирование и сворачивание/разворачивание

Торговые инструменты MQL5 (Часть 4): Улучшаем панель мультитаймфреймового сканера — динамическое позиционирование и сворачивание/разворачивание

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

Алгоритм извлечения торговых правил из паттернов в MQL5

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

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

Пробойная система на основе волатильности определяет рыночные диапазоны, а затем совершает сделки, когда цена пробивает эти уровни вверх или вниз, с учетом таких показателей волатильности, как ATR. Такой подход помогает выявлять сильные направленные движения.
preview
Возможности Мастера MQL5, которые вам нужно знать (Часть 65): Использование паттернов FrAMA и индекса силы

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

Фрактальная адаптивная скользящая средняя (FrAMA) и осциллятор индекса силы (Force Index Oscillator) — еще одна пара индикаторов, которые можно использовать совместно в советнике на языке MQL5. Эти два индикатора в некоторой степени дополняют друг друга, поскольку FrAMA — это индикатор следования за трендом, а индекс силы — это осциллятор, основанный на объеме. Как всегда, мы используем Мастер MQL5 для быстрого изучения любого потенциала этих двух инструментов.
preview
Моделирование рынка (Часть 18): Первые шаги на SQL (I)

Моделирование рынка (Часть 18): Первые шаги на SQL (I)

Неважно, какую программу SQL мы будем использовать: MySQL, SQL Server, SQLite, OpenSQL или другую. У всех есть что-то общее, а этот общий элемент — язык SQL. Даже если мы не собираемся использовать WorkBench, можно манипулировать или работать с базой данных непосредственно в MetaEditor или через MQL5 для выполнения действий в MetaTrader 5, но для этого вам понадобятся знания SQL. Итак, здесь мы выучим, как минимум, основы.
preview
Индикатор CandleCode: Формализация свечных моделей в MQL5

Индикатор CandleCode: Формализация свечных моделей в MQL5

В статье показана практическая реализация CandleCode для MetaTrader 5: расчет кодов свечей по методу Лиховидова с адаптацией порогов к волатильности (Bollinger Bands) и гистограммное отображение. Дополнительно представлен советник, который строит базу исторических паттернов по ZigZag, сравнивает их с текущим "слепком" через ATR и выдает статистику совпадений на панели.
preview
Моделирование рынка (Часть 17): Сокеты (XI)

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

Реализация той части кода, которая будет работать в MetaTrader 5, не представляет сложности. Однако есть несколько моментов, которые нужно учитывать. Это необходимо для того, чтобы вы смогли заставить систему работать. Запомните одну важную вещь: будет запущена не одна программа. В реальности нам придётся запускать три программы одновременно. Важно реализовать и построить каждую из них так, чтобы они могли взаимодействовать и общаться одна с другой, и чтобы каждая из них понимала, что пытается или хочет сделать другая.