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

icon

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

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

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

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

Каждый экспертописатель, независимо от уровня своей подготовки, ежедневно сталкивается с одними и теми же торговыми задачами и алгоритмическими проблемами, которые так или иначе приходится решать для организации надежного торгового процесса. Данная статья описывает возможности торгового движка CStrategy, способного взять на себя решение этих задач и предоставить пользователю удобные механизмы для описания своей торговой идеи.
Графические интерфейсы I: "Оживление" графического интерфейса (Глава 3)
Графические интерфейсы I: "Оживление" графического интерфейса (Глава 3)

Графические интерфейсы I: "Оживление" графического интерфейса (Глава 3)

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

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

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

Графические интерфейсы I: Подготовка структуры библиотеки (Глава 1)

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

Модуль торговых сигналов по системе Билла Вильямса

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

Еще раз о картах Кохонена

Cтатья описывает приемы работы с картами Кохонена. Она будет интересна как исследователям рынка с начальными навыками программирования на MQL4 и MQL5, так и опытным программистам, испытывающим сложности с подключением карт Кохонена к своим проектам.
MQL5 для начинающих: Антивандальная защита графических объектов
MQL5 для начинающих: Антивандальная защита графических объектов

MQL5 для начинающих: Антивандальная защита графических объектов

Что должна делать ваша программа, если графические панели управления были удалены или изменены кем-то еще? В этой статье мы покажем, как после удаления приложения не иметь на графике "бесхозные" объекты, и как не потерять над ними контроль в случае переименования или удаления созданных программно объектов.
Применение нечеткой логики в трейдинге средствами MQL4
Применение нечеткой логики в трейдинге средствами MQL4

Применение нечеткой логики в трейдинге средствами MQL4

В данной статье предлагаются примеры применения теории нечетких множеств в трейдинге средствами MQL4. Описывается разработка индикатора и советника с использованием библиотеки FuzzyNet для MQL4.
Индикатор для построения графика "шпинделей" (веретён)
Индикатор для построения графика "шпинделей" (веретён)

Индикатор для построения графика "шпинделей" (веретён)

Статья рассматривает построение графика "шпинделей" (spindles) или, как их еще называют, "веретён", его использование в торговых стратегиях и советниках. Вначале обсудим появление графика, его построение и связь с графиком японских свечей. Далее проанализируем реализацию индикатора в программном коде на языке MQL5. Протестируем основанный на индикаторе эксперт и сформулируем торговую стратегию.
Price Action. Автоматизация торговли по паттерну "Поглощение"
Price Action. Автоматизация торговли по паттерну "Поглощение"

Price Action. Автоматизация торговли по паттерну "Поглощение"

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

Применение контейнеров для компоновки графического интерфейса: класс CBox

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

Price Action. Автоматизация торговли по внутреннему бару

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

Трендовые линии на основе фракталов посредством MQL4 и MQL5

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

Создание интерактивного приложения для отображения RSS-каналов в MetaTrader 5

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

Рецепты MQL5 - ОСО-ордера

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

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

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

Оптимизировать оптимизацию: несколько простых идей

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

Жидкий график

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

Рецепты MQL5 - обработка пользовательских событий графика

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

Разработка социального технологического стартапа, часть I: Публикуем сигналы MetaTrader 5 в Твиттере

Сегодня мы поговорим о том, как привязать терминал MetaTrader 5 к аккаунту в Твиттере для того, чтобы публиковать сигналы вашего эксперта. Мы разрабатываем Social Decision Support System (Социальную систему поддержки принятия решений), далее SDSS, в PHP на основе веб-сервиса RESTful. В основе этой идеи лежит концепция автоматической торговли или, так называемая торговля при помощи компьютеров. Мы хотим, чтобы автоматические торговые сигналы эксперта проходили через фильтры когнитивных способностей разума человека.
Мастер MQL5: Расширение стандартной библиотеки для установки ордеров, стопов и целей по вычисляемым ценам
Мастер MQL5: Расширение стандартной библиотеки для установки ордеров, стопов и целей по вычисляемым ценам

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

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

Рецепты MQL5 - Мультивалютный советник и работа с отложенными ордерами на MQL5

На этот раз рассмотрим создание мультивалютного советника, торговый алгоритм которого строится на работе с отложенными ордерами Buy Stop и Sell Stop. В статье будут рассмотрены следующие вопросы: торговля в указанном временном диапазоне, установка/модификация/удаление отложенных ордеров, проверка закрытия последней позиции по Тейк Профит или Стоп Лосс, контроль истории сделок на каждом символе.
Типичные ошибки в программах на MQL4 и методы их устранения
Типичные ошибки в программах на MQL4 и методы их устранения

Типичные ошибки в программах на MQL4 и методы их устранения

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

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

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

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

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

Повышаем эффективность линейных торговых систем

В сегодняшней статье речь пойдет о том, как MQL5-программисты со средним уровнем подготовки могут повысить прибыльность своих линейных торговых систем, используя так называемую технику возведения в степень (technique of exponentiation). Данная техника названа именно так, потому что при ее использовании кривая средств приобретает геометрическую, или экспоненциальную, форму, становясь похожей на параболу. В частности, мы реализуем на языке MQL5 фиксированно-фракционный (Fixed Fractional) метод Ральфа Винса.
Удивите ваших MQL5-клиентов эффективным коктейлем технологий!
Удивите ваших MQL5-клиентов эффективным коктейлем технологий!

Удивите ваших MQL5-клиентов эффективным коктейлем технологий!

MQL5 предоставляет программистам полный набор функций и объектно-ориентированный API, благодаря которым они могут делать в среде MetaTrader все что угодно. Тем не менее, веб-технологии – это очень универсальный инструмент, который может помочь в ситуациях, когда вам нужно создать нечто совершенно особое, вы хотите удивить ваших клиентов или у вас просто нет времени на изучение определенной части стандартной библиотеки MQL5. В данной статье вы узнаете, как можно управлять временем разработки при создании вашего уникального коктейля технологий.
Рецепты MQL5 - Озвучиваем торговые события в MetaTrader 5
Рецепты MQL5 - Озвучиваем торговые события в MetaTrader 5

Рецепты MQL5 - Озвучиваем торговые события в MetaTrader 5

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

Создание новостного торгового советника

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

Мастер MQL5: Как научить эксперта открывать отложенные ордера по любым ценам

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

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

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

Приобщаемся к объектно-ориентированному программированию в MQL5

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

Генератор торговых сигналов пользовательского индикатора

Как сделать генератор торговых сигналов основанный на пользовательском индикаторе. Как создать пользовательский индикатор. Как получить доступ к данным пользовательского индикатора. Зачем нужна конструкция IS_PATTERN_USAGE(0) и model 0.
Рецепты MQL5 - Записываем историю сделок в файл и строим графики балансов для каждого символа в Excel
Рецепты MQL5 - Записываем историю сделок в файл и строим графики балансов для каждого символа в Excel

Рецепты MQL5 - Записываем историю сделок в файл и строим графики балансов для каждого символа в Excel

Общаясь на многих форумах, я довольно часто приводил в пример результаты тестов на скриншотах с графиков в Microsoft Excel. И многие просили меня объяснить, как же строить эти замечательные графики. Наконец у меня появилось немного времени, чтобы написать статью об этом.
Рецепты MQL5 - Разработка мультивалютного эксперта с неограниченным количеством параметров
Рецепты MQL5 - Разработка мультивалютного эксперта с неограниченным количеством параметров

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

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

Рецепты MQL5 - Мультивалютный эксперт: пример простой, точной и быстрой схемы

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

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

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

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

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

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

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

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

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