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

icon

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

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

Новая статья
последние | лучшие
Как быстро написать советник для Automated Trading Championship 2010
Как быстро написать советник для Automated Trading Championship 2010

Как быстро написать советник для Automated Trading Championship 2010

Для того чтобы разработать эксперт для участия в чемпионате Automated Trading Championship 2010, воспользуемся шаблоном готового советника. Данная задача будет по силам даже новичку в программировании на MQL5, т.к. для ваших стратегий уже разработаны базовые классы, функции, шаблоны. Достаточно написать минимум кода, чтобы реализовать свою торговую идею.
Графические интерфейсы II: Элемент "Пункт меню" (Глава 1)
Графические интерфейсы II: Элемент "Пункт меню" (Глава 1)

Графические интерфейсы II: Элемент "Пункт меню" (Глава 1)

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

Использование MetaTrader 5 как поставщика торговых сигналов для MetaTrader 4

В статье обсуждаются особенности использования MetaTrader 5 в качестве поставщика торговых сигналов для MetaTrader 4. Вы узнаете как создать простой поставщик торговых сигналов из MetaTrader 5 и как его подключить к нескольким терминалам MetaTrader 4. Также вы узнаете о том, как в реальном времени копировать сделки участников Automated Trading Championship на свой реальный счет в MetaTrader 4.
Строим анализатор спектра
Строим анализатор спектра

Строим анализатор спектра

Данная статья призвана познакомить читателя с возможным вариантом использования графических объектов языка MQL5. В статье рассматривается индикатор, в котором при помощи графических объектов создана панель управления простейшим анализатором спектра. Статья рассчитана на читателя, знакомого с основами языка MQL5.
Графические интерфейсы XI: Интеграция графической стандартной библиотеки (build 16)
Графические интерфейсы XI: Интеграция графической стандартной библиотеки (build 16)

Графические интерфейсы XI: Интеграция графической стандартной библиотеки (build 16)

Недавно разработчики MQL5 представили новую версию графической библиотеки для создания научных графиков (класс CGraphic). В этом обновлении нашей библиотеки будет представлена версия с новым элементом для создания графиков. Теперь визуализировать данные различных типов будет ещё проще.
Графические интерфейсы X: Элемент "Время", элемент "Список из чекбоксов" и сортировка таблицы (build 6)
Графические интерфейсы X: Элемент "Время", элемент "Список из чекбоксов" и сортировка таблицы (build 6)

Графические интерфейсы X: Элемент "Время", элемент "Список из чекбоксов" и сортировка таблицы (build 6)

Продолжаем развивать библиотеку для создания графических интерфейсов. На этот раз будут представлены такие элементы, как «Время» и «Список из чекбоксов». Кроме этого, в класс таблицы типа CTable добавлена возможность сортировать данные по возрастанию и убыванию.
Библиотека для простого и быстрого создания программ для MetaTrader (Часть XXIII):  Основной торговый класс - контроль допустимых параметров
Библиотека для простого и быстрого создания программ для MetaTrader (Часть XXIII):  Основной торговый класс - контроль допустимых параметров

Библиотека для простого и быстрого создания программ для MetaTrader (Часть XXIII): Основной торговый класс - контроль допустимых параметров

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

Кроссплатформенный торговый советник: Временные фильтры

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

Кроссплатформенный торговый советник: Сигналы

В статье обсуждаются классы CSignal и CSignals, которые будут использоваться в кроссплатформенных торговых советниках. Рассмотрены различия между MQL4 и MQL5 в организации данных, необходимых для оценки полученных торговых сигналов. Итог — код, совместимый с компиляторами обеих версий.
Использование электронных таблиц для построения торговых стратегий
Использование электронных таблиц для построения торговых стратегий

Использование электронных таблиц для построения торговых стратегий

В статье описаны основные принципы и приёмы, позволяющие провести анализ любой стратегии с помощью электронных таблиц — Excel, Calc, Google. Также сделано сравнение полученных результатов с тестером MetaTrader 5.
Кроссплатформенный торговый советник: Мани-менеджмент
Кроссплатформенный торговый советник: Мани-менеджмент

Кроссплатформенный торговый советник: Мани-менеджмент

В этой статье обсуждается реализация мани-менеджмента в кроссплатформенном торговом советнике. Классы мани-менеджмента отвечают за расчет размера лота, которым советник войдет в следующую сделку.
Рецепты MQL5 - обработка события TradeTransaction
Рецепты MQL5 - обработка события TradeTransaction

Рецепты MQL5 - обработка события TradeTransaction

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

Обработка ошибок и логирование в MQL5

В статье рассматриваются общие вопросы обработки ошибок в программном обеспечении. Кроме того, затрагивается тема логирования и демонстрируется пример реализации логгера средствами MQL5.
Библиотека для простого и быстрого создания программ для MetaTrader (Часть XXII): Торговые классы - Основной торговый класс, контроль ограничений
Библиотека для простого и быстрого создания программ для MetaTrader (Часть XXII): Торговые классы - Основной торговый класс, контроль ограничений

Библиотека для простого и быстрого создания программ для MetaTrader (Часть XXII): Торговые классы - Основной торговый класс, контроль ограничений

В статье начнём создавать основной торговый класс библиотеки и наделим его первую версию функционалом первичной проверки разрешений на проведение торговых операций. Также немного расширим возможности и содержание базового торгового класса.
Построение излучений индикаторов в MQL5
Построение излучений индикаторов в MQL5

Построение излучений индикаторов в MQL5

В статье рассматриваются излучения индикаторов - новое направление исследования рынка. Принцип построения излучений основан на пересечении линий различных индикаторов - с каждым тиком на графике появляются всё новые и новые точки с различным цветом и формой. Они образуют многочисленные скопления в виде туманностей, облаков, дорожек, линий, дуг и т.п. Эти характерные области точек помогают обнаружить невидимые пружины и силы, которые влияют на движение рыночных цен.
Графические интерфейсы II: Элементы "Разделительная линия" и "Контекстное меню" (Глава 2)
Графические интерфейсы II: Элементы "Разделительная линия" и "Контекстное меню" (Глава 2)

Графические интерфейсы II: Элементы "Разделительная линия" и "Контекстное меню" (Глава 2)

В этой статье мы создадим элемент «Разделительная линия». Его тоже можно будет использовать не только как независимый элемент интерфейса, но и как часть многих других элементов. После этого у нас будет всё необходимое для разработки класса контекстного меню, которое тоже будет подробно рассмотрено в этой статье. Кроме этого, вносятся необходимые дополнения в класс, который является базой для хранения указателей на все элементы графического интерфейса приложения.
preview
WebSocket для MetaTrader 5

WebSocket для MetaTrader 5

До появления сетевых функций в обновленном MQL5 API, приложения MetaTrader были ограничены в возможности подключаться и взаимодействовать с сервисами на основе протокола WebSocket. Сейчас ситуация изменилась. В этой статье мы рассмотрим реализацию библиотеки WebSocket на чистом MQL5. Будут представлены краткое описание протокола WebSocket и пошаговое руководство по использованию полученной библиотеки.
Еще раз о картах Кохонена
Еще раз о картах Кохонена

Еще раз о картах Кохонена

Cтатья описывает приемы работы с картами Кохонена. Она будет интересна как исследователям рынка с начальными навыками программирования на MQL4 и MQL5, так и опытным программистам, испытывающим сложности с подключением карт Кохонена к своим проектам.
Графические интерфейсы XI: Нарисованные элементы управления (build 14.2)
Графические интерфейсы XI: Нарисованные элементы управления (build 14.2)

Графические интерфейсы XI: Нарисованные элементы управления (build 14.2)

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

Вот мы и получили долгожданные MetaTrader 5 и MQL5

Это очень краткий обзор MetaTrader 5. Я не могу описать все новшества системы за столь короткий период времени - тестирование стартовало 09-09-2009. Это символическая дата, и я уверен, что это будет счастливым числом. Всего несколько дней у меня на руках бета-версия терминала MetaTrader 5 и MQL5. Я не успел опробовать все, что в нем есть нового, но то, что есть, уже впечатляет.
Библиотека для простого и быстрого создания программ для MetaTrader (Часть XIX): Класс сообщений библиотеки
Библиотека для простого и быстрого создания программ для MetaTrader (Часть XIX): Класс сообщений библиотеки

Библиотека для простого и быстрого создания программ для MetaTrader (Часть XIX): Класс сообщений библиотеки

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

Применение OpenCL для тестирования свечных моделей

В данной статье мы рассмотрим алгоритм реализации тестера свечных моделей на языке OpenCL в режиме "OHLC на M1". А также сравним его быстродействие cо встроенным тестером стратегий, запущенным в режиме быстрой и медленной оптимизации.
Пользовательские индикаторы и инфографика в CCanvas
Пользовательские индикаторы и инфографика в CCanvas

Пользовательские индикаторы и инфографика в CCanvas

В статье рассматриваются новые виды индикаторов с более сложной структурной реализацией. Описывается построение псевдообъемных типов индикаторов и создание динамично изменяющейся инфографики.
Кроссплатформенный торговый советник: Классы CExpertAdvisor и CExpertAdvisors
Кроссплатформенный торговый советник: Классы CExpertAdvisor и CExpertAdvisors

Кроссплатформенный торговый советник: Классы CExpertAdvisor и CExpertAdvisors

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

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

Некоторые трейдеры используют автоматизированные системы торговли, другие совмещают автоматическую торговлю с ручной, основанной на показаниях нескольких индикаторов. Я принадлежу ко второй группе, поэтому возникла необходимость в интерактивном инструменте для динамической оценки рисков и ценовых уровней непосредственно с графика. В данной статье мы представим способ реализации интерактивного советника для полуавтоматической торговли с заданным уровнем соотношения прибыль/риск (Reward/Risk ratio).
preview
Многослойный перцептрон и алгоритм обратного распространения ошибки (Часть II): Реализация на Python и интеграция с MQL5

Многослойный перцептрон и алгоритм обратного распространения ошибки (Часть II): Реализация на Python и интеграция с MQL5

Уже доступен пакет Python для разработки интеграции с MQL, что открывает двери для многих возможностей, таких как изучение данных и создание и использование моделей машинного обучения. Эта встроенная интеграция MQL5 в Python открывает для нас много возможностей, которые позволяют построить от простой линейной регрессии до моделей глубокого обучения. Давайте разберемся, как установить и подготовить среду разработки и использовать некоторые библиотеки машинного обучения.
Графические интерфейсы I: Тестируем библиотеку в программах разных типов и в терминале MetaTrader 4 (Глава 5)
Графические интерфейсы I: Тестируем библиотеку в программах разных типов и в терминале MetaTrader 4 (Глава 5)

Графические интерфейсы I: Тестируем библиотеку в программах разных типов и в терминале MetaTrader 4 (Глава 5)

В предыдущей главе первой части серии о графических интерфейсах в класс формы были добавлены методы, которые позволяют управлять формой посредством нажатия на ее элементах управления. В этой статье протестируем проделанную работу в разных типах MQL-программ, таких как индикаторы и скрипты. А поскольку библиотека задумывалась как кросс-платформенная (в рамках торговых платформ MetaTrader), то проведем тесты также и в MetaTrader 4.
Графические интерфейсы X: Элемент "Стандартный график" (build 4)
Графические интерфейсы X: Элемент "Стандартный график" (build 4)

Графические интерфейсы X: Элемент "Стандартный график" (build 4)

На этот раз мы рассмотрим такой элемент графического интерфейса, как Стандартный график. С его помощью можно будет создавать массивы объектов-графиков с возможностью синхронизированной горизонтальной прокрутки. Кроме этого, продолжим оптимизировать код библиотеки для уменьшения потребления ресурсов процессора.
Графические интерфейсы X: Выделение текста в многострочном поле ввода (build 13)
Графические интерфейсы X: Выделение текста в многострочном поле ввода (build 13)

Графические интерфейсы X: Выделение текста в многострочном поле ввода (build 13)

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

Система голосовых уведомлений торговых событий и сигналов

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

Рецепты MQL5 - Элементы управления в подокне индикатора - Полоса прокрутки

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

Что можно сделать с помощью скользящих средних

В данной статье мне захотелось собрать некоторые способы применения индикатора "Скользящая средняя". Практически к каждому способу, если требуется анализ кривых, сделаны индикаторы, визуализирующие полезную идею. В большинстве случаев идеи подсмотрены у других авторов, однако, собранные все вместе, они помогут точнее видеть основные направления и — надеюсь — принимать более правильные торговые решения. Уровень знания языка MQL5 — начальный.
Объектно-ориентированный подход к построению мультитаймфреймовых и мультивалютных панелей
Объектно-ориентированный подход к построению мультитаймфреймовых и мультивалютных панелей

Объектно-ориентированный подход к построению мультитаймфреймовых и мультивалютных панелей

В статье рассказывается об использовании объектно-ориентированного подхода для разработки для создания мультитаймфреймовых и мультивалютных панелей в MetaTrader 5. Основной целью является построение универсальной панели, которая может быть использована для отображения различных типов данных (цены, их изменения, значения индикаторов или текущее состояние условий на покупку и продажу) без изменения кода самой панели.
Графические интерфейсы VI: Элементы "Слайдер" и "Двухсторонний слайдер" (Глава 2)
Графические интерфейсы VI: Элементы "Слайдер" и "Двухсторонний слайдер" (Глава 2)

Графические интерфейсы VI: Элементы "Слайдер" и "Двухсторонний слайдер" (Глава 2)

В предыдущей статье разрабатываемая библиотека была пополнена сразу четырьмя довольно часто используемыми в графических интерфейсах элементами управления: «чекбокс», «поле ввода», «поле ввода с чекбоксом» и «комбобокс с чекбоксом». Вторая глава шестой части серии будет посвящена таким элементам управления, как слайдер и двухсторонний слайдер.
Индикатор для построения графика "шпинделей" (веретён)
Индикатор для построения графика "шпинделей" (веретён)

Индикатор для построения графика "шпинделей" (веретён)

Статья рассматривает построение графика "шпинделей" (spindles) или, как их еще называют, "веретён", его использование в торговых стратегиях и советниках. Вначале обсудим появление графика, его построение и связь с графиком японских свечей. Далее проанализируем реализацию индикатора в программном коде на языке MQL5. Протестируем основанный на индикаторе эксперт и сформулируем торговую стратегию.
Горизонтальные диаграммы на графиках MеtaTrader 5
Горизонтальные диаграммы на графиках MеtaTrader 5

Горизонтальные диаграммы на графиках MеtaTrader 5

Задачи по отрисовке горизонтальных диаграмм на графике терминала не часто, но встречаются разработчику. Что это за задачи? Это индикаторы распределения объемов за какой то определенный период. Задачи по распределению цены, различные стаканы и т.п. В статье рассмотрены вопросы создания и управления горизонтальными диаграммами на графиках, как массивами графических примитивов.
Применение контейнеров для компоновки графического интерфейса: класс CGrid
Применение контейнеров для компоновки графического интерфейса: класс CGrid

Применение контейнеров для компоновки графического интерфейса: класс CGrid

В данной статье описан альтернативный метод создания графического интерфейса на основе компоновки и контейнеров при помощи менеджера компоновки — класса CGrid. Класс CGrid представляет собой вспомогательный элемент управления, который действует как контейнер для других контейнеров и элементов управления с применением табличной компоновки.
Стать хорошим программистом (Часть 1): избавляемся от пяти привычек, чтобы лучше программировать на MQL5
Стать хорошим программистом (Часть 1): избавляемся от пяти привычек, чтобы лучше программировать на MQL5

Стать хорошим программистом (Часть 1): избавляемся от пяти привычек, чтобы лучше программировать на MQL5

У начинающих и даже у продвинутых программистов есть различные вредные привычки, которые мешают им стать лучше. В этой статье мы обсудим их и посмотрим, что с ними можно сделать. Статья предназначена для всех, кто хочет стать успешным MQL5-программистом.
Графические интерфейсы X: Алгоритм переноса слов в многострочном поле ввода (build 12)
Графические интерфейсы X: Алгоритм переноса слов в многострочном поле ввода (build 12)

Графические интерфейсы X: Алгоритм переноса слов в многострочном поле ввода (build 12)

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

Изучаем возможности создания разноцветных свечных графиков

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