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

icon

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

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

Новая статья
последние | лучшие
Рецепты MQL5 - Использование индикаторов для формирования условий торговли в эксперте
Рецепты MQL5 - Использование индикаторов для формирования условий торговли в эксперте

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

В этой статье мы продолжим модифицировать эксперта, над которым до этого работали на протяжении всех последних статей по программированию на MQL5. На этот раз подключим к эксперту индикаторы, по значениям которых будут проверяться условия на открытие позиции. Чтобы было интересней, сделаем во внешних параметрах выпадающий список, в котором можно будет выбрать один из трех индикаторов для торговли.
Глубокие нейросети (Часть VI). Ансамбль нейросетевых классификаторов: bagging
Глубокие нейросети (Часть VI). Ансамбль нейросетевых классификаторов: bagging

Глубокие нейросети (Часть VI). Ансамбль нейросетевых классификаторов: bagging

Рассмотрим методы построения и обучения ансамблей нейросетей со структурой bagging. Определим особенности оптимизации гиперпараметров индивидуальных нейросетевых классификаторов, составляющих ансамбль. Сравним качество оптимизированной нейросети, полученной в предыдущей статье серии, и созданного ансамбля нейросетей. Рассмотрим возможности дальнейшего улучшения качества классификации полученного ансамбля.
Универсальный торговый эксперт: Событийная модель и прототип торговой стратегии (Часть 2)
Универсальный торговый эксперт: Событийная модель и прототип торговой стратегии (Часть 2)

Универсальный торговый эксперт: Событийная модель и прототип торговой стратегии (Часть 2)

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

Разворотные паттерны: Тестируем паттерн "Голова-Плечи"

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

Исследования технических фигур Меррилла

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

Индикатор для построения графика "трехлинейного прорыва"

Статья посвящена графику "трёхлинейного прорыва" (Three Line Break), предложенного Стивом Нисоном в книге «За гранью японских свечей». Преимущество данного графика состоит в том, что с его помощью можно фильтровать незначительные колебания цен относительно предыдущего движения. Рассмотрен принцип построения графика, код индикатора, а также примеры торговых стратегий на его основе.
Плеер торговли на основе истории сделок
Плеер торговли на основе истории сделок

Плеер торговли на основе истории сделок

Плеер торговли. Всего два слова и пояснения не нужны. В голове всплывают мысли об удобном ящичке с кнопками. Нажал одну кнопку - играет, передвинул рычажок - изменилась скорость воспроизведения. В реальности всё почти так и есть. В данной статье я хочу представить разработку, которая проигрывает торговую историю почти как в реал-тайме. В статье так же будут затронуты вопросы, проясняющие некоторые нюансы ООП, работу с индикаторами, управления чартами.
ZigZag всему голова (Часть I): Разработка базового класса индикатора
ZigZag всему голова (Часть I): Разработка базового класса индикатора

ZigZag всему голова (Часть I): Разработка базового класса индикатора

Многие исследователи не уделяют должного внимания определению характера поведения цены. При этом используются сложные методы, которые очень часто являются просто «чёрными ящиками», такие как: машинное обучение или нейронные сети. В таких случаях самым важным является такой — «Какие данные подать на вход для обучения той или иной модели?»
Основы программирования на MQL5 - Списки
Основы программирования на MQL5 - Списки

Основы программирования на MQL5 - Списки

Новая версия языка программирования торговых стратегий - MQL [MQL5] - имеет более эффективный и мощный инструментарий по сравнению с предыдущей [MQL4]. И это преимущество прежде всего относится к средствам объектно-ориентированного программирования. В данной статье рассматривается возможность использования такого пользовательского типа данных, относящегося к сложному, как узлы и списки. Приводится пример использования списков при программировании практических задач в MQL5.
Строим индикатор ZigZag по осцилляторам. Пример выполнения технического задания
Строим индикатор ZigZag по осцилляторам. Пример выполнения технического задания

Строим индикатор ZigZag по осцилляторам. Пример выполнения технического задания

В статье демонстрируется создание индикатора ZigZag в соответствии с одним из примеров заданий, описанным в статье "Как составить техническое задание при заказе индикатора". Индикатор строится по экстремумам, которые определяются с помощью осциллятора. В индикаторе предусмотрена возможность использования одного из пяти осцилляторов на выбор: WPR, CCI, Chaikin, RSI, Stochastic Oscillator.
Построение советника с использованием отдельных модулей
Построение советника с использованием отдельных модулей

Построение советника с использованием отдельных модулей

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

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

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

Управляемая оптимизация: метод отжига

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

Как перенести расчетную часть любого индикатора в код эксперта

Причины для переноса кода индикатора в советник могут быть различными. Но как оценить плюсы и минусы такого подхода? В данной статье предлагается технология переноса кода индикатора в советник. Проведены несколько экспериментов по оценке скорости работы советника.
preview
Полезные и экзотические приемы для автоматической торговли

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

В данной статье я покажу несколько очень интересных и полезных приемов для автоматической торговли. Часть из этих приемов возможно кому-то знакома, кому-то — нет, но я постараюсь привести самые интересные методы и объяснить почему стоит ими пользоваться. Самое главное, покажу на практике, что они могут. Напишем советники и проверим все описанные приемы на истории котировок.
3 метода ускорения индикаторов на примере линейной регрессии
3 метода ускорения индикаторов на примере линейной регрессии

3 метода ускорения индикаторов на примере линейной регрессии

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

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

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

Построение каналов - взгляд изнутри и снаружи

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

Рисование стрелочных индикаторов с использованием класса CCanvas

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

Интервью с Ириной Коробейниковой (irishka.rf)

Редко можно встретить представительниц прекрасного пола среди участников MQL5.community. Уникальный в своем роде случай подсказал идею небольшого интервью. Ирина Коробейникова (irishka.rf) - пятнадцатилетний программист из Ижевска. На данный момент она является единственной девушкой, которая принимает активное участие в сервисе "Работа" и входит в Топ разработчиков.
Паттерны, доступные при торговле корзинами валют
Паттерны, доступные при торговле корзинами валют

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

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

Интервью с Александром Элдером: "Я хочу быть психиатром на рынке"

"Я считаю что финансовые рынки – как маниакально-депрессивные больные. Когда у них мания, их надо продавать, когда у них депрессия, их надо покупать. Конверт позволяет мне определить, где находятся эти уровни депрессии и мании. Есть такая шутка: "Невротик – это человек, который строит замки в небесах, психотик – это человек, который живет в этих замках, а психиатр – это человек, который собирает аренду". Я хочу быть психиатром на рынке, я хочу собирать аренду с сумасшествия толпы".
Дискретизация ценового ряда, случайная составляющая и "шумы"
Дискретизация ценового ряда, случайная составляющая и "шумы"

Дискретизация ценового ряда, случайная составляющая и "шумы"

Мы привыкли анализировать рынок при помощи свечей или баров, которые "нарезают" ценовой ряд через равные промежутки времени. Но насколько сильно такой способ дискретизации искажает реальную структуру рыночных движений? Дискретизировать звуковой сигнал через равные промежутки времени — это приемлемое решение, потому что звуковой сигнал — это функция, меняющаяся от времени. Сам по себе сигнал — это амплитуда, зависящая от времени и это свойство в нем, является фундаментальным.
Библиотека для простого и быстрого создания программ для MetaTrader (Часть I): Концепция, организация данных, первые результаты
Библиотека для простого и быстрого создания программ для MetaTrader (Часть I): Концепция, организация данных, первые результаты

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

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

Применение метода собственных координат к анализу структуры неэкстенсивных статистических распределений

Центральной проблемой прикладной статистики является проблема принятия статистических гипотез. Долгое время считалось, что эта задача не может быть решена. Ситуация изменилась с появлением метода собственных координат. Это очень красивый и мощный инструмент структурного исследования сигнала, позволяющий увидеть больше, чем доступно методами современной прикладной статистики. В статье рассмотрены вопросы практического использования данного метода и приведены программы на языке MQL5. Рассмотрена задача идентификации функций на примере распределения, полученного Хилхорстом и Шером.
Избавляемся от балласта самодельных DLL
Избавляемся от балласта самодельных DLL

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

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

Создаем кроссплатформенный советник-сеточник (Часть II): Сетка в рейндже в направлении тренда

Сегодня мы попробуем разработать сеточный советник для работы в диапазоне в направлении тренда. То есть для инструментов Forex или рынков сырья. Как показали тесты, наш сеточник работал в прибыль с 2018 года. Но вот беда, с 2014 по 2018 год это был стабильный слив депозита
Статистические распределения вероятностей в MQL5
Статистические распределения вероятностей в MQL5

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

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

Пишем кроссплатформенный помощник для выставления StopLoss и TakeProfit в соответствии со своими рисками

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

Реверсирование: формализуем точку входа и пишем алгоритм ручной торговли

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

Применение метода Монте-Карло в обучении с подкреплением

Применение Reinforcement learning для разработки самообучающихся экспертов. В предыдущей статье мы познакомились с алгоритмом Random Decision Forest и написали простого самообучающегося эксперта на основе Reinforcement learning (обучения с подкреплением). Было отмечено основное преимущество такого подхода как простота написания торгового алгоритма и высокая скорость "обучения". Обучение с подкреплением (далее просто RL) легко внедряется в любого торгового эксперта и увеличивает скорость его оптимизации.
Взгляни на рынок через готовые классы
Взгляни на рынок через готовые классы

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

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

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

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

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

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

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

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

Несколько советов для начинающих заказчиков

Народная мудрость, авторство которой часто приписывают различным известным людям, говорит: "Тот не ошибается, кто ничего не делает". Если не считать само ничегонеделание тоже ошибкой, то с этим утверждением трудно спорить. Зато вполне возможно проанализировать ранее совершенные ошибки (свои и чужие) и свести к минимуму количество совершаемых ошибок в будущем. Сделаем попытку разобрать возможные ситуации, возникающие в процессе выполнения работ на одноименном сервисе.
Гэп - доходная стратегия или 50/50?
Гэп - доходная стратегия или 50/50?

Гэп - доходная стратегия или 50/50?

Исследование явления гэпа — ситуации существенной разницы между ценой закрытия предыдущего таймфрейма и ценой открытия следующего, и в какую сторону пойдёт дневной бар. Применение системной DLL функции GetOpenFileName.
Использование ORDER_MAGIC для торговли разными экспертами на одном инструменте
Использование ORDER_MAGIC для торговли разными экспертами на одном инструменте

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

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

Индикатор NRTR и торговые модули на его основе для Мастера MQL5

В статье описан индикатор NRTR и торговая система, созданная с его использованием. Для этих целей создаётся модуль торговых сигналов, с помощью которых создаются стратегии, основанные на комбинациях NRTR и дополнительных индикаторов, подтверждающих тренд.
В MetaTrader 5 появились торговые сигналы - это лучше, чем ПАММ-счета!
В MetaTrader 5 появились торговые сигналы - это лучше, чем ПАММ-счета!

В MetaTrader 5 появились торговые сигналы - это лучше, чем ПАММ-счета!

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