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

icon

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

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

Новая статья
последние | лучшие
preview
Нейросети в трейдинге: Диффузионная генерация торговых планов (Окончание)

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

Завершаем адаптацию DPCC к задачам финансовых рынков. На основе ранее разработанной торговой модели AC-SRM объединяем диффузионного Актёра, прогноз ценовых сценариев и двух распределительных Критиков. Рассматриваем подготовку рыночного представления, обучение на исторических планах и последующие TD-обновления торговой политики. Представляем результаты тестирования на EURUSD H1 за январь–май 2026 года. Несмотря на положительный финансовый результат, существенная просадка и ограниченный объём испытаний не позволяют делать выводы об устойчивости модели.
preview
Неопределённость как модель (Часть 9): Процессы авторегрессии

Неопределённость как модель (Часть 9): Процессы авторегрессии

Статья описывает законченный конвейер моделирования ковариационно-стационарных временных рядов с помощью ARMA(p, q) в MQL5. Реализованы расчёт ACF/PACF, построение коррелограмм и автоматический подбор порядков по критериям AIC и BIC, а также аудит остатков: QQ-plot, эмпирическая плотность и LM-тест Бройша—Годфри. На примере дневной волатильности EURCHF показано, как идентифицировать модель и проверить, что ошибки представляют белый шум.
preview
Логика кэрри-трейда в MQL5: Создание советника, учитывающего ставки свопа при расчете размера позиции и принятии решений об удержании

Логика кэрри-трейда в MQL5: Создание советника, учитывающего ставки свопа при расчете размера позиции и принятии решений об удержании

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

Создание индикатора Market Structure Sentinel на языке MQL5

В статье описывается создание индикатора Market Structure Sentinel на языке MQL5, который в режиме реального времени выявляет и визуализирует события в рамках концепций «умных денег» (SMC), включая слом структуры (BOS) и смену характера (CHOCH). В ней объясняются обнаружение свингов, структурная валидация и классификация тренда, а также добавляется компактная мини-панель для отслеживания бычьего или медвежьего тренда либо флэта, что позволяет быстрее интерпретировать ситуацию на графике.
preview
Построение системы обнаружения дивергенций (Часть IV): Создание переиспользуемого модуля обнаружения дивергенций для MQL5

Построение системы обнаружения дивергенций (Часть IV): Создание переиспользуемого модуля обнаружения дивергенций для MQL5

В статье логика обнаружения дивергенций, разработанная в этой серии, выносится в подключаемый файл DivergenceEngine.mqh, который можно повторно использовать в индикаторах и советниках на языке MQL5. В статье подробно описаны архитектура на основе структур, выбор осциллятора (MPO4 или RSI), работа с опорными точками и состоянием, а также минимальный API для доступа к данным. Советник на основе Parabolic SAR демонстрирует подключение модуля: коэффициент ускорения индикатора изменяется в зависимости от обнаруженной дивергенции. Этот пример дает понятную схему, которую можно повторно использовать без дублирования кода.
preview
Создание графической библиотеки для MetaTrader 5 по образцу Cairo (Часть 5): Правила заливки, отверстия и рамки

Создание графической библиотеки для MetaTrader 5 по образцу Cairo (Часть 5): Правила заливки, отверстия и рамки

В пятой части мы добавим в растеризатор правило заливки, а в путь — вспомогательную функцию для построения обводки. Теперь движок поддерживает заливку по правилу ненулевого числа обхода и по правилу "чет-нечет". Выбор задается одним параметром типа перечисления, что позволяет создавать кольца, полноценные рамки, не закрашивающие внутреннюю область, и внутренние просветы глифов. Функция AddThickLine() строит обводки из заливок в рамках одного пути и одного прохода, сохраняя равномерную непрозрачность на стыках. На ее примере показано, почему для таких обводок требуется правило ненулевого числа обхода.
preview
Интеграция ИИ в три концепции Smart Money (SMC): Ордер-блок (OB), слом структуры (BOS) и гэп справедливой стоимости (FVG)

Интеграция ИИ в три концепции Smart Money (SMC): Ордер-блок (OB), слом структуры (BOS) и гэп справедливой стоимости (FVG)

В этом руководстве описано, как интегрировать обученную модель XGBoost (ONNX) в SMC-советник для оценки торговых сетапов перед их исполнением. Пайплайн на Python размечает исторические события по инструменту XAUUSD и формирует представление из 12 признаков, согласованное с советником. В результате получается воспроизводимый метод обучения, экспорта и встраивания модели, позволяющий советнику программно фильтровать сигналы ордер-блоков (OB), гэпов справедливой стоимости (FVG) и слома структуры (BOS).
preview
За рамками REST и ZeroMQ: Создание моста Protocol Buffers между MetaTrader 5 и Python с выходом на gRPC для инференса в реальном времени

За рамками REST и ZeroMQ: Создание моста Protocol Buffers между MetaTrader 5 и Python с выходом на gRPC для инференса в реальном времени

В этой статье мы определим контракт Protocol Buffers для обмена данными между MetaTrader 5 и Python и реализуем на языке MQL5 клиент Protobuf-over-TCP, передающий сообщения с префиксом длины: MQL5 нативно не поддерживает реальный gRPC. Небольшая прослойка на Python передает эти фреймы в полноценный сервер grpc.aio. Пока через нее выполняются только унарные RPC-вызовы, но на бэкенде уже работают и потоковые вызовы. Вы получите строго типизированные сообщения с контролем соответствия схеме, явные сообщения об ошибках, повторные попытки с задержкой между ними и кэш для тестера стратегий, позволяющий воспроизводить результаты тестирования на истории там, где сокеты недоступны.
preview
Создание графической библиотеки для MetaTrader 5 по образцу Cairo (Часть 4): Сглаживание, покрытие и композиция

Создание графической библиотеки для MetaTrader 5 по образцу Cairo (Часть 4): Сглаживание, покрытие и композиция

Теперь растеризатор накапливает точное покрытие интервалов по оси X и покрытие по оси Y, вычисляемое по выборкам, а затем использует его при композиции через CairoBlendOver в формате ARGB без предумножения. CairoAaSamples задает число выборок по вертикали во время выполнения. Затраты почти линейно зависят от этого числа и в основном приходятся на ребра фигур. В результате получаются сглаженные границы, корректная композиция полупрозрачных фигур и возможность регулировать производительность.
preview
Создание графической библиотеки для MetaTrader 5 по образцу Cairo (Часть 3): Ребра и первая фигура с заливкой

Создание графической библиотеки для MetaTrader 5 по образцу Cairo (Часть 3): Ребра и первая фигура с заливкой

В третьей части реализован построчный растеризатор, написанный целиком на языке MQL5. Мы преобразуем отрезки пути в ребра, записанные в направлении сверху вниз, проходим по каждой строке, сортируем точки пересечения и применяем ненулевое правило заливки, чтобы определить, какие пиксели находятся внутри фигуры. В результате получается метод Fill(path, color, buffer, w, h), который рисует прямоугольники, звезды, глифы или фигуры с 2 000 ребрами без отдельного кода для каждого типа фигуры. Его можно сразу использовать в ваших проектах на языке MQL5.
preview
Автоматизация торговых стратегий в MQL5 (Часть 53): Разворотные модели "двойная вершина" и "двойное дно"

Автоматизация торговых стратегий в MQL5 (Часть 53): Разворотные модели "двойная вершина" и "двойное дно"

Создадим программу на языке MQL5, которая по подтвержденным свинговым опорным точкам выявляет паттерны "двойная вершина" и "двойное дно" и торгует по ним на основе четких правил. Детектор сопоставляет экстремумы с учетом допуска, определяет линию шеи и применяет фильтры баланса отрезков и расстояния между экстремумами, чтобы отсеять слабо выраженные паттерны. Программа поддерживает вход при пробое линии шеи или (опционально) при откате к ней. Стоп-лосс размещается за экстремумом, а цели рассчитываются по проекции высоты паттерна или по соотношению вознаграждения и риска.
preview
Алгоритм опыления цветов — Flower Pollination Algorithm (FPA)

Алгоритм опыления цветов — Flower Pollination Algorithm (FPA)

Рассматривается реализация Flower Pollination Algorithm (FPA) в MQL5 с разбором операторов глобального и локального опыления и влияния ключевых параметров популяции и шага Леви, который при авторских настройках ищет почти наугад: находим причину и поднимаем результат с 26% до 49%. Трейдер получает готовый класс FPA с рабочими настройками для оптимизации советников и понимание, для каких задач он подходит.
preview
Создание графической библиотеки для MetaTrader 5 по образцу Cairo (Часть 2): Точки, контуры и путь

Создание графической библиотеки для MetaTrader 5 по образцу Cairo (Часть 2): Точки, контуры и путь

Во второй части мы добавим слой геометрии в графическую библиотеку для MetaTrader 5, создаваемую по образцу Cairo. В ней определяется путь из точек с координатами двойной точности, сгруппированных в контуры, сохраняется признак того, является ли контур открытым или замкнутым, а вершины хранятся в плоском массиве с индексами начала контуров. Мы реализуем методы MoveTo, LineTo и Close, добавим базовые вспомогательные методы для построения фигур и демонстрационный пример, который отображает построенную геометрию для визуальной проверки и повторного использования.
preview
Автоматизация графических паттернов в MQL5 (Часть 2): Паттерны "двойная вершина" и "двойное дно"

Автоматизация графических паттернов в MQL5 (Часть 2): Паттерны "двойная вершина" и "двойное дно"

Мы создадим надежный алгоритм обнаружения паттернов "двойная вершина" и "двойное дно" на языке MQL5. Сначала он подтвердит тренд на H4, а затем проверит шесть условий (равенство точек, положение линии шеи, порядок следования, ширину, высоту и допуски на основе среднего истинного диапазона, ATR). Пробой линии шеи определяется на таймфрейме графика, а машина состояний с тремя состояниями гарантирует, что по каждому паттерну сделка совершается только один раз. Проекция высоты паттерна позволяет определить четкий целевой уровень выхода.
preview
Как обнаруживать и нормализовать объекты графика в MQL5 (Часть 1): Создание движка обнаружения объектов графика

Как обнаруживать и нормализовать объекты графика в MQL5 (Часть 1): Создание движка обнаружения объектов графика

В этой статье рассматривается интерпретационный разрыв между визуальными объектами графика и алгоритмическим исполнением. Вы создадите системный детектор, который проходит по всем объектам графика, определяет аналитические типы и нормализует их геометрические данные (временные и ценовые координаты) в структурированный массив SChartObjectInfo. В реализации используются низкоуровневые функции MQL5, конвейер "фильтрация — извлечение — сохранение" и тестовый советник (EA), управляемый таймером, что в итоге дает переиспользуемый фреймворк для торговых входных данных на основе правил.
preview
Создание графической библиотеки для MetaTrader 5 по образцу Cairo (Часть 1): Зачем терминалу собственный 2D-рендерер

Создание графической библиотеки для MetaTrader 5 по образцу Cairo (Часть 1): Зачем терминалу собственный 2D-рендерер

В этой статье мы начинаем пошаговую разработку графического 2D-движка для MetaTrader. Мы введем единый стандарт представления цветов ARGB и реализуем поверхность с возможностью повторного использования — буфер пикселей типа uint, который загружается как динамический ресурс и отображается с помощью одного объекта OBJ_BITMAP_LABEL. Вы нарисуете прямоугольники и вертикальный градиент, убедитесь, что прозрачность здесь действительно работает, и освоите эффективный способ обновления с одним вызовом Flush.
preview
Автоматизация графических паттернов в MQL5 (Часть 1): Мультитаймфреймовый движок для анализа свинговой структуры

Автоматизация графических паттернов в MQL5 (Часть 1): Мультитаймфреймовый движок для анализа свинговой структуры

В этой статье представлен CSwingEngine — переиспользуемый класс на языке MQL5, который обнаруживает свинговые максимумы и минимумы на H4, присваивает им метки HH, LH, HL или LL и классифицирует рыночную структуру как трендовую или боковую. Свинги всегда определяются на H4 независимо от графика, на котором запущена программа, а каждая точка корректно отображается на младших таймфреймах благодаря штатной привязке к временным координатам типа datetime. Движок предоставляет понятный интерфейс для получения текущего состояния тренда и массива свингов, необходимых для распознавания паттернов с учетом рыночного контекста.
preview
Нейросети в трейдинге: Диффузионная генерация торговых планов (Планировщик)

Нейросети в трейдинге: Диффузионная генерация торговых планов (Планировщик)

Продолжаем торговую адаптацию DPCC на MQL5/OpenCL: рассматриваем кадровый денойзер CNeuronPlanDenoiserOCL и отдельно — действующий цикл планировщика CNeuronDPCCOCL. Показываем подготовку контекста, предсказание шума, обратную диффузию и возврат исправленных действий в генерацию. Разбираем режимы P0/P1/P2, проверку финансовых ограничений по ценовым сценариям и выбор первого действия по спектральной оценке денежных результатов G. Материал помогает проследить движение планов и условия допуска кандидатов к выбору.
preview
Фильтрация новостей с помощью экономического календаря MetaTrader 5 и резервного варианта на основе CSV

Фильтрация новостей с помощью экономического календаря MetaTrader 5 и резервного варианта на основе CSV

В статье представлен автономный модуль фильтрации новостей для MetaTrader 5, созданный на основе API экономического календаря платформы. Модуль реализует сопоставление торговых символов с валютами, торговые паузы перед событиями и после них, а также необязательное сокращение объёма позиции в дни с событиями высокой значимости, с резервным вариантом на основе CSV для Тестера стратегий. Демонстрационный советник и панель мониторинга на графике в реальном времени показывают интеграцию и проверку как в реальной торговой среде, так и в условиях бэктеста.
preview
Альтернатива среднему арифметическому и стандартному отклонению: Библиотека робастной статистики для индикаторов MQL5

Альтернатива среднему арифметическому и стандартному отклонению: Библиотека робастной статистики для индикаторов MQL5

Ценовые выбросы искажают показания индикаторов, основанных на среднем арифметическом и стандартном отклонении. В статье представлена библиотека робастной статистики на языке MQL5 (RobustStats.mqh), реализующая вычисление медианы, медианное абсолютное отклонение (MAD) с коэффициентом масштабирования 1,4826 и наклона Тейла — Сена, а также представлены три индикатора для непосредственной замены полос Боллинджера, канала линейной регрессии и осциллятора z-оценки. Совместное отображение индикаторов для сравнения и измерение точки разрушения на EURUSD показывают, как робастные инструменты сохраняют форму, когда одиночный скачок цены сдвигает классические.
preview
Автоматизация торговых стратегий в MQL5 (Часть 52): Модель tCISD с SSMT и Quarterly Theory

Автоматизация торговых стратегий в MQL5 (Часть 52): Модель tCISD с SSMT и Quarterly Theory

Мы разрабатываем на языке MQL5 программу tCISD, которая сочетает циклы Quarterly Theory, привязанные к нью-йоркскому времени, с SSMT-дивергенцией между торгуемым и коррелирующим символами, чтобы точнее выбирать момент разворота. В статье показано, как разметить циклы и четверти, выявить расхождение между символами по снятию ликвидности и определить уровень tCISD, пробой которого подтверждает смену характера доставки цены. Вы получите рабочую логику входа, которая активирует сетап при появлении дивергенции и открывает позицию после подтверждающего закрытия бара или при ретесте.
preview
Построение системы обнаружения дивергенций (Часть III): Советник Adaptive SuperTrend

Построение системы обнаружения дивергенций (Часть III): Советник Adaptive SuperTrend

В статье реализован автономный советник Adaptive SuperTrend, который выполняет внутренние расчеты на выбранном таймфрейме без использования внешних буферов и файлов индикаторов. В нем предусмотрены расчет размера позиции в лотах на основе риска, стоп-лоссы на основе ATR, пошаговый трейлинг по соотношению прибыли и риска (RR), дополнительное подтверждение для защиты от перерисовки, которое можно включить, и управление торговлей по сессиям. На практике эту структуру можно использовать повторно для единообразной обработки сигналов при появлении нового бара и проверки ордеров на соответствие требованиям брокера.
preview
Автоматизация торговых стратегий в MQL5 (Часть 51): Модель Bread and Butter Judas Swing с зонами премии и дисконта

Автоматизация торговых стратегий в MQL5 (Часть 51): Модель Bread and Butter Judas Swing с зонами премии и дисконта

Мы создаем на языке MQL5 программу для торговли на разворотах в рамках торговых сессий по модели Bread and Butter Judas Swing. Программа определяет дневную направленность по данным старшего таймфрейма, задает килл-зоны по нью-йоркскому времени и определяет зоны премии и дисконта каждой сессии по ее текущему диапазону. Обязательное условие — снятие ликвидности, после которого смена рыночной структуры подтверждает вход. Читатели получат готовый подход с четкими, проверяемыми правилами: активировать сетапы только во время активных сессий и открывать позиции в соответствии с дневной направленностью.
preview
Трейдинг с экономическим календарем MQL5 (часть 12): Хранение данных в SQLite и предотвращение повторных сделок

Трейдинг с экономическим календарем MQL5 (часть 12): Хранение данных в SQLite и предотвращение повторных сделок

В этой статье мы заменяем встроенный CSV-снимок слоем SQLite, который сохраняет события календаря и идентификаторы сработавших сделок между перезапусками. База данных хранится в общей папке терминала и используется как графиками в реальном времени, так и тестером стратегий, поэтому оба режима читают одни и те же данные без перекомпиляции. Загрузчик по запросу с индикатором выполнения на холсте получает историю из API календаря и сохраняет ее для повторного использования в автономном режиме.
preview
Альтернатива временным барам (Часть 4): Эффективность разных типов баров в трендовых стратегиях и стратегиях возврата к среднему

Альтернатива временным барам (Часть 4): Эффективность разных типов баров в трендовых стратегиях и стратегиях возврата к среднему

Обеспечивает ли улучшение статистических свойств доходностей прирост эффективности стратегии? Мы фиксируем число временных баров, тиковых баров, тиковых баров дисбаланса и тиковых баров серий на 60,5 млн тиков EURUSD, затем выполняем метаразметку точек входа по RSI, полосам Боллинджера и ADX/DI и оцениваем результаты с помощью перекрестной проверки с очисткой. Ни одно семейство баров не дает стабильного преимущества; эффективность меняется в узких пределах, а лучший вариант не проходит перестановочный тест. Читатели узнают, как контролировать перекрытие, утечку данных и множественную проверку гипотез в исследованиях баров.
preview
Построение системы обнаружения дивергенций (Часть II): Пользовательский индикатор Adaptive SuperTrend

Построение системы обнаружения дивергенций (Часть II): Пользовательский индикатор Adaptive SuperTrend

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

Трейдинг с экономическим календарем MQL5 (Часть 11): Модульная новостная панель на Canvas

Мы перестраиваем информационную панель Экономического календаря MQL5: вместо монолитной панели, основанной на объектах, она становится модульной системой на Canvas, разделённой на четыре файла. В обновлении добавлены две темы оформления — светлая и тёмная, сворачиваемые группы дней, макет с изменяемым размером и прокруткой с пиксельной точностью, маркеры пересмотренных значений, а также обратный отсчёт в реальном времени со всплывающими уведомлениями. Кэш событий-кандидатов и таймер с ускоренной веткой, который перерисовывает только изменившиеся ячейки, повышают отзывчивость и упрощают расширение кодовой базы.
preview
Нейросети в трейдинге: Диффузионная генерация торговых планов (Сценарный расчёт)

Нейросети в трейдинге: Диффузионная генерация торговых планов (Сценарный расчёт)

Продолжаем торговую адаптацию DPCC и объединяем ранее разработанные OpenCL-кернелы в два класса MQL5: CNeuronScenarioRolloutOCL для сценарного расчёта торговых планов и CNeuronPlanProjectionOCL для их коррекции с учётом ограничений. Разбираем организацию данных, взаимодействие классов, поиск поправок и повторную проверку финансовых последствий. Показываем, как использовать эти механизмы в собственных моделях и различать допустимый план, исчерпание бюджета поиска и ошибку вычислений.
preview
Теория экстремальных значений в MQL5: Создание индикатора риска обвала с оценкой хвоста распределения — за рамками VaR по методу Монте-Карло

Теория экстремальных значений в MQL5: Создание индикатора риска обвала с оценкой хвоста распределения — за рамками VaR по методу Монте-Карло

Стандартные инструменты оценки риска на MQL5 используют недавние исторические данные и не учитывают, насколько тяжелым может быть левый хвост распределения. Мы реализуем теорию экстремальных значений (EVT) в MetaTrader 5: подгонку обобщенного распределения Парето (GPD) методом превышений над порогом (POT) с помощью ALGLIB, индикатор, который в реальном времени выводит VaR и ES на основе EVT, а также параметр формы хвоста, и советник, рассчитывающий размер позиций по оценке хвоста распределения. Тестирование на исторических данных в контролируемых условиях демонстрирует снижение просадки при неизменных точках входа.
preview
За пределами максимальной просадки: Создание анализатора ДНК просадки на MQL5

За пределами максимальной просадки: Создание анализатора ДНК просадки на MQL5

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

Нейронная сеть на практике: Чтение PNG-изображений из MNIST

Здесь мы рассмотрим, как реализовать простой алгоритм чтения изображений в формате PNG. Умение читать содержимое этих изображений будет важно для дальнейшей разработки топологии перцептронной сети. Это связано с тем, что мы начнём использовать базу данных MNIST для обучения сети, которую будем реализовывать.
preview
От начального к среднему уровню: Файл шаблона графика (III)

От начального к среднему уровню: Файл шаблона графика (III)

Некоторое время назад я опубликовал статью, которая вызвала большую путаницу, и многие из тех, кто её прочитал, плохо её поняли. Итак, в этой статье мы как раз вернёмся к тому понятию, которое в своё время, казалось, не имело никакого смысла, и объясним его гораздо лучше. То есть мы рассмотрим, как разместить несколько индикаторов в одном подокне так, чтобы их можно было легко читать и понимать.
preview
Индикатор средней цены входа маркет-мейкера

Индикатор средней цены входа маркет-мейкера

В статье исследуется, можно ли по обычным данным MetaTrader 5 оценить среднюю стоимость позиции пассивной стороны рынка, если реальные сделки и позиции маркет-мейкеров недоступны. Пошагово строится модель: от оценки направленного потока и виртуальной позиции до Inventory Basis, Reservation Price по Avellaneda–Stoikov и адаптивных Bid/Ask с учётом токсичности потока.
preview
Конструирование признаков для машинного обучения (Часть 4): Реализация временных признаков в MQL5

Конструирование признаков для машинного обучения (Часть 4): Реализация временных признаков в MQL5

Применение границ сессий из Python к временным меткам брокера в MQL5 приводит на любом брокере с часовым поясом, отличным от UTC, к ошибочной классификации принадлежности к сессиям на два–три часа и искажает флаги сессий по всей истории бэктеста. Мы реализуем файл CTimeFeatures.mqh, содержащий классы CRingBuffer и CTimeFeatures, с тремя методами, доступными для советников: Initialize (фиксация смещения относительно UTC и настройка частотного фильтра), Update (добавление логарифмической доходности в кольцевые буферы для соответствующих торговых сессий) и Calculate (циклическое кодирование, флаги торговых сессий и волатильность сессий). Результат — плоский массив типа double, совместимый по формату с Python-функцией get_time_features для таймфреймов меньше часа, часовых и дневных таймфреймов.
preview
От начального к среднему уровню: Файл шаблона графика (II)

От начального к среднему уровню: Файл шаблона графика (II)

В статье показано, как применять индикаторы к графикам, созданным с помощью объекта OBJ_CHART, используя шаблоны, когда ChartIndicatorAdd в этом контексте не работает. Мы объясняем, как сохранить шаблон с индикатором, получить идентификатор графика и применить ChartApplyTemplate к нужной цели. Вы научитесь интегрировать индикаторы как ресурс, автоматизировать настройку встроенного графика и поймёте некоторые практические ограничения, например то, что индикаторы не появляются в стандартном окне.
preview
Альтернатива временным барам (Часть 3): Индикатор в подокне для отображения альтернативных баров в MQL5

Альтернатива временным барам (Часть 3): Индикатор в подокне для отображения альтернативных баров в MQL5

AlternativeBarsViewer — индикатор в подокне, отрисовывающий все десять типов альтернативных баров как свечи с цветовой маркировкой. Он использует ту же иерархию CBarConstructor, что и BarBuilderEA, обеспечивая идентичность баров. Он поддерживает три источника данных (реальные тики, синтетические тики на основе OHLC или CSV-файл советника) и два режима отображения (TIME и INDEX), между которыми можно переключаться во время работы. Вырожденные бары выделяются, а сводная информация о них выводится на компактной панели, что позволяет выполнять калибровку в реальном времени, не выходя из терминала.
preview
Нейронная сеть на практике: Ручное обратное распространение

Нейронная сеть на практике: Ручное обратное распространение

В этой статье мы начнём закладывать основы понимания того, как работает обратное распространение. Понимание этих основ необходимо для того, чтобы понять, как различные перцептроны могут по отдельности настраивать свои параметры, даже если в сети их произвольное количество. Цель состоит не в том, чтобы реализовать обратное распространение, а в том, чтобы создать простой механизм, который позволит вам понять, как оно работает.
preview
Нейронная сеть на практике: Начинаем строить цепочку

Нейронная сеть на практике: Начинаем строить цепочку

Пришло время начать разбираться в том, как соединять перцептроны в цепочку. Это позволит нам реализовать то, что известно как сеть перцептронов. Эта сеть составляет основу всего того, что вы знаете и используете как ту или иную форму «искусственного интеллекта». Однако построение такой сети связано с рядом трудностей. Здесь мы начнём разбираться, в чём они заключаются.
preview
Создание объектно-ориентированного движка инференса ONNX на языке MQL5

Создание объектно-ориентированного движка инференса ONNX на языке MQL5

В статье рассказывается, как запускать модели, обученные на Python, непосредственно в MetaTrader 5 с помощью функций ONNX терминала. Мы создаем класс MQL5, который инкапсулирует создание сеанса, фиксирует формы входных/выходных тензоров, применяет min-max-нормализацию признаков, чтобы повторять обработку, использованную при обучении, и запускает OnnxRun один раз на каждый бар, чтобы снизить нагрузку на ЦП. В результате получается надежный и удобный в сопровождении канал инференса для графиков в реальном времени и Тестера стратегий без использования сокетов или DLL-библиотек.
preview
Альтернатива временным барам (Часть 2): Построение баров серий в MQL5

Альтернатива временным барам (Часть 2): Построение баров серий в MQL5

Мы реализуем тиковые, объемные и долларовые бары серий в Python и MQL5 и встраиваем их в существующий фреймворк построения баров. В статье подробно описаны обновление двух накопителей, офлайн-калибровка с начальными значениями для каждого направления, сохранение состояния в советниках и проверка совпадения результатов Python и MQL5. Бары серий (runs bar) выявляют односторонние всплески активности, которые может скрывать метрика чистого дисбаланса, улучшая тем самым охват данных в спокойные сессии и для моделей возврата к среднему.