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

icon

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

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

Новая статья
последние | лучшие
Разворотные паттерны: Тестируем паттерн "Двойная вершина/дно"
Разворотные паттерны: Тестируем паттерн "Двойная вершина/дно"

Разворотные паттерны: Тестируем паттерн "Двойная вершина/дно"

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

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

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

Автоматическая оптимизация советника в MetaTrader 5

В данной статье описана реализация механизма самооптимизации работающего эксперта в MetaTrader 5.
Реализация Take Profit в виде лимитных ордеров без изменения оригинального кода советника
Реализация Take Profit в виде лимитных ордеров без изменения оригинального кода советника

Реализация Take Profit в виде лимитных ордеров без изменения оригинального кода советника

На форуме давно обсуждается вопрос использования лимитных ордеров вместо установки стандартного тейк-профита позиции. В чем видится преимущество такого подхода и как его можно реализовать в своей торговле? В этой статье я я хочу предложить Вам свое видение ответов на эти вопросы.
100 лучших проходов оптимизации (Часть 1). Cоздание анализатора оптимизаций
100 лучших проходов оптимизации (Часть 1). Cоздание анализатора оптимизаций

100 лучших проходов оптимизации (Часть 1). Cоздание анализатора оптимизаций

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

Реверсирование: снижаем максимальную просадку и тестируем другие рынки

В этой статье мы продолжим рассматривать тему реверсирования. Мы попробуем снизить максимальную просадку по балансу до приемлемого уровня на ранее рассмотренных инструментах. Проверим, насколько при этом снизится полученная прибыль. А также проверим, как работает реверсирование на других рынках: фондовом, сырьевом, индексах и ETF, аграрном. Внимание, статья содержит очень много картинок!
50 000 выполненных работ на фриланс-бирже MQL5.com
50 000 выполненных работ на фриланс-бирже MQL5.com

50 000 выполненных работ на фриланс-бирже MQL5.com

Участники официального фриланс-сервиса для платформ MetaTrader к октябрю 2018 года выполнили уже более 50 000 заказов. Это самая большая в мире биржа удаленной работы для MQL-программистов — более тысячи исполнителей, десятки новых заявок от трейдеров ежедневно и локализация на 7 языков.
950 сайтов транслируют экономический календарь от MetaQuotes
950 сайтов транслируют экономический календарь от MetaQuotes

950 сайтов транслируют экономический календарь от MetaQuotes

Добавление виджета обеспечивает сайты подробным расписанием выхода 500 показателей и индикаторов крупнейших мировых экономик. Таким образом трейдеры, помимо основного контента площадки, оперативно получают актуальную информацию по всем важным событиям с пояснениями и графиками.
14 000 торговых роботов в MetaTrader Market
14 000 торговых роботов в MetaTrader Market

14 000 торговых роботов в MetaTrader Market

В самом большом магазине готовых приложений для алготрейдинга уже 13 970 продуктов. Среди них 4 800 роботов, 6 500 индикаторов, 2 400 утилит и другие решения. При этом почти половину приложений (6 000) можно не покупать, а арендовать. А четверть от общего числа продуктов (3 800) и вовсе доступна бесплатно.
Методы дистанционного управления работой советников
Методы дистанционного управления работой советников

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

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

Мониторинг торгового счета - необходимый инструмент трейдера

Мониторинг торгового счета — это подробный отчет по всем совершенным сделкам. Вся торговая статистика собирается автоматически и предоставляется вам в виде понятных диаграмм и графиков.
Рецепты MQL5 – Получаем свойства открытой хеджевой позиции
Рецепты MQL5 – Получаем свойства открытой хеджевой позиции

Рецепты MQL5 – Получаем свойства открытой хеджевой позиции

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

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

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

Использование индикаторов для RealTime оптимизации советников

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

Реверсирование - священный Грааль или опасное заблуждение?

В данной статье мы попробуем разобраться, что же такое реверсирование, стоит ли его применять и можно ли с его помощью улучшить вашу торговую стратегию. Мы создадим советника и на исторических данных посмотрим, какие индикаторы лучше всего подходят для реверсирования, а также можно ли использовать его вообще без индикаторов как самостоятельную торговую систему. Посмотрим, получится ли превратить убыточную торговую систему в прибыльную с помощью реверсирования.
Elder-Ray Биржевой рентген (Bulls Power и Bears Power)
Elder-Ray Биржевой рентген (Bulls Power и Bears Power)

Elder-Ray Биржевой рентген (Bulls Power и Bears Power)

Торговая система "Биржевой рентген" на основе индикаторов Bulls Power, Bears Power и Moving Average (EMA — экспоненциальное усреднение). Эту систему описал Александр Элдер в своей книге "Как играть и выигрывать на бирже" (Trading for a living).
Комбинируем трендовую и флетовую стратегии
Комбинируем трендовую и флетовую стратегии

Комбинируем трендовую и флетовую стратегии

Существуют различные стратегии торговли. Одни ищут направленное движение и торгуют по тренду. Другие определяют диапазоны ценовых колебаний и торгуют внутри таких коридоров. И возникает вопрос, можно ли объединить два подхода для увеличения прибыльности торговли?
Моделирование временных рядов с помощью пользовательских символов по заданным законам распределения
Моделирование временных рядов с помощью пользовательских символов по заданным законам распределения

Моделирование временных рядов с помощью пользовательских символов по заданным законам распределения

В статье приводится обзор возможностей терминала по созданию и работе с пользовательскими символами, предлагаются варианты моделирования торговой истории c помощью пользовательских символов, тренда и различных графических паттернов.
Горизонтальные диаграммы на графиках MеtaTrader 5
Горизонтальные диаграммы на графиках MеtaTrader 5

Горизонтальные диаграммы на графиках MеtaTrader 5

Задачи по отрисовке горизонтальных диаграмм на графике терминала не часто, но встречаются разработчику. Что это за задачи? Это индикаторы распределения объемов за какой то определенный период. Задачи по распределению цены, различные стаканы и т.п. В статье рассмотрены вопросы создания и управления горизонтальными диаграммами на графиках, как массивами графических примитивов.
График PairPlot на основе CGraphic для анализа зависимостей между массивами данных (таймсериями)
График PairPlot на основе CGraphic для анализа зависимостей между массивами данных (таймсериями)

График PairPlot на основе CGraphic для анализа зависимостей между массивами данных (таймсериями)

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

Написание биржевых индикаторов с контролем объема на примере индикатора дельты

В статье рассмотрен алгоритм построения биржевых индикаторов на реальных объемах с использованием функций CopyTicks() и CopyTicksRange(). Также приведены особенности построения таких индикаторов и описаны нюансы их работы в реальном времени и в тестере стратегий.
Графический конструктор стратегий. Создание торговых роботов без программирования
Графический конструктор стратегий. Создание торговых роботов без программирования

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

В статье описывается графический конструктор стратегий. Показано, как любой пользователь может создавать торговые роботы и утилиты без программирования. Созданные советники можно тестировать в тестере стратегий, оптимизировать в облаке и запускать на графике в режиме реального времени.
Глубокие нейросети (Часть VIII). Повышение качества классификации bagging-ансамблей
Глубокие нейросети (Часть VIII). Повышение качества классификации bagging-ансамблей

Глубокие нейросети (Часть VIII). Повышение качества классификации bagging-ансамблей

В статье рассматриваются три метода, с помощью которых можно повысить качество классификации bagging-ансамблей, и оценивается их эффективность. Проведена оценка того, как влияет оптимизация гиперпараметров нейросетей ELM и параметров постпроцессинга на качество классификации ансамбля.
Интеграция эксперта на MQL и базы данных (SQL Server, .NET и C#)
Интеграция эксперта на MQL и базы данных (SQL Server, .NET и C#)

Интеграция эксперта на MQL и базы данных (SQL Server, .NET и C#)

Статья описывает, как добавить в экспертов на MQL5 возможность работы с сервером баз данных Microsoft SQL Server. Используется импорт функций из DLL. Для создания DLL применяется платформа Microsoft .NET и язык C#. Используемые в статье методы с незначительными изменениями подходят и для экспертов, написанных на MQL4.
Социальный трейдинг. Можно ли прибыльный сигнал сделать еще лучше?
Социальный трейдинг. Можно ли прибыльный сигнал сделать еще лучше?

Социальный трейдинг. Можно ли прибыльный сигнал сделать еще лучше?

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

Универсальный индикатор RSI для работы одновременно в двух направлениях

При разработке торговых алгоритмов мы часто сталкиваемся с проблемой: как определить, где начинается и заканчивается тренд/флэт? В этой статье попытаемся создать универсальный индикатор, в котором совместим сигналы для разных типов стратегий. Попробуем максимально упростить получение сигналов на торговые операции в эксперте. Приведем пример того, как объединить несколько разных индикаторов в одном.
Как составить Техническое Задание для заказа торгового робота
Как составить Техническое Задание для заказа торгового робота

Как составить Техническое Задание для заказа торгового робота

Вы разработали торговую стратегию и торгуете по ней? Если правила вашей системы хорошо формализуются в программные алгоритмы, то лучше вместо себя поставить торговать робота. Робот не спит, не ест и не подвержен человеческим слабостям. В этой статье мы покажем, как составить Техническое Задание для заказа торгового робота во Фрилансе.
Собственное представление торговой истории и создание графиков для отчетов
Собственное представление торговой истории и создание графиков для отчетов

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

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

Сравнительный анализ 10 флэтовых стратегий

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

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

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

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

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

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

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

Глубокие нейросети (Часть VII). Ансамбль нейросетей: stacking

Мы продолжаем строить ансамбли. Теперь к bagging-ансамблю, созданному ранее, добавим обучаемый объединитель — глубокую нейросеть. Одна нейросеть объединяет 7 лучших выходов ансамбля после обрезки. Вторая принимает на вход все 500 выходов ансамбля, обрезает и объединяет их. Нейросети будем строить с помощью пакета keras/TensorFlow из Python. Кратко рассмотрим возможности пакета. Проведем тестирование и сравним качество классификации bagging и stacking ансамблей.
Тестирование паттернов валютных пар: Использование и перспективы для реальной торговли. Часть IV
Тестирование паттернов валютных пар: Использование и перспективы для реальной торговли. Часть IV

Тестирование паттернов валютных пар: Использование и перспективы для реальной торговли. Часть IV

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

Визуализация результатов оптимизации по выбранному критерию

В статье мы продолжаем развивать MQL-приложение для работы с результатами оптимизации, которая начата в предыдущих статьях. На этот раз будет показан пример, когда таблицу лучших результатов можно сформировать уже после оптимизации параметров, указав через графический интерфейс другой критерий.
Улучшаем работу с Панелями: добавляем прозрачность, меняем цвет фона и наследуемся от CAppDialog/CWndClient
Улучшаем работу с Панелями: добавляем прозрачность, меняем цвет фона и наследуемся от CAppDialog/CWndClient

Улучшаем работу с Панелями: добавляем прозрачность, меняем цвет фона и наследуемся от CAppDialog/CWndClient

Продолжаем изучать работу с CAppDialog. Теперь мы научимся задавать цвета фона, рамки и заголовка для графической панели. По шагам рассмотрим, как добавить прозрачность окна приложения при перемещении его на графике. Далее мы рассмотрим создание потомков от CAppDialog или CWndClient и увидим новые тонкости в работе с контролами. Наконец, посмотрим с новой точки зрения на новые Проекты.
Как перенести расчетную часть любого индикатора в код эксперта
Как перенести расчетную часть любого индикатора в код эксперта

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

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

Применение метода Монте-Карло для оптимизации торговых стратегий

Перед запуском робота на торговом счете мы обычно тестируем и оптимизируем его на истории котировок. И тут возникает резонный вопрос: как прошлые результаты на истории могут помочь нам в будущем? В статье показано применение метода Монте-Карло для построения собственных критериев оптимизации торговых стратегий. Кроме того, рассмотрены критерии устойчивости советника.
Random Decision Forest в обучении с подкреплением
Random Decision Forest в обучении с подкреплением

Random Decision Forest в обучении с подкреплением

Random Forest (RF) с применением бэггинга — один из самых сильных методов машинного обучения, который немного уступает градиентному бустингу. В статье делается попытка разработки самообучающейся торговой системы, которая принимает решения на основании полученного опыта взаимодействия с рынком.
Строим индикатор ZigZag по осцилляторам. Пример выполнения технического задания
Строим индикатор ZigZag по осцилляторам. Пример выполнения технического задания

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

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