Ошибка выжившего: почему бэктест видит только победителей

Бэктест по нынешнему списку монет не видит умерших. Что показали Браун, Гетцман, Ибботсон и Росс, числовой пример и чек-лист.

Главное за минуту
  • Ошибка выжившего возникает, когда тест использует только активы, которые ещё существуют: те, что обанкротились, выпали из данных.
  • Браун, Гетцман, Ибботсон и Росс (1992) показали, что выборка, усечённая выживанием, может создавать впечатление, что прошлая доходность предсказывает будущую.
  • В условном наборе из 20 монет, где 6 были делистингованы после падения на 90 %, выжившие в среднем дают +30 %, а весь набор — −6 %.
  • Лекарство — состав на момент даты: на каждую дату теста берите активы, которые тогда существовали и торговались, включая те, что потом умерли.

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

Что такое ошибка выжившего

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

Классическая работа — Браун, Гетцман, Ибботсон и Росс (1992) в Review of Financial Studies. Они рассмотрели свидетельства того, что прошлая доходность паевых фондов предсказывает будущую, и проанализировали «the relationship between volatility and returns in a sample that is truncated by survivorship» — связь между волатильностью и доходностью в выборке, усечённой выживанием. Их вывод: такое усечение может создавать видимость предсказуемости, причём достаточно сильную, чтобы объяснить силу свидетельств в пользу предсказуемости.1 Проще говоря, часть того, что выглядело как устойчивое мастерство, была артефактом выборки.

Числовой пример

Числа ниже условные, это не данные какого-либо рынка. Допустим, в 2022 году в списке «топ по объёму» было 20 монет. К 2026 году 6 из них делистингованы или упали на 90 %, а 14 всё ещё в списке и выросли в среднем на 30 %.

ГруппаМонетСредний результат
Выжившие (список сегодня)14+30 %
Погибшие (делистинг, −90 %)6−90 %
Весь набор 2022 года20−6 %

Весь набор: (14 × 30 + 6 × (−90)) ÷ 20 = −6 %. Бэктест по сегодняшнему списку покажет +30 % — разрыв в 36 пунктов, возникший только из-за выбора списка. Стратегия «покупай просадки» в такой выборке выглядит ещё лучше: каждая просадка у выживших по построению закончилась восстановлением, потому что монет, которые не восстановились, там просто нет, чтобы их купить.

Почему с этим сталкиваются на крипте

Три особенности делают ловушку лёгкой при тестировании монет:

  • Монеты приходят и уходят. Появляются новые, старые делистингуют или бросают, поэтому список, составленный сегодня, может сильно отличаться от списка трёхлетней давности.
  • Отбор по недавнему объёму или капитализации. Любой список «топ-монет» строится по информации, которая относительно начала вашего теста находится в будущем. Это заглядывание вперёд, спрятанное в выборе набора.
  • Мёртвые монеты легко потерять из данных. Если скачивать историю по тикерам, которые биржа показывает сегодня, делистингованных в списке просто нет, то есть недостающие неудачники не забыты нарочно, они никогда не попадают в ваш набор.

Как уменьшить искажение

  1. Составляйте набор на момент даты. На каждую дату теста берите активы, которые тогда существовали и торговались (например, ранжированные по объёму, известному на эту дату), и оставляйте их в данных после гибели.
  2. Храните делистинги. Ведите запись обо всех снятых тикерах с последней ценой и заранее решите, как считать финальный период гибнущей монеты: по реальной цене выхода, если она есть, иначе по консервативной оценке.
  3. Тестируйте на активах, выбранных до тестового периода, а не после него.
  4. Сравнивайте с набором, а не с выжившими. Показывайте результат стратегии против «купить и держать» по всему списку на момент даты.
  5. Говорите, что за выборка. Если приходится использовать выживших, укажите, что результат оптимистичен и примерно на сколько, как в примере.

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

Footnotes

  1. Brown, S. J., Goetzmann, W., Ibbotson, R. G., Ross, S. A. (1992). «Survivorship Bias in Performance Studies». Review of Financial Studies 5(4), 553–580. DOI 10.1093/rfs/5.4.553. Цитата — из аннотации; в аннотации сказано, что числовые примеры показывают: эффект может быть достаточно сильным, чтобы объяснить свидетельства предсказуемости. ↩

  2. Bailey, D. H., Borwein, J. M., López de Prado, M., Zhu, Q. J. (2014). «Pseudo-Mathematics and Financial Charlatanism». Notices of the AMS 61(5), 458–471. Числовой пример в этой статье (20 монет, 14 выживших по +30 %, 6 неудач по −90 %) наш и условный. ↩

Источники

  1. Survivorship Bias in Performance Studies. Stephen J. Brown, William Goetzmann, Roger G. Ibbotson, Stephen A. Ross. Review of Financial Studies 5(4), 553–580, 1992
  2. Pseudo-Mathematics and Financial Charlatanism: The Effects of Backtest Overfitting on Out-of-Sample Performance. David H. Bailey, Jonathan M. Borwein, Marcos López de Prado, Qiji Jim Zhu. Notices of the AMS 61(5), 458–471, 2014
Исследования OrderBlock.net

Команда сканера OrderBlock.net. Читаем первоисточники — научные работы и документацию бирж — и указываем каждый источник.

Статья — исследование, а не инвестиционная рекомендация. Результаты на истории не гарантируют результатов в будущем.