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

icon

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

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

Новая статья
последние | лучшие
Исследование методов свечного анализа (Часть III): Библиотека работы с паттернами
Исследование методов свечного анализа (Часть III): Библиотека работы с паттернами

Исследование методов свечного анализа (Часть III): Библиотека работы с паттернами

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

Цветная оптимизация торговых стратегий

В данной статье будет проведен эксперимент по раскрашиванию результатов оптимизации. Как известно, цвет определяется тремя параметрами: уровнями красного, зеленого и синего цветов (RGB от анг. Red — красный, Green — зеленый, Blue — синий). Существуют и другие способы кодирования цвета, но и в них цвет кодируется тремя параметрами. Таким образом, три показателя тестирования можно превратить в один, визуально воспринимаемый человеком, в цвет. На сколько такой показатель будет полезен вы сможете узнать из статьи.
MTF-индикаторы как инструмент технического анализа
MTF-индикаторы как инструмент технического анализа

MTF-индикаторы как инструмент технического анализа

Большинство из нас согласны с мнением, что процесс анализа текущей рыночной ситуации начинается с рассмотрения старших периодов графика. Происходит это до тех пор, пока мы не перейдем на тот график, на котором совершаем сделки. Данный вариант анализа является одним из условий успешной торговли и профессиональным подходом к делу. В статье пойдет речь о мультитаймфреймовых индикаторах и способах их создания. Будут приведены примеры кода MQL5, дана общая оценка достоинств и недостатков каждой версии, а также будет предложен новый подход к индикаторам с использованием режима MTF.
Библиотека для простого и быстрого создания программ для MetaTrader (Часть IV): Торговые события
Библиотека для простого и быстрого создания программ для MetaTrader (Часть IV): Торговые события

Библиотека для простого и быстрого создания программ для MetaTrader (Часть IV): Торговые события

В предыдущих статьях мы начали создавать большую кроссплатформенную библиотеку, целью которой является облегчение написания программ для платформы MetaTrader 5 и MetaTrader 4. У нас уже есть коллекции исторических ордеров и сделок, рыночных ордеров и позиций, класс для удобного выбора и фильтрации ордеров. В данной части продолжим развитие базового объекта и научим библиотеку Engine отслеживать торговые события на счёте.
Соединение MetaTrader 5 и Python: получение и отправка данных
Соединение MetaTrader 5 и Python: получение и отправка данных

Соединение MetaTrader 5 и Python: получение и отправка данных

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

Извлечение структурированных данных из HTML-страниц с помощью CSS-селекторов

В статье описан универсальный метод анализа и конвертации данных из HTML-документов, основанный на CSS-селекторах. Торговые отчеты, отчеты тестера, ваши любимые экономические календари, публичные сигналы и мониторы счетов, дополнительные источники онлайн котировок - все это становится доступным из MQL.
Библиотека для простого и быстрого создания программ для MetaTrader (Часть III): Коллекция рыночных ордеров и позиций, поиск и фильтрация
Библиотека для простого и быстрого создания программ для MetaTrader (Часть III): Коллекция рыночных ордеров и позиций, поиск и фильтрация

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

В первой статье мы начали создавать большую кроссплатформенную библиотеку для легкого создания программ на платформах MetaTrader 5 и MetaTrader 4. Далее продолжили развитие библиотеки и сделали коллекцию исторических ордеров и сделок. Теперь создадим класс для удобного выбора и фильтрации ордеров, сделок и позиций в списках коллекций, а именно создадим базовый объект библиотеки — Engine, и добавим в библиотеку коллекцию рыночных ордеров и позиций.
Создаем кроссплатформенный советник-сеточник (гридер)
Создаем кроссплатформенный советник-сеточник (гридер)

Создаем кроссплатформенный советник-сеточник (гридер)

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

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

В первой статье мы начали создавать большую кроссплатформенную библиотеку, целью которой является облегчение создания программ для платформ MetaTrader 5 и MetaTrader 4. Создали абстрактный объект COrder, который является базовым объектом для хранения данных исторических ордеров и сделок, а также рыночных ордеров и позиций. Теперь мы создадим все необходимые объекты для хранения данных истории счёта в коллекциях.
Использование вычислительных возможностей MATLAB 2018 в MetaTrader 5
Использование вычислительных возможностей MATLAB 2018 в MetaTrader 5

Использование вычислительных возможностей MATLAB 2018 в MetaTrader 5

После модернизации пакета MATLAB в 2015 году необходимо рассмотреть современный способ создания DLL-библиотек. На примере прогнозирующего индикатора в статье иллюстрируются особенности связывания MetaTrader 5 и MATLAB с использованием современных 64-х разрядных версий платформ, применяемых в настоящее время. Рассмотрение всей последовательности подключения MATLAB позволит разработчику на MQL5 быстрее создавать приложения с расширенными вычислительными возможностями, избегая «подводных камней».
Исследование методов свечного анализа (Часть II): Автопоиск новых паттернов
Исследование методов свечного анализа (Часть II): Автопоиск новых паттернов

Исследование методов свечного анализа (Часть II): Автопоиск новых паттернов

В предыдущей статье были рассмотрены всего 14 паттернов, но, как известно, существуют и другие свечные модели. И чтобы монотонно не рассматривать всё великое многообразие остальных паттернов, было решено пойти другим путем. Теперь вашему вниманию предлагается система поиска и тестирования новых свечных моделей на основе известных типов свечей.
Библиотека для простого и быстрого создания программ для MetaTrader (Часть I): Концепция, организация данных, первые результаты
Библиотека для простого и быстрого создания программ для MetaTrader (Часть I): Концепция, организация данных, первые результаты

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

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

Синтаксический анализ MQL средствами MQL

Статья описывает препроцессор, сканер и парсер для синтаксического анализа исходных кодов на MQL. Реализация на MQL прилагается.
ZigZag всему голова (Часть II):  Примеры получения, обработки и отображения данных
ZigZag всему голова (Часть II):  Примеры получения, обработки и отображения данных

ZigZag всему голова (Часть II): Примеры получения, обработки и отображения данных

В первой части был описан модифицированный индикатор ZigZag и класс для получения данных индикаторов такого типа. Теперь мы покажем как создать индикаторы на основе этих инструментов, а также напишем эксперта для тестов, который будет заключать сделки по сигналам, формируемым индикатором ZigZag. В качестве дополнения в этой статье будет представлена новая версия библиотеки для создания графических интерфейсов EasyAndFast.
Создание графических интерфейсов для экспертов и индикаторов на базе .Net Framework и C#
Создание графических интерфейсов для экспертов и индикаторов на базе .Net Framework и C#

Создание графических интерфейсов для экспертов и индикаторов на базе .Net Framework и C#

Простой и быстрый способ создания графических окон при помощи редактора Visual Studio с последующей интеграцией в код MQL советника. Статья расчитана на широкий круг читателей, и не требует каких-либо познаний в C# и технологии .Net.
Исследование методов свечного анализа (Часть I): Проверка существующих паттернов
Исследование методов свечного анализа (Часть I): Проверка существующих паттернов

Исследование методов свечного анализа (Часть I): Проверка существующих паттернов

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

Утилита для отбора и навигации на MQL5 и MQL4: добавляем автоматичекий поиск паттернов с показом найденных символов

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

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

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

Мартингейл как основа долгосрочной торговой стратегии

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

Практическое применение корреляций в торговле

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

Анализ торговли по HTML-отчетам

Кроме торговых отчетов MetaTrader 5 позволяет сохранять отчеты о тестировании и оптимизации экспертов. Отчет тестирования так же, как и история торговли, может быть сохранен в двух форматах: XLSX и HTML, а отчет оптимизации сохраняется в формате XML. В этой статье будет рассмотрен разбор HTML-отчета тестера, XML-отчета оптимизации и HTML-отчет с историей торговли.
Практическое использование нейросетей Кохонена в алгоритмическом трейдинге (Часть II): Оптимизация и прогнозирование
Практическое использование нейросетей Кохонена в алгоритмическом трейдинге (Часть II): Оптимизация и прогнозирование

Практическое использование нейросетей Кохонена в алгоритмическом трейдинге (Часть II): Оптимизация и прогнозирование

На основе универсального инструментария для работы с сетями Кохонена строится система анализа и выбора оптимальных параметров советника, а также рассматривается прогнозирование временных рядов. В первой части мы исправили и усовершенствовали публично доступные нейросетевые классы, дополнив их необходимыми алгоритмами. Теперь настало время применить их на практике.
Утилита для отбора и навигации на MQL5 и MQL4: добавляем вкладки "домашки" и сохраняем графические объекты
Утилита для отбора и навигации на MQL5 и MQL4: добавляем вкладки "домашки" и сохраняем графические объекты

Утилита для отбора и навигации на MQL5 и MQL4: добавляем вкладки "домашки" и сохраняем графические объекты

В данной статье мы расширим возможности ранее созданной утилиты, добавив в нее вкладки для отбора нужных нам инструментов. Также мы научимся сохранять графические объекты, которые мы создали на графике определенного инструмента, чтобы постоянно их не создавать повторно. И даже научимся работать только с инструментами, которые были предварительно выбраны с помощью с нужного нам сайта.
Практическое использование нейросетей Кохонена в алгоритмическом трейдинге (Часть I): Инструментарий
Практическое использование нейросетей Кохонена в алгоритмическом трейдинге (Часть I): Инструментарий

Практическое использование нейросетей Кохонена в алгоритмическом трейдинге (Часть I): Инструментарий

Данная статья развивает идею использования сетей Кохонена в МетаТрейдер 5, освещавшуюся в нескольких предыдущих материалах. Исправленные и усовршенствованные классы предоставляют инструментарий для решения прикладных задач.
Применение метода Монте-Карло в обучении с подкреплением
Применение метода Монте-Карло в обучении с подкреплением

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

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

Раздельная оптимизация стратегии на тренде и флете

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

Как самостоятельно создать и протестировать в MetaTrader 5 инструменты Московской биржи

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

Применение теории вероятностей на примере торговли на гэпах

Применяем методы теории вероятностей и математической статистики в процессе создания и тестирования торговых стратегий. Используя отличия цены от случайного блуждания, ищем оптимальное значение для риска в сделке. Доказано, что если цены ведут себя как случайное блуждание без сноса (отсутствие направленного тренда), то прибыльная торговля невозможна.
Пишем утилиту для отбора и навигации по инструментам на языках MQL5 и MQL4
Пишем утилиту для отбора и навигации по инструментам на языках MQL5 и MQL4

Пишем утилиту для отбора и навигации по инструментам на языках MQL5 и MQL4

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

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

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

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

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

Применение OpenCL для тестирования свечных моделей

В данной статье мы рассмотрим алгоритм реализации тестера свечных моделей на языке OpenCL в режиме "OHLC на M1". А также сравним его быстродействие cо встроенным тестером стратегий, запущенным в режиме быстрой и медленной оптимизации.
Многопоточный асинхронный WebRequest на MQL5 своими руками
Многопоточный асинхронный WebRequest на MQL5 своими руками

Многопоточный асинхронный WebRequest на MQL5 своими руками

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

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

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