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

icon

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

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

Новая статья
последние | лучшие
Рецепты MQL5 - Торговые сигналы пивотов
Рецепты MQL5 - Торговые сигналы пивотов

Рецепты MQL5 - Торговые сигналы пивотов

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

Графические интерфейсы X: Обновления для нарисованной таблицы и оптимизация кода (build 10)

Продолжаем дополнять нарисованную таблицу (CCanvasTable) новыми возможностями. Теперь в таблице появятся: подсветка строк при наведении курсора мыши; возможность добавлять массив картинок для каждой ячейки и метод для их переключения; возможность задать или изменить текст в ячейках во время выполнения программы и многое другое.
Универсальный тренд с графическим интерфейсом
Универсальный тренд с графическим интерфейсом

Универсальный тренд с графическим интерфейсом

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

Паттерны, доступные при торговле корзинами валют. Часть II

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

Графические интерфейсы X: Новые возможности для нарисованной таблицы (build 9)

До сегодняшнего дня самым развитым типом таблиц из всех представленных в библиотеке был тип CTable. Эта таблица собирается из полей ввода типа OBJ_EDIT, и дальнейшее её развитие уже проблематично. Поэтому с точки зрения максимальных возможностей даже на текущем этапе развития библиотеки, лучше развивать нарисованную таблицу типа CCanvasTable. Текущая её версия совсем безжизненна, но начиная с этой статьи, мы будем пытаться это исправить.
Встраивайте вебтерминал MetaTrader 4/5 в свои сайты - это бесплатно, и на этом можно заработать
Встраивайте вебтерминал MetaTrader 4/5 в свои сайты - это бесплатно, и на этом можно заработать

Встраивайте вебтерминал MetaTrader 4/5 в свои сайты - это бесплатно, и на этом можно заработать

Трейдерам хорошо знаком вебтерминал, который позволяет торговать на финансовых рынках прямо из браузера. Мы предлагаем разместить его на вашем сайте — и это совершенно бесплатно. У вас есть посетители, у брокеров – интерес в новых лидах, у нас – готовое веб-решение. И чтобы всё заработало, необходимо лишь встроить один iframe в ваш веб-сайт.
Вычисление коэффициента Херста
Вычисление коэффициента Херста

Вычисление коэффициента Херста

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

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

При исследовании и изучении закономерностей важную роль играет визуальное отображение с помощью графиков. В популярных среди научного сообщества языках программирования, таких как R и Python, для визуализации предназначена специальная функция plot. С её помощью можно рисовать линии, точечные распределения и гистограммы для наглядного представления закономерностей. В MQL5 вы можете делать всё то же самое с помощью класса CGraphics.
Графические интерфейсы X: Элемент "Многострочное текстовое поле ввода"  (build 8)
Графические интерфейсы X: Элемент "Многострочное текстовое поле ввода"  (build 8)

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

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

Универсальный канал с графическим интерфейсом

Все индикаторы каналов представляют собой три линии: центральную, верхнюю и нижнюю. Центральная линия по принципу своего построения идентична скользящей средней, и в большинстве случаев для построения канала используется именно скользящая средняя. Верхняя и нижняя линия располагаются на одинаковом расстоянии от центральной линии. Это расстояние может определяться просто в пунктах, в процентах от цены (индикатор Envelopes), может использоваться значение стандартной девиации (полосы Боллинджера), может — значение индикатора ATR (канал Кельтнера).
ZUP - зигзаг универсальный с паттернами Песавенто. Графический интерфейс
ZUP - зигзаг универсальный с паттернами Песавенто. Графический интерфейс

ZUP - зигзаг универсальный с паттернами Песавенто. Графический интерфейс

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

Как построить и протестировать стратегию бинарных опционов в Тестере Стратегий MetaTrader 4

Руководство по построению стратегии бинарных опционов и ее тестированию в Тестере Стратегий MetaTrader 4 с использованием утилиты Binary-Options-Strategy-Tester из Маркета на MQL5.com.
Графические интерфейсы X: Расширенное управление списками и таблицами. Оптимизация кода (build 7)
Графические интерфейсы X: Расширенное управление списками и таблицами. Оптимизация кода (build 7)

Графические интерфейсы X: Расширенное управление списками и таблицами. Оптимизация кода (build 7)

Код библиотеки нуждается в оптимизации: он должен быть более упорядоченным, а значит — более читаемым и понятным для изучения. Кроме этого, продолжим развивать элементы управления, созданные ранее: списки, таблицы и полосы прокрутки.
3D-моделирование на MQL5
3D-моделирование на MQL5

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

Временной ряд — это динамическая система, в которой значения некоторой случайной величины поступают последовательно — непрерывно или через некоторые промежутки времени. Переход от плоского к объёмному анализу рынка позволяет по-новому взглянуть на сложные процессы и явления, интересующие исследователя. В статье описаны функции визуализации для 3-D представления двумерных данных.
Графические интерфейсы X: Элемент "Время", элемент "Список из чекбоксов" и сортировка таблицы (build 6)
Графические интерфейсы X: Элемент "Время", элемент "Список из чекбоксов" и сортировка таблицы (build 6)

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

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

Автоматическое нахождение экстремумов на основе заданного ценового перепада

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

Пример разработки спредовой стратегии на фьючерсах Московской биржи

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

Паттерны, доступные при торговле корзинами валют

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

Универсальный осциллятор с графическим интерфейсом

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

Графические интерфейсы X: Текстовое поле ввода, слайдер картинок и простые элементы управления (build 5)

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

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

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

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

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

Торговая стратегия '80-20'

В статье описывается создание инструментов (индикатора и советника) для исследования торговой стратегии '80-20'. Правила ТС взяты из книги Линды Рашке и Лоуренса Коннорса "Биржевые секреты. Высокоэффективные стратегии краткосрочной торговли". На языке MQL5 формализованы правила этой стратегии, а созданные на ее основе индикатор и советник протестированы на современной истории рынка.
Универсальный Зигзаг
Универсальный Зигзаг

Универсальный Зигзаг

Зигзаг — один из самых популярных индикаторов среди пользователей MetaTrader 5. В статье были проанализированы возможности создания различных вариантов Зигзага. В результате мы получаем универсальный индикатор с широкими возможностями для расширения функциональности, который удобно использовать при разработке торговых советников и других индикаторов.
Графические интерфейсы X: Элемент "Стандартный график" (build 4)
Графические интерфейсы X: Элемент "Стандартный график" (build 4)

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

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

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

Глобальные переменные терминала — незаменимое средство при разработке сложных и надежных экспертов. Освоив работу с глобальными переменными терминала, вы уже не сможете представить себе создание экспертов на MQL5 без их использования.
Торговая система '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-летней давности.
preview
Статистические распределения в MQL5 - берем лучшее из R и делаем быстрее

Статистические распределения в MQL5 - берем лучшее из R и делаем быстрее

Рассмотрены функции для работы с основными статистическими распределениями, реализованными в языке R. Это распределения Коши, Вейбулла, нормальное, логнормальное, логистическое, экспоненциальное, равномерное, гамма-распределение, центральное и нецентральные распределения Бета, хи-квадрат, F-распределения Фишера, t-распределения Стьюдента, а также дискретные биномиальное и отрицательное биномиальные распределения, геометрическое, гипергеометрическое и распределение Пуассона. Есть функции расчета теоретических моментов распределений, которые позволяют оценить степень соответствия реального распределения модельному.
Нейросеть: Самооптимизирующийся советник
Нейросеть: Самооптимизирующийся советник

Нейросеть: Самооптимизирующийся советник

Возможно ли создать советник, который согласно командам кода автоматически оптимизировал бы критерии открытия и закрытия позиций с определенной периодичностью? Что произойдет, если реализовать в советнике нейросеть (многослойный персептрон), которая, будучи модулем, анализировала бы историю и оценивала стратегию? Можно дать коду команду на ежемесячную (еженедельную, ежедневную или ежечасную) оптимизацию нейросети с последующим продолжением работы. Таким образом возможно создать самооптимизирующийся советник.
Основы программирования на MQL5: Файлы
Основы программирования на MQL5: Файлы

Основы программирования на MQL5: Файлы

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

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

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

Быстрая оценка сигнала: торговая активность, графики просадки/загрузки и распределения MFE/MAE

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

Графические интерфейсы X: Обновления для библиотеки Easy And Fast (build 3)

В этой статье представлена следующая версия библиотеки Easy And Fast (версия 3). Исправлены некоторые недоработки и добавлены новые возможности. Подробнее читайте далее в статье.
LifeHack для трейдера: "Тихая" оптимизация или Строим распределения трейдов
LifeHack для трейдера: "Тихая" оптимизация или Строим распределения трейдов

LifeHack для трейдера: "Тихая" оптимизация или Строим распределения трейдов

Анализ торговой истории и построение HTML графиков распределения результатов торговли в зависимости от времени входа в позицию. Графики отображаются в трех разрезах – по часам, дням недели и месяцам.
Сравнение MQL5 и QLUA - почему торговые операции в MQL5 до 28 раз быстрее?
Сравнение MQL5 и QLUA - почему торговые операции в MQL5 до 28 раз быстрее?

Сравнение MQL5 и QLUA - почему торговые операции в MQL5 до 28 раз быстрее?

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

Портфельная торговля в MetaTrader 4

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

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

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

Работа с корзинами валютных пар на рынке Форекс

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

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

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

Как в MetaTrader 5 быстро разработать и отладить торговую стратегию

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