Переосмысливаем классические стратегии (Часть 15): Стратегия пробоя диапазона предыдущего дня
Трейдеры-люди уже давно работали на финансовых рынках до появления компьютеров, разработав практические правила, которыми они руководствовались при принятии решений. В этой статье мы вновь рассмотрим хорошо известную стратегию пробоя, чтобы проверить, может ли такая рыночная логика, усвоенная на опыте, конкурировать с систематическими методами. Наши результаты показывают, что, хотя первоначальная стратегия обеспечивала высокую точность, она страдала от нестабильности и слабого контроля рисков. Совершенствуя этот подход, мы продемонстрируем, как инсайты дискреционных трейдеров можно адаптировать в более надежные алгоритмические торговые стратегии.
Нейросети в трейдинге: Потоковые модели с остаточной высокочастотной адаптацией (модуль HTR)
Продолжаем работу над реализацией подходов, предложенных авторами фреймворка ResFlow. В статье представлена реализация высокочастотного модуля HTR. В нем контекст и локальная динамика приводятся к сопоставимому виду, проходят рекуррентный блок, а затем формируют согласованное внутреннее представление потока.
Инжиниринг признаков для машинного обучения (Часть 1): дробное дифференцирование — стационарность без потери памяти
Целочисленное дифференцирование заставляет выбирать между стационарностью и памятью: доходности (d = 1) стационарны, но отбрасывают всю информацию об уровне цены; исходные цены (d = 0) сохраняют память, но нарушают предпосылку стационарности, важную для моделей машинного обучения. В статье реализован метод дробного дифференцирования с окном фиксированной ширины (FFD) из главы 5 AFML: get_weights_ffd — итеративная рекурсия с отсечением по порогу, frac_diff_ffd — ограниченное скалярное произведение для каждого бара, fracdiff_optimal — бинарный поиск минимального стационарного d*.
Знакомство с языком MQL5 (Часть 31): Освоение API и функции WebRequest в языке MQL5 (V)
Узнайте, как использовать функцию WebRequest и вызовы внешних API, чтобы получать свежие свечные данные, преобразовывать каждое значение в пригодный тип и аккуратно сохранять информацию в табличном виде. Этот шаг закладывает основу для создания индикатора, который визуализирует данные в свечном формате.
Автоматизация торговых стратегий с помощью MQL5 (Часть 47): Торговая система Nick Rypock Trailing Reverse (NRTR) с поддержкой хеджирования
В этой статье мы разрабатываем торговую систему Nick Rypock Trailing Reverse (NRTR) на языке MQL5, которая использует сигналы разворота на основе канала и позволяет открывать позиции по тренду с поддержкой хеджирования для покупок и продаж. Мы добавим функции управления рисками: автоматический расчет лота на основе средств счета или баланса, фиксированные или динамические уровни стоп-лосса и тейк-профита с использованием множителей ATR, а также ограничения по числу позиций.
Архитектура машинного обучения для MetaTrader 5 (Часть 9): Интеграция байесовской оптимизации гиперпараметров в производственный пайплайн
В этой статье бэкенд оптимизации гиперпараметров Optuna (HPO) интегрируется в единый ModelDevelopmentPipeline. Добавлены совместная настройка гиперпараметров модели и схем весов выборки, раннее отсечение с Hyperband и отказоустойчивое SQLite-хранилище исследований. Пайплайн автоматически определяет первичные и вторичные модели, добавляет перед моделью обученный препроцессор удаления столбцов, обеспечивающий безопасный инференс, поддерживает последовательный бутстрэппинг, формирует отчет Optuna и интегрируется с bid/ask-пайплайном и LearnedStrategy. Читатели получают более быстрые, возобновляемые запуски и развертываемые самодостаточные модели.
Архитектура машинного обучения для MetaTrader 5 (Часть 13): Реализация расчета размера позиции в MQL5
Мы создаем набор инструментов промышленного уровня для расчета размера позиции в MQL5: утилиты, фрагменты кода и пользовательские функции, которые повторяют исходные реализации на Python. Методы охватывают преобразование вероятности в размер позиции с коррекцией перекрытия, динамический расчет размера позиции по прогнозной цене (калиброванные сигмоидальная и степенная функции с лимитной ценой), бюджетирование на основе текущей занятости портфеля и резервный метод расчета размера позиции на основе модели смеси (EF3M). Результат — размер позиции со знаком в диапазоне [−1, ..., 1] плюс диагностика, которую можно напрямую подключить к логике ордеров.
Нейросети в трейдинге: Оценка риска по несогласованности представлений (Окончание)
В статье представлена инженерная реализация ReGEN-TAD для онлайн-обработки: единый вычислительный конвейер с магистралью (backbone) и универсальной генеративной головой прогнозирования/уточнения/реконструкции. Разобрана организация прямого и обратного прохода с запаздывающей обратной связью и контроль согласованности представлений. Тестирование в потоковом режиме иллюстрирует поведение системы и ограничения по риску; читатель получает готовую схему интеграции в торговый конвейер.
Трейдинг с экономическим календарем MQL5 (Часть 10): Перетаскиваемая панель и hover-эффекты на кнопках
Мы продолжаем улучшать возможности торговли с экономическим календарем MQL5 и сегодня добавим перетаскиваемую панель, которая позволит перемещать элементы, чтобы при необходимости лучше видеть график. Также добавим эффекты при наведении курсора на кнопки, чтобы еще больше улучшить работу с панелью.
Неопределенность как модель (Часть 2): Зависимости случайных величин — от корреляции до копул
Во второй части цикла рассматривается математический аппарат многомерных случайных величин, необходимый для анализа зависимостей и совместного поведения рыночных активов. Описываются функции совместного распределения, понятия маржинальных и условных распределений, а также условия зависимости и независимости величин. Теоретический материал базируется на расширении аналогии вероятности с массой в многомерное пространство. Особое внимание уделено мерам связи: от классической линейной ковариации и корреляции до современных инструментов — копул и взаимной информации Шеннона.
Разработка инструментария для анализа Price Action (Часть 61): Структурные пробои наклонных трендовых линий с подтверждением по трем свингам
Представлен инструмент для анализа пробоев наклонных трендовых линий, который использует проверку по трем свингам для генерации объективных сигналов Price Action. Система автоматизирует выявление свингов, построение трендовых линий и подтверждение пробоев, используя логику пересечения цены с линией, чтобы снизить шум и стандартизировать исполнение сигналов. В статье изложены правила стратегии, показана реализация на языке MQL5 и рассмотрены результаты тестирования; инструмент предназначен для анализа и подтверждения сигналов, а не для автоматической торговли.
Нейросети в трейдинге: Адаптивная факторная токенизация (Окончание)
Статья завершает перенос и интеграцию ключевых компонентов фреймворка MTmixAtt в архитектуру торговой модели для анализа рыночных данных. Продемонстрировано, как адаптивная токенизация и блоки MTmixAttBlock позволяют эффективно выявлять локальные и глобальные паттерны, учитывать сценарии поведения цены.
Торговые инструменты на MQL5 (Часть 5): Создание бегущей тикерной строки для мониторинга символов в реальном времени
В данной статье мы разрабатываем бегущую тикерную строку на языке MQL5 для мониторинга в реальном времени нескольких инструментов, отображающую цены Bid, спреды и ежедневные процентные изменения с эффектом прокрутки. Мы реализуем настраиваемые шрифты, цвета и скорость прокрутки, чтобы эффективно выделять движение цен и тренды.
Разработка системы репликации (Часть 63): Нажатие кнопки воспроизведения в сервисе (IV)
В этой статье мы наконец решим проблемы моделирования тиков на одноминутном баре, чтобы те могли сосуществовать с реальными тиками. Таким образом, мы избежим возникновения проблем в будущем. Представленный здесь контент предназначен только для образовательных целей. Ни в коем случае его не следует рассматривать как приложение, предназначенное для чего-то иного, кроме изучения и освоения представленных концепций.
От начального до среднего уровня: Объекты (III)
В сегодняшней статье мы рассмотрим, как можно реализовать очень привлекательную и интересную систему взаимодействия, особенно для тех, кто только начинает практиковаться в программировании на MQL5. В этом нет ничего принципиально нового. Благодаря моему подходу к теме будет гораздо проще понять всё, поскольку мы увидим на практике, как разрабатывается структурное программирование с довольно интересной целью.
Создание самооптимизирующихся советников на MQL5 (Часть 8): Анализ нескольких стратегий
Как лучше всего объединить несколько стратегий для создания мощной ансамблевой стратегии? Мы рассмотрим, как объединить три различные стратегии в нашем торговом приложении. Трейдеры часто используют специализированные стратегии для открытия и закрытия позиций, и мы хотим узнать, могут ли машины выполнять эту задачу лучше. В начале нашего обсуждения мы ознакомимся с возможностями тестера стратегий и принципами объектно-ориентированного программирования, которые нам понадобятся для решения этой задачи.
Преодоление ограничений машинного обучения (Часть 6): Эффективная кросс-валидация исторической памяти рынка
В этом обсуждении мы противопоставим классический подход к кросс-валидации временных рядов современным альтернативам, бросающим вызов его основным допущениям. Мы выявляем ключевые «слепые зоны» традиционной кросс-валидации, особенно её неспособность учитывать меняющиеся рыночные условия. Для устранения этих пробелов мы внедряем эффективную кросс-валидацию исторической памяти рынка (Effective Memory Cross-Validation, EMCV) - подход, ориентированный на предметную область, ставящий под сомнение устоявшееся мнение о том, что увеличение объема исторических данных всегда повышает показатели результатов.
Нейросети в трейдинге: Единая архитектура взаимодействия рыночных признаков и торгового контекста (Основные компоненты)
Рассматривается реализация OneTrans для задач трейдинга на MQL5: FlashAttention на OpenCL, модуль многоголового кросс‑внимания, смешанный Feed‑Forward и объект верхнего уровня. Поясняется адаптация к финансовым данным, кэширование Key/Value и формирование стека токенов. Читатель получит рабочий каркас и примеры соединения компонентов в согласованный вычислительный граф.
Торговые инструменты на языке MQL5 (Часть 8): Улучшенная информационная панель с возможностью перетаскивания и сворачивания
В этой статье мы разрабатываем улучшенную информационную панель, дополняющую предыдущую часть, добавляя функции перетаскивания и сворачивания для улучшения взаимодействия с пользователем, сохраняя при этом мониторинг позиций с несколькими символами и показателей счета в режиме реального времени.
Переосмысливаем классические стратегии (Часть 16): Стратегия пробоя двойных полос Боллинджера
Эта статья знакомит читателя с переосмысленной версией классической стратегии пробоев полос Боллинджера. В ней определены ключевые недостатки первоначального подхода, такие как его хорошо известная подверженность ложным пробоям. Цель статьи - представить возможное решение: торговую стратегию двойных полос Боллинджера (Double Bollinger Band). Этот относительно малоизвестный подход устраняет слабые места классической версии и предлагает более динамичный взгляд на финансовые рынки. Он помогает преодолеть старые ограничения, определенные первоначальными правилами, предлагая трейдерам более устойчивую и адаптивную систему.
Торговые инструменты на MQL5 (Часть 18): Скруглённые текстовые выноски с настройкой ориентации
В этой статье показано, как создавать скругленные текстовые выноски в MQL5, комбинируя скругленный прямоугольник с треугольником-указателем и управляя ориентацией (вверх, вниз, влево, вправо). В ней подробно описаны предварительные вычисления геометрии, суперсэмплированное заполнение, закругленные дуги вершин и сегментированные рамки с коэффициентом расширения для бесшовных соединений. Читатели получат настраиваемый код для установки размера, радиуса, цвета, прозрачности и толщины, готовый для использования в качестве оповещений или всплывающих подсказок в торговых интерфейсах.
Преодоление ограничений машинного обучения (Часть 4): Как уменьшить неустранимую ошибку с помощью нескольких горизонтов прогноза
Машинное обучение часто рассматривается через призму статистики или линейной алгебры, но в этой статье особое внимание уделяется геометрической перспективе предсказаний моделей. В ней демонстрируется, что модели на самом деле не приближают цель к действительности, а скорее переносят ее в новую систему координат, создавая неизбежное смещение, которое приводит к неустранимой ошибке. В статье предполагается, что многоступенчатые прогнозы, сравнивающие прогнозы модели на разных горизонтах, предлагают более эффективный подход, чем прямые сравнения с целевым показателем. Применяя этот метод к торговой модели, авторы статьи демонстрируют значительное повышение прибыльности и точности без изменения базовой модели.
От начального до среднего уровня: Указатель на функцию
Вы, вероятно, уже слышали о указателях, когда речь заходит о программировании. А вы знали, что мы можем использовать данные такого типа здесь, в MQL5? Это, конечно, должно быть сделано так, чтобы мы не теряли контроль и не вызывали странного поведения программы во время её выполнения. Тем не менее, поскольку это ресурс очень специфического назначения и ориентированный на определенные виды деятельности, редко можно услышать, чтобы кто-то обсуждал, что такое указатель и как его использовать в MQL5.
Разработка инструментария для анализа Price Action (Часть 29): Советник "Boom and Crash Interceptor"
Узнайте, как советник Boom & Crash Interceptor превращает ваши графики в проактивную систему оповещений, выявляющую взрывные движения с помощью быстрого анализа скорости, проверки всплесков волатильности, подтверждения тренда и фильтров пивот-зон. Четкие зеленые стрелки "Boom" и красные "Crash" помогают быстрее принимать решения: этот инструмент отсекает рыночный шум и позволяет эффективнее использовать ценовые всплески. Давайте разберем, как это работает и почему этот инструмент может стать вашим следующим важным преимуществом в торговле.
Архитектура машинного обучения для MetaTrader 5 (Часть 10): Определение размера позиции в финансовом машинном обучении
Фиксированные доли и сырые вероятности неверно распределяют риск при перекрывающихся метках и провоцируют чрезмерную торговлю. В статье представлены четыре метода определения размера позиции, совместимые с AFML: вероятностный (z-score → CDF, усреднение активных сигналов, дискретизация), на основе прогнозной цены (sigmoid/power с калибровкой w и лимитной ценой), бюджетно-ограниченный (только направление) и резервный (mixture-CDF через EF3M). На выходе получается знаковый, ограниченный ряд позиций с описанными условиями применения.
Клиент в Connexus (Часть 7): Добавление клиентского уровня
В настоящей статье мы продолжаем разработку библиотеки Connexus. В настоящей главе мы создаем класс CHttpClient, отвечающий за отправку запроса и получение ордера. Мы также рассматриваем концепцию моков (mocks), отделяя библиотеку от функции WebRequest, что обеспечивает большую гибкость для пользователей.
Нейросети в трейдинге: Поиск устойчивых закономерностей в разнородных рыночных данных (INFNet)
Статья знакомит с фреймворком INFNet, предложенным для эффективного взаимодействия признаков в многозадачных системах. Проанализированы ключевые принципы в контексте финансовых рынков. Начата адаптация предложенных подходов средствами MQL5: переосмыслена структура данных и реализован механизм генерации сценарных токенов. Создана основа для дальнейшей разработки моделей с линейной сложностью и устойчивой обработкой разнородных рыночных сигналов.
Нейросети в трейдинге: Масштабируемые трансформеры со структурной декомпозицией признаков (Основные компоненты)
Продолжаем разработку FAT: декомпозиция признаков по полям, отдельные проекции Query/Key/Value и параметрическое масштабирование внимания. Описаны OpenCL‑кернел многоголового внимания, свёрточный объект CNeuronFieldAwareConv и интеграция в CNeuronMHFAT с контролем памяти и градиентов. Читатель получает готовые компоненты для MQL5‑моделей, устойчивость к шуму и масштабируемость по числу полей и голов.
Знакомство с языком MQL5 (Часть 30): Освоение API и функции WebRequest в языке MQL5 (IV)
Ознакомьтесь с пошаговым руководством, которое упрощает извлечение, преобразование и организацию свечных данных из ответов API в среде MQL5. Это руководство отлично подходит новичкам, которые хотят улучшить навыки программирования и научиться эффективно управлять рыночными данными.
Нейросети в трейдинге: Оптимизация Cross-Attention для анализа длинных последовательностей рынка (Основные компоненты)
В статье продолжается реализация фреймворка STCA средствами MQL5. Оригинальные оптимизации Self-Attention перенесены в архитектуру FlashAttention-2 и адаптированы под финансовые данные. Особое внимание уделено аккумулированию и распределению градиентов между потоками рабочей группы для анализа длинных временных рядов и многоголового внимания.
Тестер стратегий для Python и MetaTrader 5 (Часть 02): Работа с барами, тиками и реализация встроенных функций в симуляторе
В этой статье мы представим функции, аналогичные тем, которые предоставляет модуль Python–MetaTrader 5, предоставляя симулятору привычный интерфейс и собственный механизм внутренней обработки баров и тиков.
Статистический арбитраж на основе коинтегрированных акций (Часть 8): Сравнение собственных векторов на скользящих окнах для ребалансировки портфеля
В этой статье предлагается использовать сравнение собственных векторов со скользящим окном для ранней диагностики дисбаланса и ребалансировки портфеля в рамках стратегии статистического арбитража, основанной на возврате к среднему (mean-reversion) и коинтегрированных акциях. Данный метод противопоставляется традиционной валидации с помощью ADF-теста на внутривыборочных и вневыборочных данных (IS/OOS), показывая, что сдвиги собственных векторов могут сигнализировать о необходимости ребалансировки даже в тех случаях, когда IS/OOS ADF всё ещё указывает на стационарность спреда. Хотя этот метод предназначен в первую очередь для мониторинга торговли в реальном времени, в статье делается вывод, что сравнение собственных векторов также может быть интегрировано в систему скоринга — хотя его реальный вклад в эффективность стратегии ещё предстоит проверить.
Разработка динамического мультивалютного советника (Часть 7): Карта межпарных корреляций для фильтрации сделок в реальном времени
В этой части мы встроим в мультисимвольный советник матрицу корреляций в реальном времени, чтобы избежать избыточных сделок и накопления риска. За счет динамического измерения межпарных связей советник будет отфильтровывать входы, конфликтующие с текущей экспозицией, тем самым улучшая баланс портфеля, снижая системный риск и повышая общее качество сделок.
Возможности Мастера MQL5, которые вам нужно знать (Часть 67): Использование паттернов TRIX и процентного диапазона Уильямса
Тройной экспоненциальный осциллятор скользящей средней (Triple Exponential Moving Average Oscillator, TRIX) и осциллятор процентного диапазона Уильямса (Williams Percentage Range Oscillator) — это еще одна пара индикаторов, которые можно использовать совместно в советнике MQL5. Эта пара индикаторов, как и те, которые мы недавно рассматривали, также дополняет друг друга, поскольку TRIX определяет тренд, а процентный диапазон подтверждает уровни поддержки и сопротивления. Как всегда, мы используем Мастер MQL5 для оценки потенциала индикаторов.
Знакомство с языком MQL5 (Часть 36): Освоение API и функции WebRequest в языке MQL5 (X)
В этой статье рассматриваются основные принципы HMAC-SHA256 и API-подписей в языке MQL5; объясняется, как сообщения и секретные ключи объединяются для безопасной аутентификации запросов. Это закладывает основу для подписывания API-вызовов без раскрытия конфиденциальных данных.
Преодоление ограничений машинного обучения (Часть 3): Новый взгляд на неустранимую ошибку
В этой статье мы по-новому взглянем на скрытый, геометрический источник ошибок, который незаметно формирует каждое предсказание, сделанное вашими моделями. Переосмысливая то, как мы оцениваем и применяем прогнозы машинного обучения в трейдинге, мы показываем, как эта упущенная из виду перспектива может способствовать принятию более взвешенных решений, повышению доходности и более разумному способу работы с моделями, которые, как нам казалось, мы уже понимаем.
Статистический арбитраж с использованием коинтегрированных акций (Часть 4): Обновление параметров модели в реальном времени
В данной статье описывается простой, но комплексный алгоритм статистического арбитража для торговли корзиной коинтегрированных акций. В него входит полнофункциональный скрипт на языке Python для загрузки и хранения данных; тесты на корреляцию, коинтеграцию и стационарность, а также пример реализации сервиса Metatrader 5 для обновления базы данных и соответствующий советник. Здесь приведены некоторые проектные решения для справки и в целях содействия воспроизведению эксперимента.
Теория графов: Применение алгоритма поиска в ширину (BFS) в торговой системе
Поиск в ширину (BFS) использует обход по уровням для моделирования структуры рынка как ориентированного графа свингов цен, развивающихся во времени. Анализируя исторические бары или сессии слой за слоем, BFS отдает приоритет недавнему поведению цен, при этом учитывая более глубокую рыночную память.
Рыночные секреты Ларри Уильямса (Часть 1): Создание индикатора свинговой структуры рынка в MQL5
Практическое руководство по созданию индикатора рыночной структуры в стиле Ларри Уильямса на MQL5: настройка буферов, определение свинговых точек, настройка графических построений и применение индикатора трейдерами в техническом анализе рынка.
Архитектура машинного обучения для MetaTrader 5 (Часть 12): Калибровка вероятностей для финансового машинного обучения
Классификаторы на основе деревьев обычно избыточно уверены: истинные доли выигрышей около 0,55 отображаются как 0,65–0,80 и завышают размеры позиций и доли Келли. В этой статье представлены afml.calibration и CalibratorCV, которые генерируют OOF-прогнозы (out-of-fold, прогнозы для наблюдений вне обучающей части своего фолда) через PurgedKFold и обучают изотоническую регрессию или масштабирование Платта. Мы определяем оценку Брайера, ECE и MCE, а также показываем диагностику, которая прослеживает некалиброванность до размеров позиций, реализованного прибыли и убытка (P&L, profit and loss) и распределений коэффициента Шарпа по путям CPCV, что помогает обосновать торговлю без утечек и с корректно рассчитанным размером позиции.