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

icon

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

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

Новая статья
последние | лучшие
preview
Как добавить Trailing Stop по индикатору Parabolic SAR

Как добавить Trailing Stop по индикатору Parabolic SAR

При создании торговой стратегии нам нужно проверить самые разные варианты защитных стопов. И тут напрашивается динамическое подтягивание уровня Stop Loss вслед за ценой. Наилучшим кандидатом для этого является индикатор Parabolic SAR —трудно придумать что-либо проще и нагляднее.
preview
DoEasy. Элементы управления (Часть 31): Прокрутка содержимого элемента управления "ScrollBar"

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

В статье создадим функционал прокрутки содержимого контейнера кнопками горизонтальной полосы прокрутки.
preview
Как опередить любой рынок?

Как опередить любой рынок?

Узнайте, как опередить любой рынок независимо от вашего опыта торговли на нем.
preview
Цветные буферы в мультисимвольных мультипериодных индикаторах

Цветные буферы в мультисимвольных мультипериодных индикаторах

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

Рецепты MQL5 — База данных макроэкономических событий

В статье рассматриваются возможности работы с базами данных на основе движка SQLite. Для удобства и эффективного использования принципов ООП сформирован класс CDatabase. Он в последующем задействуется при создании и управлении базой данных макроэкономических событий. Приводятся примеры использования многих методов класса CDatabase.
preview
Популяционные алгоритмы оптимизации: Алгоритм имитации отжига (Simulated Annealing, SA). Часть I

Популяционные алгоритмы оптимизации: Алгоритм имитации отжига (Simulated Annealing, SA). Часть I

Алгоритм имитации отжига (Simulated Annealing) является метаэвристикой, вдохновленной процессом отжига металлов. В нашей статье проведем тщательный анализ алгоритма и покажем, как многие распространенные представления и мифы, вокруг этого наиболее популярного и широко известного метода оптимизации, могут быть ошибочными и неполными. Анонс второй части статьи: "Встречайте собственный авторский алгоритм имитации изотропного отжига (Simulated Isotropic Annealing, SIA)!"
preview
Популяционные алгоритмы оптимизации: Стохастический диффузионный поиск (Stochastic Diffusion Search, SDS)

Популяционные алгоритмы оптимизации: Стохастический диффузионный поиск (Stochastic Diffusion Search, SDS)

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

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

Продолжение серии для начинающих. Здесь мы рассмотрим, как создавать константы и переменные, записывать дату, цвета и другие полезные данные. Научимся создавать перечисления вроде дней недели или стилей линий (сплошная, пунктирная и т.д.). Переменные и выражения - это база программирования. Они обязательно есть в 99% программ, поэтому понимать их критически важно. И поэтому, если вы - новичок в программировании - прошу. Уровень знания программирования: очень базовый - в пределах моей предыдущей статьи (ссылка - в начале).
preview
DoEasy. Элементы управления (Часть 30): Оживляем элемент управления "ScrollBar"

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

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

Реализация алгоритма обучения ARIMA на MQL5

В этой статье мы реализуем алгоритм, который применяет интегрированную модель авторегрессии скользящей средней (модель Бокса-Дженкинса) с использованием метода минимизации функции Пауэллса. Бокс и Дженкинс утверждали, что большинство временных рядов можно смоделировать с помощью одной или обеих из двух структур.
preview
Понимание и эффективное использование OpenCL API путем воссоздания встроенной поддержки в виде DLL в Linux (Часть 1): Мотивация и проверка

Понимание и эффективное использование OpenCL API путем воссоздания встроенной поддержки в виде DLL в Linux (Часть 1): Мотивация и проверка

Встроенная поддержка OpenCL в MetaTrader 5 по-прежнему имеет серьезную проблему, особенно связанную с ошибкой выбора устройства 5114, возникающей из-за невозможности создать контекст OpenCL с использованием CL_USE_GPU_ONLY или CL_USE_GPU_DOUBLE_ONLY, хотя GPU определяется правильно. Программа отлично работает с прямым использованием порядкового номера устройства GPU, который можно найти на вкладке "Журнал", однако пользователям не следует жестко кодировать устройство. Мы решим эту проблему, воссоздав поддержку OpenCL в виде DLL с помощью C++ в Linux. По пути мы познакомимся с OpenCL, от концепции до лучших практик в использовании его API, ровно настолько, чтобы мы могли широко использовать его позже, когда будем иметь дело с реализацией DLL на C++ и использовать его с MQL5.
preview
DoEasy. Элементы управления (Часть 26): Дорабатываем WinForms-объект "ToolTip" и начинаем разработку "ProgressBar"

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

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

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

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

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

Как максимально просто реализовать новый функционал? В данной статье мы сделаем шаг назад, а затем два шага вперед.
preview
Алгоритм кодового замка (Сode Lock Algorithm, CLA)

Алгоритм кодового замка (Сode Lock Algorithm, CLA)

В этой статье мы переосмыслим кодовые замки, превращая их из механизмов защиты в инструменты для решения сложных задач оптимизации. Откройте для себя мир кодовых замков, не как простых устройств безопасности, но как вдохновения для нового подхода к оптимизации. Мы создадим целую популяцию "замков", где каждый замок представляет собой уникальное решение задачи. Затем мы разработаем алгоритм, который будет "вскрывать" эти замки и находить оптимальные решения в самых разных областях, от машинного обучения до разработки торговых систем.
preview
Как построить советник, работающий автоматически (Часть 15): Автоматизация (VII)

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

Чтобы завершить этот цикл статей об автоматизации, мы дополним то, что рассмотрели в предыдущей статье. Это определенно показывает, как всё будет сочетаться друг с другом, заставляя советника работать как часы.
preview
Разработка торгового советника с нуля (Часть 28): Навстречу будущему (III)

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

Наша система ордеров по-прежнему не справляется с одной задачей, но мы, НАКОНЕЦ, разберемся с этим. На платформе MetaTrader 5 есть система тикетов, которая позволяет нам создавать или корректировать значения ордеров. Кстати, идея состоит в том, чтобы иметь советника, который поможет нам сделать ту же систему тикетов быстрее и эффективнее.
preview
Как сделать любой тип Trailing Stop и подключить к советнику

Как сделать любой тип Trailing Stop и подключить к советнику

В статье рассмотрим классы для удобного создания различных трейлингов. Научимся подключать трейлинг-стоп к любому советнику.
preview
Создаем простой мультивалютный советник с использованием MQL5 (Часть 6): Два индикатора RSI пересекают линии друг друга

Создаем простой мультивалютный советник с использованием MQL5 (Часть 6): Два индикатора RSI пересекают линии друг друга

Под мультивалютным советником в этой статье понимается советник, или торговый робот, который использует два индикатора RSI с пересекающимися линиями - быстрый RSI, который пересекается с медленным.
preview
Популяционные алгоритмы оптимизации: Алгоритм имитации изотропного отжига (Simulated Isotropic Annealing, SIA). Часть II

Популяционные алгоритмы оптимизации: Алгоритм имитации изотропного отжига (Simulated Isotropic Annealing, SIA). Часть II

Первая часть статьи была посвящена известному и популярному алгоритму - имитации отжига, были рассмотрены его достоинства и подробно описаны недостатки. Вторая часть статьи посвящена кардинальному преобразованию алгоритма, его перерождению в новый алгоритм оптимизации "имитации изотропного отжига, SIA".
preview
DoEasy. Сервисные функции (Часть 1): Ценовые паттерны

DoEasy. Сервисные функции (Часть 1): Ценовые паттерны

В статье начнём разрабатывать методы поиска ценовых паттернов по данным таймсерий. Паттерн имеет определённый набор параметров, общий для любого вида и типа паттернов. Все данные такого рода будут сосредоточены в классе объекта базового абстрактного паттерна. Сегодня создадим класс абстрактного паттерна и класс паттерна Пин-бар.
Требования к статьям для публикации на MQL4.com
Требования к статьям для публикации на MQL4.com

Требования к статьям для публикации на MQL4.com

Требования к статьям для публикации на сайте MQL 4 Community
preview
Популяционные алгоритмы оптимизации: Электромагнитный алгоритм (ElectroMagnetism-like algorithm, ЕМ)

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

Статья описывает принципы, методы и возможности применения Электромагнитного алгоритма EM в различных задачах оптимизации. EM-алгоритм является эффективным инструментом оптимизации, способным работать с большими объемами данных и многомерными функциями.
preview
Популяционные алгоритмы оптимизации: Алгоритмы эволюционных стратегий (Evolution Strategies, (μ,λ)-ES и (μ+λ)-ES)

Популяционные алгоритмы оптимизации: Алгоритмы эволюционных стратегий (Evolution Strategies, (μ,λ)-ES и (μ+λ)-ES)

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

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

В статье создадим базовый объект всех WinForms-объектов библиотеки и приступим к реализации свойства AutoSize WinForms-объекта "Панель" — автоизменение размера под его внутреннее содержимое.
preview
DoEasy. Элементы управления (Часть 27): Продолжаем работу над WinForms-объектом "ProgressBar"

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

В статье продолжим разработку элемента управления ProgressBar. Создадим функционал для управления полосой прогресса и визуальными эффектами.
preview
Популяционные алгоритмы оптимизации: Тасующий алгоритм прыгающих лягушек (Shuffled Frog-Leaping, SFL)

Популяционные алгоритмы оптимизации: Тасующий алгоритм прыгающих лягушек (Shuffled Frog-Leaping, SFL)

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

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

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

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

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

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

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

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

В статье рассматриваются тесты на перестановку на основе перетасованных тиковых данных на любом советнике исключительно силами MetaTrader 5.
preview
DoEasy. Элементы управления (Часть 9): Реорганизация методов WinForms-объектов, элементы управления "RadioButton" и "Button"

DoEasy. Элементы управления (Часть 9): Реорганизация методов WinForms-объектов, элементы управления "RadioButton" и "Button"

В статье наведём порядок в наименованиях методов классов WinForms-объектов и создадим WinForms-объекты Button и RadioButton.
preview
DoEasy. Элементы управления (Часть 21): Элемент управления SplitContainer. Разделитель панелей

DoEasy. Элементы управления (Часть 21): Элемент управления SplitContainer. Разделитель панелей

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

DoEasy. Элементы управления (Часть 29): Вспомогательный элемент управления "ScrollBar"

В статье начнём разработку элемента вспомогательного управления ScrollBar и его производных объектов — вертикальной и горизонтальной полос прокрутки. ScrollBar (полоса прокрутки) используется для прокручивания содержимого формы, если оно выходит за пределы контейнера. Полосы прокрутки обычно расположены снизу и справа формы. Горизонтальная, расположенная снизу, служит для прокрутки содержимого влево-вправо, а вертикальная — для прокрутки вверх-вниз.
preview
Измерение информативности индикатора

Измерение информативности индикатора

Машинное обучение стало популярным методом разработки стратегий. В трейдинге традиционно больше внимания уделяется максимизации прибыльности и точности прогнозов. При этом обработка данных, используемых для построения прогностических моделей, остается на периферии. В этой статье мы рассматриваем использование концепции энтропии для оценки пригодности индикаторов при построении прогностических моделей, как описано в книге Тимоти Мастерса "Тестирование и настройка систем рыночной торговли" (Testing and Tuning Market Trading Systems by Timothy Masters).
preview
StringFormat(). Обзор, готовые примеры использования

StringFormat(). Обзор, готовые примеры использования

Статья является продолжением обзора функции PrintFormat(). Рассмотрим вкратце форматирование строк при помощи StringFormat() и их дальнейшее использование в программе. Напишем шаблоны для вывода информации о символе в журнал терминала. Статья будет полезна как новичкам, так и уже опытным разработчикам.
preview
Изучаем PrintFormat() и берем готовые к использованию примеры

Изучаем PrintFormat() и берем готовые к использованию примеры

Статья будет полезна как новичкам, так и уже опытным разработчикам. В ней мы рассмотрим работу функции PrintFormat(), разберём примеры форматирования строк и напишем шаблоны для вывода различной информации в журнал терминала.
preview
DoEasy. Элементы управления (Часть 18): Готовим функционал для прокрутки вкладок в TabControl

DoEasy. Элементы управления (Часть 18): Готовим функционал для прокрутки вкладок в TabControl

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

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

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

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

Давайте перейдем к более полноценной системе ордеров непосредственно на графике. В этой статье я вам покажу способ исправить систему ордеров или, скорее, как сделать её более интуитивно понятной.