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

icon

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

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

Новая статья
последние | лучшие
Кроссплатформенный торговый советник: Временные фильтры
Кроссплатформенный торговый советник: Временные фильтры

Кроссплатформенный торговый советник: Временные фильтры

В статье обсуждается реализация различных методов временной фильтрации в кроссплатформенном торговом советнике. Классы временных фильтров отвечают за проверку того, попадает ли конкретное время в определенный период, заданный в настройках.
Библиотека для простого и быстрого создания программ для MetaTrader (Часть XXIII):  Основной торговый класс - контроль допустимых параметров
Библиотека для простого и быстрого создания программ для MetaTrader (Часть XXIII):  Основной торговый класс - контроль допустимых параметров

Библиотека для простого и быстрого создания программ для MetaTrader (Часть XXIII): Основной торговый класс - контроль допустимых параметров

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

Прогнозирование временных рядов с использованием нейронных сетей LSTM: Нормализация цены и токенизация времени

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

MQL5, обработка событий: Изменяем период мувинга "на лету"

Предположим, что на чарт наброшен индикатор простого мувинга с периодом 13. А мы хотим изменить период до 20, но нам не хочется лезть в диалог свойств индикатора и править число 13 на 20: надоело уже пальцы стирать об мышку и клавиатуру. И уж тем более не хочется открывать код индикатора и модифицировать его. Мы хотим сделать все это однократным нажатием одной клавиши - "стрелочки вверх", расположенной рядом с цифровой клавиатурой. В этой публикации мы расскажем, как это сделать.
Одновременное отображение сигналов нескольких индикаторов с четырех таймфреймов
Одновременное отображение сигналов нескольких индикаторов с четырех таймфреймов

Одновременное отображение сигналов нескольких индикаторов с четырех таймфреймов

При ручной торговле, в отличие от механической, трейдеру необходимо постоянно следить за значениями нескольких индикаторов. Если индикаторов, к примеру, два или три, а для торговли выбран один таймфрейм, то это совсем несложная задача. А как быть, если индикаторов - пять или шесть, а торговая стратегия обязывает учитывать сигналы на нескольких таймфреймах?
Графические интерфейсы VI: Элементы "Слайдер" и "Двухсторонний слайдер" (Глава 2)
Графические интерфейсы VI: Элементы "Слайдер" и "Двухсторонний слайдер" (Глава 2)

Графические интерфейсы VI: Элементы "Слайдер" и "Двухсторонний слайдер" (Глава 2)

В предыдущей статье разрабатываемая библиотека была пополнена сразу четырьмя довольно часто используемыми в графических интерфейсах элементами управления: «чекбокс», «поле ввода», «поле ввода с чекбоксом» и «комбобокс с чекбоксом». Вторая глава шестой части серии будет посвящена таким элементам управления, как слайдер и двухсторонний слайдер.
Заблуждения, Часть 2: Статистика - лженаука, или Хроника пикирующего бутерброда
Заблуждения, Часть 2: Статистика - лженаука, или Хроника пикирующего бутерброда

Заблуждения, Часть 2: Статистика - лженаука, или Хроника пикирующего бутерброда

Многочисленные попытки применения методов статистики к объективной реальности, т.е. к финансовым рядам, разбиваются о скалы нестационарности процессов, «толстохвостости» сопутствующих вероятностных распределений и недостаточного объема финансовых данных.В данной публикации я попытаюсь обратиться не к финансовым рядам как таковым, а к их субъективному отражению – в данном случае к тому, как эти ряды пытается оседлать трейдер, т.е. к торговой системе. Выявление статистических закономерностей процесса, описывающего результаты сделок, оказывается довольно увлекательным занятием. В некоторых случаях возможно даже сделать вполне достоверные выводы о модели этого процесса и применить эти выводы к торговой системе.
preview
Машинное обучение в торговых системах на сетке и мартингейле. Есть ли рыба?

Машинное обучение в торговых системах на сетке и мартингейле. Есть ли рыба?

Данная статья познакомит читателя с техникой машинного обучения для торговли сеткой и мартингейлом. К моему удивлению, такой подход по каким-то причинам совершенно не затронут в глобальной сети. Прочитав статью, вы сможете создавать своих собственных ботов.
Интервью с Дмитрием Терентьевым (ATC 2012)
Интервью с Дмитрием Терентьевым (ATC 2012)

Интервью с Дмитрием Терентьевым (ATC 2012)

Нужно ли быть программистом, чтобы писать торговых роботов? Должны ли вы провести годы в наблюдении за графиками цен, чтобы понять рынок и почувствовать его пульс? Эти вопросы мы затронули в интервью с Дмитрием Терентьевым (SAFF), чей торговый робот держится на первой странице Чемпионата с самого его начала.
Графические интерфейсы X: Элемент "Время", элемент "Список из чекбоксов" и сортировка таблицы (build 6)
Графические интерфейсы X: Элемент "Время", элемент "Список из чекбоксов" и сортировка таблицы (build 6)

Графические интерфейсы X: Элемент "Время", элемент "Список из чекбоксов" и сортировка таблицы (build 6)

Продолжаем развивать библиотеку для создания графических интерфейсов. На этот раз будут представлены такие элементы, как «Время» и «Список из чекбоксов». Кроме этого, в класс таблицы типа CTable добавлена возможность сортировать данные по возрастанию и убыванию.
Кроссплатформенный торговый советник: Мани-менеджмент
Кроссплатформенный торговый советник: Мани-менеджмент

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

В этой статье обсуждается реализация мани-менеджмента в кроссплатформенном торговом советнике. Классы мани-менеджмента отвечают за расчет размера лота, которым советник войдет в следующую сделку.
Интервью с Леонидом Величковским: "Главный миф о нейронных сетях – сверхприбыльность" (ATC 2010)
Интервью с Леонидом Величковским: "Главный миф о нейронных сетях – сверхприбыльность" (ATC 2010)

Интервью с Леонидом Величковским: "Главный миф о нейронных сетях – сверхприбыльность" (ATC 2010)

Герой нашего интервью - Леонид Величковский (LeoV) – уже принимал участие в Чемпионатах по автоматическому трейдингу. В 2008 году его мультивалютная нейронная сеть ярко вспыхнула на небосклоне, заработав в определенный момент 110 000 $, но в итоге пала жертвой собственного агрессивного мани-менеджмента. В интервью двухлетней давности Леонид говорил о собственном опыте трейдинга и особенностях работы его советника. В преддверии же Чемпионата ATC 2010 наш герой рассказывает о самых распространенных мифах и заблуждениях, связанных с нейросетями.
Библиотека для простого и быстрого создания программ для MetaTrader (Часть XXII): Торговые классы - Основной торговый класс, контроль ограничений
Библиотека для простого и быстрого создания программ для MetaTrader (Часть XXII): Торговые классы - Основной торговый класс, контроль ограничений

Библиотека для простого и быстрого создания программ для MetaTrader (Часть XXII): Торговые классы - Основной торговый класс, контроль ограничений

В статье начнём создавать основной торговый класс библиотеки и наделим его первую версию функционалом первичной проверки разрешений на проведение торговых операций. Также немного расширим возможности и содержание базового торгового класса.
Alert и Comment для внешних индикаторов (часть вторая)
Alert и Comment для внешних индикаторов (часть вторая)

Alert и Comment для внешних индикаторов (часть вторая)

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

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

В статье обсуждаются классы CSignal и CSignals, которые будут использоваться в кроссплатформенных торговых советниках. Рассмотрены различия между MQL4 и MQL5 в организации данных, необходимых для оценки полученных торговых сигналов. Итог — код, совместимый с компиляторами обеих версий.
Применение функции TesterWithdrawal() для моделирования снятия прибыли
Применение функции TesterWithdrawal() для моделирования снятия прибыли

Применение функции TesterWithdrawal() для моделирования снятия прибыли

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

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

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

Оценка риска в последовательности сделок с одним активом

В статье описано использование методов теории вероятностей и математической статистики при анализе торговых систем.
preview
Машинное обучение и Data Science (Часть 07): Полиномиальная регрессия

Машинное обучение и Data Science (Часть 07): Полиномиальная регрессия

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

Биржевая сеточная торговля лимитными ордерами на полном автомате на Московской бирже MOEX

Разработка торгового советника на языке торговых стратегий MQL5 для MetaTrader 5 Московской биржи MOEX. Советник будет торговать по сеточной стратегии на терминале MetaTrader 5 на рынках Московской биржи MOEX, которая также включает в себя закрытие позиции по стоп-лоссу или тейк-профиту, удаление отложенных ордеров при наступлении определенных рыночных условий.
preview
Машинное обучение и Data Science — Нейросети (Часть 01): Разбираем нейронные сети с прямой связью

Машинное обучение и Data Science — Нейросети (Часть 01): Разбираем нейронные сети с прямой связью

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

Построение излучений индикаторов в MQL5

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

Вот мы и получили долгожданные MetaTrader 5 и MQL5

Это очень краткий обзор MetaTrader 5. Я не могу описать все новшества системы за столь короткий период времени - тестирование стартовало 09-09-2009. Это символическая дата, и я уверен, что это будет счастливым числом. Всего несколько дней у меня на руках бета-версия терминала MetaTrader 5 и MQL5. Я не успел опробовать все, что в нем есть нового, но то, что есть, уже впечатляет.
Многопоточный асинхронный WebRequest на MQL5 своими руками
Многопоточный асинхронный WebRequest на MQL5 своими руками

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

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

Универсальный шаблон экспертов

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

Роль статистических распределений в работе трейдера

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

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

Статья описывает препроцессор, сканер и парсер для синтаксического анализа исходных кодов на MQL. Реализация на MQL прилагается.
Интерактивная площадка для моделирования случайных результатов
Интерактивная площадка для моделирования случайных результатов

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

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

Оптимальный метод подсчета объема совокупной позиции по заданному магическому номеру

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

MetaTrader для работы на фондовом рынке - легко!

В данной статье поднимается проблема автоторговли на фондовом рынке. Приводится пример интеграции MetaTrader и QUIK. Описаны преимущества MT для решения данной задачи, приводится пример торгового робота, способного выполнять операции на ММВБ.
Визуальная оптимизация прибыльности индикаторов и сигналов
Визуальная оптимизация прибыльности индикаторов и сигналов

Визуальная оптимизация прибыльности индикаторов и сигналов

Эта работа – продолжение и развитие моей предыдущей статьи "Визуальное тестирование прибыльности индикаторов и сигналов". Добавив немного интерактивности в процесс изменения параметров и изменив цели исследования, удалось получить новый инструмент, который не просто показывает, какие будут результаты торговли по используемым сигналам, но и позволит, передвигая виртуальные ползунки-регуляторы значений параметров сигналов на основном графике, сразу же получить и раскладку по сделкам, и график изменения баланса, и конечный результат торговли.
Исследование методов свечного анализа (Часть II): Автопоиск новых паттернов
Исследование методов свечного анализа (Часть II): Автопоиск новых паттернов

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

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

Стать хорошим программистом (Часть 1): избавляемся от пяти привычек, чтобы лучше программировать на MQL5

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

Изучаем возможности создания разноцветных свечных графиков

В этой статье мы рассмотрим возможности создания кастомных свечных индикаторов, а также поговорим об их преимуществах и недостатках.
Графические интерфейсы X: Элемент "Стандартный график" (build 4)
Графические интерфейсы X: Элемент "Стандартный график" (build 4)

Графические интерфейсы X: Элемент "Стандартный график" (build 4)

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

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

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

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

Что должна делать ваша программа, если графические панели управления были удалены или изменены кем-то еще? В этой статье мы покажем, как после удаления приложения не иметь на графике "бесхозные" объекты, и как не потерять над ними контроль в случае переименования или удаления созданных программно объектов.
Графические интерфейсы I: Тестируем библиотеку в программах разных типов и в терминале MetaTrader 4 (Глава 5)
Графические интерфейсы I: Тестируем библиотеку в программах разных типов и в терминале MetaTrader 4 (Глава 5)

Графические интерфейсы I: Тестируем библиотеку в программах разных типов и в терминале MetaTrader 4 (Глава 5)

В предыдущей главе первой части серии о графических интерфейсах в класс формы были добавлены методы, которые позволяют управлять формой посредством нажатия на ее элементах управления. В этой статье протестируем проделанную работу в разных типах MQL-программ, таких как индикаторы и скрипты. А поскольку библиотека задумывалась как кросс-платформенная (в рамках торговых платформ MetaTrader), то проведем тесты также и в MetaTrader 4.
preview
Классификационные модели библиотеки Scikit-learn и их экспорт в ONNX

Классификационные модели библиотеки Scikit-learn и их экспорт в ONNX

В данной статье мы рассмотрим применение всех классификационных моделей пакета Scikit-learn для решения задачи классификации ирисов Фишера, попробуем их сконвертировать в ONNX-формат и использовать полученные модели в программах на MQL5. Также мы сравним точность работы оригинальных моделей и их ONNX-версий на полном наборе Iris dataset.
preview
Машинное обучение и Data Science (Часть 06): Градиентный спуск

Машинное обучение и Data Science (Часть 06): Градиентный спуск

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