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

icon

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

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

Новая статья
последние | лучшие
preview
Алгоритм кристаллической структуры — Crystal Structure Algorithm (CryStAl)

Алгоритм кристаллической структуры — Crystal Structure Algorithm (CryStAl)

В статье представлены две версии Алгоритма кристаллической структуры, оригинальная и модифицированная. Алгоритм Crystal Structure Algorithm (CryStAl), опубликованный в 2021 году и вдохновленный физикой кристаллических структур, позиционировался как parameter-free метаэвристика для глобальной оптимизации. Однако тестирование выявило критическую проблему алгоритма. Представлена также модифицированная версия CryStAlm, которая исправляет ключевые недостатки оригинала.
preview
Машинное обучение и Data Science (Часть 38): Применение трансферного обучения (Transfer Learning) на валютных рынках

Машинное обучение и Data Science (Часть 38): Применение трансферного обучения (Transfer Learning) на валютных рынках

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

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

Буферы воспроизведения в обучении с подкреплением особенно важны при использовании алгоритмов вне политики (off-policy), таких как DQN или SAC. Это выводит на первый план процесс выборки буфера памяти. В то время как параметры по умолчанию с SAC, например, используют случайный выбор из буфера, буферы с приоритетным воспроизведением опыта (Prioritized Experience Replay buffers) обеспечивают точную настройку путем выборки из буфера на основе оценки TD. Мы рассмотрим важность обучения с подкреплением и, как всегда, изучим только одну гипотезу (без перекрестной проверки) в созданном Мастером советнике.
preview
Создание торговой панели администратора на MQL5 (Часть IX): Организация кода (V). Класс AnalyticsPanel

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

В этой статье мы рассмотрим, как получать рыночные данные в реальном времени и информацию о торговом счете, выполнять различные вычисления и отображать результаты на настраиваемой панели. Для достижения этой цели мы углубимся в разработку класса AnalyticsPanel, который будет включать в себя все эти функции, в том числе создание панелей. Эта работа является частью нашего продолжающегося расширения советника новой панели администратора (New Admin Panel EA), внедряющей расширенные функции с использованием принципов модульного проектирования и лучших практик организации кода.
preview
Разработка системы репликации (Часть 60): Нажатие кнопки воспроизведения в сервисе (I)

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

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

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

В настоящей статье мы создаём советника на MQL5 для определения гармонических паттернов Butterfly. Мы определяем точки разворота и проверяем уровни Фибоначчи для подтверждения паттерна. Затем визуализируем паттерн на графике и автоматически совершаем сделки при подтверждении.
preview
От начального до среднего уровня: Struct (V)

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

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

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

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

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

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

От новичка до эксперта: Ориентирование в непредсказуемой стихии рынка

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

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

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

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

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

Трейдинг с экономическим календарем MQL5 (Часть 4): Обновление новостей в панели управления в реальном времени

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

Новый подход к пользовательским критериям при оптимизациях (Часть 1): Примеры функций активации

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

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

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

Разработка системы репликации (Часть 72): Неожиданный способ оповещений (I)

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

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

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

Торговый инструментарий MQL5 (Часть 7): Расширение EX5-библиотеки для управления историей функциями последнего отмененного отложенного ордера

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

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

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

Разработка системы репликации (Часть 76): Новый Chart Trade (III)

В этой статье мы рассмотрим, как работает недостающий код из предыдущей статьи, DispatchMessage. Здесь мы введем тему следующей статьи. По этой причине важно понять, как работает данная процедура, прежде чем переходить к следующей теме. Представленные здесь материалы предназначены только для обучения. Ни в коем случае не рассматривайте это приложение как окончательное, цели которого будут иные, кроме изучения представленных концепций.
preview
Как создать и адаптировать RL-агент с LLM и квантовым кодированием в алгоритмическом трейдинге на MQL5

Как создать и адаптировать RL-агент с LLM и квантовым кодированием в алгоритмическом трейдинге на MQL5

В статье предложен гибридный подход к алгоритмическому трейдингу на основе квантового кодирования рыночных состояний, Double DQN с приоритетным буфером опыта и LLM в роли контекстного советника. Методология SEAL обеспечивает асинхронное дообучение агента без остановки торговли. Легковесный Q-learning фильтр (USE/SKIP/REDUCE) управляет исполнением сигналов на мета-уровне. Приводятся практические детали интеграции системы с торговой платформой MetaTrader 5 и схемы её адаптации к режимным сдвигам рынка.
preview
Моделирование рынка (Часть 14): Сокеты (VIII)

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

Многие программисты могут предположить, что нам следует отказаться от использования Excel и перейти непосредственно на Python, используя некоторые пакеты, позволяющие Python создавать Excel-файл, чтобы потом проанализировать результаты. Но, как уже говорилось в предыдущей статье, хотя это решение и является наиболее простым для многих программистов, оно не будет воспринято некоторыми пользователями. И в данном вопросе пользователь всегда прав. Мы, как программисты, должны найти способ заставить всё работать.
preview
Наблюдатель Connexus (Часть 8): Добавление Request Observer (Наблюдатель запросов)

Наблюдатель Connexus (Часть 8): Добавление Request Observer (Наблюдатель запросов)

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

Трейдинг с экономическим календарем MQL5 (Часть 6): Автоматизация входа в сделку с анализом новостей и таймерами обратного отсчета

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

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

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

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

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

Взаимная информация как критерий для поэтапного отбора признаков

В настоящей статье мы представляем реализацию поэтапного отбора признаков на MQL5, основанную на взаимной информации между оптимальным набором предикторов и целевой переменной.
preview
Осциллятор Parafrac V2: Интеграция Parabolic SAR и среднего истинного диапазона (Average True Range)

Осциллятор Parafrac V2: Интеграция Parabolic SAR и среднего истинного диапазона (Average True Range)

Осциллятор Parafrac V2 — передовой инструмент технического анализа, который объединяет индикатор Parabolic SAR (параболический индикатор «остановки и разворота») с индикатором среднего истинного диапазона (Average True Range, ATR), чтобы преодолеть ограничения своего предшественника, который полагался на фракталы и был склонен к тому, что пики сигнала заглушали предыдущие и текущие сигналы. Благодаря использованию показателя волатильности ATR, версия 2 предлагает более плавный и надежный метод обнаружения трендов, разворотов и расхождений, помогая трейдерам уменьшить перегрузку графиков и аналитический паралич.
preview
От начального до среднего уровня: Индикатор (IV)

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

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

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

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

Разрабатываем менеджер терминалов (Часть 3): Получаем информацию о счёте и добавляем конфигурацию

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

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

В продолжение нашей предыдущей статьи о DDPG с использованием скользящей средней и стохастических индикаторов мы рассматриваем другие ключевые классы обучения с подкреплением, имеющие решающее значение для реализации DDPG. Хотя мы в основном пишем код на Python, конечный продукт — обученная нейронная сеть — будет экспортирован в формате ONNX в MQL5, где мы интегрируем его в качестве ресурса в советник, созданный в Мастере.
preview
Алгоритм искусственной коронарной циркуляции — Artificial Coronary Circulation System (ACCS)

Алгоритм искусственной коронарной циркуляции — Artificial Coronary Circulation System (ACCS)

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

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

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

Отправка запросов в Connexus (Часть 6): Создание HTTP-запроса и ответа

В этой шестой статье из серии о библиотеке Connexus мы сосредоточимся на полном HTTP-запросе, рассмотрев каждый компонент, из которого состоит запрос. Мы создадим класс, представляющий запрос в целом, который поможет нам объединить ранее созданные классы.
preview
Поэтапный отбор признаков на MQL5

Поэтапный отбор признаков на MQL5

В этой статье мы представляем модифицированную версию поэтапного отбора признаков, реализованную в MQL5. Настоящий подход основан на методах, описанных Тимоти Мастерсом (Timothy Masters) в работе "Современных алгоритмах интеллектуального анализа данных на C++" и "CUDA C".
preview
От новичка до эксперта: Создание подробных торговых отчетов с помощью советника Reporting EA

От новичка до эксперта: Создание подробных торговых отчетов с помощью советника Reporting EA

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

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

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

Анализ нескольких символов с помощью Python и MQL5 (Часть II): Анализ главных компонентов для оптимизации портфеля

Управление рисками торгового счета является сложной задачей для всех трейдеров. Можем ли мы разработать торговые приложения, которые динамически изучают режимы высокого, среднего и низкого риска для различных символов в MetaTrader 5? Используя PCA, мы получаем лучший контроль над дисперсией портфеля. Я продемонстрирую, как создавать приложения, которые изучают эти три режима риска на основе рыночных данных, полученных из MetaTrader 5.
preview
Эко-эволюционный алгоритм — Eco-inspired Evolutionary Algorithm (ECO)

Эко-эволюционный алгоритм — Eco-inspired Evolutionary Algorithm (ECO)

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