"Out-Of-Sample" - где расположить, справа или слева?

10 декабря 2019, 18:43
fxsaber
34
499

Когда-то в паблике столкнулся с мнением, что OOS должен располагаться только справа. Т.е. расположение его слева от интервала Оптимизации - ошибка. Я с этим был категорически не согласен, т.к. не видел разницы. Теперь вижу. Ошибался, был не прав.


Представим годовой интервал, на котором есть замечательная закономерность, которую долго и успешно торгует определенная ТС. Для запуска на реал этой ТС, ее следует настроить. Есть множество вариантов входных параметров ТС, которые отлично подходят для проторговки закономерности. Как правило, мощность этого множества (количество вариантов/элементов) много больше 10^6. Чем больше входных параметров у ТС, тем больше мощность. Для краткости назовем это множество ProfitA и мощность его условно равна 10^6.


Итак, мы берем один или несколько вариантов из ProfitA и запускаем на реале. Закономерность есть, профит капает.


Допустим, что "кукл" уже месяц, как включил рандомные котиры. Т.е. на них нет закономерностей. По этой причине ТС уже месяц сливает в среднем со скоростью спреда + другие издержки.


Берем этот месяц и Оптимизируем, находя соответствующее множество ProfitB с мощностью 10^3, которое является подмножеством ProfitA. Очевидно, что если расположить OOS слева аж на целый год, где была закономерность, то наша ТС для вариантов из ProfitB покажет стабильный плюс. Ну ведь круто, 1 месяц Оптимизировался, и 12 месяцев крутой плюс! Запускаем?


Кто-то скажет в такой ситуации, что в любой момент закономерность может сломаться и ТС начнет сливаться. Это утверждение верно всегда. Но мы то знаем, что закономерности никакой нет уже как месяц, а наша ТС в бэктесте показывает чудеса.


Т.е. на глухом интервале мы сделали подгонку, которая на отличном интервале показала профит. Тем самым обманулись. А произошло это из-за того, что OOS расположили слева.


Надо ли его располагать справа? Допустим мы ТС оптили на последних трех месяцах, где был отличный интервал. Слева у нас еще девять месяцев замечательного интервала, справа - один гадкий. Соответственно, слева OOS покажет плюс, справа - минус. В такой ситуации запускаем? Наверное, нет.


По такому сценарию можно очень долго самообманываться. Когда оптимизируешь ТС, результат показывает плюс на огромном OOS слева, а сливает, когда запускаешь на реале.


Берите OOS не только слева, но и справа. Walk-forward и другие методы убедить себя в своей вере специально не затрагивал.