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

icon

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

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

Новая статья
последние | лучшие
preview
Возможности Мастера MQL5, которые вам нужно знать (Часть 35): Регрессия опорных векторов

Возможности Мастера MQL5, которые вам нужно знать (Часть 35): Регрессия опорных векторов

Регрессия опорных векторов — это идеалистический способ поиска функции или "гиперплоскости" (hyper-plane), который наилучшим образом описывает взаимосвязь между двумя наборами данных. Мы попытаемся использовать его при прогнозировании временных рядов в пользовательских классах Мастера MQL5.
preview
Машинное обучение и Data Science (Часть 36): Работа с несбалансированными финансовыми рынками

Машинное обучение и Data Science (Часть 36): Работа с несбалансированными финансовыми рынками

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

Нейросети в трейдинге: Декомпозиция вместо масштабирования — Построение модулей

В этой статье продолжаем практическое знакомство с SSCNN — архитектурным решением нового поколения, способным работать с фрагментированными временными рядами. Вместо слепого масштабирования — разумная модульность, внимание к деталям и точечная нормализация. Мы шаг за шагом создаём вычислительные блоки в среде MQL5 и закладываем основу для надёжного прогнозного анализа.
preview
Разработка системы репликации (Часть 26): Проект советника — Класс C_Terminal

Разработка системы репликации (Часть 26): Проект советника — Класс C_Terminal

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

От новичка до эксперта: Создание анимированного советника для новостей в MQL5 (IX) — Управление несколькими символами на одном графике для торговли на новостях

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

Нейросети в трейдинге: Пространственно-временная модель состояния для анализа финансовых данных (E-STMFlow)

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

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

В статье представлена практическая реализация модуля адаптивного прогнозирования, объединяющего подходы Lattice и Tail-Aware моделирования для финансовых временных рядов. Читатель увидит, как система адаптивно выбирает архетипы рынка, оценивает релевантность экспертов и формирует взвешенные прогнозные распределения с учётом тяжёлых хвостов и локальных экстремумов.
preview
От начального до среднего уровня: Передача по значению или по ссылке

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

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

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

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

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

В сегодняшней статье мы начнем изучать некоторые особые типы данных. Для начала мы определим, что такое строка, и объясним, как использовать некоторые базовые процедуры. Это позволит нам работать с этим типом данных, который может быть интересным, хотя иногда и немного запутанным для новичков. Представленные здесь материалы предназначены только для обучения. Ни в коем случае нельзя рассматривать это приложение как окончательное, цели которого будут иные, кроме изучения представленных концепций.
preview
HTTP и Connexus (Часть 2): Понимание архитектуры HTTP и дизайна библиотеки

HTTP и Connexus (Часть 2): Понимание архитектуры HTTP и дизайна библиотеки

В настоящей статье рассматриваются основы протокола HTTP, описываются основные методы (GET, POST, PUT, DELETE), коды состояния, а также структура URL-адресов. Кроме того, в ней представлено начало создания библиотеки Connexus с классами CQueryParam и CURL, облегчающими манипулирование URL-адресами и параметрами запросов в HTTP-запросах.
preview
Возможности Мастера MQL5, которые вам нужно знать (Часть 49): Обучение с подкреплением и проксимальной оптимизацией политики

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

Проксимальная оптимизация политики (Proximal Policy Optimization) — еще один алгоритм обучения с подкреплением, который обновляет политику, часто в сетевой форме, очень маленькими шагами, чтобы обеспечить стабильность модели. Как обычно, мы рассмотрим, как этот алгоритм можно применить в советнике, собранном с помощью Мастера.
preview
Алгоритм конкурентного обучения — Competitive Learning Algorithm (CLA)

Алгоритм конкурентного обучения — Competitive Learning Algorithm (CLA)

В статье представлен алгоритм конкурентного обучения (Competitive Learning Algorithm, CLA) — новый метаэвристический метод оптимизации, основанный на моделировании образовательного процесса. Алгоритм организует популяцию решений в виде классов со студентами и учителями, где агенты обучаются через три механизма: следование за лучшим в классе, использование личного опыта и обмен знаниями между классами.
preview
Нейросети в трейдинге: Распутывание структурных компонентов (SCNN)

Нейросети в трейдинге: Распутывание структурных компонентов (SCNN)

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

Освоение быстрых сделок: Преодоление паралича исполнения

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

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

В данной статье показана практическая реализация фреймворка SEW ResNet средствами MQL5 с акцентом на прикладное применение в торговле. Двойной Bottleneck даёт возможность одновременно анализировать унитарные потоки и межканальные зависимости, не теряя градиентов при обучении. Спайковые активации с адаптивными порогами и гейты повышают устойчивость к шуму и чувствительность к новизне рынка. В тексте приведены детали реализации и результаты тестов.
preview
Создание самооптимизирующихся советников на MQL5 (Часть 17): Ансамблевый интеллект

Создание самооптимизирующихся советников на MQL5 (Часть 17): Ансамблевый интеллект

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

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

Ichimuko Kinko Hyo — известный японский индикатор, представляющий собой систему определения тренда. Как и в предыдущих статьях, мы рассмотрим этот индикатор с использованием паттернов и поделимся стратегиями и отчетами о тестировании, применив классы библиотеки Мастера MQL5.
preview
Автоматизация торговых стратегий на MQL5 (Часть 9): Создаем советник для стратегии прорыва азиатской сессии

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

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

Нейросети в трейдинге: Сквозная многомерная модель прогнозирования временных рядов (Основные компоненты)

Предлагаем познакомиться с новой реализацией ключевых компонентов Фреймворка GinAR — адаптивного алгоритма для работы с графовыми временными рядами. В статье шаг за шагом разобраны архитектура, алгоритмы прямого прохода и обратного распространения ошибки.
preview
Упрощаем торговлю на новостях (Часть 6): Совершаем сделки (III)

Упрощаем торговлю на новостях (Часть 6): Совершаем сделки (III)

В этой статье будет реализована сортировка новостей для отдельных новостных событий на основе их идентификаторов. Кроме того, предыдущие запросы SQL будут улучшены для предоставления дополнительной информации или сокращения времени выполнения запроса. Код, созданный в предыдущих статьях, станет работоспособным.
preview
Оптимизация хаотичной игрой — Chaos Game Optimization (CGO)

Оптимизация хаотичной игрой — Chaos Game Optimization (CGO)

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

Нейросети в трейдинге: Единый взгляд на пространство и время (Extralonger)

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

Разработка торговой стратегии на основе псевдокорреляции Пирсона

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

Нейросети в трейдинге: Спайковая архитектура пространственно-временного анализа рынка (Энкодер)

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

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

В данной статье представлен практический подход к адаптации современного фреймворка для анализа финансовых потоков средствами MQL5. Рассмотрены ключевые компоненты модели — Depth-Wise свёртки с остаточными связями, конусные Super Kernel Block и модуль глобальной агрегации движения (GMA).
preview
Архитектура коллективных торговых решений ИИ-агентов

Архитектура коллективных торговых решений ИИ-агентов

Статья описывает архитектуру мультиагентной торговой системы на базе языковой модели grok-4-fast, где вместо одного системного промпта работают четыре независимых аналитика с принципиально разными ролями: бык, медведь, риск-менеджер и арбитр. Три аналитика запускаются параллельно через ThreadPoolExecutor и за 3–5 секунд формируют аргументированные позиции по одним и тем же рыночным данным, после чего детерминированный судья выносит финальный вердикт по жёстким правилам.
preview
Разработка инструментария для анализа Price Action (Часть 23): Индикатор силы валют

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

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

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

Приглашаем к знакомству с фреймворком S3CE-Net и его механизмами SSAM и STFS, которые точно обрабатывают спайковые события с учётом каузальности. Модель лёгкая, параллельная и умеет выявлять сложные связи во времени и пространстве.
preview
От начального до среднего уровня: Шаблон и Typename (I)

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

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

Введение в MQL5 (Часть 12): Руководство для начинающих по созданию пользовательских индикаторов

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

Знакомство с языком MQL5 (Часть 20): Введение в гармонические паттерны

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

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

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

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

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

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

Сегодня мы начнем изучать структуры более простым, практичным и комфортным способом. Структуры являются одной из основ программирования, независимо от того, структурированы они или нет. Я знаю, что по мнению многих, структуры - это просто коллекции данных, но уверяю вас, что это гораздо больше, чем просто структуры. И здесь мы начнем исследовать эту новую вселенную наиболее дидактическим способом.
preview
Разработка инструментария для анализа Price Action (Часть 25): Пробой фракталов по двум EMA

Разработка инструментария для анализа Price Action (Часть 25): Пробой фракталов по двум EMA

Анализ Price Action – это фундаментальный подход к выявлению прибыльных сетапов. Однако вручную отслеживать движение цены и паттерны бывает сложно и долго. Для решения этой задачи мы разрабатываем инструменты, которые автоматически анализируют Price Action и подают своевременные сигналы при обнаружении потенциальных возможностей. В этой статье представлен надежный инструмент, который использует пробои фракталов в сочетании с EMA 14 и EMA 200 для генерации надежных торговых сигналов, помогая трейдерам принимать более обоснованные решения.
preview
Разработка системы репликации (Часть 52): Всё усложняется (IV)

Разработка системы репликации (Часть 52): Всё усложняется (IV)

В этой статье мы изменим указатель мыши, чтобы иметь возможность взаимодействовать с индикатором управления, поскольку он работает нестабильно.
preview
Разрабатываем менеджер терминалов (Часть 2): Запуск нескольких экземпляров

Разрабатываем менеджер терминалов (Часть 2): Запуск нескольких экземпляров

Переходим к использованию сразу нескольких экземпляров терминала на сервере, организовав простую панель управления запуском и остановкой. Теперь пришло время расширять функциональность и переходить к следующим этапам — реализации более сложных возможностей, таких как управление несколькими экземплярами, хранение состояния, интеграция с MetaTrader5 API и веб-интерфейс с полной информацией о терминалах.
preview
Разработка MQTT-клиента для MetaTrader 5: методология TDD (Часть 6)

Разработка MQTT-клиента для MetaTrader 5: методология TDD (Часть 6)

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

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

Temporal Difference (TD, временные различия) — еще один алгоритм обучения с подкреплением, который обновляет Q-значения на основе разницы между прогнозируемыми и фактическими вознаграждениями во время обучения агента. Особое внимание уделяется обновлению Q-значений без учета их пар "состояние-действие" (state-action). Как обычно, мы рассмотрим, как этот алгоритм можно применить в советнике, собранном с помощью Мастера.