Блог им. AEMMtrader

Почему классические торговые боты сливают депо, и как я заставил Монте-Карло считать вероятности (на примере EUR/USD)

Привет, смартлабовцы! Я бэкенд-разработчик (Python) и, как многие здесь, прошел классический путь алготрейдера: поверил в магию индикаторов -> написал бота -> слил часть депозита на реале -> задумался, что я делаю не так.

Сегодня хочу поделиться своей попыткой математически приручить рыночный хаос. Спойлер: Грааля нет. Но есть способ уйти от угадывания точной цены к нормальному расчету вероятностей, который спасает от тупых входов в рынок.

Иллюзия точного прогноза

Когда прогер приходит на биржу, он думает: «Сейчас скормлю котировки за 10 лет в XGBoost или нейросеть, и она скажет мне цену на завтра». На истории всё выглядит потрясающе. На реальном рынке выходит Пауэлл, или крупный игрок кидает объем по рынку — и ваш детерминированный прогноз летит в трубу.

Рынок — это хаос. Прогнозировать одну конкретную цену (например, что завтра евро будет стоить 1.0850) — это математическое самоубийство. Нам нужно оценивать распределение вероятностей.

Метод Монте-Карло и 30 параллельных реальностей

Чтобы уйти от жестких прогнозов, я решил скрестить предсказательную силу машинного обучения (XGBoost) со стохастической симуляцией Монте-Карло. Эту логику я зашил в свой аналитический пет-проект AEMMtrader.

Как это работает под капотом:

  1. База: Скрипт анализирует лог-доходность, историческую волатильность и динамику тикового объема (отличный маркер «нервозности» на Форексе).

  2. Генерация хаоса: Вместо одной линии тренда, скрипт запускает 30 независимых симуляций будущего на 20 свечей вперед.

  3. Шум: В каждую из 30 симуляций на каждом шаге подмешивается случайный шум (гауссовское распределение), амплитуда которого зависит от текущей волатильности актива. Если на рынке флэт — сценарии идут кучно. Если шторм — разлетаются веером.

Разбор на живом графике (EUR/USD, дневка)

Давайте посмотрим, как это выглядит на практике. Ниже скриншот из прогноза EUR/USD с моей платформы на таймфрейме D1.

Почему классические торговые боты сливают депо, и как я заставил Монте-Карло считать вероятности (на примере EUR/USD)

Слева — реальная история, где мы видим пробитие поддержки. Справа — прогнозные свечи, которые алгоритм достраивает на 20 дней вперед.

Что мы извлекаем из этого хаоса:

  • Уверенность (Confidence Score): Алгоритм выдает сигнал SELL с уверенностью 73.3%. Это значит, что из 30 сгенерированных симуляций, несмотря на подмешанный рыночный шум, 22 траектории уверенно пошли вниз. Для дневки матожидание отличное.

  • Понимание откатов: Обратите внимание на тени прогнозных свечей. Я рассчитываю их с помощью усреднения путей и показателя ATR. Да, глобально мы смотрим вниз к 1.15, но система показывает, что по пути будут откаты. Это дает понимание, куда адекватно прятать Стоп-Лосс, чтобы его не слизало случайным шумом.

Лучшая позиция — посидеть на заборе

Самое полезное, чему меня научила эта система — это сигнал NEUTRAL.

Когда руки чешутся открыть сделку, а алгоритм прогоняет симуляции и говорит: «15 путей идут вверх, 15 вниз. Уверенность 50%». Система прямо заявляет, что текущая дисперсия (рыночный шум) превышает силу любого сигнала. В такие моменты лучшее, что можно сделать с депозитом — ничего не делать.

Скрипт сейчас крутится на сервере в режиме 24/7 (на выходных для крипты, для фиата выходные программно вырезаются). Если вам интересно потыкать алгоритм на разных активах, заходите на AEMMtrader.ru (сервис полностью бесплатный). Для зарубежных коллег доступно международное зеркало aemmtrader.com

Буду рад конструктивной критике от алготрейдеров: Считаете ли вы тиковый объем достаточным прокси для Форекса, или без стакана (Level 2) все эти ML-модели обречены? Обсудим в комментах.

  • обсудить на форуме:
  • EURUSD
235
#113 по плюсам, #21 по комментариям
20 комментариев
Сделано хорошо, наглядно, но надо на истории тестировать.
avatar
Уточните, пожалуйста, что в вашем понимании «классические торговые боты»?
avatar
Op_Man, Индикаторные боты. Системы на базе стандартного теханализа (RSI, MACD, пересечение средних). Их главная проблема — они бинарны (сигнал есть или его нет) и всегда работают «в хвосте» рынка, не учитывая текущую волатильность и фазу.
avatar

AEMMtrader, индикаторная система с условиями на валютном фьюче, без оптимизации. 

Старт 2 млн. 2.10.2003 - финиш на картинке по н.в. Процент от капитала с реинвестом. Время в позиции от 15 минут до + бесконечности.

 

Ваши неклассические боты могут показать результат хоть немного близкий к этому или лучше на длительном бэктесте, не говоря о реале?

По опыту наблюдения за системами своими ретроспективно и за публичными системами коллег, могу сказать, что всё крайне субъективно в вашем суждении. 

Порой чем проще, тем лучше. По-прежнему убежден, что сами по себе сетки и современные прикольчики альфу не дают. Нужна изначально идея толковая от вас, на мой взгляд, которую уже можно пробовать улучшить.

Чтобы вы понимали, я и сам нет-нет, да и да. Но только как надстройку использую ml/rl к уже имеющимся системам, но никак не обособленно, и очень дозированно.

 

avatar
Видимо реализованы правильные мысли. Основу для прогнозов можно обсуждать.
Пока не удалось дождаться окончания Loading… Сколько ожидать?
Upd.
Как и подозревал, дело в использовании сервисом пакетов.
Прогнозирует 78000 по биткоину. Подождём. По ощущениям как первая цель снижения.
avatar
 И то, что H1 и H4 противоречат друг другу, не компрометирует ли подход?
avatar
svgr, Наоборот, это доказывает, что модель видит рынок адекватно, а не подгоняет данные. Рынок фрактален, и таймфреймы существуют в разных фазах. Нисходящий тренд на H4 (макро) состоит из серии локальных падений и откатов на H1 (микро).

Если система показывает сигнал SELL на H4 (глобальное падение) и BUY на H1 (локальный откат) — это не баг, это классическая рыночная механика. Более того, для трейдера это идеальный сетап: мы видим, что глобально рынок давит вниз, но прямо сейчас (на H1) идет коррекция, на которой можно зайти в шорт по более выгодной цене. Противоречие компрометировало бы подход, если бы мы искали Грааль, который обещает рост везде и сразу. Но мы ищем вероятности, а вероятность отката внутри тренда — это норма
avatar
AEMMtrader, всё было наоборот для H1 и H4. Первый показывал вниз, как и на картинке в топике для дней.
Возражение же в том, что свечи прогнозов для H1 и H4 вообще никак не пересекаются, что не логично. Более крупный должен как-то содержать более мелкий хотя бы в виде теней. Коли они в разные стороны идут.
А так веры нет, кажется, что принципы вычислений прогнозов весьма умозрительны и далеки от реальности.
avatar
svgr, отличное замечание, спасибо за внимательность. Вы правы: на исторических данных свечи H4 жестко формируются из H1, и геометрически меньший таймфрейм обязан входить в бóльший. Но когда речь заходит о нашем прогнозировании, этот геометрический закон перестает работать, и вот почему:
Алгоритм не генерирует единую «потиковую» ленту будущего, из которой потом нарезаются свечи разных таймфреймов. Если бы мы делали так, это была бы подгонка.
В AEMMtrader прогнозирование H1 и H4 — это две абсолютно независимые ML-модели, которые ничего не знают друг о друге:
Модель H1 обучена на своем датасете, со своим вектором фичей и своей микро-волатильностью.
Модель H4 обучена на макро-движениях и совершенно других распределениях шума.
Каждая из этих моделей независимо прогоняет свои 30 симуляций Монте-Карло. То, что вы видите на графике в виде прогнозных свечей — это усредненное математическое ожидание этих симуляций.
avatar
svgr, Математическое ожидание микро-событий (H1) статистически не обязано идеально вписываться в границы математического ожидания макро-событий (H4). Это как спросить двух разных аналитиков: один прогнозирует среднюю температуру на завтра (H1), а второй — климатический тренд на месяц (H4). Их графики не совпадут пик-в-пик, потому что они оценивают разные горизонты риска.
Если бы мы жестко привязали генерацию H4 к расчетам H1, то любая случайная ошибка на микро-уровне каскадом ломала бы весь глобальный макро-прогноз (эффект бабочки). Независимость моделей — это осознанное архитектурное решение. Оно позволяет нам получать честное «второе мнение» от алгоритма, оценивая вероятности на разных горизонтах, а не рисовать визуально идеальную, но математически несостоятельную картинку будущего.
avatar
AEMMtrader, мне всё это было понятно через секунду взгляда на графики.
Смысла рисовать по 20 свечей каждого прогноза в таком подходе нет, они расходятся уже на первой.
Подумайте, как ими пользоваться постороннему человеку. Кто случайно доверится одному таймфрейму, и не тому, который выиграет в итоге.
Модели обязаны быть вложенными, по моему мнению.
avatar
svgr, 

svgr, я услышал вашу позицию про вложенность — с точки зрения пользовательского опыта это действительно выглядело бы привычнее и логичнее. Однако наш текущий подход закладывает иную логику использования. 
Спасибо за обратную связь!

avatar
AEMMtrader, ну, опишите, пожалуйста, вашу логику использования. Может быть она и нам подойдёт.
avatar
График справа это что-то типа «матожидания» от всех нагенеренных монтекарл? Или часть нагенеренного иде в размер хвостов, часть выливается в сами цены?
avatar
Replikant_mih, Верно. Тело прогнозной свечи (направление и цены открытия/закрытия) — это действительно усредненная траектория (Mean Path), то есть математическое ожидание от всех 30 симуляций.

А вот тени (хвосты) свечей алгоритм достраивает отдельно. Он берет текущую дисперсию (насколько широко разлетелись эти 30 путей) и исторический показатель ATR (Average True Range). То есть мы берем «скелет» из матожидания и «навешиваем» на него историческую волатильность в виде теней. Сами 30 симуляций нужны нам в первую очередь для расчета Confidence Score — чтобы понять, какой процент из этих путей в итоге пробил текущую цену, несмотря на весь подмешанный хаос
avatar
AEMMtrader, подмешанный хаос? Интересное выражение.Конкретно мусорными свечами можно считать внутренние свечи… коррекции с меньшим объемом. Тогда фрактал Эллиота из 8 волн превращается в 5(4) свечную конструкцию типа 1-3-5-а-с.
avatar

 Идея да, интересная.

Если модель переобучена или в ней нет эджа, такое монтекарливание её же все равно не спасет, я правильно понимаю?

avatar
Replikant_mih, Абсолютно верно, чудес не бывает. Работает жесткое правило: Garbage In — Garbage Out. Симуляция Монте-Карло берет базовый вектор предсказания (mu) из XGBoost. Если бустинг переобучился на истории и выдает кривое матожидание, то Монте-Карло просто нарисует 30 красивых путей вокруг изначально неверного направления. Монте-Карло не создает торговый «эдж» (преимущество) из воздуха. Эдж создается исключительно на этапе подготовки данных (Feature Engineering) и борьбы со стационарностью. Задача Монте-Карло — другая. Это риск-менеджер. Оно спасает не от плохой модели, а от излишней «самоуверенности» хорошей модели в моменты сильного рыночного шума (когда дисперсия убивает любой сигнал).
avatar
AEMMtrader, я использовал проги ВА Эллиота типа EWA 6.0 и др до 2007г Они выдавали сотни вар-в с разными вероятностями. Со временем я сам стал читать график фракталами(свечной график) и волнами.Беда всех индюков- период.Если поставить в индюк формулу расчета периода, то индюк заработает.Главное — прогнозы и вероятности не нужны.Надо считать силу заходного( для сделки) фрактала (читать фрактал). Это 1 и 2 волны импульса(ПП правое плечо паттерна ГиП).От этой силы считать участие в сделке. Сила Ф зависит от тайма, размера Ф в кол-ве свечей и объема. Далее вход в ПП правое плечо СЛосс и защита прибыли ( убыток или безубыток ).Чем меньше прибыли защищаем, тем долее мы в сделке.
Торгуем только 2 шаг тренда=3 волна  импульса.Остальные 4 = информация о будущей сделке.
Мораль -торгуем фракталы из свечей.Но вход в свечной через ВА Эллиота. Правильный прогноз ниже. Вернее 2 прогноза — вверх, вниз .
Нужен правильный объем.Без него торгуем частицы газа.

Рекомендую книгу Патрик Микула- ..5 новых техник Эндрюса.
avatar
ezomm, Спасибо за разбор! По сути, мой Confidence Score — это и есть попытка оцифровать силу того самого «заходного» импульса. Про объем согласен на 100%: в модели это ключевой фильтр, без которого всё остальное — просто шум. Рад, что математика и классика в итоге смотрят в одну сторону
avatar

Читайте на SMART-LAB:
Фото
📊 МГКЛ продолжает внедрять лучшие практики корпоративного управления
ПАО «МГКЛ» продолжает последовательно усиливать корпоративное управление и совершенствовать внутренние процедуры контроля по мере роста...
💡 Зачем брокеру состоять в СРО
В России брокер не может работать вне саморегулируемой организации. Крупнейшая на фондовом рынке — НАУФОР (Национальная ассоциация участников...
Фото
Акции ЛУКОЙЛа торгуются без дивидендов — как изменилась целевая цена
Мы снижаем целевую цену на акции ЛУКОЙЛа с 7100 руб./акц. до 6800 руб./акц. в связи с отсутствием теперь в котировках бумаги права на...
Фото
Самый интересный пост: что внутри портфелей у нашей команды + короткое объяснение по каждой позиции 
Сегодня пришло время совершить квартальное раскрытие наших инвестиционных портфелей.  Что внутри? ✅Состав портфелей каждого из наших...

теги блога AEMMtrader

....все тэги



UPDONW
Новый дизайн