IS, OOS, …

Для осуществления базовой проверки работоспособности торговой системы чаще всего применяется подход, основанный на разделении исторических данных на два промежутка — IS (In-Sample, выборочный) и OOS (Out-of-Sample, промежуток вне выборки). Разработка и оптимизация параметров торговой системы осуществляется в рамках IS промежутка; оценка результативности найденного алгоритма производится на OOS промежутке. Кратко это можно сформулировать так: разрабатывать систему на одних данных, проверять её жизнеспособность на других, «незнакомых» данных.

Предположим, что мы разрабатываем торговую систему, предназначенную для торговли акциями Норильского Никеля. Мы можем загрузить торговые данные по этой бумаге за 2008–2011 года, после чего данные за 2008, 2009 и 2010 года отнести к IS промежутку, тогда как данные за 2011 год отнести к OOS промежутку. Весь процесс разработки и оптимизации Механической Торговой Системы будет вестись исключительно на IS данных до тех пор, пока результативность системы на IS промежутке нас не удовлетворит. После этого Механическая Торговая Система должна быть протестирована на OOS данных, не использовавшихся при её создании.

Целью разработки и/или оптимизации любой МТС является нахождение алгоритма, эксплуатирующего систематически повторяющиеся локальные неэффективности рынка с целью извлечения прибыли. Использование исторических данных при создании системы несёт в себе опасность чрезмерной подгонки алгоритма под прошлое, тогда как OOS тестирование служит как раз для недопущения переподгонки.

Типичным примером equity системы, чрезмерно оптимизированной под прошлое, может служить такой график динамики капитала:

На IS периоде, с середины 2006 по декабрь 2007 года, система показывает обнадёживающие результаты, тогда как на OOS периоде, следующем сразу за IS, быстро теряет всю накопленную прибыль.

Использование IS-OOS подхода позволяет быстро отбраковывать заведомо нежизнеспособные торговые алгоритмы, однако, не позволяет выявлять прибыльные и устойчивые системы с достаточной степенью достоверности. Если система плохо работает на OOS — понятно, что её едва ли стоит торговать, но какие выводы можно сделать, если на OOS периоде система показывает надёжную работу?

Представим себе процесс проверки качества боя снайперской винтовки. Оружие закрепляется в станок, производится прицеливание, после чего делается первый выстрел. Всем понятно, что по отклонению пули, выпущенной первым выстрелом, от «десятки» на мишени, выводов о качестве винтовки сделано не будет. Для получения объективной картины будет произведена серия выстрелов с последующим анализом разброса пуль — только по результатам серии испытаний можно будет говорить о качестве винтовки в целом.

Проверка найденной Механической Торговой Системы на OOS периоде по сути своей аналогична одному выстрелу из винтовки. Если этот выстрел был совсем плох (пуля вообще не попала в мишень/система сразу ушла в просадку и из неё не вернулась), то винтовку/систему скорее всего следует отбраковывать сразу, но как поступать, если первый выстрел оказался удачным? Для винтовки ответ очевиден — нужно стрелять ещё, однако, для системы такого варианта нет, поскольку исторические данные у нас есть в единственном варианте.

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

Назад   На оглавление   Вперед

Написать администратору