реклама
Бургер менюБургер меню

Ярослав Суков – Walk-Forward анализ на финансовых рынках (страница 3)

18

Как распознать, что стратегия переоптимизирована? Вот несколько признаков, которые должны заставить вас насторожиться, даже если кривая доходности выглядит как взлёт ракеты SpaceX.

1. Аномально высокий коэффициент Шарпа.

Если бэктест показывает Sharpe > 3 (или, особенно, > 5) на длинной истории, это почти всегда либо подгонка, либо использование экзотических активов с неучтёнными рисками. В реальной торговле Sharpe выше 2–3 встречается только у единичных фондов с уникальным доступом, и то на ограниченных периодах. Когда я вижу «стратегию» с Sharpe 8 на 10-летней истории, я знаю: передо мной результат data mining, а не рыночного преимущества.

2. Слишком малое количество сделок.

Если стратегия за 10 лет совершила 50 сделок, а её параметров — 20, то степень свободы равна нулю. Каждая сделка «оправдывает» несколько параметров. Статистически значимый результат требует сотен, а лучше тысяч независимых сделок. Малое количество сделок означает, что результат легко мог быть случайным.

3. Чрезмерная чувствительность параметров.

Возьмите любой параметр стратегии (например, длину скользящей средней) и слегка измените его. Если стратегия из прибыльной превращается в убыточную при изменении на ±5%, это верный признак того, что она «настроена на резонанс» с историческим шумом. Устойчивая стратегия должна демонстрировать плато — диапазон параметров, где результат остаётся положительным и относительно стабильным.

4. Отсутствие просадок или идеальная последовательность.

Реальные рынки создают просадки. Даже лучшие трейдеры в мире проходят через периоды Drawdown. Если ваша кривая идёт под 45 градусов без единого отката — вы либо смотрите на результат подгонки, либо торгуете на рынке, которого не существует.

5. Сложность, неоправданная данными.

Количество параметров и правил не должно превышать корень квадратный от числа сделок. Если у вас 100 параметров и 500 сделок — это не торговля, это «математическое порно».

Как параметры «подгоняются» под шум

Процесс подгонки начинается невинно. У вас есть идея: «Когда рынок перекуплен, а тренд сильный, возможно, стоит входить». Вы берёте индикатор RSI и скользящую среднюю. Параметры: 14 и 50. Результат так себе. Тогда вы пробуете RSI 12, MA 48 — лучше. RSI 10, MA 44 — ещё лучше. Вы добавляете фильтр объёма. Затем — временной фильтр: не торговать в первые 30 минут после открытия. Потом — фильтр волатильности. Затем — динамический трейлинг-стоп. На каждом шаге вы смотрите на историю и подкручиваете винтики, чтобы график рос всё выше.

К тому моменту, когда вы заканчиваете, ваша стратегия представляет собой машину Руба Голдберга — сложную, витиеватую, идеально работающую на том историческом отрезке, где вы её «обучали». Но каждый новый винтик — это не улучшение, а добавление шумовой компоненты. Вы фактически построили интерполяционную функцию, которая проходит через все точки исторического ряда, но не способна к экстраполяции.

В техническом плане это выглядит так: вы минимизируете функцию ошибки на in-sample данных, но размерность пространства параметров растёт, и вы начинаете ловить выбросы, аномалии, однократные события. Стратегия «учит» наизусть, что 15 августа 2007 года в 14:30 произошло резкое движение, и вводит правило, которое срабатывает именно в этот момент. Но в будущем такого движения не будет, а правило останется и начнёт генерировать ложные сигналы.

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

Парадокс: больше данных — хуже результат

На первый взгляд это звучит абсурдно. Как может больше исторических данных ухудшить стратегию? Разве мы не учим: чем больше данных, тем надёжнее оценка?

В финансах этот парадокс работает по двум причинам.

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

Парадокс заключается в том, что оптимальное окно данных для обучения часто не является «всеми доступными данными». Это небольшой отрезок, который отражает текущий рыночный режим. Walk-Forward анализ, как мы увидим, решает эту проблему, динамически выбирая или взвешивая данные.

Вторая: увеличение степеней свободы при подгонке. Чем больше данных, тем больше соблазн добавить параметров, чтобы «объяснить» каждый новый паттерн. Это приводит к тому, что сложность модели растёт быстрее, чем объём полезной информации. В пределе вы получаете модель, которая идеально описывает 20 лет истории, но не может предсказать завтрашний день.

Известный исследователь в области количественных финансов Маркос Лопес де Прадо приводит пример: если вы тестируете 1000 стратегий на 10 годах данных, вероятность найти хотя бы одну с p-value < 0.01 чисто случайно составляет более 99,9%. Добавление данных не спасает, потому что растёт и количество гипотез, которые вы можете проверить.

Примеры провалов на реальных стратегиях

Теория без крови — не теория. Давайте посмотрим, как переоптимизация убивала реальные деньги.

История первая: «Совершенный портфель» одного хедж-фонда

В середине 2000-х годов небольшой, но амбициозный хедж-фонд из Лондона разработал стратегию на основе «многофакторной модели» с 27 параметрами. Бэктест на данных с 1995 по 2004 год показывал годовую доходность 34% с максимальной просадкой 4% и Sharpe 4,2. Инвесторы выстроились в очередь. Фонд собрал $450 млн.

В реальной торговле первые три месяца стратегия показывала результаты, близкие к бэктесту. Затем начались расхождения. К концу первого года доходность упала до 8%. На втором году фонд потерял 22%. Разбирательство показало: каждый из 27 параметров был подобран так, чтобы «объяснить» конкретные исторические эпизоды. Например, фильтр волатильности был настроен на идеальное отсечение событий 1998 года (крах LTCM), но в новых условиях этот фильтр отсекал уже прибыльные сделки. Стратегия была настолько чувствительна, что сдвиг одного параметра на 2% превращал её из прибыльной в убыточную.

История вторая: «Турбо-стратегия» на фьючерсах

Мой знакомый трейдер, инженер по образованию, разработал систему для торговли фьючерсами на S&P 500. Он использовал нейросеть с двумя скрытыми слоями и 150 входами (индикаторы, лаги цен, объёмы). На 15-летних данных сеть показывала феноменальный результат: коэффициент Шарпа 3,7.

Он запустил систему на реальном счёте $100 000. Первая неделя: +$8 000. Вторая: -$15 000. Третья: +$2 000. Четвёртая: -$25 000. Через два месяца счёт был обнулён.

Что произошло? Нейросеть выучила не рыночные закономерности, а специфические шумовые паттерны, которые были в данных 1990-х годов: особенности тиков, аномалии в объёмах, связанные с конкретными историческими событиями (например, поведение рынка во время азиатского кризиса). В современном рынке, с другой микроструктурой, эти паттерны исчезли. А сеть продолжала торговать по ним, воспринимая любые отклонения как сигнал.

История третья: Крах LTCM — классика жанра

Long-Term Capital Management (LTCM) — это, пожалуй, самый знаменитый пример переоптимизации в истории. Созданный нобелевскими лауреатами Робертом Мертоном и Майроном Шоулзом, фонд использовал сложнейшие модели для арбитража облигаций. Их бэктесты показывали невероятную устойчивость: они «доказали», что их стратегии теряют деньги только раз в 10^20 лет.

Но модель не учитывала один важный фактор: поведение участников в кризис. Когда в 1998 году Россия объявила дефолт по ГКО, рынки охватила паника. Ликвидность исчезла, корреляции, которые в модели были близки к нулю, стали равны единице. Стратегии LTCM, подогнанные под «нормальные» рынки, рухнули за несколько недель. Фонд потерял $4,6 млрд, и его пришлось спасать Федеральному резерву.

Урок LTCM: даже если ваша модель — это вершина академической мысли, даже если у вас есть Нобелевская премия, переоптимизация под историю, не включающую экстремальные режимы, смертельна.

Что мы узнали

Переоптимизация — это не просто техническая ошибка. Это проявление глубокого человеческого желания контролировать хаос, подогнать реальность под красивую модель. Она питается нашей когнитивной предвзятостью: мы видим порядок там, где его нет, и награждаем сложность, путая её с глубиной.

Но есть и хорошая новость. Переоптимизацию можно диагностировать. У неё есть признаки, которые мы можем проверить до того, как поставить на кон реальный капитал. И есть методология, которая защищает от этой болезни — Walk-Forward анализ, к которому мы перейдём в следующей главе.

Walk-Forward — это прививка от curve fitting. Это способ заставить вашу модель не просто «знать историю», но и «выживать» в постоянно меняющихся условиях. Он не даёт вам подгонять параметры под каждый чих рынка, потому что вынуждает многократно проверять стратегию на невидимых данных.