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

icon

Самые разнообразные статьи с примерами по созданию индикаторов и торговых роботов для платформы MetaTrader на языке MQL5 ждут вас. К каждой статье приложены исходные коды, которые вы можете открыть в редакторе MetaEditor и запустить самостоятельно.

Эти статьи будут полезны как новичкам в автоматическом трейдинге, так и подготовленным трейдерам с опытом программирования и торговли. Здесь вы найдете не только примеры, но и новые идеи.

Новая статья
последние | лучшие
preview
От новичка до эксперта: Создание анимированного советника для новостей в MQL5 (X) — Представление графика с несколькими символами для торговли на новостях

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

Сегодня мы разработаем систему просмотра нескольких диаграмм с использованием объектов диаграмм. Цель состоит в том, чтобы улучшить торговлю на новостях за счет применения алгоритмов на MQL5, которые помогают сократить время реакции трейдера в периоды высокой волатильности, такие как выход крупных новостей. В этом случае мы предоставляем трейдерам интегрированный способ мониторинга нескольких основных инструментов в рамках единого инструмента для торговли на новостях. Наша работа постоянно продвигается с появлением советника News Headline EA («Заголовки новостей»), который теперь обладает растущим набором функций, которые привносят действительное значение как для трейдеров, использующих полностью автоматизированные системы, так и для тех, кто предпочитает ручную торговлю с помощью алгоритмов. Ознакомьтесь с новыми знаниями, информацией и практическими идеями, перейдя по ссылке и присоединившись к настоящему обсуждению.
preview
Как получить синхронизированные массивы для использования в алгоритмах портфельной торговли

Как получить синхронизированные массивы для использования в алгоритмах портфельной торговли

Описан практический подход к синхронизации баров между инструментами портфеля в MQL5. Предложены классы для загрузки, хранения и выравнивания OHLCV с опциями: пустой бар или перенос значений предыдущего бара, выбор символа синхронизации и обработка асинхронных новых баров. Показаны примеры использования в индикаторах мультиграфиков и корзины. Читатель получает готовый API для стабильных портфельных расчетов.
preview
Разработка инструментария для анализа Price Action (Часть 43): Вероятностный анализ свечных паттернов и пробоев

Разработка инструментария для анализа Price Action (Часть 43): Вероятностный анализ свечных паттернов и пробоев

Улучшите рыночный анализ с помощью советника Candlestick Probability на MQL5 – компактного инструмента, который преобразует исходные ценовые бары в вероятностную аналитику в реальном времени по конкретному инструменту. Он классифицирует пин-бары, паттерны поглощения и доджи на закрытии бара, использует фильтрацию с учетом волатильности по ATR и при необходимости подтверждение пробоя. Советник рассчитывает простые и взвешенные по объему проценты отработки, помогая понять, каков типичный исход каждого паттерна на конкретных символах и таймфреймах. Маркеры на графике, компактная информационная панель и интерактивные переключатели позволяют быстро проверять результаты и сосредоточиться на нужном. Экспортируйте подробные CSV-логи для последующего анализа вне терминала. Используйте советник, чтобы строить вероятностные профили, оптимизировать стратегии и превращать распознавание паттернов в измеримое преимущество.
preview
Торговый инструментарий MQL5 (Часть 5): Расширение EX5-библиотеки для управления историей с помощью функций позиции

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

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

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

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

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

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

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

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

Синхронизация графиков для удобного технического анализа

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

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

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

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

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

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

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

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

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

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

В этой статье мы рассмотрим, что такое структурированный код. Многие люди путают структурированный код с организованным кодом, однако между этими двумя понятиями есть разница. Об этом и будет рассказано в этой статье. Несмотря на кажущуюся сложность, которую вы почувствуете при первом знакомстве с этим типом написания кода, я постарался подойти к этому вопросу как можно проще. Но данная статья - лишь первый шаг к чему-то большему.
preview
Разработка инструментария для анализа Price Action (Часть 38): VWAP на основе тикового буфера и модуль расчета дисбаланса на коротком окне

Разработка инструментария для анализа Price Action (Часть 38): VWAP на основе тикового буфера и модуль расчета дисбаланса на коротком окне

В Части 38 мы создаем для MT5 панель мониторинга промышленного уровня, которая преобразует необработанные тики в практические торговые сигналы. Советник накапливает тиковые данные для расчета тиковой VWAP (Volume Weighted Average Price, средневзвешенной по объему цены), метрики дисбаланса (индикатора потока Flow) на коротком окне и размера позиции на основе ATR. Затем он отображает спред, ATR и индикатор потока в виде столбиков с минимальным мерцанием. Система рассчитывает рекомендуемый размер лота и стоп 1R, а также выдает настраиваемые алерты для узкого спреда, сильного потока и ситуаций с торговым преимуществом. Автоматическая торговля намеренно отключена; основное внимание уделяется надежной генерации сигналов и удобству использования.
preview
От начального до среднего уровня: Struct (V)

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

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

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

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

Разработка инструментария для анализа Price Action (Часть 52): Визуальный анализ структуры рынка на нескольких таймфреймах

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

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

Мы уже давно работаем только над индикаторами, но теперь пришло время снова заставить сервис работать, и мы видим, как строится график на основе предоставленных данных. Однако, поскольку не всё так просто, придется быть внимательным, чтобы понять то, что ждет нас впереди.
preview
Моделирование рынка (Часть 08): Сокеты (II)

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

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

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

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

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

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

Ординальное кодирование номинальных переменных

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

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

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

Переосмысливаем классические стратегии (Часть 13): Обновление стратегии по пересечению скользящих (Часть 2)

Мы попробуем внедрить дополнительные улучшения в нашу стратегию по пересечению скользящих средних, чтобы постараться снизить задержку и повысить надежность за счет дополнительного анализа данных. Как мы знаем, проецирование данных в многомерное пространство иногда может улучшить производительность моделей машинного обучения. Давайте посмотрим, что это на практике означает для нас, трейдеров. Также увидим, как можно использовать этот эффективный принцип в терминале MetaTrader 5.
preview
Разработка системы репликации (Часть 74): Новый Chart Trade (I)

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

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

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

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

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

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

Разработка инструментария для анализа Price Action (Часть 48): Индекс гармонии нескольких таймфреймов с панелью взвешенного смещения

В этой статье представлен инструмент "Multi-Timeframe Harmony Index" – продвинутый советник для MetaTrader 5, который рассчитывает взвешенное смещение рынка по нескольким таймфреймам, сглаживает значения с помощью EMA и выводит результат на аккуратной панели на графике. Он поддерживает настраиваемые алерты и автоматически наносит сигналы покупки и продажи на график, когда значение смещения пересекает значимые пороги. Подходит трейдерам, которые используют анализ нескольких таймфреймов, чтобы соотносить точки входа с общей структурой рынка.
preview
Разработка системы репликации (Часть 69): Настройка времени (II)

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

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

Тело в Connexus (Часть 4): Добавление поддержки тела HTTP-запроса

В настоящей статье мы рассмотрели концепцию тела в HTTP-запросах, которое необходимо для отправки таких данных, как JSON и обычный текст. Мы обсудили и объяснили, как правильно его использовать с соответствующими заголовками. Мы также ввели класс ChttpBody, входящий в библиотеку Connexus, который упростит работу с телом запросов.
preview
Моделирование рынка (Часть 10): Сокеты (IV)

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

В этой статье мы рассмотрим, что нужно сделать, чтобы начать использовать Excel для управления MetaTrader 5, но очень интересным способом. Для этого мы воспользуемся дополнением Excel, чтобы не использовать встроенный VBA. Если вы не знаете, какое дополнение имеется в виду, прочитайте эту статью и узнайте, как программировать на Python прямо в Excel.
preview
Адаптивная архитектура Smart Money (ASMA): Интеграция логики SMC с анализом сентимента для динамического переключения стратегий

Адаптивная архитектура Smart Money (ASMA): Интеграция логики SMC с анализом сентимента для динамического переключения стратегий

В этой теме рассматривается, как построить адаптивную архитектуру Smart Money (ASMA) — интеллектуального советника, который объединяет концепции Smart Money Concepts (Order Blocks, Break of Structure, Fair Value Gaps) с рыночными настроениями в реальном времени, чтобы автоматически выбирать наиболее подходящую торговую стратегию исходя из текущего рыночного режима.
preview
От начального до среднего уровня: Индикатор (IV)

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

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

Разработка инструментария для анализа Price Action (Часть 51): Инновационная технология поиска свечных паттернов на графике

Эта статья предназначена для алгоритмических трейдеров, количественных аналитиков и разработчиков MQL5, которые хотят глубже разобраться в распознавании свечных паттернов на практике. В ней подробно рассматривается советник CandlePatternSearch.mq5 – полноценная система для обнаружения, визуализации и отслеживания классических свечных формаций в MetaTrader 5. Помимо детального разбора кода, в статье рассматриваются архитектура решения, логика обнаружения паттернов, интеграция графического интерфейса и механизмы алертов, а также показано, как можно эффективно автоматизировать традиционный анализ Price Action.
preview
Преодоление проблем доступности в торговых инструментах на MQL5 (Часть I): Как добавить контекстные голосовые оповещения в индикаторы MQL5

Преодоление проблем доступности в торговых инструментах на MQL5 (Часть I): Как добавить контекстные голосовые оповещения в индикаторы MQL5

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

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

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

Автоматизация греков Блэка-Шоулза: Расширенный скальпинг и микроструктурная торговля

Гамма и Дельта изначально разрабатывались как инструменты управления рисками для хеджирования опционной экспозиции, но со временем они превратились в мощные инструменты для продвинутого скальпинга, моделирования потока ордеров и торговли на основе рыночной микроструктуры. Сегодня они служат индикаторами ценовой чувствительности и поведения ликвидности в режиме реального времени, позволяя трейдерам с удивительной точностью прогнозировать краткосрочную волатильность.
preview
Разработка системы репликации (Часть 76): Новый Chart Trade (III)

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

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

Переосмысливаем классические стратегии (Часть 14): Анализ нескольких стратегий

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

Разработка системы репликации (Часть 59): Новое будущее

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