algomrk
algomrk личный блог
02 января 2025, 12:10

Ошибки в бэктестинге (часть 1, а может и последняя).

Дисклеймер: Весь пост для более подробного раскрытия моего комментария к этому посту: smart-lab.ru/mobile/topic/1100858/

Тестирования стратегий на исторических данных может привнести очень много полезного. Но есть проблемы, которые приводят к тому, что на исторических данных стратегия будет работать очень хорошо, а в реальности покажет плохие результаты. Одна из причин для такого поведения — ошибка выжившего.

Предположим, вы придумали стратегию вида “покупать 10 самых низкокапитализированных компаний из SNP500 (или индекса Мосбиржи) и ребалансировать портфель раз в месяц”. Берете актуальный список компаний, качаете исторические данные для них и наблюдаете, что она показывает отличный результат на протяжении последних 10 лет. Что может пойти не так?

Дело в том, что индексы меняются. И те компании, которые оказались в индексах сегодня — показали очень огромный рост или стабильность в прошлом. В таком случае получится, что ваша стратегия покажет результат не потому что она хороша и действительно работает, а потому что вы использовали информацию из будущего. Грубо говоря если бы вы сегодня знали, что окажется в индексах через 10 лет, то какую стратегию не используй — вложение в эти компании конечно же принесут доход. Но в реальности многие компании падают и уходят из индексов навсегда…
14 Комментариев
  • wistopus
    02 января 2025, 12:13
    в реальности многие компании падают и уходят из индексов навсегда
    купи фонд на индекс...
  • SergeyJu
    02 января 2025, 12:34
    ошибки, которые встречаются на наших палестинах:
    -неучет или недостаточный учет транзакционных издержек (проскальзывание зависит от объема)
    -подглядывание вперед (например, в старом метастоке индикатор зигзага давал такой эффект)
    — то, о чем написал автор
    — использование цен, которые нереально получить (например, провести сделку по первой цене регулярной сессии на акциях МБ)
    — переподгонка из-за избыточного числа степеней свободы в оптимизируемых параметрах, в пределе ML может просто «запомнить весь график»
    — недостаточность использованного объема данных (тут не обязательно тупо мало данных, важно, чтобы все основные рыночные фазы были представлены в наборе данных)
    — подгонка под единичные события
    Буду рад, если кто дополнит.
  • 22022022
    02 января 2025, 12:36
    если бы вы сегодня знали, что окажется в индексах через 10 лет
    Тогда бы будущее изменилось. Это еще одна из ошибок бэктестинга, думать что график это запись на ленте в режиме play. Что достаточно угадать алгоритм и можно сидеть попивать коктейль ведь запись на ленте не возможно изменить.
  • Synthetic
    02 января 2025, 13:13
    IMHO, бэктестинг сам по себе огромная ошибка. Ибо вместо того, чтобы разобраться в природе вещей, как все устроено, какова природа данных, какие модели описывают реальность и т.п. люди занимаются бессмысленным и беспощадным бэктестингом. Как если бы Илон Маск не проектировал и потом испытывал свои ракеты, а беспорядочно сваривал куски железа на свалке и пытался их запустить облив топливом.
    • robomakerr
      02 января 2025, 13:08
      Synthetic, вы уже разобрались в природе рынка?)
      • Synthetic
        02 января 2025, 13:24
        robomakerr, 

        Вопрос задан не корректно. Рынок — это не математическое понятие, вроде поля комплексных чисел. Больше напоминает лоскутное одеяло сшитое из тряпок, кусков алюминия и наждачной бумаги.
        Но в некоторых лоскутках продвинулся.
        • robomakerr
          02 января 2025, 13:29
          Synthetic, ну, каков ваш ответ, таков и мой вопрос)
        • 22022022
          02 января 2025, 13:34
          Synthetic, Если рынок это череда событии А-Б-В в прошлом и А-Б-В-Б-А… в бесконечном будущем тогда только бэктест.
          Но если рынок это А-Б-В в прошлом и ГДWZ%$#JЙ d… в будущем то тоже имеет смысл посматривать на прошлое чтобы исключить А-Б-В.
          Но в целом бэктест не нужен, это ловушка из которой сложно выбраться чтобы взглянуть как бы outside the box.
          • wistopus
            02 января 2025, 14:10
            22022022, 
            в целом бэктест не нужен
            как любит говорить ves2010- «есть трендовые бумаги и есть не трендовые»… и на рынке есть два состояния флэт и тренд...

            тестировать тута нечего… надо сидеть и ждать, когда подует тренд (ветер) в наши трендовые бумаги (паруса)...
  • Хрен Столовый
    02 января 2025, 23:32
    Я знаю что в моексе будет, Газпром например))
  • Влад Л.
    03 января 2025, 00:06
    Ещё возможная причина нереального теста: кривые данные (плохая склейка фьючерсов, пропуски и т.п.)
  • Влад Л.
    03 января 2025, 00:08
    А также неучет планок, стоп-торгов, неработоспособности брокера, невозможность взять инструмент в шорт в тот момент.

Активные форумы
Что сейчас обсуждают

Старый дизайн
Старый
дизайн