Ретроспективная симуляция: защита от переобучения

Искусственный интеллект в промышленности и умных фабрикахBy 3L3C

Ретроспективная симуляция помогает ИИ-стратегиям не переобучаться на одной траектории рынка. Проверяйте идеи на 1 000 путях и считайте VaR/CVaR.

retrospective-simulationalgo-tradingai-investingbacktestingrisk-managementvar-cvar
Share:

Featured image for Ретроспективная симуляция: защита от переобучения

Ретроспективная симуляция: защита от переобучения

За 5 154 000 смоделированных дневных доходностей можно увидеть то, что обычный бэктест прячет за красивой кривой капитала: стратегия часто «побеждает» просто потому, что ей повезло с единственной реализованной траекторией рынка. И если вы используете ИИ в инвестициях — от простых правил до ML-моделей — это не философия, а практическая проблема, которая напрямую влияет на деньги.

Ретроспективная симуляция (её ещё можно воспринимать как расширенный bootstrap исторических доходностей) — это метод, который отвечает на неудобный вопрос: «А что если рынок в прошлом мог пройти иначе — сохранив тот же старт и тот же финиш?» Мы не предсказываем будущее. Мы создаём множество «альтернативных прошлых», чтобы проверить, не натренировали ли мы стратегию на случайность.

Ниже — разбор подхода на понятном примере (EMA-кроссовер), плюс то, как эту идею встраивать в AI-driven алгоритмическую торговлю и риск-менеджмент портфеля в 2026 году.

Почему классический бэктест обманывает чаще, чем кажется

Ключевая мысль: рынок показал нам одну траекторию цен, но стратегию мы обычно оптимизируем так, будто другой траектории не существовало.

В статье-прототипе автор берёт индекс SENSEX и делит данные на:

  • in-sample: 01.2000–11.2020
  • out-of-sample: 12.2020–04.2025

На in-sample оптимизируется простая стратегия пересечения экспоненциальных средних (SEMA/LEMA). Результаты выглядят «вкусно»: 873,43% суммарной доходности на лучшей комбинации (SEMA 5, LEMA 40). Но на out-of-sample та же комбинация даёт всего 15,46% при 79,41% у buy&hold.

Это классический симптом:

  • вы «подобрали ключ» к конкретной истории,
  • а рынок после 2020 года сменил режим (волатильность, тренды, ликвидность, поведение участников).

Один из самых дорогих самообманов в инвестициях: «Если работало на истории, значит будет работать дальше».

Для ИИ-моделей (градиентный бустинг, LSTM/Transformer, RL) проблема усиливается: чем больше параметров и степеней свободы, тем легче переобучиться на шум.

Что такое ретроспективная симуляция и почему она полезна для ИИ

Ответ короткий: это способ создать много правдоподобных альтернативных историй рынка и прогнать по ним вашу стратегию/модель.

В разборе используется модификация Brownian bridge в непараметрическом варианте:

  • берём реализованные дневные доходности in-sample,
  • делаем бутстрэп с возвращением (sampling with replacement),
  • генерируем траекторию цен,
  • затем плавно масштабируем путь так, чтобы он сошёлся к той же финальной цене, что и реальная история.

Почему непараметрически — важно:

  • параметрические модели (например, «доходности нормальны») часто ломаются именно на хвостовых событиях;
  • а в реальной торговле «хвосты» и есть то, что выбивает депозиты.

Для AI-driven инвестиций это даёт практический эффект:

  • вы тестируете устойчивость сигналов,
  • снижаете риск «подгона под прошлое»,
  • получаете больше данных для оценки риска (включая VaR/CVaR).

Миф, который стоит выбросить

Миф: «Если стратегия стабильна на walk-forward, значит всё ок».

Реальность: walk-forward проверяет устойчивость во времени, но всё равно опирается на одну историческую реализацию. Ретроспективная симуляция добавляет измерение «устойчивости к альтернативным путям», что особенно ценно для моделей, которые легко находят закономерности там, где их нет.

Практика: EMA-кроссовер как демонстрация проблемы

Суть теста:

  • long, когда SEMA выше LEMA;
  • short, когда SEMA ниже LEMA;
  • сетка параметров: SEMA 5…100 (шаг 5), LEMA 20…300 (шаг 10), LEMA > SEMA.

На реальной in-sample траектории лучшей стала пара SEMA 5 / LEMA 40 с метриками:

  • суммарная доходность: 873,43%
  • максимальная просадка: -41,28%
  • Sharpe (rf=0): 0,59

Но out-of-sample:

  • стратегия: 15,46%, Sharpe 0,30
  • buy&hold: 79,41%, Sharpe 0,56

Важный вывод для читателя, который строит ИИ-стратегии:

  • даже «простая» модель может показаться сильной на истории;
  • сложная ML-модель тем более нарисует убедительный equity curve;
  • поэтому нужна проверка, которая наказывает за зависимость от единственного пути.

Оптимизация на 1 000 альтернативных «прошлых»

Ключевая идея: если параметр «хороший», он должен выигрывать не на одной траектории, а на многих правдоподобных.

Процедура:

  1. Генерируем 1 000 ретроспективных траекторий in-sample.
  2. Для каждой траектории оптимизируем SEMA/LEMA.
  3. Считаем, какие пары параметров чаще всего оказываются лучшими.

В примере наиболее частой победительницей стала SEMA 5 / LEMA 20 (в одном запуске — 47 из 1 000 путей). И это полезная мысль: мы ищем не максимальный результат на одном пути, а часто повторяющийся успех.

Но дальше — трезвость: out-of-sample с этой парой оказался ещё хуже:

  • стратегия: -7,73%
  • максимальная просадка: -23,70%
  • Sharpe: -0,05

Это не провал метода. Это честный ответ: у простого EMA-кроссовера нет устойчивого преимущества на данном рынке в данном периоде.

Для лидогенерации в теме «ИИ в финансовых инвестициях» это, на мой взгляд, сильный момент: ретроспективная симуляция помогает быстрее выбрасывать слабые идеи, прежде чем их «упакуют» в красивую презентацию.

Риск-метрики на симуляциях: VaR и CVaR без самоуспокоения

Прямой ответ: ретроспективная симуляция даёт огромную выборку доходностей для оценки хвостового риска.

В примере:

  • 1 000 путей × 5 154 дневных доходностей = 5 154 000 наблюдений.

Оценки для дневных доходностей:

  • VaR 95%: -0,022113… (≈ -2,21%)
  • CVaR 95% (Expected Shortfall): -0,035320… (≈ -3,53%)
  • VaR 99%:-4,25%
  • CVaR 99%:-5,86%

Интерпретация «по-человечески»:

  • в 95% дней потери не превышают ~2,21%,
  • но если этот порог пробит, средняя «плохая» потеря ближе к ~3,53%.

Также показательно, что экстремумы симуляций близки к реальным:

  • минимум симуляций: около -13,31% против реального -13,15%,
  • максимум симуляций: около +17,48% против реального +17,34%.

А распределение имеет тяжёлые хвосты: эксцесс (kurtosis) около 9,60 и лёгкая отрицательная асимметрия. То есть «нормальность» — опасная сказка.

Как встроить ретроспективную симуляцию в AI-процесс (и не сойти с ума)

Рабочий подход: используйте симуляции не вместо бэктеста, а как «фильтр устойчивости» перед тем, как вы тратите недели на ML.

1) Замените «лучшие параметры» на «устойчивые параметры»

Вместо: «берём максимум доходности на in-sample», берём: «параметры, которые:

  • часто входят в топ,
  • дают приемлемую просадку на множестве путей,
  • не разваливаются при небольшом шуме».

Практически это можно оформить как скоринг:

  • частота попадания в топ-10,
  • медианная доходность,
  • 75-й перцентиль просадки,
  • штраф за оборот/комиссии.

2) Для ML-моделей используйте симуляции как стресс-валидацию

Если вы обучаете модель на реальной истории, то проверяйте её на:

  • реальном out-of-sample,
  • и на нескольких ретроспективных in-sample путях, где вы «ломаете» конкретные паттерны.

Если модель «магическая», она обычно умирает именно здесь.

3) Добавьте «якоря», если тестируете долгие периоды

В оригинальном подходе якорятся старт и финиш. Для более реалистичных режимов можно якорить:

  • годовые уровни,
  • квартальные уровни,
  • или крупные режимные точки (кризисы/восстановления).

Это снижает риск получить траектории, которые математически возможны, но экономически странны.

4) Не забудьте про комиссии и проскальзывание

Ретроспективная симуляция быстро выявляет «хрупкие» стратегии, но если вы игнорируете издержки, то всё равно можете получить ложноположительный результат. Для частых сделок это критично.

Мини-FAQ: вопросы, которые обычно задают первыми

Ретроспективная симуляция — это попытка предсказать рынок?

Нет. Это проверка устойчивости: «работает ли идея не только на одной счастливой истории».

Сколько путей достаточно?

Практически: от 300 до 2 000 для первичного отбора. Дальше вы упираетесь в вычисления. Для сложных ML-моделей разумнее брать меньше путей, но тщательнее считать метрики и повторять эксперименты.

Если стратегия провалилась на out-of-sample, значит симуляция бесполезна?

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

Что делать дальше, если вы строите AI-стратегии в 2026

Конец года — удобный момент пересобрать процесс исследований: закрыть «игрушечные» бэктесты, поставить внятные критерии устойчивости и подготовить стратегии к режимам, которые рынок приносит внезапно. Я бы начал так:

  1. Возьмите 1–2 стратегии (или ML-сигнала), которые «красиво» выглядят на истории.
  2. Постройте ретроспективные пути и прогоните стратегию по ним.
  3. Сравните:
    • результаты на реальной траектории,
    • медианные/перцентильные результаты на симуляциях,
    • VaR/CVaR и поведение в хвостах.
  4. Оставьте только то, что держится статистически, а не эстетически.

Если вам нужен быстрый аудит вашей стратегии/ML-сигнала на предмет переобучения, или вы хотите встроить ретроспективную симуляцию в исследовательский пайплайн (данные → обучение → валидация → риск), мы можем обсудить вашу задачу и собрать план тестирования под ваш рынок и горизонт.

Какой компонент вашей текущей системы вы проверяете хуже всего — устойчивость параметров или хвостовой риск портфеля?

🇷🇺 Ретроспективная симуляция: защита от переобучения - Russia | 3L3C