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

icon

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

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

Новая статья
последние | лучшие
preview
Моделирование рынка (Часть 07): Сокеты (I)

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

Сокеты. Знаете ли вы, для чего они нужны или как их использовать в MetaTrader 5? Если ответ отрицательный, давайте начнем с их изучения. В сегодняшней статье рассмотрим основы. Но поскольку существует несколько способов сделать то же самое, а нас всегда интересует результат, я хочу показать, что в самом деле существует простой способ передачи данных из MetaTrader 5 в другие программы, такие как, например, Excel. Однако основная идея заключается не в том, чтобы перенести данные из MetaTrader 5 в Excel, а в обратном, то есть в переносе данных из Excel или любой другой программы в MetaTrader 5.
preview
Переосмысливаем классические стратегии (Часть IV): SP500 и казначейские облигации США

Переосмысливаем классические стратегии (Часть IV): SP500 и казначейские облигации США

В этой серии статей мы анализируем классические торговые стратегии с использованием современных алгоритмов, чтобы определить, можно ли улучшить стратегию с помощью искусственного интеллекта (ИИ). В сегодняшней статье мы рассмотрим классический подход к торговле индексом SP500, используя его взаимосвязь с казначейскими облигациями США (US Treasury Notes).
preview
От новичка до эксперта: Создание анимированного советника для новостей в MQL5 (IX) — Управление несколькими символами на одном графике для торговли на новостях

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

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

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

В этой статье мы предпринимаем вторую попытку преобразовать изменения уровня цен на любом рынке в соответствующее изменение угла наклона. На этот раз мы выбрали более математически сложный подход, чем в первой попытке, и полученные нами результаты позволяют предположить, что изменение подхода, возможно, было правильным решением. Мы рассмотрим, как можно использовать полярные координаты для осмысленного расчета угла, образованного изменениями уровней цен, независимо от того, какой рынок вы анализируете.
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
Разработка системы репликации (Часть 68): Настройка времени (I)

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

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

Разработка системы репликации (Часть 53): Всё усложняется (V)

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

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

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

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

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

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

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

Переосмысливаем классические стратегии в MQL5 (Часть III): Прогнозирование индекса FTSE 100

В данной серии статей мы вернемся к хорошо известным торговым стратегиям, чтобы узнать, можно ли улучшить их с помощью искусственного интеллекта. В сегодняшней статье мы рассмотрим индекс FTSE 100 и попытаемся спрогнозировать его, используя часть отдельных акций, входящих в состав индекса.
preview
Разработка системы репликации (Часть 46): Проект Chart Trade (V)

Разработка системы репликации (Часть 46): Проект Chart Trade (V)

Устали тратить время на поиск того самого файла, который необходим для работы вашего приложения? Как насчет того, чтобы включить все в исполняемый файл? Так вы больше не будете тратить время на поиск необходимого. Знаю, что многие пользуются именно такой формой распространения и хранения вещей, но есть гораздо более подходящий способ. По крайней мере, что касается распространения исполняемых файлов и их хранения. Метод, который будет здесь представлен, может оказаться очень полезным, так как в качестве отличного помощника вы сможете использовать сам MetaTrader 5, а также MQL5. И это не так уж трудно и сложно для понимания.
preview
От начального до среднего уровня: Рекурсия

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

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

Управление рисками (Часть 5): Интегрируем систему управления рисками в советник

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

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

Возможно, эта статья окажется самой запутанной для начинающих программистов. Ведь здесь я покажу, что не всегда в одном и том же коде все функции и процедуры имеют уникальные имена. Да, мы вполне можем использовать функции и процедуры с одинаковым именем — и это называется перегрузкой.
preview
Индикатор CandleCode: Формализация свечных моделей в MQL5

Индикатор CandleCode: Формализация свечных моделей в MQL5

В статье показана практическая реализация CandleCode для MetaTrader 5: расчет кодов свечей по методу Лиховидова с адаптацией порогов к волатильности (Bollinger Bands) и гистограммное отображение. Дополнительно представлен советник, который строит базу исторических паттернов по ZigZag, сравнивает их с текущим "слепком" через ATR и выдает статистику совпадений на панели.
preview
Разработка системы репликации (Часть 54): Появление первого модуля

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

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

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

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

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

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

Марковские цепи в трейдинге и прогнозировании цены

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

Переосмысливаем классические стратегии (Часть VIII): Валютные рынки и драгоценные металлы в валютной паре USDCAD

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

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

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

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

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

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

Сегодня мы рассмотрим, как использовать переменные и константы, предопределенные языком MQL5. Кроме того, мы проанализируем еще один особый тип переменных: функции. Умение правильно работать с этими переменными может определить разницу между работающим и неработающим приложением. Для того, чтобы понять представленное здесь, необходимо разобраться с материалом, который был рассмотрен в предыдущих статьях.
preview
От начального до среднего уровня: Операторы BREAK и CONTINUE

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

В данной статье мы рассмотрим, как использовать операторы RETURN, BREAK и CONTINUE в цикле. Понимание того, что делает каждый из этих операторов в потоке выполнения цикла, очень важно для работы с более сложными приложениями. Представленные здесь материалы предназначены только для обучения. Ни в коем случае не рассматривайте его как окончательное приложение, целью которого не является изучение представленных концепций.
preview
Разработка системы репликации (Часть 75): Новый Chart Trade (II)

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

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

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

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

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

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

Переосмысливаем классические стратегии в MQL5 (Часть II): FTSE100 и Гилты Великобритании

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

Материалы Automated Trading Championship: Регистрация

В данной статье собраны полезные материалы, которые помогут вам узнать больше о процедуре регистрации на Automated Trading Championship.
preview
От начального до среднего уровня: Индикатор (III)

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

В данной статье мы рассмотрим, как объявлять различные индикаторы графического представления, такие как DRAW_COLOR_LINE и DRAW_FILLING. Кроме того, конечно же, мы научимся строить графики по нескольким индикаторам простым, практичным и быстрым способом. Это может действительно изменить ваш взгляд на MetaTrader 5 и рынок в целом.
preview
Создание торговой панели администратора на MQL5 (Часть IX): Организация кода (I)

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

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

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

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

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

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

Механизмы гейтинга в ансамблевом обучении

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

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

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

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

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

Создание самооптимизирующихся советников на MQL5 (Часть 6): Предотвращение стоп-аутов

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

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

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