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

icon

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

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

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

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

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

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

Ни для кого не секрет, что успешность работы любого торгового робота зависит от правильного подбора его параметров (его оптимизации). Но оптимальные для одного временного интервала параметры не всегда оказываются наилучшими на другом участке истории. А зачастую советники, прибыльные на тестировании, оказываются убыточными в реальном времени. И здесь возникает вопрос о необходимости постоянной оптимизации. А там где появляется много рутинной работы человек ищет пути ее автоматизации. В данной статье я предлагаю свой нестандартный подход к решению данной задачи.
Рецепты MQL5 - Как получить свойства позиции?
Рецепты MQL5 - Как получить свойства позиции?

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

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

Как заработать, выполняя заказы трейдеров в сервисе "Фриланс"

MQL5 Фриланс - это онлайн-сервис, где разработчики за денежное вознаграждение пишут для трейдеров-заказчиков торговые приложения. Сервис успешно функционирует с 2010 года: на данный момент выполнено более 100 000 работ общей стоимостью в $7 млн. Как видим, деньги здесь крутятся вполне приличные.
Работа с файлами. Пример визуализация важных рыночных событий
Работа с файлами. Пример визуализация важных рыночных событий

Работа с файлами. Пример визуализация важных рыночных событий

Статья рассматривает перспективу использования MQL4 для более продуктивной работы на рынке ФОРЕКС.
Пользовательские графические элементы управления. Часть 2. Библиотека элементов управления
Пользовательские графические элементы управления. Часть 2. Библиотека элементов управления

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Особенности и ограничения тестирования торговых стратегий в MetaTrader 4

Эта статья поможет больше узнать об особенностях и ограничениях тестера торговых стратегий в MetaTrader 4...
Мастер MQL5: Расширение стандартной библиотеки для установки ордеров, стопов и целей по вычисляемым ценам
Мастер MQL5: Расширение стандартной библиотеки для установки ордеров, стопов и целей по вычисляемым ценам

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

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

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

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

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

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

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

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

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

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

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

В данной статье описывается процесс создания расширения для терминала MetaTrader. Предлагаемое решение помогает автоматизировать процесс оптимизации путем запуска оптимизаций в других терминалах. На базе данной статьи будет написано еще несколько статей, развивающих затронутую тему. Расширение написано с использованием языка C# и шаблонов программирования, что демонстрирует помимо основной задачи данной статьи возможность терминала к расширению изначально заложенных в него возможностей путем написания собственных модулей, а также то, как просто можно создавать пользовательскую графику в языке с наиболее удобным для этого функционалом.
Графические интерфейсы X: Элемент "Многострочное текстовое поле ввода"  (build 8)
Графические интерфейсы X: Элемент "Многострочное текстовое поле ввода"  (build 8)

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Использование библиотеки FANN2MQL в MetaTrader

Цель статьи - показать, как использовать библиотеку FANN2MQL для программирования нейронных сетей в MetaTrader на простом примере: обучение и распознавание простейших паттернов.
Эксперты на основе популярных торговых систем и алхимия оптимизации торгового робота
Эксперты на основе популярных торговых систем и алхимия оптимизации торгового робота

Эксперты на основе популярных торговых систем и алхимия оптимизации торгового робота

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

Конкурс советников внутри советника

С помощью виртуальной торговли можно создать адаптивный советник, который будет выполнять включение/отключение сделок на реальном рынке. Соберите несколько стратегий в одном эксперте! Ваш мультисистемный советник будет автоматически выбирать торговую стратегию, которой стоит торговать на реальном рынке по результатам успешности виртуальных сделок. Такой метод позволяет снизить просадку и увеличить прибыльность Вашей работы на рынке. Экспериментируйте и делитесь результатами с другими! Думаю, будет интересно многим узнать о вашем портфеле стратегий.
LifeHack для трейдера: один бэк-тест хорошо, а четыре – лучше
LifeHack для трейдера: один бэк-тест хорошо, а четыре – лучше

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

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

MetaEditor: Опираясь на силу шаблонов

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

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

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

Нейросети — это просто (Часть 10): Multi-Head Attention (многоголовое внимание)

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

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

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

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

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

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

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

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

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

Пауза между торговыми операциями

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

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

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

Графики без "дыр"

Статья посвящена реализации графиков без пропущенных баров.