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

icon

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Программируем режимы работы советника с помощью ООП

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

Кроссплатформенный торговый советник: Пользовательские стопы, Безубыток и Трейлинг

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

Рецепты MQL5 - Разработка схемы для торговой системы типа "Три экрана Элдера"

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

Создание эксперта, торгующего на разных инструментах

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

Регулярные выражения для трейдеров

Регулярные выражения (англ. regular expressions) — специальный язык для обработки текстов по заданному правилу, которое также называют шаблоном или маской регулярного выражения. В этой статье мы покажем, как обработать торговый отчет с помощью библиотеки RegularExpressions для MQL5, а также продемонстрируем результаты оптимизации с ее использованием.
Методы дистанционного управления работой советников
Методы дистанционного управления работой советников

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

Основным преимуществом торговых роботов является безустанная работа 24 часа в сутки на удаленном VPS сервере. Но иногда необходимо вмешаться в их работу в ручном режиме, а прямого доступа к серверу сейчас нет. Возможно ли управлять работой советника дистанционно? В данной статье предлагается один из вариантов управления роботами через внешние команды.
Трейдминатор 3: восстание торговых роботов
Трейдминатор 3: восстание торговых роботов

Трейдминатор 3: восстание торговых роботов

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

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

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

Рынок и физика его глобальных закономерностей

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

Нейросети — это просто (Часть 8): Механизмы внимания

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

Модель продолжения движения - поиск на графике и статистика исполнения

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

Нейросети — это просто (Часть 6): Эксперименты с коэффициентом обучения нейронной сети

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

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

Эта статья продолжает знакомить читателей с торговым движком CStrategy. По многочисленным просьбам пользователей в торговый движок были добавлены функции по работе с отложенными ордерами. Также последние версии MetaTrader 5 стали поддерживать счета с хеджингом. Теперь CStrategy поддерживает и их. В статье дается подробное описание алгоритмов по работе с отложенными ордерами и принципов работы CStrategy на хеджируемых типах счетов.
Изменяем параметры эксперта с пользовательской панели "на лету"
Изменяем параметры эксперта с пользовательской панели "на лету"

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

В этой статье приводится небольшой пример реализации эксперта, для которого можно изменять параметры с пользовательской панели. Изменяя параметры "на лету", эксперт записывает значения с информационной панели в файл, а затем читает их из файла для отображения на панели. Статья может быть актуальной для тех, кто торгует в ручном или полуавтоматическом режиме.
Основы программирования на 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
Нейросети — это просто (Часть 13): Пакетная нормализация (Batch Normalization)

Нейросети — это просто (Часть 13): Пакетная нормализация (Batch Normalization)

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

Рецепты MQL5 - Как не получить ошибку при установке/изменении торговых уровней?

Продолжая работу над экспертом из предыдущей статьи "Рецепты MQL5 - Изучение свойств позиции в тестере MetaTrader 5", внедрим в него еще целый ряд полезных функций, а также усовершенствуем и оптимизируем уже имеющиеся. На этот раз эксперт будет снабжен внешними параметрами, которые можно будет оптимизировать в тестере MetaTrader 5. Это уже будет немного похоже на простую торговую систему.
preview
Как создать 3D-графику на DirectX в MetaTrader 5

Как создать 3D-графику на DirectX в MetaTrader 5

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

Кроссплатформенный торговый советник: Стоп-уровни

В этой статье рассматривается реализация стоп-уровней в торговом советнике, совместимая с платформами MetaTrader 4 и MetaTrader 5.
Торговый эксперт с графическим интерфейсом: Наполнение функционалом (Часть II)
Торговый эксперт с графическим интерфейсом: Наполнение функционалом (Часть II)

Торговый эксперт с графическим интерфейсом: Наполнение функционалом (Часть II)

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

Рецепты MQL5 - Программируем скользящие каналы

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

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

Генератор торговых стратегий Мастера MQL5 значительно упрощает проверку торговых идей. В статье рассказывается о том, как написать и подключить в Мастер MQL5 свой собственный модуль управления открытыми позициями, устанавливающий уровень Stop Loss в безубыток при движении цены в благоприятном направлении, что позволяет защитить прибыль и уменьшить потери. Рассматривается структура и формат описания созданного класса для Мастера MQL5.
preview
Нейросети — это просто (Часть 12): Dropout

Нейросети — это просто (Часть 12): Dropout

Продвигаясь дальше в изучении нейронных сетей, наверное, стоит немного уделить внимания методам повышения их сходимости при обучении. Существует несколько таких методов. В этой статье предлагаю рассмотреть один из них — Dropout.
preview
Нейросети — это просто (Часть 7): Адаптивные методы оптимизации

Нейросети — это просто (Часть 7): Адаптивные методы оптимизации

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

Графические интерфейсы I: Функции для кнопок формы и удаление элементов интерфейса (Глава 4)

В этой главе продолжим развивать класс CWindow, дополняя его методами, которые позволят управлять формой посредством нажатия на ее элементах. Сделаем так, чтобы программу можно было закрыть через кнопку на форме, а также реализуем возможность сворачивания и разворачивания формы при необходимости.
Как создать эксперта за несколько минут при помощи EA Tree: Часть 1
Как создать эксперта за несколько минут при помощи EA Tree: Часть 1

Как создать эксперта за несколько минут при помощи EA Tree: Часть 1

Программа EA Tree является первым инструментом, позволяющим построить код советника на базе блок-схем методом "drag and drop". Создание советников в EA Tree осуществляется путем построения блоков, которые могут содержать функции языка MQL5, технические и пользовательские индикаторы, или численные значения. Выходы блоков могут быть соединены с входами других блоков, образуя "дерево блоков". На базе дерева блоков программа EA Tree генерирует исходный код советника, который затем может быть скомпилирован в торговой платформе MetaTrader 5.
Графические интерфейсы III: Простые и многофункциональные кнопки (Глава 1)
Графические интерфейсы III: Простые и многофункциональные кнопки (Глава 1)

Графические интерфейсы III: Простые и многофункциональные кнопки (Глава 1)

Приступим к рассмотрению такого элемента управления, как кнопка. Будут показаны примеры нескольких классов для создания простой кнопки, кнопок с расширенным функционалом («кнопка с картинкой» и «сдвоенная кнопка»), а также кнопок, которые взаимосвязаны между собой (группы кнопок и «радио-кнопки»). Кроме этого, внесём некоторые дополнения в уже существующие классы элементов управления, чтобы расширить их возможности.
Универсальный торговый эксперт: Работа с пользовательскими трейлинг-стопами (часть 6)
Универсальный торговый эксперт: Работа с пользовательскими трейлинг-стопами (часть 6)

Универсальный торговый эксперт: Работа с пользовательскими трейлинг-стопами (часть 6)

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

Создание пользовательской новостной ленты в MetaTrader 5

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

Создание многомодульных советников

Язык программирования MQL позволяет реализовать концепцию модульного проектирования торговых стратегий. В статье показан пример создания многомодульного советника, состоящего из отдельно скомпилированных файловых модулей.