Создание пользовательских индикаторов в MQL5 (Часть 11): Улучшение футпринт-графика с помощью слоёв рыночной структуры и ордер-флоу
В статье MQL5-индикатор футпринт-графика расширяется слоями рыночной структуры и ордер-флоу: барами объёмного профиля, точкой контроля (Point of Control, POC), подсветкой зоны стоимости (value area), выявлением последовательных дисбалансов, зонами поглощения, а также маркерами single print (одиночных принтов) и unfinished business (незавершённой аукционной отработки экстремума). Мы расширим структуры данных бара, добавим функции для POC/зоны стоимости, дисбаланса и поглощения, а также построим конвейер отрисовки с фиксированным порядком слоёв. Вы получите готовые входные параметры, метаданные и утилиты отрисовки для интеграции и настройки этих слоёв в индикаторе.
От начального до среднего уровня: Объекты (II)
В сегодняшней статье мы рассмотрим, как простым способом управлять некоторыми свойствами объектов с помощью кода. Мы также рассмотрим, как с помощью специального приложения можно разместить более одного объекта на одном графике. Кроме того, мы начнём разбираться в важности присвоения краткого названия любому индикатору, который мы собираемся внедрить.
Разработка инструментария для анализа Price Action (Часть 47): Отслеживание торговых сессий Forex и пробоев в MetaTrader 5
Глобальные рыночные сессии задают ритм торгового дня, и понимание того, как они пересекаются, важно для выбора моментов входа и выхода. В этой статье мы создадим интерактивного советника для визуализации торговых сессий, который наглядно показывает часы работы мировых рынков прямо на графике. Советник автоматически строит цветные прямоугольники для сессий Азии, Токио, Лондона и Нью-Йорка, обновляя их в реальном времени по мере открытия и закрытия каждой сессии. В нем есть кнопки-переключатели на графике, динамическая информационная панель и бегущая строка с сообщениями о текущем состоянии и пробоях. Протестированный на разных брокерах, этот советник сочетает точность и удобную визуальную подачу, помогая видеть переходы волатильности, выявлять пробои между сессиями и сохранять визуальную связь с динамикой мирового рынка.
Автоматизация индикатора Market Memory Zones: Зоны, куда цена с высокой вероятностью вернется
В этой статье Market Memory Zones превращается из сугубо визуальной концепции на графике, в полноценный советник MQL5. Советник автоматизирует зоны смещения, изменения структуры (CHoCH) и снятия ликвидности с помощью фильтров ATR и свечной структуры, применяет подтверждение на младшем таймфрейме и рассчитывает размер позиции с учетом риска, используя динамический стоп-лосс и тейк-профит на основе структуры. Рассматривается архитектура кода для обнаружения зон, входов в сделки, управления сделками и визуализации, а также краткий обзор тестирования на исторических данных.
Алгоритм оптимизации Архимеда — Archimedes Optimization Algorithm (AOA)
В статье рассматривается алгоритм оптимизации Архимеда — метаэвристика, в которой агент представлен физическим объектом с плотностью, объёмом и ускорением, а сам поиск переосмыслен как стремление погружённых в жидкость тел к равновесию. Баланс между разведкой и эксплуатацией здесь не задаётся внешним расписанием, а вытекает из физики затихающей турбулентности. Реализуем алгоритм на MQL5, прогоняем на стандартном стенде и разбираем, где такая идея работает.
Создаем объемные 3D бары на MQL5
Переносим 3D-бары из Python в нативный MQL5: вместо plotly и моста к терминалу — сцена на CCanvas3D и DirectX 11 прямо на графике. Цена, время и тиковый объём раскладываются по трём осям, геометрия собирается вручную из вершин и треугольников, а орбитальная камера на событиях мыши даёт интерактивный осмотр без внешних зависимостей.
Рыночные секреты Ларри Уильямса (Часть 2): Автоматизация торговой системы на основе рыночной структуры
Узнайте, как автоматизировать концепции рыночной структуры Ларри Уильямса в MQL5, создав полноценный советник, который считывает свинговые точки, генерирует торговые сигналы, управляет риском и применяет динамическую стратегию трейлинг-стопа.
Нейросети в трейдинге: Внимание, память и рыночные паттерны в GDformer (Global Dictionary)
Представлена реализация основного модуля GDformer — Global Dictionary-based Cross-Attention — для анализа финансовых временных рядов в среде MQL5/OpenCL. Описаны глобальный словарь паттернов, многоголовое кросс-внимание, ветка сходства с обучаемыми прототипами и разреженный SoftMax без повторной нормализации. Показано, как получать устойчивое контекстное представление рыночного состояния для последующего использования в торговой инфраструктуре.
Интеграция MQL5 с пакетами обработки данных (Часть 5): Адаптивное обучение и гибкость
В этой части основное внимание уделяется созданию гибкой, адаптивной торговой модели, обученной на исторических данных XAUUSD. Мы подготовим ее к экспорту в ONNX и потенциальной интеграции в системы реальной торговли.
Автоматизация торговых стратегий в MQL5 (Часть 28): Создание гармонического паттерна "Летучая мышь" на основе Price Action с визуальной обратной связью
В этой статье мы разработаем систему распознавания гармонических паттернов "Летучая мышь" на языке MQL5, которая определяет бычьи и медвежьи гармонические паттерны "Летучая мышь" с использованием пивотных точек и коэффициентов Фибоначчи, запускает сделки с точными уровнями входа, стоп-лосса и тейк-профита. Система также визуализирует паттерны с помощью графических объектов.
Моделирование рынка (Часть 19): Первые шаги на SQL (II)
Как мы объясняли в первой статье о SQL, нет смысла тратить время на программирование процедур для выполнения того, что уже включено в SQL. Однако, если не знать самых основ, вы не сможете ничего сделать с помощью SQL, чтобы воспользоваться всеми преимуществами, которые предлагает этот инструмент. Поэтому в данной статье мы рассмотрим, как выполнять основные задачи в базах данных.
Преодоление ограничений машинного обучения (Часть 2): Отсутствие воспроизводимости
В статье рассматривается, почему результаты торговли могут значительно различаться у разных брокеров, даже при использовании одной и той же стратегии и финансового символа, из-за децентрализованного ценообразования и расхождений в данных. Эта статья помогает разработчикам MQL5 понять, почему их продукты могут получать неоднозначные отзывы на MQL5 Marketplace, и призывает разработчиков адаптировать свои подходы к конкретным брокерам для обеспечения прозрачных и воспроизводимых результатов. В случае широкого распространения это может стать важной, узкоспециализированной передовой практикой, которая принесет пользу нашему сообществу.
Торговые инструменты MQL5 (Часть 4): Улучшаем панель мультитаймфреймового сканера — динамическое позиционирование и сворачивание/разворачивание
В этой статье мы обновим панель сканера по нескольким таймфреймам на MQL5, добавив в нее функции перемещения и переключения. Включаем перетаскивание панели и функцию сворачивания / разворачивания для лучшего использования экрана. Реализуем и тестируем эти усовершенствования для повышения гибкости торговли.
Автоматизация торговых стратегий в MQL5 (Часть 30): Создание гармонического паттерна AB=CD на основе Price Action с визуализацией
В этой статье мы разрабатываем советник распознавания паттернов AB=CD на языке MQL5, который определяет бычьи и медвежьи гармонические паттерны AB=CD с использованием точек разворота и уровней Фибоначчи, открывая сделки с точными уровнями входа, стоп-лосса и тейк-профита. Мы также улучшим визуальное представление паттерна с помощью графических объектов.
Кодекс рыночных состояний в MQL5 (Часть 1): Побитовое обучение на примере Nvidia
Мы начинаем новую серию статей, которая развивает наши предыдущие наработки, изложенные в серии о MQL5 Wizard, и продвигает их дальше по мере усиления нашего подхода к системной торговле и тестированию стратегий. В этой новой серии мы сосредоточимся на советниках, запрограммированных на удержание только одного типа позиций — преимущественно длинных. Сосредоточение на одном направлении торговли может упростить анализ, снизить сложность стратегии и дать важные наблюдения, особенно при работе с активами за пределами Forex. Поэтому в этой серии мы исследуем, эффективен ли такой подход для акций и других невалютных активов, где long-only-системы часто хорошо согласуются с подходом smart money и стратегиями институциональных участников.
Рыночные секреты Ларри Уильямса (Часть 11): Индикатор для обнаружения разворотов Smash Day
Мы преобразуем правила разворота Smash Day Ларри Уильямса в пользовательский индикатор MQL5, который отмечает подтвержденные сетапы стрелками. Шаг за шагом в статье показаны привязка буферов, свойства графических построений, заполнение буферов на исторических данных и обновления в реальном времени внутри OnCalculate. Настраиваемое количество предыдущих баров для проверки и наглядное отображение на графике помогают быстро выявлять развороты, соответствующие условиям модели, при этом итоговые торговые решения остаются дискреционными и зависят от контекста.
Моделирование рынка (Часть 24): Первые шаги на SQL (VII)
В предыдущей статье мы завершили необходимое введение в тему SQL. И то, что мы хотели показать и объяснить о SQL, на мой взгляд, мы разъяснили должным образом. Так было сделано для того, чтобы каждый, кто придет посмотреть на строящуюся систему репликации/моделирования, мог хотя бы получить представление о том, что там может происходить. Дело в том, что нет смысла программировать вещи, с которыми SQL справляется идеально.
Архитектура машинного обучения для MetaTrader 5 (Часть 8): Байесовская оптимизация гиперпараметров с Purged Cross-Validation и ранним отсечением испытаний
GridSearchCV и RandomizedSearchCV имеют фундаментальное ограничение в финансовом ML: каждое испытание независимо, поэтому качество поиска не улучшается с ростом вычислительного бюджета. В этой статье Optuna — с использованием Tree-structured Parzen Estimator — интегрируется с кросс-валидацией PurgedKFold, ранней остановкой HyperbandPruner и соглашением о двух типах весов, которое разделяет веса обучения и веса оценки. В результате получается система из пяти компонентов: целевая функция с отсечением на уровне фолдов, слой преобразования/подстановки параметров, совместно оптимизирующий схему взвешивания и гиперпараметры модели, финансово откалиброванное отсечение, возобновляемый оркестратор на базе SQLite и конвертер в формат scikit-learn cv_results_. В статье также проводится четкое разграничение — на основе Тимоти Мастерса — между статистическими целями, где направленный поиск полезен, и финансовыми целями, где он вреден.
Разработка инструментария для анализа Price Action (Часть 54): Фильтрация трендов с помощью EMA и сглаженных ценовых данных
В этой статье рассматривается метод, сочетающий сглаживание Heikin-Ashi с границами EMA20 по максимумам и минимумам, а также фильтром тренда EMA50, чтобы сделать сигналы понятнее, а входы точнее. Статья показывает, как эти инструменты помогают трейдерам выявлять реальный импульс, отсекать шум и увереннее работать на волатильном или трендовом рынке.
От начального до среднего уровня: Словно мыльные пузыри
В этой статье будет объяснен очень простой и легкий для понимания механизм, целью которого является сортировка любого массива. В ней мы увидим, что полученный результат не всегда соответствует ожиданиям, поэтому для достижения нужных показателей потребуется адаптировать саму реализацию.
Алгоритм бактериальной эволюции — Bacterial Evolutionary Algorithm (BEA)
Статья посвящена бактериальному эволюционному алгоритму Нава — Фурухаси (BEA) и его двум ключевым операторам: посегментной бактериальной мутации для локальной оптимизации и горизонтальному переносу генов для обмена удачными фрагментами решений. Мы реализуем BEA в каркасе C_AO как конечный автомат под фиксированный бюджет оценок, тестируем на Hilly, Forest и Megacity и поясняем терминологическую развилку с моделью Нумаоки.
VQC-фильтр с живым обучением прямо в MQL5 поверх графового fair-value скальпера
В статье реализован двухслойный подход к входу в сделку: графовый fair-value скальпер по 28 валютным парам и вероятностный VQC‑фильтр — классически симулированная схема вращений с онлайн‑обучением в MQL5 через parameter‑shift и Adam. Разбираются кодирование признаков, аналитический градиент, согласование направлений, калибровка порога уверенности и защита от подглядывания в будущее. Читатель получает рабочую архитектуру фильтра и практические приёмы её интеграции в советник.
Создание самооптимизирующихся советников на MQL5 (Часть 10): Факторизация матриц
Факторизация — это математический процесс, используемый для получения представления о свойствах данных. Когда мы применяем факторизацию к большим наборам рыночных данных — организованных в строки и столбцы — мы можем выявлять закономерности и характеристики рынка. Факторизация является мощным инструментом, и в этой статье показано, как использовать её в терминале MetaTrader 5 через API MQL5, чтобы получить более глубокое понимание рыночных данных.
Теория графов: Применение поиска в глубину (DFS) в торговых системах
В этой статье метод поиска в глубину применяется к структуре рынка путем моделирования максимумов и минимумов свингов в виде узлов графа и отслеживания одного структурного пути настолько глубоко, насколько остаются валидными соответствующие условия. Когда ключевой свинг пробит, алгоритм возвращается назад и исследует альтернативную ветвь. Читатели получают практический фреймворк для формализации структурной направленности и проверки того, соответствует ли текущий путь таким целям, как пулы ликвидности или зоны спроса и предложения.
Нейросети в трейдинге: Принятие торговых решений с учётом неопределённости (Модули прогнозирования и планирования)
Статья продолжает адаптацию фреймворка UncAD к алгоритмическому трейдингу и фокусируется на модулях прогнозирования и планирования. Унитарные рыночные ряды заменяют участников сцены, а состояние счёта играет роль ego-агента. Реализованы CNeuronUncADUGP и CNeuronUncADUGPL, которые связывают прогноз, карту рыночных состояний и неопределённость с торговым контекстом, чтобы формировать согласованные сценарии и подготавливать решения по входу, удержанию и снижению риска.
Моделирование рынка (Часть 21): Первые шаги на SQL (IV)
Многие из вас, возможно, обладают гораздо большим опытом в области работы с базами данных, чем я, и, следовательно, имеют другое мнение. Поскольку было необходимо дать объяснение, почему базы данных создаются именно так, как они создаются, и нужно объяснить, почему SQL имеет именно такой формат и, прежде всего, почему появились первичные ключи и внешние ключи, поэтому пришлось оставить некоторые вещи немного абстрактными.
Упрощение работы с базами данных в MQL5 (Часть 1): Введение в базы данных и SQL
Мы рассмотрим, как работать с базами данных в MQL5, используя встроенные функции языка. Мы рассмотрим все аспекты, от создания, вставки, обновления и удаления таблиц до импорта и экспорта данных, и все это с примерами кода. Данный материал служит прочной основой для понимания внутренних механизмов доступа к данным, подготавливая почву для обсуждения ORM (Object-Relational Mapping, объектно-реляционное отображение), где мы создадим его на языке MQL5.
Архитектура машинного обучения для MetaTrader 5 (Часть 15): Как калибровать уровни тейк-профита и стоп-лосса по синтетическим данным
В статье применяется оптимальное торговое правило из главы 13 AFML для задания уровней тейк-профита и стоп-лосса без внутривыборочной калибровки. Мы моделируем P&L после входа дискретным процессом Орнштейна–Уленбека, выполняем поиск по 100 000 траекториям и используем Python, multiprocessing и параллельное ядро Numba с декоратором @njit (в 242 раза быстрее). Результат — оптимальная пара (PT, SL) для трех спецификаций прогноза с учетом дневного лимита убытков, установленного проп-фирмой.
Моделирование рынка (Часть 23): Первые шаги на SQL (VI)
В этой статье мы рассмотрим, как выполнить визуализацию и, следовательно, поймем, как структурирована база данных. Это было сделано с помощью анализа внутренней структуры базы данных. Хотя подобные вещи могут показаться излишними, они вполне оправданы, если мы действительно намерены стать администраторами баз данных. Да, есть люди, которые зарабатывают на жизнь, поддерживая и создавая базы данных.
Создание торговой системы (Часть 3): Определение минимального уровня риска для достижения реалистичных целей по прибыли
Конечной целью каждого трейдера является прибыльность, именно поэтому многие устанавливают конкретные цели по прибыли, которых необходимо достичь в течение определенного периода торговли. В этой статье мы будем использовать моделирование методом Монте-Карло, чтобы определить оптимальный процент риска на сделку, необходимый для достижения торговых целей. Полученные результаты помогут трейдерам оценить, являются ли их целевые показатели прибыли реалистичными или чрезмерно амбициозными. Наконец, мы обсудим, какие параметры можно скорректировать, чтобы установить реалистичный уровень риска на сделку, соответствующий торговым целям.
Архитектура машинного обучения для MetaTrader 5 (Часть 7): От разрозненных экспериментов к воспроизводимым результатам
В последней части этой серии мы выходим за рамки отдельных методов машинного обучения и переходим к проблеме “исследовательского хаоса”, с которым сталкиваются многие количественные трейдеры. Эта статья посвящена переходу от разрозненных экспериментов в Jupyter Notebook к продуманному пайплайну промышленного уровня, обеспечивающему воспроизводимость, отслеживаемость и эффективность.
Двумерные копулы в MQL5 (Часть 1): Реализация гауссовой копулы и t-копулы Стьюдента для моделирования зависимостей
Это первая часть серии статей, посвящённых реализации двумерных копул в MQL5. В статье представлен код, реализующий гауссову копулу и t-копулу Стьюдента. Также рассматриваются основы статистических копул и связанные с ними темы. Код основан на Python-пакете ArbitrageLab от Hudson and Thames.
TradeMux как Quant Backbone: Подключение институциональных Python-пайплайнов к разным терминалам и брокерам
Статья описывает TradeMux как мост между Python-пайплайном и терминалом MetaTrader 5 для чистой передачи торговых решений без дублирования логики. Разобрана production-архитектура из четырёх слоёв и полный Python execution service: подключение, чтение счёта и позиций, генерация сигналов (включая CatBoost), предторговый риск-контроль, kill_switch и supervisor. Практическая польза — кросс-брокерная нормализация (RoboForex, IC Markets, Alpari, OANDA) и масштабирование от одного счёта к мультисчётному broadcast без изменения торговой логики.
Знакомство с языком MQL5 (Часть 41): Руководство для начинающих по работе с файлами в MQL5 (III)
Узнайте, как читать CSV-файл в MQL5 и упорядочивать содержащиеся в нем торговые данные в динамических массивах. В этой статье пошагово показано, как подсчитать элементы файла, сохранить все данные в едином массиве и разнести каждый столбец по отдельным массивам, заложив основу для более продвинутого анализа и визуализации торговой эффективности.
Тестер стратегий для Python и MetaTrader 5 (Часть 04): Основы работы тестера
В этой увлекательной статье мы создадим своего первого торгового робота в симуляторе и запустим тестирование стратегии, напоминающее работу тестера стратегий MetaTrader 5, а затем сравним результат, полученный в пользовательской симуляции, с результатом в нашем любимом терминале.
Моделирование рынка (Часть 22): Первые шаги на SQL (V)
Прежде, чем вы сдадитесь и решите отказаться от изучения SQL, позвольте мне напомнить вам, уважаемые читатели, что здесь мы всё ещё используем только самые базовые элементы. Мы ещё не рассмотрели некоторые возможности SQL. Как только вы их усвоите, вы увидите, что SQL гораздо практичнее, чем кажется. Хотя, скорее всего, мы в конечном итоге изменим направление того, что мы создаем, потому, что процесс создания является динамичным. Мы покажем немного больше о создании разных вещей в SQL, ведь это по настоящему важно и нужно вам. Просто думать, что вы более способны, чем целое сообщество программистов и разработчиков, приведет только к потере времени и возможностей. Не переживайте, потому что дальше будет ещё интереснее.
Моделирование рынка: Первые шаги на SQL в MQL5 (II)
Хотя многие считают, что мы можем без проблем встраивать SQL-код в другой код, обычно это не так. Причина заключается в том, что SQL-код включается в исполняемый файл в виде строки. И тот факт, что SQL-код внедряется в виде строки, хотя и не вызывает проблем в небольших фрагментах, в итоге это может создать нам немало головной боли.
Машинное обучение и Data Science (Часть 39): Тестируем связку новостей с ИИ
Новости оказывают существенное влияние на финансовые рынки, особенно если говорить о важнейших публикациях, например по занятости в несельскохозяйственном секторе (Non-Farm Payrolls, NFPs). Мы не раз видели, как один единственный заголовок может спровоцировать резкие колебания цен. В этой статье мы рассмотрим в деталях связку новостей и возможностей искусственного интеллекта.
Нейросети в трейдинге: Адаптивная факторная токенизация (Основные компоненты)
Продолжаем перенос современных подходов, предложенных авторами фреймворка MTmixATT, на задачи финансовых временных рядов. Представлены практические реализации модулей Multi-Mix Attention и разреженного выбора эксперта, позволяющие структурировать признаки и формировать динамически адаптивных экспертов на основе текущих рыночных данных. Особое внимание уделено оригинальности подхода и его потенциалу для адаптивного структурного анализа рынка.
Построение моделей волатильности в MQL5 (Часть I): Первичная реализация
В этой статье мы представляем библиотеку MQL5 для моделирования волатильности, разработанную так, чтобы функционировать аналогично пакету arch в Python. В настоящее время библиотека поддерживает спецификацию распространённых моделей условного среднего: HAR, AR, Constant Mean и Zero Mean, а также моделей условной волатильности: Constant Variance, ARCH и GARCH.