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

icon

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

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

Новая статья
последние | лучшие
preview
Моделирование рынка (Часть 19): Первые шаги на SQL (II)

Моделирование рынка (Часть 19): Первые шаги на SQL (II)

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

От начального до среднего уровня: Наследование

Без сомнения, данная статья потребует от вас значительного времени, чтобы понять, как и почему работают описанные здесь материалы. Это объясняется тем, что всё, что здесь будет показано, изначально ориентировано на объектно-ориентированное программирование, но на самом деле оно основано на принципах структурного программирования.
preview
Машинное обучение и Data Science (Часть 39): Тестируем связку новостей с ИИ

Машинное обучение и Data Science (Часть 39): Тестируем связку новостей с ИИ

Новости оказывают существенное влияние на финансовые рынки, особенно если говорить о важнейших публикациях, например по занятости в несельскохозяйственном секторе (Non-Farm Payrolls, NFPs). Мы не раз видели, как один единственный заголовок может спровоцировать резкие колебания цен. В этой статье мы рассмотрим в деталях связку новостей и возможностей искусственного интеллекта.
preview
Нейросети в трейдинге: Многодоменная архитектура анализа финансовых данных (Основные компоненты)

Нейросети в трейдинге: Многодоменная архитектура анализа финансовых данных (Основные компоненты)

В статье продолжается перенос подходов фреймворка MDL в область решения задач финансовых рынков. Рассмотрены модули унифицированной токенизации разнородных данных, доменно-ориентированного внимание и Feature Self-Iteration, позволяющий эффективнее работать с историей признаков. Особое внимание уделено архитектурным решениям, снижающим вычислительную нагрузку и сохраняющим рыночный контекст в процессе анализа.
preview
Нейросети в трейдинге: Многодоменная архитектура анализа финансовых данных (Окончание)

Нейросети в трейдинге: Многодоменная архитектура анализа финансовых данных (Окончание)

В статье завершается построение фреймворка MDL и его интеграция в среду MQL5/OpenCL. Реализован объект верхнего уровня, объединяющий признаки, сценарии и задачи в единый вычислительный процесс. Проведено тестирование на исторических данных, показавшее устойчивую работу модели и её способность адаптироваться к изменяющимся рыночным условиям.
preview
Возможности Мастера MQL5, которые вам нужно знать (Часть 70): Использование паттернов SAR и RVI с сетью экспоненциального ядра

Возможности Мастера MQL5, которые вам нужно знать (Часть 70): Использование паттернов SAR и RVI с сетью экспоненциального ядра

В предыдущей статье мы представили пару индикаторов SAR и RVI. Здесь мы рассмотрим, как их можно расширить с помощью машинного обучения. SAR и RVI представляют собой взаимодополняющую пару, сочетающую в себе тренд и импульс. Наш подход к машинному обучению использует сверточную нейронную сеть (convolution neural network), которая задействует экспоненциальное ядро (Exponential kernel) для определения размеров своих ядер и каналов при настройке прогнозов этой пары индикаторов. Как обычно, это делается в пользовательском файле класса сигналов (signal class), который взаимодействует с Мастером MQL5 для создания советника.
preview
От начального до среднего уровня: Объекты (I)

От начального до среднего уровня: Объекты (I)

В данной статье мы начнём рассматривать, как можно работать с объектами непосредственно на графике. Это делается с помощью кода, специально разработанного для демонстрации. Работа с объектами очень интересна и доставляет немало удовольствия. Поскольку это будет наш первый контакт, начнём с чего-нибудь очень простого.
preview
Знакомство с языком MQL5 (Часть 32): Освоение API и функции WebRequest в языке MQL5 (VI)

Знакомство с языком MQL5 (Часть 32): Освоение API и функции WebRequest в языке MQL5 (VI)

В этой статье мы покажем, как визуализировать свечные данные, полученные с помощью функции WebRequest и API, в свечном формате. Мы будем использовать язык MQL5, чтобы считывать свечные данные из CSV-файла и отображать их на графике в виде пользовательских свечей, поскольку индикаторы не могут напрямую использовать функцию WebRequest.
preview
Трейдинг с экономическим календарем MQL5 (Часть 8): Оптимизируем тестирование новостных стратегий с помощью фильтров и логов

Трейдинг с экономическим календарем MQL5 (Часть 8): Оптимизируем тестирование новостных стратегий с помощью фильтров и логов

В этой статье мы оптимизируем наш экономический календарь, добавив в него умную фильтрацию событий и логи для более быстрого и наглядного тестирования стратегий в режимах live и офлайн. Мы оптимизируем обработку событий, а журнал будем вести по действительно важным операциям и событиям на панели. Попробуем улучшить визуализацию стратегии. Все эти улучшения должны помочь тестировать и улучшать новостные торговые стратегии.
preview
Торговые инструменты на языке MQL5 (Часть 6): Динамическая голографическая панель с импульсной анимацией и элементами управления

Торговые инструменты на языке MQL5 (Часть 6): Динамическая голографическая панель с импульсной анимацией и элементами управления

В этой статье мы создаем динамическую голографическую панель на MQL5 для мониторинга инструментов и таймфреймов с помощью RSI, оповещений о волатильности и параметров сортировки. Добавляем анимацию импульсов, интерактивные кнопки и голографические эффекты, чтобы сделать инструмент визуально привлекательным и отзывчивым.
preview
Неопределенность как модель (Часть 2): Зависимости случайных величин — от корреляции до копул

Неопределенность как модель (Часть 2): Зависимости случайных величин — от корреляции до копул

Во второй части цикла рассматривается математический аппарат многомерных случайных величин, необходимый для анализа зависимостей и совместного поведения рыночных активов. Описываются функции совместного распределения, понятия маржинальных и условных распределений, а также условия зависимости и независимости величин. Теоретический материал базируется на расширении аналогии вероятности с массой в многомерное пространство. Особое внимание уделено мерам связи: от классической линейной ковариации и корреляции до современных инструментов — копул и взаимной информации Шеннона.
preview
Оптимизатор конкурирующего роя — Competitive Swarm Optimizer (CSO)

Оптимизатор конкурирующего роя — Competitive Swarm Optimizer (CSO)

В данной статье рассматривается Competitive Swarm Optimizer — алгоритм роевой оптимизации, в основе которого лежит предельно простая идея: агенты случайным образом разбиваются на пары, проигравший учится у победителя и притягивается к центру роя. Помимо разбора CSO, в статье представлена модернизация тестового стенда: визуализация работы алгоритмов переведена в 3D - мерное пространство, что позволяет наглядно наблюдать движение популяции на поверхности тестовой функции.
preview
Трейдинг с экономическим календарем MQL5 (Часть 9): Расширение интерактивности с новостями через динамический скроллбар и улучшенное отображение

Трейдинг с экономическим календарем MQL5 (Часть 9): Расширение интерактивности с новостями через динамический скроллбар и улучшенное отображение

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

Знакомство с языком MQL5 (Часть 40): Руководство для начинающих по работе с файлами в MQL5 (II)

В этой статье вы создадите торговый журнал в формате CSV с помощью MQL5, считывая историю счета за заданный период и записывая в файл структурированные записи. В статье объясняется, как подсчитывать сделки, получать тикеты, определять символ и тип ордера, а также с помощью динамических массивов собирать данные о входе в сделку (лот, время, цена, SL/TP) и выходе из нее (время, цена, прибыль, результат). В результате получается упорядоченный журнал, который сохраняется между запусками программы и подходит для анализа и отчетности.
preview
Архитектура системы машинного обучения в MetaTrader5 (Часть 5): Последовательный бутстреппинг— устранение смещения меток и повышение доходности

Архитектура системы машинного обучения в MetaTrader5 (Часть 5): Последовательный бутстреппинг— устранение смещения меток и повышение доходности

Последовательный бутстреппинг меняет подход к бутстреп-выборке в финансовом машинном обучении, активно избегая временных перекрытий в метках. Это обеспечивает более независимые обучающие выборки, более точные оценки неопределенности и более надежные торговые модели. В этом практическом руководстве объясняется интуитивная основа метода, пошагово разбирается алгоритм, приводятся оптимизированные паттерны кода для работы с большими массивами данных, а также демонстрируется измеримый прирост эффективности с помощью симуляций и реальных бэктестов.
preview
Возможности Мастера MQL5, которые вам нужно знать (Часть 68): Использование паттернов TRIX и процентного диапазона Уильямса с сетью косинусного ядра

Возможности Мастера MQL5, которые вам нужно знать (Часть 68): Использование паттернов TRIX и процентного диапазона Уильямса с сетью косинусного ядра

В продолжение нашей предыдущей статьи, где мы представили пару индикаторов TRIX и процентного диапазона Уильямса, мы рассмотрим, как эту пару индикаторов можно расширить с помощью машинного обучения. TRIX и процентный диапазон Уильямса представляют собой взаимодополняющую пару, отражающую тренд и уровни поддержки/сопротивления. Наш подход на основе машинного обучения использует сверточную нейронную сеть (convolution neural network), в архитектуре которой задействуется косинусное ядро (cosine kernel) при точной настройке прогнозов этой пары индикаторов. Как обычно, это делается в пользовательском файле класса сигналов (signal class), который взаимодействует с Мастером MQL5 для создания советника.
preview
Знакомство с языком MQL5 (Часть 34): Освоение API и функции WebRequest в языке MQL5 (VIII)

Знакомство с языком MQL5 (Часть 34): Освоение API и функции WebRequest в языке MQL5 (VIII)

В этой статье вы узнаете, как создать панель управления в MetaTrader 5. Мы разберем основы добавления полей ввода, кнопок действий и меток для отображения текста. Используя проектный подход, вы увидите, как настроить панель, в которой пользователи могут вводить сообщения и в итоге отображать ответы API-сервера.
preview
Моделирование рынка (Часть 17): Сокеты (XI)

Моделирование рынка (Часть 17): Сокеты (XI)

Реализация той части кода, которая будет работать в MetaTrader 5, не представляет сложности. Однако есть несколько моментов, которые нужно учитывать. Это необходимо для того, чтобы вы смогли заставить систему работать. Запомните одну важную вещь: будет запущена не одна программа. В реальности нам придётся запускать три программы одновременно. Важно реализовать и построить каждую из них так, чтобы они могли взаимодействовать и общаться одна с другой, и чтобы каждая из них понимала, что пытается или хочет сделать другая.
preview
Возможности Мастера MQL5, которые вам нужно знать (Часть 66): Использование паттернов FrAMA и индекса силы с ядром скалярного произведения

Возможности Мастера MQL5, которые вам нужно знать (Часть 66): Использование паттернов FrAMA и индекса силы с ядром скалярного произведения

Индикатор FrAMA и осциллятор индекса силы (Force Index) — инструменты анализа тренда и объема, которые можно использовать в паре при разработке советника. В продолжение нашей предыдущей статьи, в которой мы представили эту пару, рассмотрим применимость к ней машинного обучения. Мы используем сверточную нейронную сеть (convolution neural network), которая применяет ядро скалярного произведения (dot-product kernel) для построения прогнозов на основе входных данных этих индикаторов. Это делается в пользовательском файле класса сигналов (signal class), который взаимодействует с Мастером MQL5 для создания советника.
preview
Создание самооптимизирующихся советников на MQL5 (Часть 8): Анализ нескольких стратегий (3) — Политика взвешенного голосования

Создание самооптимизирующихся советников на MQL5 (Часть 8): Анализ нескольких стратегий (3) — Политика взвешенного голосования

В этой статье исследуется, как определение оптимального количества стратегий в ансамбле может стать сложной задачей, которую проще решить с помощью генетического оптимизатора MetaTrader 5. Сеть MQL5 Cloud также используется как ключевой ресурс для ускорения бэктестинга и оптимизации. В целом, наше обсуждение здесь подготавливает почву для разработки статистических моделей, позволяющих оценивать и улучшать торговые стратегии на основе результатов работы нашего первоначального ансамбля.
preview
Моделирование рынка (Часть 22): Первые шаги на SQL (V)

Моделирование рынка (Часть 22): Первые шаги на SQL (V)

Прежде, чем вы сдадитесь и решите отказаться от изучения SQL, позвольте мне напомнить вам, уважаемые читатели, что здесь мы всё ещё используем только самые базовые элементы. Мы ещё не рассмотрели некоторые возможности SQL. Как только вы их усвоите, вы увидите, что SQL гораздо практичнее, чем кажется. Хотя, скорее всего, мы в конечном итоге изменим направление того, что мы создаем, потому, что процесс создания является динамичным. Мы покажем немного больше о создании разных вещей в SQL, ведь это по настоящему важно и нужно вам. Просто думать, что вы более способны, чем целое сообщество программистов и разработчиков, приведет только к потере времени и возможностей. Не переживайте, потому что дальше будет ещё интереснее.
preview
Знакомство с языком MQL5 (Часть 38): Освоение API и функции WebRequest в языке MQL5 (XII)

Знакомство с языком MQL5 (Часть 38): Освоение API и функции WebRequest в языке MQL5 (XII)

Создайте практический мост между MetaTrader 5 и Binance: получайте 30-минутные свечи с помощью WebRequest, извлекайте из JSON значения OHLC и времени и подтверждайте бычий паттерн поглощения, используя только полностью закрытые свечи. Затем соберите строку запроса, вычислите подпись HMAC-SHA256, добавьте X-MBX-APIKEY и отправьте аутентифицированные ордера. Вы получите четкий сквозной рабочий процесс советника – от получения данных до исполнения ордера.
preview
Знакомство с языком MQL5 (Часть 41): Руководство для начинающих по работе с файлами в MQL5 (III)

Знакомство с языком MQL5 (Часть 41): Руководство для начинающих по работе с файлами в MQL5 (III)

Узнайте, как читать CSV-файл в MQL5 и упорядочивать содержащиеся в нем торговые данные в динамических массивах. В этой статье пошагово показано, как подсчитать элементы файла, сохранить все данные в едином массиве и разнести каждый столбец по отдельным массивам, заложив основу для более продвинутого анализа и визуализации торговой эффективности.
preview
Разработка инструментария для анализа Price Action (Часть 24): Инструмент количественного анализа Price Action

Разработка инструментария для анализа Price Action (Часть 24): Инструмент количественного анализа Price Action

Свечные паттерны дают ценную информацию о возможном движении рынка. Одни свечи сигнализируют о продолжении текущего тренда, а другие предвещают разворот – в зависимости от того, где именно они формируются в структуре движения цены. В этой статье представлен советник, который автоматически определяет четыре ключевые свечные формации. В разделах ниже вы узнаете, как этот инструмент может улучшить ваш анализ Price Action.
preview
Внедрение в MQL5 практических модулей из других языков (Часть 04): Модули time, date и datetime из Python

Внедрение в MQL5 практических модулей из других языков (Часть 04): Модули time, date и datetime из Python

В отличие от MQL5, язык программирования Python предлагает контроль и гибкость, когда речь заходит о работе со временем и управлении им. В этой статье мы реализуем модули, аналогичные модулям в языке MQL5 для более удобной обработки дат и времени, как в Python.
preview
Моделирование рынка (Часть 21): Первые шаги на SQL (IV)

Моделирование рынка (Часть 21): Первые шаги на SQL (IV)

Многие из вас, возможно, обладают гораздо большим опытом в области работы с базами данных, чем я, и, следовательно, имеют другое мнение. Поскольку было необходимо дать объяснение, почему базы данных создаются именно так, как они создаются, и нужно объяснить, почему SQL имеет именно такой формат и, прежде всего, почему появились первичные ключи и внешние ключи, поэтому пришлось оставить некоторые вещи немного абстрактными.
preview
Торговые инструменты на MQL5 (Часть 15): Эффекты размытия canvas, рендеринг теней и плавная прокрутка колесом мыши

Торговые инструменты на MQL5 (Часть 15): Эффекты размытия canvas, рендеринг теней и плавная прокрутка колесом мыши

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

Знакомство с языком MQL5 (Часть 33): Освоение API и функции WebRequest в языке MQL5 (VII)

В этой статье показано, как интегрировать API Google Generative AI в MetaTrader 5 с помощью языка MQL5. Вы научитесь структурировать API-запросы, обрабатывать ответы сервера, извлекать контент, сгенерированный ИИ, управлять лимитами API и сохранять результаты в текстовый файл для удобного доступа.
preview
Знакомство с языком MQL5 (Часть 39): Руководство для начинающих по работе с файлами в MQL5 (I)

Знакомство с языком MQL5 (Часть 39): Руководство для начинающих по работе с файлами в MQL5 (I)

В этой статье работа с файлами в MQL5 рассматривается на практическом проектном примере. Вы будете использовать FileSelectDialog, чтобы выбрать или создать CSV-файл, открыть его с помощью FileOpen и записать структурированные заголовки с данными счета, такие как имя счета, баланс, логин, диапазон дат и время последнего обновления. В результате вы получите понятную основу для пригодного к повторному использованию торгового журнала и безопасной работы с файлами в MetaTrader 5.
preview
От начального до среднего уровня: Struct (VII)

От начального до среднего уровня: Struct (VII)

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

Искусство работы с логами (Часть 10): Подавление повторяющихся логов (suppression)

Мы создали систему подавления логов в библиотеке Logify. В статье подробно рассматривается, как класс CLogifySuppression уменьшает «шум» в консоли, применяя настраиваемые правила для исключения повторяющихся или незначимых сообщений. Также мы освещаем структуру внешних конфигурационных файлов, механизмы валидации и всестороннее тестирование, обеспечивающие надежность и гибкость сбора логов при разработке ботов и индикаторов.
preview
Искусство ведения логов (Часть 7): Как отображать логи на графике

Искусство ведения логов (Часть 7): Как отображать логи на графике

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

Пользовательские инструменты отладки и профилирования для разработки на MQL5 (Часть I): Расширенное логирование

Узнайте, как реализовать мощный пользовательский фреймворк для логирования в MQL5, который выходит за рамки простых операторов Print() за счет поддержки уровней серьезности, множества обработчиков вывода и автоматической ротации файлов — и все это с возможностью настройки «на лету». Интегрируйте синглтон CLogger с ConsoleLogHandler и FileLogHandler для захвата контекстных журналов с метками времени как на вкладке «Эксперты», так и в постоянных файлах. Оптимизируйте отладку и трассировку производительности в ваших советниках с помощью понятных, настраиваемых форматов журналов и централизованного управления.
preview
Искусство работы с логами (Часть 9): Применяем паттерн Builder-класса и настраиваем конфигурации по умолчанию

Искусство работы с логами (Часть 9): Применяем паттерн Builder-класса и настраиваем конфигурации по умолчанию

В этой статье демонстрируется, как кардинально упростить использование библиотеки Logify с помощью паттерна "Builder" и автоматических конфигураций по умолчанию. Рассматриваются структура специализированных Builder-классов, приемы работы с ними при помощи интеллектуальной подсказки (автодополнения), а также способы обеспечения функционального логирования даже без ручной настройки. Кроме того, статья описывает доработки для сборки MetaTrader 5 5100.
preview
Знакомство с языком MQL5 (Часть 35): Освоение API и функции WebRequest в языке MQL5 (IX)

Знакомство с языком MQL5 (Часть 35): Освоение API и функции WebRequest в языке MQL5 (IX)

Узнайте, как обнаруживать действия пользователей в MetaTrader 5, отправлять запросы в API искусственного интеллекта, извлекать ответы и реализовывать прокрутку текста на панели.
preview
Искусство работы с логами (Часть 8): Самопереводящиеся записи об ошибках

Искусство работы с логами (Часть 8): Самопереводящиеся записи об ошибках

В этой восьмой части серии «Искусство работы с логами» мы исследуем реализацию многоязычных сообщений об ошибках в Logify — мощной библиотеке логирования для MQL5. Вы узнаете, как структурировать ошибки с контекстом, переводить сообщения на несколько языков и динамически форматировать логи по уровням логирования. И всё это — с чистым, расширяемым и готовым к продакшену дизайном.
preview
Неопределенность как модель (Часть 4): Случайные процессы — динамика неопределённости

Неопределенность как модель (Часть 4): Случайные процессы — динамика неопределённости

Статья вводит понятия и инструменты работы со случайными процессами в трейдинге: определения, характеристики, автокорреляционные функции и практическую классификацию. Рассматриваются белый шум, случайное блуждание, процессы Винера и Пуассона, а также марковские цепи и мартингалы. MQL5-скрипты демонстрируют генерацию реализаций и позволяют смоделировать эквити, подчёркивая математические ограничения стратегий.
preview
Знакомство с языком MQL5 (Часть 37): Освоение API и функции WebRequest в языке MQL5 (XI)

Знакомство с языком MQL5 (Часть 37): Освоение API и функции WebRequest в языке MQL5 (XI)

В этой статье мы покажем, как с помощью языка MQL5 отправлять аутентифицированные запросы к API Binance, чтобы получать баланс счета по всем активам. Вы узнаете, как использовать свой API-ключ, время сервера и подпись для безопасного доступа к данным аккаунта, а также как сохранять ответ в файл для дальнейшего использования.
preview
Торговые инструменты на MQL5 (Часть 16): Улучшенное сглаживание методом суперсэмплинга (SSAA) и рендеринг в высоком разрешении

Торговые инструменты на MQL5 (Часть 16): Улучшенное сглаживание методом суперсэмплинга (SSAA) и рендеринг в высоком разрешении

Мы добавляем сглаживание на основе суперсэмплинга и рендеринг высокого разрешения на панель Canvas на MQL5, а затем понижаем дискретизацию до целевого размера. В статье реализованы закругленные прямоугольные заливки и границы, закругленные треугольные стрелки и пользовательская полоса прокрутки с темой оформления для статистических и текстовых панелей. Эти инструменты помогут вам создать более плавные и разборчивые компоненты пользовательского интерфейса в MetaTrader 5.
preview
Создание самооптимизирующихся советников на MQL5 (Часть 10): Факторизация матриц

Создание самооптимизирующихся советников на MQL5 (Часть 10): Факторизация матриц

Факторизация — это математический процесс, используемый для получения представления о свойствах данных. Когда мы применяем факторизацию к большим наборам рыночных данных — организованных в строки и столбцы — мы можем выявлять закономерности и характеристики рынка. Факторизация является мощным инструментом, и в этой статье показано, как использовать её в терминале MetaTrader 5 через API MQL5, чтобы получить более глубокое понимание рыночных данных.