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

icon

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

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

Новая статья
последние | лучшие
preview
Разработка инструментария для анализа движения цен (Часть 18): Введение в теорию четвертей (III) — Quarters Board

Разработка инструментария для анализа движения цен (Часть 18): Введение в теорию четвертей (III) — Quarters Board

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

От новичка до эксперта: Создание анимированного советника для новостей в MQL5 (III) — Анализ индикаторов

В настоящей статье продолжим рассказ о советнике «Заголовки новостей», представив специальную полосу «Анализ индикаторов» (indicator insights) — компактное отображение на графике ключевых технических сигналов, генерируемых популярными индикаторами, такими как RSI, MACD, Stochastic и CCI. Такой подход устраняет необходимость в нескольких подокнах индикаторов в терминале MetaTrader 5, сохраняя ваше рабочее пространство чистым и эффективным. Используя MQL5 API для доступа к данным индикаторов в фоновом режиме, мы можем обрабатывать и визуализировать рыночную информацию в режиме реального времени с помощью пользовательской логики.
preview
Гауссовcкие процессы в машинном обучении (Часть 2): Реализация и тестирование модели классификации в MQL5

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

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

Алгоритм Поиска Ворона — Crow Search Algorithm (CSA)

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

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

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

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

S3CE-Net в нашей интерпретации ловко переводит рынок в язык событий и фиксирует ранние импульсы, которые традиционные индикаторы просто усредняют. STFS гарантирует устойчивость обучения — модель видит данные под разными углами и не переобучается на локальных аномалиях. SSAM-блоки и OpenCL-реализация дают практическую скорость и точность, а разделение режимов обучение/эксплуатация сохраняет ресурсы в продакшене.
preview
От начального до среднего уровня: Массивы и строки (III)

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

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

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

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

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

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

Создание торговой панели администратора на MQL5 (Часть IV): Безопасность входа в систему

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

Реализация механизма безубыточности в MQL5 (Часть 2): Безубыток на основе ATR и RRR

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

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

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

Интеграция Discord с MetaTrader 5: Создание торгового бота с уведомлениями в реальном времени

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

Методы повторной выборки для оценки прогнозирования и классификации в MQL5

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

Создание торговой панели администратора на MQL5 (Часть VI): Мультифункциональный интерфейс (I)

Роль администратора выходит за рамки простого общения в Telegram; он также может заниматься различными видами контроля, включая управление ордерами, отслеживание позиций и настройку интерфейса. В этой статье мы поделимся практическими советами по расширению нашей программы для поддержки множества функций в MQL5. Это обновление направлено на преодоление ограничений текущей панели администратора, которая в первую очередь сосредоточена на общении.
preview
Оптимизация нейробоидами — Neuroboids Optimization Algorithm (NOA)

Оптимизация нейробоидами — Neuroboids Optimization Algorithm (NOA)

Новая авторская биоинспирированная метаэвристика оптимизации — NOA (Neuroboids Optimization Algorithm), объединяющая принципы коллективного интеллекта и нейронных сетей. В отличие от классических методов, алгоритм использует популяцию самообучающихся "нейробоидов", каждый с собственной нейросетью, адаптирующей стратегию поиска в реальном времени. Статья раскрывает архитектуру алгоритма, механизмы самообучения агентов и перспективы применения этого гибридного подхода в сложных задачах оптимизации.
preview
Загрузка данных Международного валютного фонда на Python

Загрузка данных Международного валютного фонда на Python

Загрузка данных Международного валютного фонда на Python: добываем данные IMF для применения в макроэкономических валютных стратегиях. Как макроэкономика может помочь трейдеру и алготрейдеру?
preview
Разработка системы репликации (Часть 67): Совершенствуем индикатор управления

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

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

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

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

Инженерия признаков с Python и MQL5 (Часть III): Угол наклона цены (2) Полярные координаты

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

Внедряем систему непрерывной адаптации LLM для алгоритмического трейдинга

SEAL (Self-Evolving Adaptive Learning) — система непрерывной адаптации LLM для алгоритмического трейдинга, решающая проблему быстрой деградации моделей на меняющихся рынках. Вместо периодического переобучения, которое занимает часы и стирает старые паттерны, SEAL учится на каждой закрытой сделке, сохраняя приоритетную память важных примеров и автоматически запуская инкрементальный файнтьюнинг при падении точности или смене рыночного режима.
preview
Разработка системы репликации (Часть 75): Новый Chart Trade (II)

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

В этой статье мы расскажем о классе C_ChartFloatingRAD. Это то, что позволяет Chart Trade работать. Однако на этом объяснение не закончится. Мы завершим его в следующей статье, так как содержание данной статьи довольно объемное и требует глубокого понимания. Представленные здесь материалы предназначены только для обучения. Ни в коем случае не рассматривайте его как окончательное приложение, целью которого не является изучение представленных концепций.
preview
От начального до среднего уровня: Операторы

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

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

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

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

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

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

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

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

Торгуем опционы без опционов (Часть 4): Более сложные опционные стратегии

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

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

В этой статье мы рассмотрим, как работать с массивами в MQL5, в том числе, как передавать информацию между функциями и процедурами с помощью массивов. Цель — подготовить вас к тому, что будет демонстрироваться и разъясняться в будущих материалах серии. Поэтому настоятельно рекомендую внимательно изучить то, что будет показано в этой статье.
preview
Алгоритм циклического партеногенеза — Cyclic Parthenogenesis Algorithm (CPA)

Алгоритм циклического партеногенеза — Cyclic Parthenogenesis Algorithm (CPA)

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

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

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

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

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

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

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

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

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

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

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

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

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

Трейдинг с экономическим календарем MQL5 (Часть 3): Добавление сортировки по валюте, важности и времени

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

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

В этой статье мы представим обновленную панель связи и продолжим нашу серию статей о создании новой панели администратора с использованием принципов модуляризации. Мы шаг за шагом разработаем класс CommunicationsDialog, подробно объяснив, как наследовать его от класса Dialog. Кроме того, в процессе разработки мы будем использовать массивы и класс ListView. Присоединяйтесь к обсуждению в комментариях!
preview
Разложение по динамическим модам в применении к одномерным временным рядам в языке MQL5

Разложение по динамическим модам в применении к одномерным временным рядам в языке MQL5

Разложение по динамическим модам (Dynamic mode decomposition, DMD) — метод, который обычно применяют к наборам многомерных данных. В этой статье мы демонстрируем применение DMD на одномерных временных рядах, выявляя его способность характеризовать ряды, а также делать прогнозы. При этом рассмотрим встроенную в MQL5 реализацию разложения по динамическим модам, уделяя особое внимание новому матричному методу DynamicModeDecomposition().
preview
Детерминированный алгоритм дендритных клеток — Deterministic Dendritic Cell Algorithm (dDCA)

Детерминированный алгоритм дендритных клеток — Deterministic Dendritic Cell Algorithm (dDCA)

Представлена адаптация детерминированного алгоритма дендритных клеток (dDCA) для задач непрерывной оптимизации. Алгоритм, вдохновлённый Теорией Опасности иммунной системы, использует механизм накопления сигналов для автоматического баланса между исследованием и эксплуатацией пространства поиска.
preview
Анализ нескольких символов с помощью Python и MQL5 (Часть I): Производители интегральных схем NASDAQ

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

В статье мы рассмотрим, как использовать ИИ для оптимизации размера позиции и количества ордеров, чтобы максимизировать доходность портфеля. Мы покажем, как алгоритмически определить оптимальный портфель и адаптировать его к вашим ожиданиям по доходности или уровню устойчивости к риску. Мы используем библиотеку SciPy и язык MQL5 для создания оптимального и диверсифицированного портфеля, используя все имеющиеся у нас данные.