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

icon

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

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

Новая статья
последние | лучшие
Пользовательские графические элементы управления. Часть 3. Формы
Пользовательские графические элементы управления. Часть 3. Формы

Пользовательские графические элементы управления. Часть 3. Формы

Этой последняя из трех статей, посвященных графическим элементам управления. В ней рассматривается создание главного элемента графического интерфейса, формы, и ее совместное использование с другими элементами управления. Кроме классов формы библиотека элементов управления дополнена классами CFrame, CButton, CLabel.
Каналы. Продвинутые модели. Волны Вульфа
Каналы. Продвинутые модели. Волны Вульфа

Каналы. Продвинутые модели. Волны Вульфа

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

Автоматический подбор перспективных сигналов

Статья посвящена изучению торговых сигналов для MetaTrader 5 с автоматическим исполнением на счетах подписчиков. Также рассматривается разработка инструментов для поиска перспективных торговых сигналов прямо в терминале.
Свопы (Часть I) : Локирование и синтетические позиции
Свопы (Часть I) : Локирование и синтетические позиции

Свопы (Часть I) : Локирование и синтетические позиции

В данной статье я постараюсь расширить классическую концепцию своповых методов торговли, а также расскажу, почему я пришел к выводу, что данная концепция, на мой взгляд, заслуживает особого внимания и абсолютно рекомендована к ознакомлению и изучению.
Создание графических интерфейсов на базе .Net Framework и C# (Часть 2): Дополнительные графические элементы
Создание графических интерфейсов на базе .Net Framework и C# (Часть 2): Дополнительные графические элементы

Создание графических интерфейсов на базе .Net Framework и C# (Часть 2): Дополнительные графические элементы

Статья является логическим продолжением предыдущей публикации "Создание графических интерфейсов для экспертов и индикаторов на базе .Net Framework и C#" и знакомит читателей с новыми графическими элементами для создания графических интерфейсов.
Strategy Tester: режимы моделирования при тестировании торговых стратегий
Strategy Tester: режимы моделирования при тестировании торговых стратегий

Strategy Tester: режимы моделирования при тестировании торговых стратегий

Многие программы технического анализа позволяют проводить тестирование торговых стратегий на исторических данных...
3D-моделирование на MQL5
3D-моделирование на MQL5

3D-моделирование на MQL5

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

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

Статья продолжает цикл, в котором я показываю, как создавал удобную для меня библиотеку для ручной разметки графиков с помощью сочетаний клавиш. Разметка происходит прямыми линиями и их комбинациями. В этой части рассказано непосредственно о самом рисовании с помощью функций, описанных в первой части. Библиотеку можно подключить к любому эксперту или индикатору, существенно облегчив себе задачи разметки. Данное решение НЕ ИСПОЛЬЗУЕТ внешних dll, все команды реализованы с помощью встроенных средств языка MQL.
Поиск ошибок и ведение лога
Поиск ошибок и ведение лога

Поиск ошибок и ведение лога

В редакторе MetaEditor 5 есть возможность отладки, но часто при написании программ на MQL5 требуется просмотр не отдельных значений, а массовых выводов сообщений во время онлайн-работы или при тестировании. При больших объемах содержимого лог-файла встает вопрос механизации для удобного и быстрого поиска интересующего сообщения. Мы рассмотрим способы поиска ошибок в программах на MQL5 и способы ведения лога. А также упростим запись логов в файлы и познакомимся с простенькой программой LogMon для комфортного просмотра логов.
Торговый эксперт с графическим интерфейсом: Наполнение функционалом (Часть II)
Торговый эксперт с графическим интерфейсом: Наполнение функционалом (Часть II)

Торговый эксперт с графическим интерфейсом: Наполнение функционалом (Часть II)

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

Принципы экономного пересчета индикаторов

Вызовы пользовательских и технических индикаторов занимают совсем немного места в программном коде механических торговых систем. Зачастую какие-нибудь несколько строчек кода и всего-то. Но подчас именно эти несколько строчек кода съедают львиную долю всех затрат времени, которое будет истрачено на тестирование эксперта. Так что ко всему, что связано с расчетом данных внутри индикаторов, следует относиться гораздо более обстоятельно, чем оно могло бы показаться на первый взгляд. Именно об этом и пойдёт речь в данной статье.
Собери свой торговый советник в Мастере MQL5
Собери свой торговый советник в Мастере MQL5

Собери свой торговый советник в Мастере MQL5

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

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

В этой статье рассматривается реализация стоп-уровней в торговом советнике, совместимая с платформами MetaTrader 4 и MetaTrader 5.
Графические интерфейсы III: Простые и многофункциональные кнопки (Глава 1)
Графические интерфейсы III: Простые и многофункциональные кнопки (Глава 1)

Графические интерфейсы III: Простые и многофункциональные кнопки (Глава 1)

Приступим к рассмотрению такого элемента управления, как кнопка. Будут показаны примеры нескольких классов для создания простой кнопки, кнопок с расширенным функционалом («кнопка с картинкой» и «сдвоенная кнопка»), а также кнопок, которые взаимосвязаны между собой (группы кнопок и «радио-кнопки»). Кроме этого, внесём некоторые дополнения в уже существующие классы элементов управления, чтобы расширить их возможности.
Мастер MQL5: Как написать свой модуль сопровождения открытых позиций
Мастер MQL5: Как написать свой модуль сопровождения открытых позиций

Мастер MQL5: Как написать свой модуль сопровождения открытых позиций

Генератор торговых стратегий Мастера MQL5 значительно упрощает проверку торговых идей. В статье рассказывается о том, как написать и подключить в Мастер MQL5 свой собственный модуль управления открытыми позициями, устанавливающий уровень Stop Loss в безубыток при движении цены в благоприятном направлении, что позволяет защитить прибыль и уменьшить потери. Рассматривается структура и формат описания созданного класса для Мастера MQL5.
Графические интерфейсы III: Простые и многофункциональные кнопки (Глава 1)
Графические интерфейсы III: Простые и многофункциональные кнопки (Глава 1)

Графические интерфейсы III: Простые и многофункциональные кнопки (Глава 1)

Приступим к рассмотрению такого элемента управления, как кнопка. Будут показаны примеры нескольких классов для создания простой кнопки, кнопок с расширенным функционалом («кнопка с картинкой» и «сдвоенная кнопка»), а также кнопок, которые взаимосвязаны между собой (группы кнопок и «радио-кнопки»). Кроме этого, внесём некоторые дополнения в уже существующие классы элементов управления, чтобы расширить их возможности.
Разнонаправленная торговля и хеджирование позиций в MetaTrader 5 с помощью API HedgeTerminal, часть 2
Разнонаправленная торговля и хеджирование позиций в MetaTrader 5 с помощью API HedgeTerminal, часть 2

Разнонаправленная торговля и хеджирование позиций в MetaTrader 5 с помощью API HedgeTerminal, часть 2

Статья описывает новый подход в вопросах хеджирования позиций и ставит точку в спорах между пользователями платформ MetaTrader 4 и MetaTrader 5 в этом вопросе. Она является продолжением первой части: "Разнонаправленная торговля и хеджирование позиций в MetaTrader 5 с помощью панели API HedgeTerminal". Во второй части описывается интеграция пользовательских экспертов с HedgeTerminalAPI - специальной библиотекой виртуализации, позволяющей торговать разнонаправлено, находясь в комфортном программном окружении, позволяющем легко и просто управлять своими позициями.
Автоматическая оптимизация советника в MetaTrader 5
Автоматическая оптимизация советника в MetaTrader 5

Автоматическая оптимизация советника в MetaTrader 5

В данной статье описана реализация механизма самооптимизации работающего эксперта в MetaTrader 5.
Рецепты MQL5 - Программируем скользящие каналы
Рецепты MQL5 - Программируем скользящие каналы

Рецепты MQL5 - Программируем скользящие каналы

В данной статье представлен способ программирования системы равноудалённых каналов. Рассматриваются некоторые нюансы построения таких каналов. Приводится типизация каналов, предлагается способ универсального типа скользящих каналов. При реализации кода используется инструментарий ООП.
Рецепты MQL5 - Как не получить ошибку при установке/изменении торговых уровней?
Рецепты MQL5 - Как не получить ошибку при установке/изменении торговых уровней?

Рецепты MQL5 - Как не получить ошибку при установке/изменении торговых уровней?

Продолжая работу над экспертом из предыдущей статьи "Рецепты MQL5 - Изучение свойств позиции в тестере MetaTrader 5", внедрим в него еще целый ряд полезных функций, а также усовершенствуем и оптимизируем уже имеющиеся. На этот раз эксперт будет снабжен внешними параметрами, которые можно будет оптимизировать в тестере MetaTrader 5. Это уже будет немного похоже на простую торговую систему.
950 сайтов транслируют экономический календарь от MetaQuotes
950 сайтов транслируют экономический календарь от MetaQuotes

950 сайтов транслируют экономический календарь от MetaQuotes

Добавление виджета обеспечивает сайты подробным расписанием выхода 500 показателей и индикаторов крупнейших мировых экономик. Таким образом трейдеры, помимо основного контента площадки, оперативно получают актуальную информацию по всем важным событиям с пояснениями и графиками.
Быстрая оценка сигнала: торговая активность, графики просадки/загрузки и распределения MFE/MAE
Быстрая оценка сигнала: торговая активность, графики просадки/загрузки и распределения MFE/MAE

Быстрая оценка сигнала: торговая активность, графики просадки/загрузки и распределения MFE/MAE

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

TradeObjects: Автоматизация торговли на основе графических объектов в MetaTrader

В статье рассматривается простой подход к созданию системы автоматической торговли по линейной разметке графика. Предложен готовый эксперт, использующий стандартные свойства объектов MetaTrader 4 и 5 и поддерживающий основные торговые операции.
Глубокие нейросети (Часть VII). Ансамбль нейросетей: stacking
Глубокие нейросети (Часть VII). Ансамбль нейросетей: stacking

Глубокие нейросети (Часть VII). Ансамбль нейросетей: stacking

Мы продолжаем строить ансамбли. Теперь к bagging-ансамблю, созданному ранее, добавим обучаемый объединитель — глубокую нейросеть. Одна нейросеть объединяет 7 лучших выходов ансамбля после обрезки. Вторая принимает на вход все 500 выходов ансамбля, обрезает и объединяет их. Нейросети будем строить с помощью пакета keras/TensorFlow из Python. Кратко рассмотрим возможности пакета. Проведем тестирование и сравним качество классификации bagging и stacking ансамблей.
Уменьшаем расход памяти на вспомогательные индикаторы
Уменьшаем расход памяти на вспомогательные индикаторы

Уменьшаем расход памяти на вспомогательные индикаторы

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

Нейронные сети обратного распространения ошибки на матрицах MQL5

Статья описывает теорию и практику применения алгоритма обратного распространения ошибки на MQL5 с помощью матриц. Прилагаются готовые классы и примеры скрипта, индикатора и эксперта.
Создание пользовательской новостной ленты в MetaTrader 5
Создание пользовательской новостной ленты в MetaTrader 5

Создание пользовательской новостной ленты в MetaTrader 5

В статье рассматривается возможность создания гибкой новостной ленты, предоставляющей множество опций по выбору типа новостей и их источника. Статья показывает, как можно интегрировать веб-API с терминалом MetaTrader 5.
Когда нужно использовать указатели в MQL5
Когда нужно использовать указатели в MQL5

Когда нужно использовать указатели в MQL5

Все объекты в MQL5 по умолчанию передаются по ссылке, но есть возможность использовать и указатели объектов. При этом есть опасность получить в качестве параметра функции указатель неинициализированного объекта. В этом случае работа программы будет завершена критически с последующей выгрузкой. Автоматически создаваемые объекты как правило такой ошибки не вызывают, и в этом отношении они достаточно безопасны. В этой статье мы попробуем разобраться в чем разница между ссылкой и указателей, когда оправдано использование указателей и как написать безопасный код с использованием указателей.
Как самостоятельно создать и протестировать в MetaTrader 5 инструменты Московской биржи
Как самостоятельно создать и протестировать в MetaTrader 5 инструменты Московской биржи

Как самостоятельно создать и протестировать в MetaTrader 5 инструменты Московской биржи

В статье рассказывается как с помощью языка MQL5 создать свой собственный символ биржевого инструмента. В частности, используя биржевые котировки с популярного сайта "финам". Кроме того рассматривается возможность работы с произвольным форматом текстовых файлов, из которых создается пользовательский символ. Поэтому и финансовые инструменты и источники данных могут быть любыми. Создав пользовательский символ, мы можем использовать все возможности тестера стратегий MetaTrader 5 для проверки торговых алгоритмов на биржевых инструментах.
Что такое мартингал?
Что такое мартингал?

Что такое мартингал?

Краткое описание различного рода иллюзий, возникающих при игре на мартингале, применении стратегии мартингала или при злоупотреблении спайкингом и родственными приемами.
Готовые советники из Мастера MQL5 работают в MetaTrader 4
Готовые советники из Мастера MQL5 работают в MetaTrader 4

Готовые советники из Мастера MQL5 работают в MetaTrader 4

В статье предлагается простой эмулятор торгового окружения MetaTrader 5 для MetaTrader 4. С его помощью выполняются перенос и адаптация торговых классов стандартной библиотеки. В результате советники, генерируемые в Мастере MetaTrader 5, могут компилироваться и запускаться без изменений в MetaTrader 4.
Секреты клиентского терминала MetaTrader 4: Система оповещений
Секреты клиентского терминала MetaTrader 4: Система оповещений

Секреты клиентского терминала MetaTrader 4: Система оповещений

Как быть в курсе происходящего в терминале и на Вашем счете без постоянного созерцания монитора. Системные события; пользовательские события; звуковые и исполняемые файлы; электронные письма; настройка доступа к SMTP-серверу; публикации; настройка доступа к FTP-серверу.
Создание многомодульных советников
Создание многомодульных советников

Создание многомодульных советников

Язык программирования MQL позволяет реализовать концепцию модульного проектирования торговых стратегий. В статье показан пример создания многомодульного советника, состоящего из отдельно скомпилированных файловых модулей.
Прогнозирование временных рядов (Часть 1): метод эмпирической модовой декомпозиции (EMD)
Прогнозирование временных рядов (Часть 1): метод эмпирической модовой декомпозиции (EMD)

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

В статье рассмотрена теория и практическое применение алгоритма прогнозирования временных рядов на основе эмпирической модовой декомпозиции, предложена его реализации на MQL, предоставлены тестовые индикаторы и эксперты.
Глубокие нейросети (Часть II). Разработка и выбор предикторов
Глубокие нейросети (Часть II). Разработка и выбор предикторов

Глубокие нейросети (Часть II). Разработка и выбор предикторов

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

Хранение и отображение информации

Статья посвящена удобным и практичным методам хранения и отображения информации. Здесь рассматриваются альтернативы стандартному логфайлу терминала и функции Comment().
Разработка Pivot Mean Oscillator: новый осциллятор на кумулятивном скользящем среднем
Разработка Pivot Mean Oscillator: новый осциллятор на кумулятивном скользящем среднем

Разработка Pivot Mean Oscillator: новый осциллятор на кумулятивном скользящем среднем

В статье описывается осциллятор Pivot Mean Oscillator (PMO), который представляет собой реализацию торговых сигналов на основе индикатора кумулятивного скользящего среднего для платформ MetaTrader. В частности, сначала будет рассмотрено понятие Pivot Mean (PM) — индекс нормализации временных рядов, который вычисляет соотношение между любой точкой данных и скользящей CMA. Затем построим осциллятор PMO как разницу между скользящими средними, построенными по двум сигналам PM. Также в статье будут показаны эксперименты на символе EURUSD, которые проводились для проверки эффективности индикатора.
Использование дискриминантного анализа для построения торговых систем
Использование дискриминантного анализа для построения торговых систем

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

При построении торговой системы, как правило, встает задача выбора лучшей комбинации из индикаторов и их сигналов. Одним из способов построения таких комбинаций является дискриминантный анализ. В статье предлагается пример создания советника для сбора данных с рынка, рассмотрен пример использования дискриминантного анализа в программе Statistica для построения прогностических моделей для рынка FOREX.
Универсальный торговый эксперт: Работа с пользовательскими трейлинг-стопами (часть 6)
Универсальный торговый эксперт: Работа с пользовательскими трейлинг-стопами (часть 6)

Универсальный торговый эксперт: Работа с пользовательскими трейлинг-стопами (часть 6)

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

Изучаем класс CCanvas. Реализация прозрачности графических объектов

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