Переоптимизация: как обмануть самого себя
Переоптимизация (кривая подгонка) — самый коварный самообман в бэктесте: вы честно работаете, а в итоге настраиваете стратегию на шум прошлого.
Переоптимизация (кривая подгонка) — самый коварный самообман в бэктесте: вы честно работаете, а в итоге настраиваете стратегию на шум прошлого. Разбираем, как это происходит и как защититься.
Что это и как работает
Перебирая параметры в тестере, вы почти всегда найдёте набор, идеально описывающий прошлое. Но прошлое содержит и закономерность, и случайный шум. Подгоняясь под лучший результат, вы «запоминаете» шум, который в будущем не повторится. Стратегия становится идеальной на истории и беспомощной в реале — вы обманули самого себя. Чем больше параметров вы крутите и чем меньше данных, тем легче случайно поймать красивую, но пустую комбинацию.
Как распознать
Признаки: очень высокая доходность при подозрительно малой просадке; результат резко ухудшается при малейшем изменении параметров (нет «плато» устойчивости); отличная история и провальный форвард; множество тонко настроенных параметров. Чем чувствительнее результат к параметрам, тем вероятнее подгонка. Полезный тест: сдвиньте каждый параметр на шаг в обе стороны — если результат обваливается, вы стоите на пике, а не на плато.
Как защититься
Разделяйте данные: оптимизируйте на одной части (in-sample), проверяйте на другой (out-of-sample). Применяйте walk-forward. Выбирайте параметры из широкого устойчивого диапазона, а не одиночный пик. Минимизируйте число параметров. Завершайте форвард-тестом. Относитесь к идеальной кривой с подозрением, а не с гордостью.
Как это выглядит на практике
Вы прогнали оптимизацию, тестер подсветил набор с рекордной прибылью. Вместо того чтобы взять его, вы смотрите на «соседей»: если рядом лежащие значения параметров дают примерно тот же результат — это плато, ему можно доверять. Если чуть в сторону — и всё рушится, значит вы поймали случайный пик. Числа условны, проверяйте на своих данных, но правило простое: надёжнее середина широкого плато, чем острая вершина. Помогает и обратный приём: заранее спросите себя, есть ли у правила разумное объяснение, почему оно должно работать. Если единственный аргумент — «так вышло красивее на истории», это уже сигнал, что вы, скорее всего, подгоняете.
Частые ошибки
- Брать «самый прибыльный» набор параметров из оптимизации
- Крутить десяток параметров на коротком куске истории
- Радоваться острому пику вместо поиска плато
- Пропускать проверку на out-of-sample, потому что «и так красиво»
Частые вопросы
Сколько параметров — уже много?
Чем меньше, тем лучше; каждый лишний параметр — новая возможность подогнать шум.
Что такое плато устойчивости?
Диапазон параметров, где результат стабилен, а не единичная вершина.
Оптимизировать вообще нельзя?
Можно, но с разделением данных и выбором устойчивых значений.
Как понять, что я переоптимизировал?
Отличная история и слабый out-of-sample — почти всегда именно это.
Помогает ли простота стратегии?
Да: чем меньше параметров и чем понятнее логика, тем меньше места для случайной подгонки под шум прошлого.
Итог
Переоптимизация обманывает не рынок, а вас: она превращает шум прошлого в ложную уверенность. Защита — честная методика проверки на новых данных. Инструменты для этого — в нашем каталоге бэктест-сервисов.
Материал носит образовательный характер и не является индивидуальной инвестиционной рекомендацией (не ИИР).
Материал носит информационный характер и не является индивидуальной инвестиционной рекомендацией. Редакционная политика