Практичный разбор bias–variance в трейдинге: ML-пайплайн, walk-forward, PCA/VIF, стационарность и оценка стратегии. Чек-лист внедрения.

Bias-variance в трейдинге: как ИИ строит стратегию
53–56% точности в прогнозе направления рынка звучит почти как монетка. И вот парадокс: при такой «скромной» точности ML-стратегия может дать Sharpe около 0,89 и максимальную просадку порядка −11% на длительном периоде, тогда как buy&hold может переживать −30–40% в плохие времена. Это не магия и не «секретная формула». Это дисциплина: правильная ML-проверка, контроль переобучения и внятная инженерия данных.
В нашей серии «Искусственный интеллект в финансовых инвестициях» мы обычно говорим, что ИИ в инвестициях — это не про угадывание цены. Это про управление ошибками и рисками. Разложение ошибки на смещение (bias) и разброс (variance) — один из самых практичных способов держать модель в тонусе и не превращать бэктест в самообман.
Ниже — цельный, прикладной разбор пайплайна ML-стратегии: от признаков и walk-forward до PCA/VIF, проверки стационарности и выбора модели через bias–variance decomposition. Плюс — мои комментарии о том, где чаще всего всё ломается в реальной торговле.
Почему компромисс bias–variance — это про деньги, а не про теорию
Суть простая:
- Высокий bias = модель слишком упрощает рынок → стабильно ошибается → недообучение.
- Высокий variance = модель слишком «влюбилась» в историю → отлично на обучении, плохо в будущем → переобучение.
В инвестициях это превращается в конкретику:
- Переобучение даёт «красивую» equity curve в прошлом и неприятный сюрприз в реале.
- Недообучение даёт ровную, но бесполезную стратегию — комиссию вы платите, альфы нет.
Bias–variance decomposition помогает сравнить модели не только по одной метрике (например, MSE), а по структуре ошибки. Это особенно полезно, когда вы строите стратегию на технических индикаторах и коротком горизонте (например, прогноз 5-дневной доходности): шум высокий, сигнал тонкий.
Практическое правило
Если две модели дают близкий MSE, я почти всегда выбираю ту, где ошибка распределена более «здорово»: умеренный bias и не нулевой variance (то есть модель видит паттерны, но не уходит в экстремальное переобучение).
Пайплайн ML-стратегии: от данных до сигналов
Надёжность ML в трейдинге рождается не из одной «крутой» модели, а из пайплайна, где каждая часть ограничивает риск ошибок.
1) Данные и цель: прогноз 5-дневной доходности
Базовая заготовка выглядит так:
- Берём дневные OHLCV-данные (Open, High, Low, Close, Volume).
- Строим набор технических индикаторов (скользящие, RSI, ATR, Bollinger, MACD, OBV и т. п.).
- Целевая переменная — 5-дневная доходность close-to-close, сдвинутая так, чтобы признаки на дне t соответствовали будущей доходности t+5.
Это важная деталь: сдвиг целевой переменной защищает от «подглядывания в будущее» на уровне разметки.
2) Признаки: технические индикаторы — это нормально, если делать их честно
Техиндикаторы часто ругают за банальность. Я с этим не спорю — по отдельности они редко дают устойчивое преимущество. Но как сырьё для модели, особенно в ансамблях, они полезны.
Ключевое — не количество индикаторов, а то, как вы контролируете:
- коррелированность признаков,
- утечку данных,
- стабильность во времени.
3) Walk-forward вместо «случайного» train/test
Ответ сначала: для временных рядов «случайное перемешивание» — почти всегда ошибка.
Walk-forward (скользящее окно) работает ближе к реальности:
- обучаемся на последних, условно, 250 днях,
- делаем прогноз на следующий день,
- сдвигаем окно на 1 день,
- повторяем.
Так вы получаете поток прогнозов, который имитирует жизнь: завтра наступает после сегодня.
PCA + VIF: как уменьшить шум и мультиколлинеарность
Когда у вас 20+ техиндикаторов, многие из них дублируют друг друга. Это увеличивает variance (модель начинает ловить «эхо» одного и того же сигнала в разных формах).
PCA: сжимаем признаки в объясняющие компоненты
PCA превращает исходные индикаторы в несколько компонент (например, 4), которые объясняют большую часть вариативности данных. Это:
- уменьшает размерность,
- ускоряет обучение,
- делает модель менее чувствительной к «шумным» индикаторам.
VIF: выбрасываем компоненты с высокой взаимной зависимостью
VIF (Variance Inflation Factor) — индикатор мультиколлинеарности. В пайплайне удобно:
- посчитать VIF по PCA-компонентам,
- оставить те, где VIF ниже порога (например, < 3).
Это редкая, но сильная комбинация: PCA снижает размерность, VIF убирает «дубли» даже среди компонент.
Выбор модели через bias–variance decomposition: что это даёт на практике
Ответ сначала: decomposition помогает выбрать модель, которая лучше переносит прошлое в будущее.
В типовом сравнении регрессоров (линейная регрессия, Ridge, дерево решений, Bagging, Random Forest, Gradient Boosting) часто наблюдается картина:
- линейные модели: высокий bias, низкий variance,
- деревья: ниже bias, но variance растёт,
- ансамбли (bagging/forest/boosting): балансируют ошибку лучше.
В разборе пайплайна логичный выбор — Gradient Boosting Regressor:
- он обычно снижает total error,
- сохраняет способность видеть нелинейности,
- при разумных настройках не уходит в экстремальное переобучение.
Важная мысль для инвестора
Хорошая метрика модели ≠ хорошая торговая стратегия.
Модель может давать небольшой выигрыш в MSE, но стратегия может проигрывать из‑за:
- неверного правила входа/выхода,
- комиссий,
- проскальзывания,
- перекрывающихся позиций,
- неверного риск-менеджмента.
ИИ в инвестициях ценен тем, что заставляет тестировать связку «модель → сигнал → исполнение», а не только «модель → метрика».
Стационарность: когда она помогает, а когда мешает
Ответ сначала: проверка стационарности полезна, но не универсальна — особенно для деревьев и бустинга.
В классическом временном анализе мы проверяем стационарность (например, ADF-тестом) и при необходимости делаем дифференцирование ряда. Это часто уменьшает ошибки в линейных моделях и ARIMA-подобных подходах.
Но есть нюанс:
- Для tree-based моделей (Random Forest, Gradient Boosting) стационаризация признаков не всегда обязательна.
- Более того, иногда дифференцирование «съедает» полезный уровень/структуру, и стратегия становится хуже.
Мой подход такой:
- Делайте две ветки эксперимента: как есть и со стационаризацией.
- Сравнивайте не только MSE/bias–variance, но и торговые метрики: Sharpe, просадка, стабильность по годам.
- Если результат «улучшился только в метриках модели», но стратегия ухудшилась — верьте стратегии.
Правила стратегии и оценка: что считать, чтобы не обманывать себя
В «скелете» стратегии логика очень проста:
- прогноз 5-дневной доходности > 0 → лонг,
- прогноз < 0 → шорт,
- вход на open следующего дня,
- выход на close через 5 дней,
- фиксированная доля капитала на сделку (например, 20%), без реинвестирования.
Метрики, которые стоит держать на одном экране
Кроме equity curve:
- Sharpe (с учётом безрисковой ставки),
- max drawdown,
- hit ratio (доля прибыльных сделок),
- средний профит/убыток на сделку,
- распределение доходностей (толстые хвосты важнее среднего),
- CAGR.
Отдельно полезно перевести регрессию в «направление» и посчитать:
- accuracy/precision/recall/F1 по знаку прогноза.
Но я бы не делал из accuracy фетиш: в трейдинге можно выигрывать при точности 52–55%, если матожидание на сделку положительное и хвосты контролируются.
Реальные ограничения: где бэктест чаще всего «подрисовывает» результат
Если цель — лиды (и реальные деньги клиентов), лучше честно проговорить ограничения заранее. В реальном исполнении чаще всего «съедают» результат:
- Комиссии и спреды. При частых входах/выходах это главный враг.
- Проскальзывание на open/close. На этих участках ликвидность и волатильность ведут себя особым образом.
- Невозможность торговать индекс напрямую. Нужны ETF/фьючерсы/опционы, а там свои особенности (маржа, контанго/бэквордация, экспирации).
- Дробные лоты и ограничение капитала. Бэктесты любят покупать 0,1 инструмента. На практике так бывает не всегда.
- Налоги и режим налогообложения. Частая торговля меняет экономику стратегии.
- Перекрывающиеся позиции. Если вы открываете сделку каждый день с удержанием 5 дней, позиции накладываются. Это риск и плечо «по умолчанию», который нужно считать.
Фраза, которую я повторяю командам: «Если ваш бэктест не учитывает издержки, он измеряет не прибыль, а фантазию».
Что делать дальше: быстрый план, если вы строите ML-стратегию в 2026 году
Декабрь — время, когда многие пересматривают инвестиционный процесс на следующий год. Если вы планируете внедрять ИИ в инвестициях (или выбирать поставщика/команду), вот практичный чек‑лист на 2–3 недели:
- Соберите базовый пайплайн: данные → признаки → walk-forward → прогноз.
- Сделайте bias–variance decomposition для 5–8 моделей и выберите 2 финалиста.
- Постройте торговые правила и посчитайте метрики стратегии, а не только MSE.
- Добавьте издержки (хотя бы грубо) и проверьте устойчивость.
- Проведите стресс‑тест: разные окна обучения, разные пороги входа, разные инструменты.
Если вы хотите ускорить этот путь, обычно быстрее всего помогает не «ещё одна модель», а:
- нормальная walk-forward валидация,
- контроль мультиколлинеарности,
- честный учёт исполнения.
В следующем материале серии можно логично продолжить тему: как превратить прогноз доходности в портфельные веса (risk parity / mean-variance / CVaR) и как там проявляется bias–variance на уровне портфеля.
Если вы сейчас выбираете подход к AI‑инвестициям для себя или для компании: на каком этапе у вас чаще ломается процесс — признаки, валидация или исполнение сделок?