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

icon

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

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

Новая статья
последние | лучшие
preview
Алгоритм оптимизации сновидениями — Dream Optimization Algorithm (DOA)

Алгоритм оптимизации сновидениями — Dream Optimization Algorithm (DOA)

Популяционный алгоритм оптимизации, вдохновленный спорным и малоизученным феноменом — механизмом человеческих сновидений. Группы агентов с разной "памятью", косинусоидальная модуляция движения и необычное распределение фаз 99/1 — узнайте, как эти особенности влияют на эффективность оптимизации ваших торговых стратегий.
preview
От начального до среднего уровня: Шаблон и Typename (V)

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

В данной статье мы изучим последний простой случай использования шаблонов, а также поговорим о пользе и необходимости использования typename в коде. Хотя поначалу данная статья может показаться несколько сложной, необходимо правильно ее понять, чтобы в дальнейшем использовать шаблоны и typename.
preview
Реализация квантовой схемы Quantum Reservoir Computing (QRC)

Реализация квантовой схемы Quantum Reservoir Computing (QRC)

Революционный подход к машинному обучению в трейдинге через квантовые вычисления. Статья демонстрирует практическую реализацию адаптивной системы QRC с постоянным дообучением для прогнозирования рыночных движений в реальном времени.
preview
От начального до среднего уровня: Шаблон и Typename (IV)

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

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

Управление рисками (Часть 2): Реализация расчета лотов в графическом интерфейсе

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

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

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

Искусство ведения логов (Часть 2): Форматирование логов

В данной статье мы изучим создание и применение программ форматирования для библиотек логов. Мы рассмотрим все этапы, от базовой структуры программы форматирования до примеров реализации таких программ на практике. К концу статьи вы получите все необходимые знания для форматирования логов в рамках библиотеки и поймете, как все работает за кулисами.
preview
От начального до среднего уровня: Шаблон и Typename (III)

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

В этой статье мы рассмотрим первую часть темы, которая не так проста для понимания новичками. Чтобы не запутаться еще больше и правильно объяснить данную тему, мы разделим объяснение на этапы. Эту статью мы посвятим первому этапу. Однако, хотя в конце статьи может показаться, что мы зашли в тупик, на самом деле мы сделаем шаг к другой ситуации, которая будет лучше понятна в следующей статье.
preview
Алгоритм дуэлянта — Duelist Algorithm

Алгоритм дуэлянта — Duelist Algorithm

Что если бы ваши торговые стратегии могли учиться друг у друга, как настоящие бойцы? Duelist Algorithm — новый метод оптимизации, где параметры торговых систем буквально сражаются в дуэлях за право называться лучшими.
preview
Изучение MQL5 — от новичка до профи (Часть VII): Принципы отладки приложений MQL

Изучение MQL5 — от новичка до профи (Часть VII): Принципы отладки приложений MQL

Исправление ошибок — неотъемлемая часть цикла программирования. В этой статье рассмотрены типовые приемы исправления ошибок (отладки) любого приложения, работающего в среде MetaTrader 5.
preview
Нейросети в трейдинге: Модель темпоральных запросов (TQNet)

Нейросети в трейдинге: Модель темпоральных запросов (TQNet)

Фреймворк TQNet открывает новые возможности в моделировании и прогнозировании финансовых временных рядов, сочетая модульность, гибкость и высокую производительность. В статье раскрывается возможность реализации сложных механизмом работы с глобальными корреляциями, включая продвинутые методы инициализации параметров.
preview
Моделирование рынка (Часть 04): Создание класса C_Orders (I)

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

В данной статье мы начнем создание класса C_Orders, чтобы иметь возможность отправлять ордеры на торговый сервер. Мы будем делать это понемногу, поскольку наша цель состоит в том, чтобы подробно объяснить, как это будет происходить с помощью системы обмена сообщениями.
preview
Машинное обучение и Data Science (Часть 32): Как поддерживать актуальность AI-моделей с онлайн-обучением

Машинное обучение и Data Science (Часть 32): Как поддерживать актуальность AI-моделей с онлайн-обучением

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

Нейросетевой торговый робот на современной архитектуре нейросети Mamba с селективной SSM

Статья исследует революционную архитектуру нейронной сети Mamba/SSM для прогнозирования финансовых временных рядов. Представлена полная реализация на MQL5 современной альтернативы Transformer с линейной сложностью O(N) вместо квадратичной O(N²). Детально рассмотрены селективные State Space Models, hardware-aware оптимизации, patching техники и продвинутые методы обучения AdamW. Включены практические результаты тестирования, показавшие увеличение точности с 62% до 71% при снижении времени обучения с 45 до 8 минут. Представлен готовый торговый советник с автообучением и адаптивным риск-менеджментом для MetaTrader 5.
preview
От начального до среднего уровня: Шаблон и Typename (II)

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

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

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

Предлагаем познакомиться с алгоритмом разложения временного ряда на смысловые слои и построения из них экономной модели. Мы последовательно показываем архитектуру, практическую реализацию на MQL5/OpenCL и реальные тесты на исторических рыночных данных.
preview
Моделирование рынка (Часть 03): Вопрос производительности

Моделирование рынка (Часть 03): Вопрос производительности

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

Применение ансамблевых методов для задач классификации на языке MQL5

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

Риск-менеджер для торговых роботов (Часть I): Включаемый файл контроля рисков для советников

Трейдинг характеризуется высокими требованиями к дисциплине риск-менеджмента. Настоящая работа представляет анализ основных причин неудач трейдеров и предлагает техническое решение в виде класса CEnhancedRiskManager для платформы MQL5. Включает практическое тестирование на агрессивном сеточном советнике.
preview
Добавляем пользовательскую LLM в торгового робота (Часть 5): Разработка и тестирование торговой стратегии с помощью LLM (III) – Настройка адаптера

Добавляем пользовательскую LLM в торгового робота (Часть 5): Разработка и тестирование торговой стратегии с помощью LLM (III) – Настройка адаптера

Языковые модели (LLM) являются важной частью быстро развивающегося искусственного интеллекта, поэтому нам следует подумать о том, как интегрировать мощные LLM в нашу алгоритмическую торговлю. Большинству людей сложно настроить эти модели в соответствии со своими потребностями, развернуть их локально, а затем применить к алгоритмической торговле. В этой серии статей будет рассмотрен пошаговый подход к достижению этой цели.
preview
От начального до среднего уровня: Шаблон и Typename (I)

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

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

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

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

Моделирование рынка (Часть 02): Кросс-ордера (II)

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

Файловые операции в MQL5: От базового ввода-вывода до собственного CSV-ридера

В статье рассматриваются основные методы обработки файлов MQL5, ведение журналов торговли, обработка CSV-файлов и интеграция внешних данных. Статья содержит как теорию, так и практическое руководство по реализации. Читатели научатся шаг за шагом создавать собственный класс импортера CSV, получив практические навыки для реальных приложений.
preview
Прогнозирование в трейдинге и Grey-модели

Прогнозирование в трейдинге и Grey-модели

В этой статье рассматривается применение Grey-моделей для прогнозирования финансовых временных рядов. Мы рассмотрим принципы работы Grey-моделей и особенности их применения к финансовым рядам. Обсудим преимущества и ограничения использования этих моделей в трейдинге.
preview
Создание прибыльной торговой системы (Часть 1): Количественный подход

Создание прибыльной торговой системы (Часть 1): Количественный подход

Многие трейдеры оценивают стратегии, основываясь на краткосрочных результатах, часто слишком рано отказываясь от прибыльных систем. Однако долгосрочная прибыльность зависит от положительного ожидания посредством оптимизированного Win Rate и соотношения доходности к риску (Risk-Reward), а также дисциплины при выборе размера позиции. Эти принципы можно проверить с помощью метода Монте-Карло в Python с использованием проверенных на исторических данных показателей, чтобы оценить, является ли стратегия надежной или со временем может потерпеть неудачу.
preview
Моделирование рынка (Часть 01): Кросс-ордера (I)

Моделирование рынка (Часть 01): Кросс-ордера (I)

Сегодня мы начнем второй этап, на котором рассмотрим вопрос о системе репликации/моделирования рынка. Для начала мы покажем возможное решение для кросс-ордеров. Я покажу решение, но оно еще не окончательное, это будет вариант решения проблемы, решить которую предстоит в ближайшем будущем.
preview
Автоматизация торговых стратегий с помощью MQL5 (Часть 2): Система прорыва Кумо с Ichimoku и Awesome Oscillator

Автоматизация торговых стратегий с помощью MQL5 (Часть 2): Система прорыва Кумо с Ichimoku и Awesome Oscillator

В этой статье мы создаем советник, который автоматизирует стратегию прорыв Кумо (Kumo Breakout) с использованием индикатора Ichimoku Kinko Hyo и Awesome Oscillator. Мы рассмотрим инициализацию хэндлов индикаторов, обнаружение условий прорыва и автоматизацию входов и выходов из сделок. Кроме того, мы внедрим трейлинг-стопы и логику управления позициями для повышения производительности советника и его адаптивности к рыночным условиям.
preview
Гауссовcкие процессы в машинном обучении (Часть 2): Реализация и тестирование модели классификации в MQL5

Гауссовcкие процессы в машинном обучении (Часть 2): Реализация и тестирование модели классификации в MQL5

В этой части мы рассмотрим реализацию ключевых интерфейсов библиотеки Гауссовских процессов на MQL5 — IKernel, ILikelihood и IInference. Также мы продемонстрируем её работу на синтетических данных и и напишем индикаторы для классификации и регрессии, демонстрирующие её работу в онлайн-режиме — с переобучением модели на каждом новом баре.
preview
Нейросети в трейдинге: Декомпозиция вместо масштабирования (SSCNN)

Нейросети в трейдинге: Декомпозиция вместо масштабирования (SSCNN)

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

Интеграция MQL5 с пакетами обработки данных (Часть 4): Обработка больших данных

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

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

Я поставил перед собой задачу построить торговую стратегию вокруг пары USDJPY. Мы будем использовать свечные модели, которые формируются на дневном таймфрейме, поскольку они потенциально имеют большую силу. Наша первоначальная стратегия оказалась прибыльной, что побудило нас продолжить ее совершенствование и добавить дополнительные уровни безопасности для защиты полученного капитала.
preview
Компоненты View и Controller для таблиц в парадигме MVC на MQL5: Изменяемые размеры элементов

Компоненты View и Controller для таблиц в парадигме MVC на MQL5: Изменяемые размеры элементов

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

Передача тиковых данных из MetaTrader в Python через сокеты с помощью MQL5-сервисов

Иногда не все можно запрограммировать на языке MQL5. И даже если возможно конвертировать существующие современные библиотеки в MQL5, на это уйдет много времени. В данной статье мы попытаемся обойти зависимость от Windows с помощью MQL5-сервисов — будем передавать тиковые данные (bid, ask и time) в приложение Python с помощью сокетов.
preview
Сингулярный спектральный анализ на MQL5

Сингулярный спектральный анализ на MQL5

Данная статья предназначена в качестве руководства для тех, кто не знаком с концепцией сингулярного спектрального анализа и хочет получить достаточно знаний, чтобы иметь возможность применять встроенные инструменты, доступные на MQL5.
preview
Построение модели для ограничения диапазона сигналов по тренду (Часть 9): Советник с несколькими стратегиями (III)

Построение модели для ограничения диапазона сигналов по тренду (Часть 9): Советник с несколькими стратегиями (III)

Добро пожаловать в третью часть серии статьей о трендах! Сегодня мы углубимся в использование дивергенции как стратегии определения оптимальных точек входа в рамках преобладающего дневного тренда. Мы также представим специальный механизм фиксации прибыли, аналогичный скользящему стоп-лоссу, но с уникальными усовершенствованиями. Кроме того, мы обновим советник Trend Constraint до более продвинутой версии, включив в него новое условие исполнения сделки в дополнение к существующим. Также мы продолжим изучать практическое применение MQL5 в разработке алгоритмов.
preview
Алгоритм искусственного атома —  Artificial Atom Algorithm (A3)

Алгоритм искусственного атома — Artificial Atom Algorithm (A3)

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

Разработка инструментария для анализа движения цен (Часть 5): Советник Volatility Navigator

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

Теория графов: Алгоритм Дейкстры в трейдинге

Алгоритм Дейкстры — классическое решение по поиску кратчайшего пути в теории графов, которое позволяет оптимизировать торговые стратегии путем моделирования рыночных сетей. Трейдеры могут использовать его для поиска наиболее эффективных маршрутов в данных свечного графика.
preview
Управление рисками (Часть 1): Основы построения класса по управлению рисками

Управление рисками (Часть 1): Основы построения класса по управлению рисками

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