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

icon

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

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

Новая статья
последние | лучшие
Реализация индикаторов в виде классов на примере Zigzag и ATR
Реализация индикаторов в виде классов на примере Zigzag и ATR

Реализация индикаторов в виде классов на примере Zigzag и ATR

Споры о том, какой способ расчета индикаторов является оптимальным, идут постоянно. Где лучше вычислять значения индикатора - в самом индикаторе или встроить всю логику в код самого эксперта, который его использует? В статье рассматривается один из вариантов переноса кода пользовательского индикатора iCustom непосредственно в код эксперта или скрипта с оптимизацией расчетов и моделированием значения prev_calculated.
Конструктор стратегий на основе технических фигур Меррилла
Конструктор стратегий на основе технических фигур Меррилла

Конструктор стратегий на основе технических фигур Меррилла

В предыдущей статье была рассмотрена модель применения технических фигур Меррилла к различным данным, таким как ценовое значение на графике валютного инструмента и значениям различных индикаторов из стандартного набора терминала MetaTrader 5: ATR, WPR, CCI, RSI и других.Теперь мы попробуем созданить конструктор стратегий на основе идеи использования технических фигур Меррилла.
Рецепты MQL5 - Как получить свойства позиции?
Рецепты MQL5 - Как получить свойства позиции?

Рецепты MQL5 - Как получить свойства позиции?

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

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

Во второй статье серии "Пользовательские графические элементы управления" представлена библиотека элементов управления для решения основных задач, возникающих при обеспечении взаимодействия между программой (советником, скриптом, индикатором) и ее пользователем. Библиотека содержит множество классов (CInputBox, CSpinInputBox, CCheckBox, CRadioGroup, CVSсrollBar, CHSсrollBar, CList, CListMS, CComBox, CHMenu, CVMenu, CHProgress, CDialer, CDialerInputBox, CTable) и примеров их использования.
Метод площадей
Метод площадей

Метод площадей

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

Торговые события в MetaTrader 5

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

Использование индикаторов для RealTime оптимизации советников

Ни для кого не секрет, что успешность работы любого торгового робота зависит от правильного подбора его параметров (его оптимизации). Но оптимальные для одного временного интервала параметры не всегда оказываются наилучшими на другом участке истории. А зачастую советники, прибыльные на тестировании, оказываются убыточными в реальном времени. И здесь возникает вопрос о необходимости постоянной оптимизации. А там где появляется много рутинной работы человек ищет пути ее автоматизации. В данной статье я предлагаю свой нестандартный подход к решению данной задачи.
Примеры анализа графиков с использованием Секвенты Демарка и уровней Мюррея-Ганна
Примеры анализа графиков с использованием Секвенты Демарка и уровней Мюррея-Ганна

Примеры анализа графиков с использованием Секвенты Демарка и уровней Мюррея-Ганна

Секвента Томаса Демарка отлично покаызвает изменения баланса в движении цены. Особенно хорошо это видно, если сочетать её сигналы с индикатором уровней, например, с уровнями Мюррея. Статья именно о таких сочетаниях. Текст рассчитан скорее на новичков в торговле, и тех, у кого всё ещё не получается найти свой "Грааль", хотя я и показываю некоторые особенности построения уровней, которых на других форумах не встречал. Так что, возможно, местами будет полезно и продвинутым пользователям.. Ну, а гуру приглашаю к диалогу и критике...
Рецепты MQL5 - Разработка мультивалютного эксперта с неограниченным количеством параметров
Рецепты MQL5 - Разработка мультивалютного эксперта с неограниченным количеством параметров

Рецепты MQL5 - Разработка мультивалютного эксперта с неограниченным количеством параметров

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

Рецепты MQL5 - Создаем кольцевой буфер для быстрого расчета индикаторов в скользящем окне

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

Walk-Forward оптимизация в MetaTrader 5 - своими руками

В статье рассматриваются подходы, позволяющие достаточно точно эмулировать walk-forward оптимизацию с помощью встроенного тестера и вспомогательных библиотек, реализованных на MQL.
Статистические рецепты для трейдера - Гипотезы
Статистические рецепты для трейдера - Гипотезы

Статистические рецепты для трейдера - Гипотезы

В данной статье рассматривается базовое понятие математической статистики "гипотеза". На примерах, с применением методов математической статистики, исследуются и проверяются различные гипотезы. Реальные данные обобщаются с помощью непараметрических методов. При обработке данных используются пакет Statistica и портированная библиотека численного анализа ALGLIB MQL5.
Создание информационных табло с использованием классов из Стандартной библиотеки и Google Chart API
Создание информационных табло с использованием классов из Стандартной библиотеки и Google Chart API

Создание информационных табло с использованием классов из Стандартной библиотеки и Google Chart API

Мощный язык программирования MQL5 нацелен в первую очередь на создание автоматических торговых систем и сложных инструментов технического анализа. Но помимо прочего он позволяет создавать интересные информационные системы для отслеживания рыночной ситуации и обеспечения обратной связи с трейдером. В статье сделан обзор компонентов Стандартной библиотеки и примеры их использования на практике для этих целей. Также показан пример использования Google Charts API для создания графиков.
Кроссплатформенный торговый советник: Введение
Кроссплатформенный торговый советник: Введение

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

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

Мастер MQL5: Расширение стандартной библиотеки для установки ордеров, стопов и целей по вычисляемым ценам

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

Непрерывная скользящая оптимизация (Часть 1): Механизм работы с отчетами оптимизации

Первая часть статьи посвящена созданию инструментария для работы с отчетностью оптимизации, ее импорта из терминала, а также процессам фильтрации и сортировки полученных данных. MetaTrader 5 позволяет выгружать отчет проходов оптимизаций, но хотелось бы иметь возможность добавления в отчет собственных данных.
LifeHack для трейдера: готовим фастфуд из индикаторов
LifeHack для трейдера: готовим фастфуд из индикаторов

LifeHack для трейдера: готовим фастфуд из индикаторов

Если вы переходите на MQL5 только сейчас, то эта статья вам пригодится: с одной стороны, доступ к данным индикаторов и к сериям выполнен в привычном вам MQL4-стиле, с другой — вся реализация этой простоты написана на MQL5. Все функции максимально понятны и отлично подходят для пошаговой отладки.
Порядок создания и уничтожения объектов в MQL5
Порядок создания и уничтожения объектов в MQL5

Порядок создания и уничтожения объектов в MQL5

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

Пишем глубокую нейронную сеть с нуля на языке MQL

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

Управление оптимизацией (Часть I): Создание графического интерфейса

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

Как копировать сигналы с помощью советника по своим правилам?

При подписке на сигналы может возникнуть такая ситуация: у Вашего торгового счёта кредитное плечо 1:100, провайдер имеет кредитное плечо 1:500 и торгует минимальным лотом, а Ваши торговые балансы практически равны — при этом коэффициент копирования будет от 10% до 15%. Эта статья расскажет, как в таком случае увеличить коэффициент копирования.
Графические интерфейсы X: Элемент "Многострочное текстовое поле ввода"  (build 8)
Графические интерфейсы X: Элемент "Многострочное текстовое поле ввода"  (build 8)

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

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

Рецепты MQL5 - обработка типичных событий графика

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

Работа с GSM-модемом из эксперта на MQL5

На текущий момент существует достаточно средств для комфортного удалённого мониторинга торгового счёта: мобильные терминалы, push-уведомления, работа с ICQ. Но всё это требует обязательного наличия интернета. Данная статья описывает создание эксперта, который позволит вам находиться на связи с торговым терминалом даже в той ситуации, когда мобильный интернет будет недоступен, а именно - при помощи звонков и SMS-сообщений.
Мастер MQL5: Как написать свой модуль управления капиталом и рисками
Мастер MQL5: Как написать свой модуль управления капиталом и рисками

Мастер MQL5: Как написать свой модуль управления капиталом и рисками

Генератор торговых стратегий Мастера MQL5 значительно упрощает проверку торговых идей. В статье рассказывается о том, как написать и подключить в Мастер MQL5 свой собственный модуль управления капиталом и рисками. В качестве примера рассматривается создание алгоритма управления капиталом, в котором размер торгового объема определяется в зависимости от результатов предыдущей сделки. Рассматривается структура и формат описания созданного класса для Мастера MQL5.
Практическое использование нейросетей Кохонена в алгоритмическом трейдинге (Часть II): Оптимизация и прогнозирование
Практическое использование нейросетей Кохонена в алгоритмическом трейдинге (Часть II): Оптимизация и прогнозирование

Практическое использование нейросетей Кохонена в алгоритмическом трейдинге (Часть II): Оптимизация и прогнозирование

На основе универсального инструментария для работы с сетями Кохонена строится система анализа и выбора оптимальных параметров советника, а также рассматривается прогнозирование временных рядов. В первой части мы исправили и усовершенствовали публично доступные нейросетевые классы, дополнив их необходимыми алгоритмами. Теперь настало время применить их на практике.
Универсальный торговый эксперт: Интеграция со стандартными модулями сигналов MetaTrader (часть 7)
Универсальный торговый эксперт: Интеграция со стандартными модулями сигналов MetaTrader (часть 7)

Универсальный торговый эксперт: Интеграция со стандартными модулями сигналов MetaTrader (часть 7)

Эта часть статьи посвящена интеграции торгового движка CStrategy с модулями сигналов, входящих в стандартную библиотеку MetaTrader. Материал описывает способы работы с сигналами и создание пользовательских стратегий на их основе.
LifeHack для трейдера: один бэк-тест хорошо, а четыре – лучше
LifeHack для трейдера: один бэк-тест хорошо, а четыре – лучше

LifeHack для трейдера: один бэк-тест хорошо, а четыре – лучше

Перед каждым трейдером при первом одиночном тестировании встает один и тот же вопрос — "Какой же из четырех режимов использовать?" Каждый из предлагаемых режимов имеет свои преимущества и особенности, поэтому сделаем проще - запустим сразу все режимы одной кнопкой! В статье показано, как с помощью Win API и небольшой магии увидеть одновременно все четыре графика тестирования.
Мультисимвольный график баланса в MetaTrader 5
Мультисимвольный график баланса в MetaTrader 5

Мультисимвольный график баланса в MetaTrader 5

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

Инструментарий для быстрой ручной торговли: Работа с открытыми и отложенными ордерами

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

ООП в MQL5 на примерах: обработка кодов ошибок и предупреждений

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

Виджеты Торговых сигналов MetaTrader 4 и MetaTrader 5

Совсем недавно у каждого пользователя MetaTrader 4 и MetaTrader 5 появилась возможность стать поставщиком торговых сигналов и получать дополнительную прибыль. Теперь же при помощи новых виджетов можно рассказать о торговых успехах на своем сайте, в блоге или на странице в социальной сети. Преимущества использования виджетов очевидны: рост популярности поставщика, его репутации как успешного трейдера и привлечение новых подписчиков. Все это получают те трейдеры, которые размещают виджеты на других сайтах в интернете.
Самоадаптирующийся алгоритм (Часть IV): Дополнительный функционал и тесты
Самоадаптирующийся алгоритм (Часть IV): Дополнительный функционал и тесты

Самоадаптирующийся алгоритм (Часть IV): Дополнительный функционал и тесты

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

Пример разработки торговой системы, основанной на различиях часовых поясов на разных континентах

Листая страницы Интернета, можно найти множество стратегий, которые вам советуют делать то или иное. Давайте заглянем внутрь и посмотрим на сам процесс составления стратегии, основанной на различиях часовых поясов на разных континентах.
LifeHack для трейдера: Сравнительный отчет нескольких тестирований
LifeHack для трейдера: Сравнительный отчет нескольких тестирований

LifeHack для трейдера: Сравнительный отчет нескольких тестирований

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

Последний крестовый поход

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

Рецепты MQL5 – Получаем свойства открытой хеджевой позиции

Платформа MetaTrader 5 является не только мультирыночной, но и позволяет применять различные системы учёта позиций. Такие возможности существенно расширяют инструментарий для реализации и формализации торговых идей. В статье идёт речь о том, как обрабатывать и учитывать свойства позиций при их независимом учете ("хеджинг"). Предлагается производный класс, приводятся примеры обработки и получения свойств хеджевой позиции.
Парсинг HTML с помощью curl
Парсинг HTML с помощью curl

Парсинг HTML с помощью curl

В статье описывается простейшая библиотека с использованием сторонних компонентов для парсинга HTML-кода. Из неё вы узнаете как добраться до данных, которые нальзя получить GET и POST запросами. Мы подберем какой-либо сайт с не слишком объемными страницами и попытаемся получить с него интересную информацию.
preview
Нейросети — это просто (Часть 9): Документируем проделанную работу

Нейросети — это просто (Часть 9): Документируем проделанную работу

Мы уже проделали довольно большой путь, и код нашей библиотеке сильно разрастается. Становится сложно отслеживать все связи и зависимости. И конечно, перед продолжением развития проекта нам нужно задокументировать уже проделанную работу и актуализировать документацию на каждом последующем шаге. Правильно подготовленная документация поможет нам увидеть целостность нашей работы.
Универсальный торговый эксперт: Индикатор CUnIndicator и работа с отложенными ордерами (часть 9)
Универсальный торговый эксперт: Индикатор CUnIndicator и работа с отложенными ордерами (часть 9)

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

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