Почему при тестировании торговых систем я не использую OOS (Out Of Sample)? Потому что в этом совершенно нет нужды. Но начну с того в каких случаях OOS необходим.
1) при поиске системы автоматическим подбором индикаторов и параметров.
Есть различные программы, которые сами подбирают систему для какого-либо инструмента путем перебора индикаторов, математическими путями и т.п. Например, Adaptrade Builder, ForexStrategyBuilder и др. Понятно что на определенном участке графика можно подобрать что-либо, для того чтобы построить более-менее гладкую восходящую эквити. Если еще применить кучу фильтров и оптимизировать параметры, то эквити на каком-нибудь участке графика будет гладкой до невозможности. Но сразу же после IS (in Sample) начнут действовать совершенно другие закономерности и, с огромной вероятностью, система не пройдет испытание OOS, что является положительным моментом для трейдера. И хорошо бы чтобы ВСЕ варианты систем не прошли бы OOS, но ведь найдется такая система, которая совершенно случайно пройдет испытание и у трейдера появится ложная надежда и он поставит такую систему в реальную торговлю. Чем это чревато, наверняка знают все действующие трейдеры. Поэтому, вывод, что применяй OOS в данном случае, что не применяй, результат будет один и тот же. А все потому что таким путем торговую систему не построить. Ну разве что только для какой-то одной определенной фазы рынка. А фазы ведь меняются без предупреждения.
2) при поиске системы программами нейронных сетей.
Эти программы обычно дают на выходе очень гладкие восходящие эквити, ну просто граали. И чтобы развенчать их, просто необходим OOS. Но опять же, попадаем в ловушку, так как есть вероятность что OOS совершенно случайно продолжит восходящую эквити и трейдер поверит в найденный грааль. Лучше бы не верил, потому что OOS сильно навредит ему.
3) при проверке торговых идей от балды, типа, а проверю-ка я торговлю по стохастику.
Скорее всего такой подход даст случайную эквити и такую же OOS, но есть вероятность что проверяющий попадет целиком на одну фазу рынка (например бурный тренд) и проверяемые IS и OOS оба будут располагаться на этой фазе. Результат будет, как бы, подтвержден, но в реале, когда тренд сменится флетом, система разочарует трейдера. То есть, и в этом случае OOS дает ложную надежду.
Так как же быть?
Все просто. Как все знают, изначально должен быть не перебор индикаторов, а торговая идея, то есть подмеченная закономерность рынка, или как многие ее называют рыночная неэффективность. Заметили ее, закодировали и проверили в тестере на большом промежутке времени, чтобы туда входили все фазы рынка — тренд, флет, высокая волатильность, низкая, широкий диапазон, узкий диапазон и т.д. В данном случае торговая идея в голове и есть IS, а проверка ее в бэктестере будет считаться OOS.
Если в результате бэктеста появилась очень плавная эквити, вообще без просадок и, хотя бы, убыточных месяцев, то надо выбросить такую систему. Вернее не выбросить, а проверить код на заглядывание в будущее и сделки на реалистичность их совершения. Тут точно будет что-то не так. Нет на рынках таких неэффективностей. Плавная эквити без просадок под 45 градусов может быть, например, в следующих случаях:
1) Тестирование на огромном промежутке времени, например с 1950 года по 2016. Тогда просадок просто не будет видно визуально на таком сжатом графике. Их не видно, но они есть. Протестировать лет, хотя бы за 5 и просадки сразу визуализируются.
2) При очень маленьком среднем доходе в одной сделке сравнимом со спредом. Когда учтем комиссии и проскальзывание, эквити сразу превратится в убыточную.
Поэтому, эквити реальной зарабатывающей системы должна быть реалистичной — с просадками, иногда длительными, даже с убыточными годами. И вот теперь, если мы попытаемся для найденной реалистичной, имеющей преимущество перед рынком, торговой системы применить OOS то попросту можем попасть в новую ловушку. На период OOS запросто с немаленькой вероятностью может выпасть плановая, естественная просадка….. и мы забракуем наш настоящий грааль. Вот это будет, действительно, катастрофа, ведь граалей на современных рынках раз-два и обчелся….. :)
Поэтому, в данном случае применение OOS несет в себе высокий риск. На мой взгляд, вполне достаточно того что торговая идея (IS), появившаяся в голове подтвердилась в бэктесте (OOS). А далее, уже полученную на большом промежутке времени, эквити, исследовать на просадки, годовой доход, время обновления новых вершин эквити и т.д. Если идея системы была изначально, то должно быть и понимание почему, например, появилась просадка на какой-то определенной фазе рынка, почему был резкий взлет эквити на другой фазе рынка и т.п. — в общем все это необходимо подробно исследовать на полученной эквити. Получить понимание изменения эквити в любой момент времени и тогда OOS станет просто не нужной.
Вот почему я не использую OOS :)