Переобучение стратегии: когда бэктест слишком хорош
Перед тобой бэктест, который выглядит так, будто никогда не знал убытка. Кривая растёт почти без перерывов, показатели сильные, и всё же остаётся вопрос: нашла эта стратегия настоящее преимущество или её просто крутили так долго, пока она не стала подходить к прошлому? Именно этот вопрос стоит за понятием переоптимизации. В конце этой статьи ты будешь знать, что означают переоптимизация и подгонка под кривую, почему число оптимизированных параметров меняет риск, и какие инструменты предлагает против этого StrategyQuant X: Cross Checks, мультирыночный анализ, симуляция Монте-Карло, опциональный плагин Overfit Risk Score и анализ после оптимизации. В конце также прямо сказано, что эти проверки могут тебе показать, а что нет.
Что означают переоптимизация и подгонка под кривую
Переоптимизация означает подгонку стратегии точно под те исторические данные, на которых она построена. Документация StrategyQuant описывает это как главную опасность для стратегий, которые строятся методами генерации в стиле машинного обучения. Это не значит, что стратегии, собранные вручную, автоматически были бы безопасны, такого утверждения источник не делает, предупреждение относится прямо к такому способу построения.
Подгонка под кривую тесно связана с этим и описывает, что стратегию подгоняют под прошлое так долго, пока она не будет хорошо выглядеть в бэктесте, хотя настоящего преимущества за этим может и не быть. В сообществе ты часто слышишь оба термина в одном дыхании. Они описывают две стороны одной проблемы: подгонку под то, что было, вместо того, что повторяется.
Почему больше оптимизированных параметров повышает риск
Каждый параметр, который ты освобождаешь в прогоне оптимизации, даёт алгоритму ещё одну возможность подстроиться под особенности именно этих курсовых данных. Чем больше их открыто одновременно, тем легче оптимизация находит комбинацию, которая случайно подходит к прошлому, хотя никакой состоятельной логики за этим нет. Поэтому в документации сказано: меньшее число оптимизируемых параметров делает стратегию, как правило, более устойчивой. Это не значит, что стратегия с малым числом параметров автоматически свободна от переоптимизации, для этого нет доказательств. Меньше регулировочных винтов уменьшает возможность для переоптимизации, но не исключает её.

Что видно при взгляде на данные вне выборки
Заметное падение результатов часто проявляется только тогда, когда стратегия сталкивается с новыми, невиданными данными, то есть в тесте вне выборки. Документация описывает это падение результатов как деградацию стратегии и называет две возможные причины: переобучение на данных внутри выборки или изменившиеся рыночные условия, к которым стратегия не может приспособиться. Худший результат в тесте вне выборки это признак, а не доказательство. Из него нельзя автоматически заключить, что причиной было переобучение, рынок за это время мог просто измениться. Для тебя как трейдера это значит: разочаровывающий результат вне выборки это повод присмотреться внимательнее, а не автоматический приговор. И даже стратегия, которая проходит это сравнение, была проверена только на прошлых данных. Ни одна из этих проверок не говорит тебе заранее, как стратегия поведёт себя в реальных, будущих рыночных условиях.
StrategyQuant X предлагает для этого несколько инструментов. Лучше всего понимать их как разные точки зрения на один и тот же вопрос, а не как отдельный инструмент, который вынесет тебе окончательный приговор.

Cross Checks: встроенная проверка на устойчивость
Cross Checks описаны в документации как неотъемлемая часть StrategyQuant X. Тесты на устойчивость и защита от переоптимизации должны помочь убедиться, что у стратегии есть реальное преимущество, а не только хороший вид. Это описание производителя о назначении инструмента, а не независимое измерение на конкретной стратегии. Инструмент тебе что-то показывает, но он не решает этот вопрос за тебя.

Несколько рынков как дополнительная проверка
Ещё одна проверка из документации состоит в том, чтобы посмотреть, работает ли сгенерированная стратегия также на нескольких рынках, а не только на том, для которого она строилась. Это один из описанных способов исключить переоптимизацию при анализе стратегии в StrategyQuant X. Для этого ты настраиваешь дополнительные рынки и следуешь описанному мультирыночному рабочему процессу с медианными сниппетами в базе данных. Здесь тоже действует правило: пройденная мультирыночная проверка не доказывает, что стратегия свободна от переоптимизации. Это дополнительная проверка в других условиях, и не более того.
Симуляция Монте-Карло: много прогонов, один взгляд на разброс
Анализ Монте-Карло в StrategyQuant основан на том, что одна и та же симуляция повторяется много раз с небольшими случайными изменениями. В документации сказано: чем больше повторов ты запускаешь, тем надёжнее становится возникающее из этого статистическое распределение. Важно при этом: этот метод работает с прошлыми, смоделированными данными о сделках. Это не предсказание будущих результатов стратегии, а картина того, насколько сильно прошлый результат зависит от небольших случайностей.
Overfit Risk Score для фильтров
Описанный плагин может при каждом применении фильтров рассчитывать Overfit Risk Score, с уровнями низкий, средний и высокий. Основой служат число активных фильтров, доля отфильтрованных сделок и то, используются ли так называемые hindsight-фильтры, то есть фильтры, которые задним числом подогнаны под уже известные результаты. Этот инструмент принадлежит автору из команды StrategyQuant, который пишет под корпоративным адресом, и потому считается официальным вкладом, а не документированной ключевой особенностью программы. Даже низкий балл не доказывает, что стратегия не содержит переоптимизации, он оценивает только логику фильтров, которую ты только что применил.
Способ построения: Random Generation, Data Mining и классический метод
В документации Random Generation описывается как режим построения, который должен быть менее подвержен переоптимизации, потому что стратегия после построения дальше не оптимизируется и не дорабатывается. Так написано в разделе о преимуществах этого режима. Это не означает, что Random Generation исключает переоптимизацию, а только то, что отсутствует определённый шаг, на котором она иначе может возникнуть.
Кроме того, документация различает классический, собранный вручную подход без Data Mining, как при построении стратегии в AlgoWizard, и Data Mining, при котором тестируется большое число правил, чтобы найти стратегию с самой высокой наблюдённой исторической производительностью. Это различие задумано как рамка, а не как пошаговое руководство. Источник не говорит, что Data Mining автоматически несёт больше риска переоптимизации, чем классический способ построения, для этого не хватает доказательств.
Анализ после оптимизации: Optimization Profile и Parameter Permutation
Optimization Profile и System Parameter Permutation оба предполагают, что сначала был проведён прогон оптимизации. Затем методы оценивают результаты всех прогонов этой оптимизации. Они не заменяют out-of-sample тест, они добавляются после него и показывают тебе, насколько чувствителен результат к небольшим изменениям параметров.
Что показывают эти проверки и что они не показывают
Cross Checks, мультирыночный анализ и симуляция Монте-Карло вместе дают заметно более полную картину, чем один отдельный бэктест. И всё же остаётся граница, которую ни одна из этих проверок не может отменить: каждая из них работает с прошлыми или смоделированными данными. Ни одна из них не может заранее подтвердить тебе, как поведёт себя стратегия в реальных, будущих рыночных условиях. Чистый бэктест, пройденный Cross Check или стабильное распределение Монте-Карло это признаки, которые могут поддержать твою оценку. Доказательством будущих результатов не является ничто из этого.
Когда в следующий раз ты сидишь перед безупречной кривой, стоит задать вопрос, сколько параметров было оптимизировано, работает ли стратегия на нескольких рынках и что распределение Монте-Карло говорит о разбросе. Одного ответа редко хватает, несколько точек зрения вместе скорее.
Эта статья служит обучению и не является инвестиционным консультированием. Прошлые результаты, в том числе результаты бэктестов, не гарантируют будущих результатов. Торговля финансовыми инструментами связана с рисками, ты можешь потерять деньги.
Эта статья служит обучению и не является инвестиционным консультированием. Прошлые результаты ничего не гарантируют на будущее.
А как это делаешь ты? Расскажи в сообществе. Бесплатно, на твоём языке.
Зарегистрируйся бесплатно