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

icon

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

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

Новая статья
последние | лучшие
preview
Нейросети — это просто (Часть 79): Агрегирование запросов в контексте состояния (FAQ)

Нейросети — это просто (Часть 79): Агрегирование запросов в контексте состояния (FAQ)

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

Изучение MQL5 — от новичка до профи (Часть IV): О массивах, функциях и глобальных переменных терминала

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

Интеграция ML-моделей с тестером стратегий (Заключение): Реализация регрессионной модели для прогнозирования цен

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

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

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

Индикатор прогноза волатильности при помощи Python

Прогнозируем будущую экстремальную волатильность при помощи бинарной классификации. Создаем индикатор прогноза экстремальной волатильности с использованием машинного обучения.
preview
Популяционные алгоритмы оптимизации: Алгоритм интеллектуальных капель воды (Intelligent Water Drops, IWD)

Популяционные алгоритмы оптимизации: Алгоритм интеллектуальных капель воды (Intelligent Water Drops, IWD)

В статье рассматривается интересный алгоритм - интеллектуальные капли воды, IWD, подсмотренный у неживой природы, симулирующий процесс формирования русла реки. Идеи этого алгоритма позволили значительно улучшить прошлого лидера рейтинга - SDS, а нового лидера (модифицированный SDSm), как обычно, найдёте в архиве к статье.
preview
Индикатор силы и направления тренда на 3D-барах

Индикатор силы и направления тренда на 3D-барах

Рассмотрим новый подход к анализу рыночных трендов, основанный на трехмерной визуализации и тензорном анализе рыночной микроструктуры.
preview
Реализация советника Deus: Автоматическая торговля с RSI и скользящими средними в MQL5

Реализация советника Deus: Автоматическая торговля с RSI и скользящими средними в MQL5

В статье описываются шаги по внедрению советника Deus на основе индикаторов RSI и скользящей средней для управления автоматической торговлей.
preview
Нейросети — это просто (Часть 81): Анализ динамики данных с учетом контекста (CCMR)

Нейросети — это просто (Часть 81): Анализ динамики данных с учетом контекста (CCMR)

В предыдущих работах мы всегда оценивали текущее состояния окружающей среды. При этом динамика изменения показателей, как таковая, всегда оставалась "за кадром". В данной статье я хочу познакомить Вас с алгоритмом, который позволяет оценить непосредственное изменение данных между 2 последовательными состояниями окружающей среды.
preview
Как построить советник, работающий автоматически (Часть 09): Автоматизация (I)

Как построить советник, работающий автоматически (Часть 09): Автоматизация (I)

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

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

Статья является пятой частью серии, описывающей этапы разработки нативного MQL5-клиента для протокола MQTT 5.0. В этой части мы опишем структуру пакетов PUBLISH - как мы устанавливаем их флаги публикации (Publish Flags), кодируем строки названий тем и устанавливаем идентификаторы пакетов, когда это необходимо.
preview
Машинное обучение и Data Science (Часть 26): Решающая битва в прогнозирование временных рядов — LSTM против GRU

Машинное обучение и Data Science (Часть 26): Решающая битва в прогнозирование временных рядов — LSTM против GRU

В предыдущей статье мы рассмотрели простую рекуррентную нейронную сеть, которая, несмотря на свою неспособность понимать долгосрочные зависимости в данных, смогла разработать прибыльную стратегию. В этой статье мы поговорим о долгой кратковременной памяти (Long-Short Term Memoryю LSTM) и об управляемом рекуррентном блоке (Gated Recurrent Unit, GRU). Эти два подхода были разработаны для преодоления недостатков простой рекуррентной нейронной сети.
preview
Оборачиваем ONNX-модели в классы

Оборачиваем ONNX-модели в классы

Объектно-ориентированное программирование позволяет создавать более компактный код, который легко читать и модифицировать. Представляем пример для трёх ONNX-моделей.
preview
Автооптимизация тейк-профитов и параметров индикатора с помощью SMA и EMA

Автооптимизация тейк-профитов и параметров индикатора с помощью SMA и EMA

В статье представлен продвинутый советник для торговли на рынке Форекс, сочетающий машинное обучение с техническим анализом. Он предназначен для торговли акциями Apple с использованием адаптивной оптимизации, управления рисками и множества стратегий. Тестирование на исторических данных показывает многообещающие результаты, но также и значительные просадки, что указывает на потенциал для дальнейшего совершенствования.
preview
Нейросети в трейдинге: Superpoint Transformer (SPFormer)

Нейросети в трейдинге: Superpoint Transformer (SPFormer)

В данной статья предлагаем познакомиться с методом сегментации 3D-люъектов на основе Superpoint Transformer (SPFormer), который устраняет необходимость в промежуточной агрегации данных. Что ускоряет процесс сегментации и повышает производительность модели.
preview
Теория категорий в MQL5 (Часть 18): Квадрат естественности

Теория категорий в MQL5 (Часть 18): Квадрат естественности

Статья продолжает серию о теории категорий, представляя естественные преобразования, которые являются ключевым элементом теории. Мы рассмотрим сложное на первый взгляд определение, затем углубимся в примеры и способы применения преобразований в прогнозировании волатильности.
preview
Тип рисования DRAW_ARROW в мультисимвольных мультипериодных индикаторах

Тип рисования DRAW_ARROW в мультисимвольных мультипериодных индикаторах

В статье рассмотрим рисование стрелочных мультисимвольных мультипериодных индикаторов. Доработаем методы класса для корректного отображения стрелок, отображающих данные стрелочных индикаторов, рассчитанных на символе/периоде, не соответствующих символу/периоду текущего графика.
preview
Популяционные алгоритмы оптимизации: Алгоритм оптимизации спиральной динамики (Spiral Dynamics Optimization, SDO)

Популяционные алгоритмы оптимизации: Алгоритм оптимизации спиральной динамики (Spiral Dynamics Optimization, SDO)

В статье представлен алгоритм оптимизации, основанный на закономерностях построения спиральных траекторий в природе, таких как раковины моллюсков - алгоритм оптимизации спиральной динамики, SDO. Алгоритм, предложенный авторами, был мной основательно переосмыслен и модифицирован, в статье будет рассмотрено, почему эти изменения были необходимы.
preview
DoEasy. Элементы управления (Часть 25): WinForms-объект "Tooltip"

DoEasy. Элементы управления (Часть 25): WinForms-объект "Tooltip"

В статье начнём разработку элемента управления Tooltip ("всплывающая подсказка") и начнём создание новых графических примитивов для библиотеки. Естественно, не у каждого элемента есть всплывающая подсказка, но возможность её задать для него есть у каждого графического объекта.
preview
Нейросети — это просто (Часть 91): Прогнозирование в частотной области (FreDF)

Нейросети — это просто (Часть 91): Прогнозирование в частотной области (FreDF)

Мы продолжаем рассмотрение темы анализ и прогнозирования временных рядов в частотной области. И в данной статье мы познакомимся с новым методом прогнозирования в частотной области, который может быть добавлен к многим, изученным нами ранее, алгоритмам.
preview
Нейросети в трейдинге: Универсальная модель генерации траекторий (UniTraj)

Нейросети в трейдинге: Универсальная модель генерации траекторий (UniTraj)

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

Теория хаоса в трейдинге (Часть 2): Продолжаем погружение

Продолжаем погружение в теорию хаоса на финансовых рынках, и рассмотрим ее применимость к анализу валют и иных активов.
preview
Введение в MQL5 (Часть 4): Структуры, классы и функции времени

Введение в MQL5 (Часть 4): Структуры, классы и функции времени

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

Построение экономических прогнозов: потенциальные возможности Python

Как использовать экономические данные Всемирного банка для прогнозирования? Что будет если совместить модели ИИ и экономику?
preview
Мониторинг торговли с помощью Push-уведомлений — пример сервиса в MetaTrader 5

Мониторинг торговли с помощью Push-уведомлений — пример сервиса в MetaTrader 5

В статье рассмотрим создание программы сервиса для отправки уведомлений на смартфон о результатах торговли. В рамках статьи научимся работать со списками объектов Стандартной Библиотеки для организации выборки объектов по требуемым свойствам.
preview
Парный трейдинг: Алготорговля с автооптимизацией на разнице Z-оценки

Парный трейдинг: Алготорговля с автооптимизацией на разнице Z-оценки

В этой статье разберем, что такое парный трейдинг и как происходит торговля на корреляциях. Также создадим советник для автоматизации парного трейдинга и добавим возможность автоматической оптимизации такого торгового алгоритма на исторических данных. Кроме того, в рамках проекта узнаем, как рассчитывать расхождения двух пар с помощью z-оценки.
preview
GIT: Но что это?

GIT: Но что это?

В этой статье я представлю очень важный инструмент для разработчиков. Если вы не знакомы с GIT, прочтите эту статью, дабы получить представление о том, что он собой представляет, и как его использовать вместе с MQL5.
preview
Разработка системы репликации - Моделирование рынка (Часть 20): ФОРЕКС (I)

Разработка системы репликации - Моделирование рынка (Часть 20): ФОРЕКС (I)

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

Нейросети в трейдинге: Модели направленной диффузии (DDM)

Предлагаем познакомиться с моделями направленной диффузии, которые используют анизотропные и направленные шумы, зависящие от данных, в процессе прямой диффузии для захвата значимых графовых представлений.
preview
Разработка торгового советника с нуля (Часть 16): Доступ к данным в Интернете (II)

Разработка торгового советника с нуля (Часть 16): Доступ к данным в Интернете (II)

Знание того, как вводить данные из Web в советник, не так очевидно, вернее, не так просто, чтобы это можно было сделать без понимания всех возможностей, которые есть в MetaTrader 5.
preview
DoEasy. Элементы управления (Часть 19): Прокрутка вкладок в элементе TabControl, события WinForms-объектов

DoEasy. Элементы управления (Часть 19): Прокрутка вкладок в элементе TabControl, события WinForms-объектов

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

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

Угол атаки (Angle of Attack) — популярный показатель, значение крутизны (steepness) которого, как считается, тесно связано с силой преобладающего тренда. Мы рассмотрим, как он обычно трактуется и применяется, и выясним, есть ли изменения, которые можно было бы внести в способ его измерения для улучшения торговой системы.
preview
DoEasy. Элементы управления (Часть 11): WinForms-объекты — группы, WinForms-объект CheckedListBox

DoEasy. Элементы управления (Часть 11): WinForms-объекты — группы, WinForms-объект CheckedListBox

В статье рассмотрим группирование WinForms-объектов и создадим объект-список объектов CheckBox.
preview
Нейросети в трейдинге: Transformer с относительным кодированием

Нейросети в трейдинге: Transformer с относительным кодированием

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

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

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

Нейросети — это просто (Часть 82): Модели Обыкновенных Дифференциальных Уравнений (NeuralODE)

В данной статье я предлагаю познакомиться Вас с еще одним типом моделей, которые направлены на изучение динамики состояния окружающей среды.
preview
Алгоритм оптимизации на основе мозгового штурма — Brain Storm Optimization (Часть II): Многомодальность

Алгоритм оптимизации на основе мозгового штурма — Brain Storm Optimization (Часть II): Многомодальность

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

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

По мере продвижения мы использовали в одном советнике всё больше и больше одновременно работающих экземпляров торговых стратегий. Попробуем выяснить до какого количества экземпляров мы можем дойти прежде, чем столкнёмся ограничениями ресурсов.
preview
Разрабатываем мультивалютный советник (Часть 14): Адаптивное изменение объёмов в риск-менеджере

Разрабатываем мультивалютный советник (Часть 14): Адаптивное изменение объёмов в риск-менеджере

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

Разработка советника на основе стратегии прорыва диапазона консолидации на MQL5

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