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

icon

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

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

Новая статья
последние | лучшие
preview
Разработка торгового советника с нуля (Часть 23): Новая система ордеров (VI)

Разработка торгового советника с нуля (Часть 23): Новая система ордеров (VI)

Мы сделаем систему ордеров более гибкой. Здесь я покажу вам, как и где внести изменения в код, чтобы делать его более гибким, что позволит нам намного быстрее изменять лимиты позиций.
preview
Язык визуального программиования ДРАКОН (Drakon) — средство общения для разработчика MQL и заказчика

Язык визуального программиования ДРАКОН (Drakon) — средство общения для разработчика MQL и заказчика

ДРАКОН — язык визуального программирования, специально разработанный для упрощения взаимодействия между специалистами разных отраслей (биологами, физиками, инженерами...) с программистами в российских космических проектах (например, при создании создание комплекса "Буран"). В этой статье я расскажу о том, как ДРАКОН делает создание алгоритмов доступным и интуитивно понятным, даже если вы никогда не сталкивались с кодом, а также - как заказчику легче объяснить свои мысли при заказе торговых роботов, а программисту - совершать меньше ошибок в сложных функциях.
preview
Нейросети — это просто (Часть 34): Полностью параметризированная квантильная функция

Нейросети — это просто (Часть 34): Полностью параметризированная квантильная функция

Продолжаем изучение алгоритмов распределенного Q-обучения. В предыдущих статьях мы рассмотрели алгоритмы распределенного и квантильного Q-обучения. В первом мы учили вероятности заданных диапазонов значений. Во втором учили диапазоны с заданной вероятностью. И в первом, и во втором алгоритме мы использовали априорные знания одного распределения и учили другое. В данной статье мы рассмотрим алгоритм, позволяющей модели учить оба распределения.
preview
Эксперименты с нейросетями (Часть 2): Хитрая оптимизация нейросети

Эксперименты с нейросетями (Часть 2): Хитрая оптимизация нейросети

Нейросети наше все. Проверяем на практике, так ли это. MetaTrader 5 как самодостаточное средство для использования нейросетей в трейдинге. Простое объяснение.
preview
Как построить советник, работающий автоматически (Часть 05): Ручные триггеры (II)

Как построить советник, работающий автоматически (Часть 05): Ручные триггеры (II)

Сегодня мы рассмотрим, как создать советник, который просто и безопасно работает в автоматическом режиме. В конце предыдущей статьи я подумал, что было бы уместно разрешить использование советника вручную хотя бы на время.
preview
Машинное обучение и Data Science (Часть 11): Наивный байесовский классификатор и теория вероятностей в трейдинге

Машинное обучение и Data Science (Часть 11): Наивный байесовский классификатор и теория вероятностей в трейдинге

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

Разработка торгового советника с нуля (Часть 29): Говорящая платформа

В этой статье мы научимся, как заставить платформу MT5 говорить. А что если мы сделаем советника более веселым? Торговля на финансовых рынках часто является чрезвычайно скучным и монотонным занятием, но мы можем сделать эту работу менее утомительной. Этот проект может стать опасным, если у вас есть проблема, делающая вас зависимым, но на самом деле весь сценарий с модификациями может быть более увлекательным и менее скучным.
preview
Как построить советник, работающий автоматически (Часть 06): Виды счетов (I)

Как построить советник, работающий автоматически (Часть 06): Виды счетов (I)

Сегодня мы рассмотрим, как создать советник, который просто и безопасно работает в автоматическом режиме. Пока наш советник может работать в любой ситуации, но он ещё не готов к автоматизации, поэтому нам нужно проработать несколько моментов.
preview
Нейросети — это просто (Часть 25): Практикум Transfer Learning

Нейросети — это просто (Часть 25): Практикум Transfer Learning

В последних двух статьях мы создали инструмент, позволяющий создавать и редактировать модели нейронных сетей. И теперь пришло время оценить потенциальные возможности использования технологии Transfer Learning на практических примерах.
preview
Возможности Мастера MQL5, которые вам нужно знать (Часть 1): Регрессионный анализ

Возможности Мастера MQL5, которые вам нужно знать (Часть 1): Регрессионный анализ

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

Непрерывная скользящая оптимизация (Часть 6): Логическая часть автооптимизатора и его структура

Описывая создание автоматической скользящей оптимизации, мы добрались до внутренней структуры самого автооптимизатора. Данная статья может быть полезна тем, кто пожелает сам доработать созданный проект, либо же просто желает разобраться в логики функционирования программы. В текущей статье при помощи UML диаграмм представлена внутренняя структура проекта и взаимосвязи объектов между собой. Также рассматривается процесс запуска оптимизаций, но пока без описания процесса реализации оптимизатора.
preview
Графика в библиотеке DoEasy (Часть 98): Перемещаем опорные точки расширенных стандартных графических объектов

Графика в библиотеке DoEasy (Часть 98): Перемещаем опорные точки расширенных стандартных графических объектов

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

Как построить советник, работающий автоматически (Часть 04): Ручные триггеры (I)

Сегодня посмотрим, как создать советник, просто и безопасно работающий в автоматическом режиме.
Графика в библиотеке DoEasy (Часть 85): Коллекция графических объектов - добавляем вновь создаваемые
Графика в библиотеке DoEasy (Часть 85): Коллекция графических объектов - добавляем вновь создаваемые

Графика в библиотеке DoEasy (Часть 85): Коллекция графических объектов - добавляем вновь создаваемые

В статье закончим создание классов-наследников класса абстрактного графического объекта и начнём реализацию хранения этих объектов в классе-коллекции. В частности — создадим функционал для добавления в класс-коллекцию вновь создаваемых стандартных графических объектов.
preview
Разработка торговой системы на основе индикатора Williams PR

Разработка торговой системы на основе индикатора Williams PR

Новая статья из серии, в которой мы учимся создавать торговые системы по показателям самых популярных технических индикаторов. Пишем системы на языке MQL5 для использования в MetaTrader 5. В этой статье мы будем изучать индикатор Процентного диапазона Уильямса (Williams' %R).
preview
Разработка торговой системы на основе индекса силы быков Bulls Power

Разработка торговой системы на основе индекса силы быков Bulls Power

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

Торговые транзакции. Структуры запросов и ответов, описание и вывод в журнал

В статье рассмотрим работу со структурами торговых запросов — для создания запроса, его предварительной проверки перед отправкой на сервер, ответ сервера на торговый запрос и структуру торговых транзакций. Создадим простые удобные функции для отправки торговых приказов на сервер и, на основе всего рассмотренного, создадим советник-информер о торговых транзакциях.
preview
Использование ONNX-моделей в MQL5

Использование ONNX-моделей в MQL5

ONNX (Open Neural Network Exchange) — открытый стандарт представления моделей нейронных сетей. В данной статье мы рассмотрим процесс создания модели СNN-LSTM для прогнозирования финансовых временных рядов и использование созданной ONNX-модели в MQL5-эксперте.
preview
Работа с таймсериями в библиотеке DoEasy (Часть 52): Кроссплатформенность мультипериодных мультисимвольных однобуферных стандартных индикаторов

Работа с таймсериями в библиотеке DoEasy (Часть 52): Кроссплатформенность мультипериодных мультисимвольных однобуферных стандартных индикаторов

В статье рассмотрим создание мультисимвольного мультипериодного стандартного индикатора Accumulation/Distribution. Чтобы программы, написанные под устаревшую платформу MetaTrader 4, основанные на данной библиотеке, могли нормально работать при переходе на MetaTrader 5, мы немного доработаем классы библиотеки касаемо индикаторов.
preview
Нейросети — это просто (Часть 33): Квантильная регрессия в распределенном Q-обучении

Нейросети — это просто (Часть 33): Квантильная регрессия в распределенном Q-обучении

Продолжаем изучение распределенного Q-обучение. И сегодня мы посмотрим на данный подход с другой стороны. О возможности использования квантильной регрессии в решение вопрос прогнозирования ценовых движений.
preview
Нейросети — это просто (Часть 57): Стохастический маргинальный актор-критик (SMAC)

Нейросети — это просто (Часть 57): Стохастический маргинальный актор-критик (SMAC)

Предлагаем познакомиться с довольно новым алгоритмом Stochastic Marginal Actor-Critic (SMAC), который позволяет строить политики латентных переменных в рамках максимизации энтропии.
preview
Выставление ордеров в MQL5

Выставление ордеров в MQL5

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

Индикатор CCI. Модернизация и новые возможности

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

Вспоминаем старую трендовую стратегию: два стохастических осциллятора, MA и Фибоначчи

Старые торговые стратегии. В этой статье представлена стратегия отслеживания тренда. Стратегия исключительно техническая и использует несколько индикаторов и инструментов для подачи сигналов и определения целевых уровней. Компоненты стратегии включают в себя: 14-периодный стохастический осциллятор, пятипериодный стохастический осциллятор, скользящую среднюю с периодом 200 и проекцию Фибоначчи (для установки целевых уровней).
Работа с ценами в библиотеке DoEasy (Часть 62): Реалтайм-обновление тиковых серий, подготовка к работе со стаканом цен
Работа с ценами в библиотеке DoEasy (Часть 62): Реалтайм-обновление тиковых серий, подготовка к работе со стаканом цен

Работа с ценами в библиотеке DoEasy (Часть 62): Реалтайм-обновление тиковых серий, подготовка к работе со стаканом цен

В статье сделаем реалтайм-обновление коллекции тиковых данных и подготовим класс объекта-символа для работы со стаканом цен, работу над которым начнём со следующей статьи.
Графика в библиотеке DoEasy (Часть 82): Рефакторинг объектов библиотеки и коллекция графических объектов
Графика в библиотеке DoEasy (Часть 82): Рефакторинг объектов библиотеки и коллекция графических объектов

Графика в библиотеке DoEasy (Часть 82): Рефакторинг объектов библиотеки и коллекция графических объектов

В статье доработаем все объекты библиотеки - присвоим каждому объекту его уникальный тип и продолжим разработку класса-коллекции графических объектов библиотеки.
Графика в библиотеке DoEasy (Часть 96): Работа с событиями мышки и графика в объектах-формах
Графика в библиотеке DoEasy (Часть 96): Работа с событиями мышки и графика в объектах-формах

Графика в библиотеке DoEasy (Часть 96): Работа с событиями мышки и графика в объектах-формах

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

Как построить советник, работающий автоматически (Часть 03): Новые функции

Сегодня вы научитесь создавать советник, который просто и безопасно работает в автоматическом режиме. В предыдущей статье мы начали разрабатывать систему ордеров, которой будем пользоваться в автоматическом советнике. Однако мы создали только одну из необходимых функций или процедур.
Графика в библиотеке DoEasy (Часть 94): Составные графические объекты, перемещение и удаление
Графика в библиотеке DoEasy (Часть 94): Составные графические объекты, перемещение и удаление

Графика в библиотеке DoEasy (Часть 94): Составные графические объекты, перемещение и удаление

В статье начнём разработку различных событий составного графического объекта. Рассмотрим частично перемещение и удаление составного графического объекта. Сегодня по большей части мы будем дорабатывать то, что было создано в прошлой статье.
preview
Машинное обучение и Data Science (Часть 03): Матричная регрессия

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

В этот раз мы будем создавать модели с помощью матриц — они дают большую гибкость и позволяют создавать мощные модели, которые могут обрабатывать не только пять независимых переменных, но и множество других, насколько позволяют пределы вычислительных возможностей компьютера. Статья будет очень интересной, это точно.
preview
Популяционные алгоритмы оптимизации: Гармонический поиск (Harmony Search — HS)

Популяционные алгоритмы оптимизации: Гармонический поиск (Harmony Search — HS)

Сегодня изучим и протестируем мощнейший алгоритм оптимизации - гармонический поиск (HS), который инспирирован процессом поиска идеальной звуковой гармонии. И какой же алгоритм теперь лидер в нашем рейтинге?
preview
Нейросети — это просто (Часть 32): Распределенное Q-обучение

Нейросети — это просто (Часть 32): Распределенное Q-обучение

В одной из статей данной серии мы с вами уже познакомились с методом Q-обучения. Данный метод усредняет вознаграждения за каждое действие. В 2017 году были представлены сразу 2 работы, в которых большего успеха добиваются при изучении функции распределения вознаграждения. Давайте рассмотрим возможность использования подобной технологии для решения наших задач.
Графика в библиотеке DoEasy (Часть 95): Элементы управления составными графическими объектами
Графика в библиотеке DoEasy (Часть 95): Элементы управления составными графическими объектами

Графика в библиотеке DoEasy (Часть 95): Элементы управления составными графическими объектами

В статье рассмотрим инструментарий для управления составными графическими объектами - элементы управления расширенным стандартным графическим объектом. Сегодня мы немного отступим от темы перемещения составного графического объекта и сделаем обработчик события изменения графика, на котором находится составной графический объект, и займёмся объектами управления составным графическим объектом.
preview
Разработка торгового советника с нуля (Часть 12): Время и торговля (I)

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

Сегодня мы создадим Time & Trade с быстрой интерпретацией для чтения потока ордеров. Это первая часть, в которой мы будем строить эту систему. В следующей статье мы дополним систему недостающей информацией, поскольку нам потребуется добавить в код нашего эксперта несколько новых вещей.
preview
Разработка экспериментальной DLL с поддержкой многопоточности в C++ для MetaTrader 5 на Linux

Разработка экспериментальной DLL с поддержкой многопоточности в C++ для MetaTrader 5 на Linux

В статье рассмотрен процесс разработки для платформы MetaTrader 5 исключительно в системе Linux. При этом конечный продукт без проблем работает как в Windows, так и в Linux. Мы познакомимся с Wine и Mingw - важными инструментами кроссплатформенной разработки. В Mingw реализована потоковая передача (POSIX и Win32), что необходимо учитывать при выборе подходящего инструмента. Затем мы создадим DLL для проверки концепции и используем ее в коде MQL5, а также сравним производительность обеих реализаций потоков. Статья призвана стать отправной точкой для ваших собственных экспериментов. После прочтения статьи вы сможете создавать инструменты для MetaTrader в Linux.
preview
Машинное обучение и Data Science. Нейросети (Часть 02): архитектура нейронных сетей с прямой связью

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

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

Как выбрать торгового советника: Двадцать явных признаков плохого робота

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

Разработка торговой системы на основе индекса силы медведей Bears Power

Представляю вашему вниманию новую статью из серии, в которой мы учимся строить торговые системы на основе самых популярных индикаторов. На этот раз мы поговорим об Индексе силы медведей Bears Power и создадим торговую систему по его показателям.
preview
Работа с таймсериями в библиотеке DoEasy (Часть 53): Класс абстрактного базового индикатора

Работа с таймсериями в библиотеке DoEasy (Часть 53): Класс абстрактного базового индикатора

В статье рассмотрим создание класса абстрактного индикатора, который далее будет использоваться как базовый класс для создания объектов стандартных и пользовательских индикаторов библиотеки.
preview
Разработка торговой системы на основе Accelerator Oscillator

Разработка торговой системы на основе Accelerator Oscillator

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