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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Итог

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

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

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

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