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

icon

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

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

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

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

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

Нейросети — это просто (Часть 4): Рекуррентные сети

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

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

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

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

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

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

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

Книга "Forex: от простого к сложному", И.В. Морозов и Р.Р. Фатхуллин

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

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

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

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

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

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

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

К вопросу об управлении капиталом

В статье рассмотрены некоторые аспекты, возникающие при использовании различных систем управления капиталом, применительно к ФОРЕКС. Приведены данные экспериментов с моделью процесса торговли, в которой при совершении торговых сделок используются разные методы управления капиталом (Money Management - ММ).
Построение советника с использованием отдельных модулей
Построение советника с использованием отдельных модулей

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

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

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

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

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

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

Перенос кода индикатора в код эксперта. Строение индикатора.

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

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

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

Записки дилетанта. ZigZag…

Наверняка каждого начинающего трейдера, впервые увидевшего “загадочную” ломаную, посещала “шальная” мысль торговать вблизи экстремумов. Ведь это так “просто”. Вот максимум. А здесь был минимум. Красивая картинка на истории. А что на деле? Луч нарисовался. Казалось бы, вот она - вершина. Пора продавать. Сейчас пойдем вниз. Но - нет. Цена по-прежнему предательски идет вверх. М-да! Ерунда, а не индикатор. На помойку его!
Универсальный канал с графическим интерфейсом
Универсальный канал с графическим интерфейсом

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

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

Образцовый трейлинг-стоп и выход с рынка

У разработчиков алгоритмов модификаций и закрытия ордеров есть одна непроходящая головная боль - как сравнивать результаты, получаемые по различным методикам? Механизм проверок известен - тестер стратегий. А вот как сделать так, чтобы эксперт всегда работал одинаково по открытию/закрытию ордеров? В статье описывается инструмент, обеспечивающий строгую повторяемость открытий ордеров, позволяющую обеспечить математически корректную платформу для сравнения результатов различных алгоритмов трейлинг-стопов и выходов с рынка.
Интервью с Ириной Коробейниковой (irishka.rf)
Интервью с Ириной Коробейниковой (irishka.rf)

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Тестирование экспертов в клиентском терминале MetaTrader 4. Взгляд изнутри

Что происходит после нажатия на кнопку "Старт"? В статье дан ответ на этот и многие другие вопросы.
Советник на заказ. Инструкция для трейдера.
Советник на заказ. Инструкция для трейдера.

Советник на заказ. Инструкция для трейдера.

Далеко не все трейдеры - программисты. А из них далеко не все - хорошие программисты. Что делать, если надо автоматизировать свою систему, а времени и желания учить язык MQL 4 нет?
Набор инструментов для ручной разметки графиков и торговли (Часть I). Подготовка - описание структуры и класс вспомогательных функций
Набор инструментов для ручной разметки графиков и торговли (Часть I). Подготовка - описание структуры и класс вспомогательных функций

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

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

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

Центральной проблемой прикладной статистики является проблема принятия статистических гипотез. Долгое время считалось, что эта задача не может быть решена. Ситуация изменилась с появлением метода собственных координат. Это очень красивый и мощный инструмент структурного исследования сигнала, позволяющий увидеть больше, чем доступно методами современной прикладной статистики. В статье рассмотрены вопросы практического использования данного метода и приведены программы на языке MQL5. Рассмотрена задача идентификации функций на примере распределения, полученного Хилхорстом и Шером.
Избавляемся от балласта самодельных 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-файлов, а также представим простую панель для выбора экспертов, находящихся внутри одного исполняемого модуля, и управления их торговыми режимами.
Применение метода Монте-Карло в обучении с подкреплением
Применение метода Монте-Карло в обучении с подкреплением

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

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

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

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

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

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