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

icon

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

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

Новая статья
последние | лучшие
preview
Возможности SQLite в MQL5: Пример интерактивной панели с торговой статистикой в разрезе символов и магиков

Возможности SQLite в MQL5: Пример интерактивной панели с торговой статистикой в разрезе символов и магиков

В статье рассмотрим создание индикатора, отображающего на интерактивной панели статистику торговли по счёту и в разрезе символов и торговых стратегий. Код напишем, основываясь на примерах из Документации и статьи о работе с базами данных.
preview
Популяционный ADAM (Adaptive Moment Estimation)

Популяционный ADAM (Adaptive Moment Estimation)

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

Изучение MQL5 — от новичка до профи (Часть IV): О массивах, функциях и глобальных переменных терминала

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

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

В этой статье мы рассмотрим методы, связанные с анализом временных рядов в частотной области. Также будет уделено внимание пользе изучения спектральных функций временных рядов при построении прогностических моделей. Кроме того, мы обсудим некоторые многообещающие перспективы анализа временных рядов в частотной области с использованием дискретного преобразования Фурье (ДПФ).
preview
DoEasy. Элементы управления (Часть 31): Прокрутка содержимого элемента управления "ScrollBar"

DoEasy. Элементы управления (Часть 31): Прокрутка содержимого элемента управления "ScrollBar"

В статье создадим функционал прокрутки содержимого контейнера кнопками горизонтальной полосы прокрутки.
preview
Введение в MQL5 (Часть 2): Предопределенные переменные, общие функции и операторы потока управления

Введение в MQL5 (Часть 2): Предопределенные переменные, общие функции и операторы потока управления

В этой статье мы продолжаем знакомиться с языком программирования MQL5. Данная серия статей — не просто учебный материал пособия, это двери в мир программирования. Что делает их особенными? Я постарался в объяснениях сохранять простоту изложения, чтобы сделать сложные концепции доступными для всех. При всей доступности материала, для наилучшего результата вам нужно активно воспроизводить все, о чем мы будем говорить. Только в этом случае вы получите максимальную выгоду от данных статей.
Отправка торгового сигнала через RSS канал
Отправка торгового сигнала через RSS канал

Отправка торгового сигнала через RSS канал

В данной статье описывается отправка торговых сигналов через RSS канал, как один из популярных способов мгновенного общения с членами Вашего сообщества.
preview
Популяционные алгоритмы оптимизации: Изменяем форму и смещаем распределения вероятностей и тестируем на "Умном головастике" (Smart Cephalopod, SC)

Популяционные алгоритмы оптимизации: Изменяем форму и смещаем распределения вероятностей и тестируем на "Умном головастике" (Smart Cephalopod, SC)

В данной статье исследуется влияние изменения формы распределений вероятностей на производительность алгоритмов оптимизации. Мы проводим эксперименты на тестовом алгоритме 'Умный головастик' (SC), чтобы оценить эффективность различных распределений вероятностей в контексте оптимизационных задач.
preview
DoEasy. Элементы управления (Часть 4): Элемент управления "Панель", параметры Padding и Dock

DoEasy. Элементы управления (Часть 4): Элемент управления "Панель", параметры Padding и Dock

В статье реализуем работу таких параметров панели как Padding (внутренние отступы/поля со всех сторон элемента) и Dock (способ расположения объекта внутри контейнера).
preview
Как опередить любой рынок (Часть II): Прогнозирование технических индикаторов

Как опередить любой рынок (Часть II): Прогнозирование технических индикаторов

Знаете ли вы, что можно добиться большей точности, прогнозируя определенные технические индикаторы, чем саму цену торгуемого символа? В статье рассматривается, как использовать это знание для разработки более эффективных торговых стратегий.
Как легко и просто опубликовать видео на MQL4.community
Как легко и просто опубликовать видео на MQL4.community

Как легко и просто опубликовать видео на MQL4.community

Показать обычно легче, чем рассказать. Предлагается простой и бесплатный способ создания видеороликов с помощью CamStudio для публикации на форумах MQL4.community.
preview
Как начать работу с MQL5 Algo Forge

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

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

Парадигмы программирования (Часть 1): Процедурный подход к разработке советника на основе ценовой динамики

Узнайте о парадигмах программирования и их применении в коде MQL5. В этой статье исследуются особенности процедурного программирования, а также предлагаются практические примеры. Вы узнаете, как разработать советник на основе ценовой динамики (Price Action), используя индикатор EMA и свечные данные. Кроме того, статья знакомит с парадигмой функционального программирования.
preview
Как построить советник, работающий автоматически (Часть 15): Автоматизация (VII)

Как построить советник, работающий автоматически (Часть 15): Автоматизация (VII)

Чтобы завершить этот цикл статей об автоматизации, мы дополним то, что рассмотрели в предыдущей статье. Это определенно показывает, как всё будет сочетаться друг с другом, заставляя советника работать как часы.
preview
Индикатор рыночного профиля — Market Profile (Часть 2): Оптимизация и отрисовка на канвасе

Индикатор рыночного профиля — Market Profile (Часть 2): Оптимизация и отрисовка на канвасе

В статье будет рассмотрена оптимизированная версия индикатора Профиля Рынка Market Profile, где рисование множеством графических объектов заменено на рисование на холсте — объекте класса CCanvas.
preview
DoEasy. Элементы управления (Часть 8): Базовые WinForms-объекты по категориям, элементы управления "GroupBox" и "CheckBox"

DoEasy. Элементы управления (Часть 8): Базовые WinForms-объекты по категориям, элементы управления "GroupBox" и "CheckBox"

В статье рассмотрим создание WinForms-объектов "GroupBox" и "CheckBox", а также создадим базовые объекты для категорий WinForms-объектов. Все создаваемые объекты пока у нас статические, т.е. не имеют функционала интерактивного взаимодействия с мышкой.
preview
Алгоритм оптимизации на основе мозгового штурма — Brain Storm Optimization (Часть I): Кластеризация

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

В данной статье мы рассмотрим инновационный метод оптимизации, названный BSO (Brain Storm Optimization), который вдохновлен природным явлением - "мозговым штурмом". Мы также обсудим новый подход к решению многомодальных задач оптимизации, который использует метод BSO и позволяет находить несколько оптимальных решений без необходимости заранее определять количество подпопуляций. В статье мы также рассмотрим методы кластеризации K-Means и K-Means++.
Работа с ценами в библиотеке DoEasy (Часть 60): Список-серия тиковых данных символа
Работа с ценами в библиотеке DoEasy (Часть 60): Список-серия тиковых данных символа

Работа с ценами в библиотеке DoEasy (Часть 60): Список-серия тиковых данных символа

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

Распознавание паттернов с использованием динамической трансформации временной шкалы в MQL5

В этой статье мы обсудим концепцию динамической трансформации временной шкалы (dynamic time warping) как средства выявления прогностических закономерностей в финансовых временных рядах. Мы рассмотрим, как она работает, а также представим ее реализацию на чистом MQL5.
preview
DoEasy. Элементы управления (Часть 30): Оживляем элемент управления "ScrollBar"

DoEasy. Элементы управления (Часть 30): Оживляем элемент управления "ScrollBar"

В статье продолжим разрабатывать элемент управления ScrollBar и начнём делать функционал взаимодействия с мышкой. Помимо этого расширим списки флагов состояния и событий мышки.
preview
Автоматическая оптимизация параметров для торговых стратегий с Python и MQL5

Автоматическая оптимизация параметров для торговых стратегий с Python и MQL5

Существует несколько типов алгоритмов самостоятельной оптимизации торговых стратегий и параметров. Эти алгоритмы используются для автоматического улучшения торговых стратегий на основе исторических и текущих рыночных данных. В этой статье мы рассмотрим один из них на примерах реализаций на Python и MQL5.
preview
Популяционные алгоритмы оптимизации: Электромагнитный алгоритм (ElectroMagnetism-like algorithm, ЕМ)

Популяционные алгоритмы оптимизации: Электромагнитный алгоритм (ElectroMagnetism-like algorithm, ЕМ)

Статья описывает принципы, методы и возможности применения Электромагнитного алгоритма EM в различных задачах оптимизации. EM-алгоритм является эффективным инструментом оптимизации, способным работать с большими объемами данных и многомерными функциями.
preview
Создаем простой мультивалютный советник с использованием MQL5 (Часть 7): Сигналы индикаторов ZigZag и Awesome Oscillator

Создаем простой мультивалютный советник с использованием MQL5 (Часть 7): Сигналы индикаторов ZigZag и Awesome Oscillator

Под мультивалютным советником в этой статье понимается советник, или торговый робот, который использует индикаторы ZigZag и Awesome Oscillator, фильтрующие сигналы друг друга.
preview
Интеграция ML-моделей с тестером стратегий (Заключение): Реализация регрессионной модели для прогнозирования цен

Интеграция ML-моделей с тестером стратегий (Заключение): Реализация регрессионной модели для прогнозирования цен

В данной статье описывается реализация регрессионной модели на основе дерева решений для прогнозирования цен финансовых активов. Мы уже провели подготовку данных, обучение и оценку модели, а также ее корректировку и оптимизацию. Однако важно отметить, что данная модель является лишь исследованием и не должна использоваться при реальной торговле.
preview
Популяционные алгоритмы оптимизации: Гибридный алгоритм оптимизации бактериального поиска с генетическим алгоритмом (Bacterial Foraging Optimization - Genetic Algorithm, BFO-GA)

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

В статье представлен новый подход к решению оптимизационных задач, путём объединения идей алгоритмов оптимизации бактериального поиска пищи (BFO) и приёмов, используемых в генетическом алгоритме (GA), в гибридный алгоритм BFO-GA. Он использует роение бактерий для глобального поиска оптимального решения и генетические операторы для уточнения локальных оптимумов. В отличие от оригинального BFO бактерии теперь могут мутировать и наследовать гены.
preview
DoEasy. Элементы управления (Часть 26): Дорабатываем WinForms-объект "ToolTip" и начинаем разработку "ProgressBar"

DoEasy. Элементы управления (Часть 26): Дорабатываем WinForms-объект "ToolTip" и начинаем разработку "ProgressBar"

В статье завершим разработку элемента управления ToolTip и начнём разрабатывать WinForms-объект ProgressBar. По мере работы над объектами, разработаем универсальный функционал для оживления элементов управления и их составляющих.
preview
Популяционные алгоритмы оптимизации: Бинарный генетический алгоритм (Binary Genetic Algorithm, BGA). Часть I

Популяционные алгоритмы оптимизации: Бинарный генетический алгоритм (Binary Genetic Algorithm, BGA). Часть I

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

Разработка торгового советника с нуля (Часть 8): Концептуальный скачок (I)

Как максимально просто реализовать новый функционал? В данной статье мы сделаем шаг назад, а затем два шага вперед.
preview
Изучение MQL5 — от новичка до профи (Часть V): Основные операторы перенаправления потока команд

Изучение MQL5 — от новичка до профи (Часть V): Основные операторы перенаправления потока команд

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

Разрабатываем мультивалютный советник (Часть 27): Компонент для вывода многострочного текста

При возникновении необходимости вывести текстовую информацию на график мы можем воспользоваться функцией Comment(). Но её возможности достаточно сильно ограничены. Поэтому, в рамках этой статьи, мы создадим собственный компонент — диалоговое окно на весь экран, способное выводить многострочный текст с гибкими настройками шрифта и поддержкой прокрутки.
preview
DoEasy. Сервисные функции (Часть 3): Паттерн "Внешний бар"

DoEasy. Сервисные функции (Часть 3): Паттерн "Внешний бар"

В статье разработаем паттерн Price Action "Внешний Бар" в библиотеке DoEasy и оптимизируем методы доступа к управлению ценовыми паттернами. Кроме того, проведём работу по исправлению ошибок и недоработок, выявленных при тестировании библиотеки.
preview
Создаем простой мультивалютный советник с использованием MQL5 (Часть 2): Сигналы индикатора - мультитаймфреймовый Parabolic SAR

Создаем простой мультивалютный советник с использованием MQL5 (Часть 2): Сигналы индикатора - мультитаймфреймовый Parabolic SAR

Под мультивалютным советником в этой статье понимается советник, или торговый робот, который может торговать (открывать/закрывать ордера, управлять ордерами, например, трейлинг-стоп-лоссом и трейлинг-профитом) более чем одной парой символов с одного графика. На этот раз мы будем использовать только один индикатор, а именно Parabolic SAR или iSAR на нескольких таймфреймах, начиная с PERIOD_M15 и заканчивая PERIOD_D1.
preview
Разработка торгового советника с нуля (Часть 17): Доступ к данным в Интернете (III)

Разработка торгового советника с нуля (Часть 17): Доступ к данным в Интернете (III)

В этой статье мы продолжим с просмотром того, как получать данные из Интернета для их использования в советнике. Давайте приступим к работе, а точнее к кодированию альтернативной системы.
preview
Торговый инструментарий MQL5 (Часть 1): Разработка EX5-библиотеки для управления позициями

Торговый инструментарий MQL5 (Часть 1): Разработка EX5-библиотеки для управления позициями

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

Тесты на перестановку Монте-Карло в MetaTrader 5

В статье рассматриваются тесты на перестановку на основе перетасованных тиковых данных на любом советнике исключительно силами MetaTrader 5.
preview
Оптимизация бактериальным хемотаксисом — Bacterial Chemotaxis Optimization (BCO)

Оптимизация бактериальным хемотаксисом — Bacterial Chemotaxis Optimization (BCO)

В статье представлена оригинальная версия алгоритма бактериальной хемотаксисной оптимизации (BCO) и его модифицированный вариант. Мы подробно рассмотрим все отличия, уделяя особое внимание новой версии BCOm, которая упрощает механизм движения бактерий, снижает зависимость от истории изменений позиций и использует более простые математические операции по сравнению с перегруженной вычислениями оригинальной версией. Также будут проведены тесты и подведены итоги.
preview
Популяционные алгоритмы оптимизации: Алгоритм эволюции разума (Mind Evolutionary Computation, MEC)

Популяционные алгоритмы оптимизации: Алгоритм эволюции разума (Mind Evolutionary Computation, MEC)

В данной статье рассматривается алгоритм семейства MEC, называемый простым алгоритмом эволюции разума (Simple MEC, SMEC). Алгоритм отличается красотой заложенной идеи и простотой реализации.
preview
Фильтр Калмана для возвратных стратегий на рынке Форекс

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

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

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

В статье продолжим разработку элемента управления ProgressBar. Создадим функционал для управления полосой прогресса и визуальными эффектами.
preview
Индикаторы на основе класса CCanvas: Заполнение каналов прозрачностью

Индикаторы на основе класса CCanvas: Заполнение каналов прозрачностью

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