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

icon

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

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

Новая статья
последние | лучшие
Набор инструментов для ручной разметки графиков и торговли (Часть I). Подготовка - описание структуры и класс вспомогательных функций
Набор инструментов для ручной разметки графиков и торговли (Часть I). Подготовка - описание структуры и класс вспомогательных функций

Набор инструментов для ручной разметки графиков и торговли (Часть I). Подготовка - описание структуры и класс вспомогательных функций

Данной статье я начинаю описывать набор для графической разметки с помощью сочетаний клавиш. Очень удобно: нажал клавишу — появилась линия тренда, нажал другую — появился веер Фибоначчи с нужными параметрами. А также — возможность переключать таймфреймы, менять порядок "слоев" объектов или удалять все объекты с графика.
Избавляемся от балласта самодельных DLL
Избавляемся от балласта самодельных DLL

Избавляемся от балласта самодельных DLL

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

Библиотека для простого и быстрого создания программ для MetaTrader (Часть I): Концепция, организация данных, первые результаты

Разбирая огромное количество торговых стратегий, множество заказов на изготовление программ для терминалов MT5 и MT4, просматривая различные сайты по MetaTrader, я пришёл к выводу, что всё это многообразие в подавляющем своём большинстве строится на фактически одних и тех же элементарных функциях, действиях и значениях, повторяющихся от программы к программе. Результатом моей работы стала кроссплатформенная библиотека "DoEasy" для быстрого и лёгкого создания программ для МetaТrader 5 и МetaТrader 4
Универсальный торговый эксперт: Торговля в группе и управление портфелем стратегий (Часть 4)
Универсальный торговый эксперт: Торговля в группе и управление портфелем стратегий (Часть 4)

Универсальный торговый эксперт: Торговля в группе и управление портфелем стратегий (Часть 4)

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

Статистические распределения вероятностей в MQL5

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

Взгляни на рынок через готовые классы

Не секрет, что большую часть информации об окружающем мире человек получает при помощи зрения. Справедливо это и в такой области как трейдинг. Новая платформа MetaTrader 5 и язык MQL5 открывают новые возможности для представления визуальной информации трейдеру. В данной статье предлагается универсальная и расширяемая система классов, которая берет на себя всю черновую работу по организации вывода произвольной текстовой информации.
preview
Визуализируй это! Графическая библиотека в MQL5 как аналог plot из R

Визуализируй это! Графическая библиотека в MQL5 как аналог plot из R

При исследовании и изучении закономерностей важную роль играет визуальное отображение с помощью графиков. В популярных среди научного сообщества языках программирования, таких как R и Python, для визуализации предназначена специальная функция plot. С её помощью можно рисовать линии, точечные распределения и гистограммы для наглядного представления закономерностей. В MQL5 вы можете делать всё то же самое с помощью класса CGraphics.
Рецепты MQL5 - Наблюдение за несколькими таймфреймами в одном окне
Рецепты MQL5 - Наблюдение за несколькими таймфреймами в одном окне

Рецепты MQL5 - Наблюдение за несколькими таймфреймами в одном окне

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

Использование ORDER_MAGIC для торговли разными экспертами на одном инструменте

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

Кроссплатформенный торговый советник: Пользовательские стопы, Безубыток и Трейлинг

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

Программируем режимы работы советника с помощью ООП

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

Как анализировать сделки выбранного Сигнала на графике

Сервис торговых Сигналов развивается семимильными шагами. Доверяя свои средства поставщику сигнала, хотелось бы минимизировать риск потери депозита. Как же разобраться в этом лесу торговых сигналов? Как найти именно тот, который принесет прибыль? В статье предлагается создать средство для визуального анализа истории сделок торговых сигналов на графике инструмента.
Работаем с ZIP-архивами средствами MQL5 без использования сторонних библиотек
Работаем с ZIP-архивами средствами MQL5 без использования сторонних библиотек

Работаем с ZIP-архивами средствами MQL5 без использования сторонних библиотек

Язык MQL5 развивается, и в него постоянно добавляются новые функции для работы с данными. С некоторых пор, благодаря нововведениям, стало возможно работать с ZIP-архивами штатными средствами MQL5 без привлечения сторонних библиотек DLL. Данная статья подробно описывает, как это делается, на примере описания класса CZip — универсального инструмента для чтения, создания и модификации ZIP-архивов.
Статистические распределения в виде гистограмм без индикаторных буферов и массивов
Статистические распределения в виде гистограмм без индикаторных буферов и массивов

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

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

Использование облачных хранилищ для обмена данными между терминалами

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

Рецепты MQL5 - Разработка схемы для торговой системы типа "Три экрана Элдера"

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

Создание эксперта, торгующего на разных инструментах

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

Регулярные выражения для трейдеров

Регулярные выражения (англ. regular expressions) — специальный язык для обработки текстов по заданному правилу, которое также называют шаблоном или маской регулярного выражения. В этой статье мы покажем, как обработать торговый отчет с помощью библиотеки RegularExpressions для MQL5, а также продемонстрируем результаты оптимизации с ее использованием.
Рецепты MQL5 - Элементы управления в подокне индикатора - Кнопки
Рецепты MQL5 - Элементы управления в подокне индикатора - Кнопки

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

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

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

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

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

Идее цифровой фильтрации сигналов посвящаются достаточно объёмные темы обсуждения на форумах по построению торговых систем. В этой статье автор знакомит с процессом превращения кода более простого индикатора SMA из своей статьи "Пользовательские индикаторы в MQL5 для начинающих" в код гораздо более сложного универсального цифрового фильтра. В ней также изложены простейшие приёмы замены текста в коде и методика получения простейших навыков по исправлению ошибок программирования.
preview
Нейросети — это просто (Часть 8): Механизмы внимания

Нейросети — это просто (Часть 8): Механизмы внимания

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

Рецепты MQL5 - Торговые сигналы скользящих каналов

В статье представлен процесс разработки и реализации класса-сигнальщика на основе скользящих каналов. За каждой из версий сигнала следует торговая стратегия с результатами тестирования. Используются классы Стандартной библиотеки для создания производных классов.
Новый взгляд на эквиобъемные графики
Новый взгляд на эквиобъемные графики

Новый взгляд на эквиобъемные графики

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

Модель продолжения движения - поиск на графике и статистика исполнения

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

Нейросети — это просто (Часть 6): Эксперименты с коэффициентом обучения нейронной сети

Мы уже рассмотрели некоторые виды нейронных сетей и способы их реализации. Во всех случаях мы использовали метод градиентного спуска для обучения нейронных сетей, который предполагает выбор коэффициента обучения. В данной статье, я хочу на примерах показать важность правильного выбора и его влияние на обучение нейронной сети.
Универсальный торговый эксперт: работа с отложенными ордерами и поддержка хеджинга (часть 5)
Универсальный торговый эксперт: работа с отложенными ордерами и поддержка хеджинга (часть 5)

Универсальный торговый эксперт: работа с отложенными ордерами и поддержка хеджинга (часть 5)

Эта статья продолжает знакомить читателей с торговым движком CStrategy. По многочисленным просьбам пользователей в торговый движок были добавлены функции по работе с отложенными ордерами. Также последние версии MetaTrader 5 стали поддерживать счета с хеджингом. Теперь CStrategy поддерживает и их. В статье дается подробное описание алгоритмов по работе с отложенными ордерами и принципов работы CStrategy на хеджируемых типах счетов.
Изменяем параметры эксперта с пользовательской панели "на лету"
Изменяем параметры эксперта с пользовательской панели "на лету"

Изменяем параметры эксперта с пользовательской панели "на лету"

В этой статье приводится небольшой пример реализации эксперта, для которого можно изменять параметры с пользовательской панели. Изменяя параметры "на лету", эксперт записывает значения с информационной панели в файл, а затем читает их из файла для отображения на панели. Статья может быть актуальной для тех, кто торгует в ручном или полуавтоматическом режиме.
ZUP - зигзаг универсальный с паттернами Песавенто. Часть 2
ZUP - зигзаг универсальный с паттернами Песавенто. Часть 2

ZUP - зигзаг универсальный с паттернами Песавенто. Часть 2

ZUP - зигзаг универсальный с паттернами Песавенто. Часть 2 - описание встроенных инструментов
Библиотека матричной алгебры LibMatrix (часть первая)
Библиотека матричной алгебры LibMatrix (часть первая)

Библиотека матричной алгебры LibMatrix (часть первая)

Автор знакомит читателей с простой библиотекой матричной алгебры. Рассматриваются основные функции и их особенности.
Один способ построения уровней поддержки и сопротивления
Один способ построения уровней поддержки и сопротивления

Один способ построения уровней поддержки и сопротивления

В данной статье описывается процесс создания простейшего скрипта для вычисления уровней поддержки и сопротивления. Статья ориентирована на новичков, поэтому каждый момент процесса разобран очень подробно. Однако, несмотря на всю простоту скрипта, изучение данной статьи, вероятно, будет полезным и для людей более продвинутых в трейдинге и владении платформой MetaTrader 4, так как содержит в себе пример экспорта данных в текстовую таблицу, импорта ее в Microsoft Excel и построения графиков для дальнейшего подробного анализа.
3D-моделирование на MQL5
3D-моделирование на MQL5

3D-моделирование на MQL5

Временной ряд — это динамическая система, в которой значения некоторой случайной величины поступают последовательно — непрерывно или через некоторые промежутки времени. Переход от плоского к объёмному анализу рынка позволяет по-новому взглянуть на сложные процессы и явления, интересующие исследователя. В статье описаны функции визуализации для 3-D представления двумерных данных.
Глубокие нейросети (Часть V). Байесовская  оптимизация гиперпараметров DNN
Глубокие нейросети (Часть V). Байесовская  оптимизация гиперпараметров DNN

Глубокие нейросети (Часть V). Байесовская оптимизация гиперпараметров DNN

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

Нейросети — это просто (Часть 13): Пакетная нормализация (Batch Normalization)

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

Основы программирования на MQL5: Глобальные переменные терминала MetaTrader 5

Глобальные переменные терминала — незаменимое средство при разработке сложных и надежных экспертов. Освоив работу с глобальными переменными терминала, вы уже не сможете представить себе создание экспертов на MQL5 без их использования.
Торговая стратегия 'Momentum Pinball'
Торговая стратегия 'Momentum Pinball'

Торговая стратегия 'Momentum Pinball'

В этой статье продолжается тема написания кода к торговым системам, описанным в книге Линды Рашке и Лоуренса Коннорса "Биржевые секреты. Высокоэффективные стратегии краткосрочной торговли". На этот раз исследуется система 'Momentum Pinball': описано создание двух индикаторов, торгового робота и сигнального блока по ней.
Торговая система 'Turtle Soup' и её модификация 'Turtle Soup Plus One'
Торговая система 'Turtle Soup' и её модификация 'Turtle Soup Plus One'

Торговая система 'Turtle Soup' и её модификация 'Turtle Soup Plus One'

В статье формализованы и запрограммированы правила торговых стратегий Turtle Soup и Turtle Soup Plus One из книги Линды Рашке и Лоуренса Коннорс Street Smarts: High Probability Short-Term Trading Strategies. Описанные в книге стратегии получили достаточно широкое распространение, но важно понимать, что авторы строили их исходя из поведения рынка 15..20-летней давности.
Рецепты MQL5 - Как не получить ошибку при установке/изменении торговых уровней?
Рецепты MQL5 - Как не получить ошибку при установке/изменении торговых уровней?

Рецепты MQL5 - Как не получить ошибку при установке/изменении торговых уровней?

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

Собственное представление торговой истории и создание графиков для отчетов

В статье описываются пользовательские методы оценки истории торговли. Для этого написаны два класса для ее выгрузки и анализа. Первый собирает торговую историю в краткую таблицу. Второй предназначен для вычисления статистики: он рассчитывает ряд показателей и строит графики, с помощью которых оценивать результативность торгов становится удобнее.
Пользовательские графические элементы управления. Часть 3. Формы
Пользовательские графические элементы управления. Часть 3. Формы

Пользовательские графические элементы управления. Часть 3. Формы

Этой последняя из трех статей, посвященных графическим элементам управления. В ней рассматривается создание главного элемента графического интерфейса, формы, и ее совместное использование с другими элементами управления. Кроме классов формы библиотека элементов управления дополнена классами CFrame, CButton, CLabel.