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

icon

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

Эти статьи будут полезны как новичкам в автоматическом трейдинге, так и подготовленным трейдерам с опытом программирования и торговли. Здесь вы найдете не только примеры, но и новые идеи.

Новая статья
последние | лучшие
preview
DoEasy. Элементы управления (Часть 14): Новый алгоритм именования графических элементов. Продолжаем работу над WinForms-объектом TabControl

DoEasy. Элементы управления (Часть 14): Новый алгоритм именования графических элементов. Продолжаем работу над WinForms-объектом TabControl

В статье создадим новый алгоритм именования всех графических элементов для построения пользовательской графики и продолжим разработку WinForms-объекта TabControl.
preview
Оборачиваем ONNX-модели в классы

Оборачиваем ONNX-модели в классы

Объектно-ориентированное программирование позволяет создавать более компактный код, который легко читать и модифицировать. Представляем пример для трёх ONNX-моделей.
preview
Популяционные алгоритмы оптимизации: Алгоритм интеллектуальных капель воды (Intelligent Water Drops, IWD)

Популяционные алгоритмы оптимизации: Алгоритм интеллектуальных капель воды (Intelligent Water Drops, IWD)

В статье рассматривается интересный алгоритм - интеллектуальные капли воды, IWD, подсмотренный у неживой природы, симулирующий процесс формирования русла реки. Идеи этого алгоритма позволили значительно улучшить прошлого лидера рейтинга - SDS, а нового лидера (модифицированный SDSm), как обычно, найдёте в архиве к статье.
preview
DoEasy. Элементы управления (Часть 7): Элемент управления "Текстовая метка"

DoEasy. Элементы управления (Часть 7): Элемент управления "Текстовая метка"

В статье создадим класс объекта элемента управления WinForms "Текстовая метка". Такой объект будет иметь возможность позиционирования в любом месте своего контейнера, а его собственный функционал будет повторять некоторый функционал текстовой метки MS Visual Studio — мы сможем задать для выводимого текста параметры шрифта.
preview
Разработка показателя качества советников

Разработка показателя качества советников

В этой статье мы объясним, как разработать показатель качества, который ваш советник сможет отображать в тестере стратегии. Мы познакомимся с двумя известными методами расчета (Ван Тарп и Санни Харрис).
preview
DoEasy. Элементы управления (Часть 13): Оптимизация взаимодействия WinForms-объектов с мышкой, начало разработки WinForms-объекта TabControl

DoEasy. Элементы управления (Часть 13): Оптимизация взаимодействия WinForms-объектов с мышкой, начало разработки WinForms-объекта TabControl

В статье исправим и оптимизируем обработку внешнего вида WinForms-объектов после увода курсора мышки с объекта и начнём разработку WinForms-объекта TabControl.
preview
Тип рисования DRAW_ARROW в мультисимвольных мультипериодных индикаторах

Тип рисования DRAW_ARROW в мультисимвольных мультипериодных индикаторах

В статье рассмотрим рисование стрелочных мультисимвольных мультипериодных индикаторов. Доработаем методы класса для корректного отображения стрелок, отображающих данные стрелочных индикаторов, рассчитанных на символе/периоде, не соответствующих символу/периоду текущего графика.
preview
Балансировка риска при одновременной торговле нескольких торговых инструментов

Балансировка риска при одновременной торговле нескольких торговых инструментов

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

Мониторинг торговли с помощью Push-уведомлений — пример сервиса в MetaTrader 5

В статье рассмотрим создание программы сервиса для отправки уведомлений на смартфон о результатах торговли. В рамках статьи научимся работать со списками объектов Стандартной Библиотеки для организации выборки объектов по требуемым свойствам.
preview
Советник на базе универсального аппроксиматора MLP

Советник на базе универсального аппроксиматора MLP

В статье представлен простой и доступный способ использования нейронной сети в торговом советнике, который не требует глубоких знаний в машинном обучении. Метод исключает нормализацию целевой функции и устраняет проблемы "взрыва весов" и "ступора сети", предлагая интуитивное обучение и наглядный контроль результатов.
preview
Как начать работу с MQL5 Algo Forge

Как начать работу с MQL5 Algo Forge

Представляем MQL5 Algo Forge — специальный портал для разработчиков торговых алгоритмов. Он объединяет возможности Git с удобным интерфейсом для ведения и организации проектов в рамках экосистемы MQL5. Здесь вы можете подписываться на интересных авторов, создавать команды и вести совместные проекты по алготрейдингу.
preview
DoEasy. Элементы управления (Часть 25): WinForms-объект "Tooltip"

DoEasy. Элементы управления (Часть 25): WinForms-объект "Tooltip"

В статье начнём разработку элемента управления Tooltip ("всплывающая подсказка") и начнём создание новых графических примитивов для библиотеки. Естественно, не у каждого элемента есть всплывающая подсказка, но возможность её задать для него есть у каждого графического объекта.
preview
Разработка торгового советника с нуля (Часть 27): Навстречу будущему (II)

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

Давайте перейдем к более полноценной системе ордеров непосредственно на графике. В этой статье я вам покажу способ исправить систему ордеров или, скорее, как сделать её более интуитивно понятной.
preview
Нейросети — это просто (Часть 91): Прогнозирование в частотной области (FreDF)

Нейросети — это просто (Часть 91): Прогнозирование в частотной области (FreDF)

Мы продолжаем рассмотрение темы анализ и прогнозирования временных рядов в частотной области. И в данной статье мы познакомимся с новым методом прогнозирования в частотной области, который может быть добавлен к многим, изученным нами ранее, алгоритмам.
preview
Популяционные алгоритмы оптимизации: Алгоритм птичьего роя (Bird Swarm Algorithm, BSA)

Популяционные алгоритмы оптимизации: Алгоритм птичьего роя (Bird Swarm Algorithm, BSA)

В статье исследуется алгоритм BSA, основанный на поведении птиц, который вдохновлен коллективным стайным взаимодействием птиц в природе. Различные стратегии поиска индивидов в BSA, включая переключение между поведением в полете, бдительностью и поиском пищи, делают этот алгоритм многоаспектным. Он использует принципы стайного поведения, коммуникации, адаптивности, лидерства и следования птиц для эффективного поиска оптимальных решений.
preview
Анализ сентимента (рыночных настроений) и глубокое обучение для торговли советником и тестирование на истории с помощью Python

Анализ сентимента (рыночных настроений) и глубокое обучение для торговли советником и тестирование на истории с помощью Python

В этой статье познакомим вас с анализом сентимента и моделями ONNX на языке Python для использования в советнике. Один скрипт запускает обученную модель ONNX из TensorFlow для прогнозов на основе глубокого обучения, а другой извлекает заголовки новостей и дает количественную оценку настроений при помощи ИИ.
preview
GIT: Но что это?

GIT: Но что это?

В этой статье я представлю очень важный инструмент для разработчиков. Если вы не знакомы с GIT, прочтите эту статью, дабы получить представление о том, что он собой представляет, и как его использовать вместе с MQL5.
preview
Популяционные алгоритмы оптимизации: Алгоритм оптимизации спиральной динамики (Spiral Dynamics Optimization, SDO)

Популяционные алгоритмы оптимизации: Алгоритм оптимизации спиральной динамики (Spiral Dynamics Optimization, SDO)

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

Метод группового учета аргументов: реализация многослойного итерационного алгоритма на MQL5

В этой статье мы описываем реализацию Многослойного итерационного алгоритма как метода группового учета аргументов на языке MQL5.
preview
Переосмысливаем классические стратегии: Нефть

Переосмысливаем классические стратегии: Нефть

В этой статье мы пересмотрим классическую стратегию торговли сырой нефтью с целью ее усовершенствования за счет использования алгоритмов машинного обучения с учителем. Мы построим модель наименьших квадратов для прогнозирования будущих цен на нефть марки Brent на основе разницы между ценами на нефть марки Brent и WTI. Наша цель — найти опережающий индикатор будущих изменений цен на нефть марки Brent.
preview
Как опередить любой рынок (Часть IV): Индексы волатильности евро и золота CBOE

Как опередить любой рынок (Часть IV): Индексы волатильности евро и золота CBOE

Мы проанализируем альтернативные данные, собранные Чикагской опционной биржей (Chicago Board of Options Exchange, CBOE), чтобы повысить точность наших глубоких нейронных сетей при прогнозировании символа XAUEUR.
preview
Популяционные алгоритмы оптимизации: Гибридный алгоритм оптимизации бактериального поиска с генетическим алгоритмом (Bacterial Foraging Optimization - Genetic Algorithm, BFO-GA)

Популяционные алгоритмы оптимизации: Гибридный алгоритм оптимизации бактериального поиска с генетическим алгоритмом (Bacterial Foraging Optimization - Genetic Algorithm, BFO-GA)

В статье представлен новый подход к решению оптимизационных задач, путём объединения идей алгоритмов оптимизации бактериального поиска пищи (BFO) и приёмов, используемых в генетическом алгоритме (GA), в гибридный алгоритм BFO-GA. Он использует роение бактерий для глобального поиска оптимального решения и генетические операторы для уточнения локальных оптимумов. В отличие от оригинального BFO бактерии теперь могут мутировать и наследовать гены.
preview
Популяционные алгоритмы оптимизации: Эволюция социальных групп (Evolution of Social Groups, ESG)

Популяционные алгоритмы оптимизации: Эволюция социальных групп (Evolution of Social Groups, ESG)

В статье рассмотрим принцип построения многопопуляционных алгоритмов и в качестве примера такого вида алгоритмов разберём Эволюцию социальных групп (ESG), новый авторский алгоритм. Мы проанализируем основные концепции, механизмы взаимодействия популяций и преимущества этого алгоритма, а также рассмотрим его производительность в задачах оптимизации.
preview
DoEasy. Элементы управления (Часть 11): WinForms-объекты — группы, WinForms-объект CheckedListBox

DoEasy. Элементы управления (Часть 11): WinForms-объекты — группы, WinForms-объект CheckedListBox

В статье рассмотрим группирование WinForms-объектов и создадим объект-список объектов CheckBox.
preview
Алгоритм оптимизации на основе мозгового штурма — Brain Storm Optimization (Часть II): Многомодальность

Алгоритм оптимизации на основе мозгового штурма — Brain Storm Optimization (Часть II): Многомодальность

Во второй части статьи перейдем к практической реализации алгоритма BSO, проведем тесты на тестовых функциях и сравним эффективность BSO с другими методами оптимизации.
preview
DoEasy. Элементы управления (Часть 19): Прокрутка вкладок в элементе TabControl, события WinForms-объектов

DoEasy. Элементы управления (Часть 19): Прокрутка вкладок в элементе TabControl, события WinForms-объектов

В статье создадим функционал для прокрутки заголовков вкладок в элементе управления TabControl при помощи кнопок управления прокруткой. Функционал будет работать для расположения заголовков вкладок в одну строку с любой из сторон элемента управления.
preview
Разработка торговой системы на основе стакана цен (Часть I): индикатор

Разработка торговой системы на основе стакана цен (Часть I): индикатор

Стакан цен Depth of Market, несомненно, является очень важным элементом для выполнения быстрых сделок, особенно в алгоритмах высокочастотного трейдинга (HFT). В этой серии статей мы рассмотрим этот тип торговых событий, которые можно получить через брокера на многих торгуемых символах. Начнем с индикатора, в котором можно настроить цветовую палитру, положение и размер гистограммы, отображаемой непосредственно на графике. Мы также рассмотрим, как сгенерировать события BookEvent для тестирования индикатора в определенных условиях. Другие возможные темы для будущих статей - это хранение данных ценовых распределений и способы их использования в тестере стратегий.
preview
Фильтр Калмана для возвратных стратегий на рынке Форекс

Фильтр Калмана для возвратных стратегий на рынке Форекс

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

Переходим на MQL5 Algo Forge (Часть 4): Работа с версиями и выпуск релизов

Продолжим разработку проекта Simple Candles и Adwizard, описывая нюансы использования системы контроля версий и хранилища MQL5 Algo Forge.
preview
Постфактумный анализ торговли: подбираем TrailingStop и новые стопы в тестере стратегий

Постфактумный анализ торговли: подбираем TrailingStop и новые стопы в тестере стратегий

Продолжаем тему анализа совершённых сделок в тестере стратегий для улучшения качества торговли. Проверим, как использование различных трейлингов поможет изменить уже полученные результаты торговли.
preview
DoEasy. Элементы управления (Часть 24): Вспомогательный WinForms-объект "Подсказка"

DoEasy. Элементы управления (Часть 24): Вспомогательный WinForms-объект "Подсказка"

В статье переработаем логику указания базового и главного объекта для всех WinForms-объектов библиотеки, разработаем новый базовый объект "Подсказка" и несколько его производных классов для указания возможного направления перемещения разделительной линии.
preview
Применение Conditional LSTM и индикатора VAM в автоматической торговле

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

В настоящей статье рассматривается разработка советника (EA) для автоматической торговли, сочетающего в себе технический анализ с прогнозами с помощью глубокого обучения.
preview
DoEasy. Элементы управления (Часть 15): WinForms-объект TabControl — несколько рядов заголовков вкладок, методы работы с вкладками

DoEasy. Элементы управления (Часть 15): WinForms-объект TabControl — несколько рядов заголовков вкладок, методы работы с вкладками

В статье продолжим работу над WinForm-объектом TabControl — создадим класс объекта-поля вкладки, сделаем возможность расположения заголовков вкладок в несколько рядов и добавим методы для работы с вкладками объекта.
preview
Разработка системы репликации (Часть 57): Анализируем тестовый сервис

Разработка системы репликации (Часть 57): Анализируем тестовый сервис

И заключительный момент: хотя он и не включен в эту статью, я объясню код сервиса, который будет использоваться в следующей, поскольку мы будем использовать этот же код в качестве трамплина для того, что мы на самом деле разрабатываем. Так что, наберитесь терпения и ждите следующей статьи, ведь с каждым днем все становится еще интереснее.
preview
DoEasy. Элементы управления (Часть 10): WinForms-объекты — оживляем интерфейс

DoEasy. Элементы управления (Часть 10): WinForms-объекты — оживляем интерфейс

Настала пора заняться оживлением графического интерфейса — делать функционал для взаимодействия объектов с пользователем и другими объектами. И для того, чтобы более сложные объекты могли правильно работать, нам уже необходим функционал взаимодействия объектов друг с другом и с пользователем.
preview
Популяционные алгоритмы оптимизации: Алгоритмы искусственной микро-иммунной системы (Micro Artificial immune system, Micro-AIS)

Популяционные алгоритмы оптимизации: Алгоритмы искусственной микро-иммунной системы (Micro Artificial immune system, Micro-AIS)

Статья рассказывает о методе оптимизации, основанном на принципах функционирования иммунной системы организма — Micro Artificial Immune System (Micro-AIS) — модификацию AIS. Micro-AIS использует более простую модель иммунной системы и простые операции обработки иммунной информации. Статья также обсуждает преимущества и недостатки Micro-AIS по сравнению с обычным AIS.
DoEasy. Элементы управления (Часть 32):  горизонтальный "ScrollBar", прокрутка колесиком мышки
DoEasy. Элементы управления (Часть 32):  горизонтальный "ScrollBar", прокрутка колесиком мышки

DoEasy. Элементы управления (Часть 32): горизонтальный "ScrollBar", прокрутка колесиком мышки

В статье завершим разработку функционала объекта-горизонтальной полосы прокрутки. Сделаем возможность прокрутки содержимого контейнера перемещением ползунка полосы прокрутки и вращением колёсика мышки. Также внесём дополнения в библиотеку с учётом появившейся в терминале новой политики исполнения ордеров и новых кодов ошибок времени выполнения в MQL5.
preview
DoEasy. Элементы управления (Часть 12): Базовый объект-список, WinForms-объекты ListBox и ButtonListBox

DoEasy. Элементы управления (Часть 12): Базовый объект-список, WinForms-объекты ListBox и ButtonListBox

В статье создадим базовый объект списков WinForms-объектов и два новых объекта: ListBox и ButtonListBox.
preview
Разработка системы репликации (Часть 47): Проект Chart Trade (VI)

Разработка системы репликации (Часть 47): Проект Chart Trade (VI)

Наконец, наш индикатор Chart Trade начинает взаимодействовать с советником, позволяя передавать информацию в интерактивном режиме. Поэтому в этой статье мы доработаем индикатор, сделав его функциональным настолько, чтобы его можно было использовать вместе с каким-либо советником. Это позволит нам получить доступ к индикатору Chart Trade и работать с ним, как если бы он действительно был связан с советником. Но сделаем мы это гораздо более интересным способом чем ранее.
preview
Разметка данных в анализе временных рядов (Часть 6):Применение и тестирование советника с помощью ONNX

Разметка данных в анализе временных рядов (Часть 6):Применение и тестирование советника с помощью ONNX

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