Перейти к содержимому

Переоптимизация: как обмануть самого себя

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

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

Что это и как работает

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

Как распознать

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

Как защититься

Разделяйте данные: оптимизируйте на одной части (in-sample), проверяйте на другой (out-of-sample). Применяйте walk-forward. Выбирайте параметры из широкого устойчивого диапазона, а не одиночный пик. Минимизируйте число параметров. Завершайте форвард-тестом. Относитесь к идеальной кривой с подозрением, а не с гордостью.

Как это выглядит на практике

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

Частые ошибки

Брать «самый прибыльный» набор параметров из оптимизации. Крутить десяток параметров на коротком куске истории. Радоваться острому пику вместо поиска плато. Пропускать проверку на out-of-sample, потому что «и так красиво».

Частые вопросы

Сколько параметров — уже много?

Чем меньше, тем лучше; каждый лишний параметр — новая возможность подогнать шум.

Что такое плато устойчивости?

Диапазон параметров, где результат стабилен, а не единичная вершина.

Оптимизировать вообще нельзя?

Можно, но с разделением данных и выбором устойчивых значений.

Как понять, что я переоптимизировал?

Отличная история и слабый out-of-sample — почти всегда именно это.

Помогает ли простота стратегии?

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

Итог

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

Материал носит образовательный характер и не является индивидуальной инвестиционной рекомендацией (не ИИР).

Материал носит информационный характер и не является индивидуальной инвестиционной рекомендацией. Редакционная политика

Читайте также