Правила тестирования, которым необходимо следовать для того чтобы избежать подгонки системы под исторические данные.
Подстраивание под исторические данные или подстраивание под кривую является пожалуй одной из самых существенных проблем, встречающихся при тестировании торговой системы. Некоторое подстраивание под кривую неизбежно. Было бы сложно и нежелательно разрабатывать техническое исследование без этого. Когда трейдер исследует график
предыдущих цен и видит, что 9-дневный RSI, кажется, лучше подходит для этого конкретного рынка, чем стандартный 14-дневный, он подстраивается под кривую. После этого трейдер тестирует новую систему и находит, что с 9-дневным RSI система действительно дает лучшие результаты. Такой подход кажется трейдеру простым и эффективным, и он начинает искать дополнительные технические индикаторы, которые в совокупности с 9-дневным RSI улучшали бы показатели системы на данном историческом периоде цен. Как только этот процесс поиска идеальной системы начинает давать хорошие результаты на том же отрезке цен, перестановки в системе становятся практически бесконечными: в голове этого трейдера пробегают мысли о том, что ему лучше добавить еще несколько технических исследований, чтобы быть уверенным в том, что он ничего не пропустил, он оптимизирет систему для правильного начального риска и лучших следящих остановок, чтобы она стала максимально полной. Конечным продуктом является система, заключающая в себе все лучшие побуждения и подогнанная под кривую в n-той степени. Несмотря на то, что она хорошо выглядит на бумаге, шансы против того, что она будет работать в будущем, становятся астрономическими. Результаты оптимизации оказываются прямо противоположными тем, которые казались бы очевидными. Чем лучше выглядит система и чем более полной и сложной является, тем с меньшей вероятностью она добьется успеха.Существует строгое объяснение того, почему оптимизация и подстраивание под кривую дают плохие результаты. Каждому статистику известно понятие потери свободы. В терминах непрофессионала это значит, что каждый параметр, добавляющийся к торговой системе, представляет собой потерю степени контроля над конечной отдачей процедуры тестирования. Чем больше технических исследований или торговых правил вводятся в систему, тем менее здоровыми и надежными будут результаты. Чем больше трейдер старается улучшить систему, тем с меньшей вероятностью она будет работать так же, как при тестировании.
Системе следует иметь от двух до пяти переменных. Чем меньше переменных, тем более надежны результаты. Интересное следствие такого подхода заключается в том, что он позволяет оглянуться на проделанную работу и быстро понять, является ли она подгонкой под кривую. Вероятность того, что система окажется подогнанной под кривую, напрямую зависит от количества переменных, использовавшихся при тестировании. Чем большее количество технических исследовании и правил, особенно исключении из правил, тем больше система подогнана под кривую.
Другой путь избежать подстраивания под кривую¾ отказ от создания систем, настроенных на специфические рынки. Это ловушка, в которую просто попасть, и это также основной принцип подстраивания под кривую. Хорошая система не обязана исторически работать на всех рынках, чтобы быть успешной, но она должна работать на большинстве рынков с небольшим количеством изменений от рынка к рынку. Если требуется изменять систему с тем, чтобы адаптировать ее к каждому рынку, то есть серьезный изъян в основной системе. Каждому начинающему трейдеру кажется, что каждый рынок обладает своим уникальным характером, однако существуют времена, когда рынок каких-то акций практически не был волатильным, и времена, когда он демонстрировал колебания стоимости на несколько процентных пунктов в день. Рынки меняются, и лучшим способом добиться уверенности в том, что торговая система будет идти с ними в ногу, будет ее тестирование в неизменной форме на возможно большем количестве разнообразных рынков. Только лишь при достижении положительных результатов на большинстве выбранных рынков можно будет судить о прогрессе системы.
Существует несколько наиболее общих схем оптимизации и тестирования. Рассмотрим некоторые из них:
1. Простая оптимизация. Самый простой способ тестирования, суть заключается в том, что после создания торговой системы, она проходит тестирование сразу на полном объеме значений параметров до тех пор, пока не находите тот набор, который дает лучшую отдачу. В этой схеме тестирования для оптимизации используется сразу весь период исторических данных. Это наименее продуктивный метод тестирования системы, поскольку не использует дополнительного тестирования для избежания проблемы подстраивания под кривую.
2. Совокупное опережающее тестирование. Это также называется
“прогонной” оптимизацией. Совокупное опережающее тестирование требует, чтобы система оптимизировалась на периоде в начале ваших данных, а затем тестировали полученные результаты на относительно небольшом последующем участке. Затем система должна быть переоптимизирована на периоде, включающем оба набора данных, и цикл должен быть повторен. Например, если есть 10-летние данные по казначейским обязательствам, то первоначально можно было бы оптимизировать на первых 3 годах, а затем тестировать на следующем за ними году. Если результаты все еще хороши, оптимизация затем должна быть проведена на всех четырех годах, с последующим тестированием на пятом году, и так далее. Это одна из форм оптимизации, которая была протестирована Лукасом и Брорсеном, и которую они нашли не лучшей, чем простая оптимизация.3. Простое опережающее тестирование. Этот способ называют также
“слепым моделированием” или “тестированием за пределами выборки”. Следуя этому способу тестирования, исторический материал разбивается на два интервала, и исходная система первоначально тестируется на первом более позднем интервале данных. Затем система с лучшей комбинацией параметров и правил тестируется на более свежем временном периоде. Если результат не устраивает, то процесс повторяется. Самое важное в этой схеме это опережающее тестирование, без которого любая торговая система, подвергаемая простому тестированию или оптимизации, скорее всего, будет обречена на провал. Опережающее тестирование является наиболее элегантным тестированием системы. Если система не доказала свою прибыльность на процедуре опережающего тестирования, следует искать ей альтернативу.Другой важной и часто недооцениваемой областью является выбор периода тестовых данных. По крайней мере, период тестирования должен быть достаточно продолжительным для проведения минимум 30 торгов на каждом рынке. Получение менее 30 торгов нарушает одно из основных правил теории выборок, которое гласит, что должно существовать, по меньшей мере, 30 точек данных для того, чтобы набор данных отвечал нормальному распределению. Любое число менее 30
произведет статистически ненадежные результаты. Чем больше количество торгов, тем лучше.Не менее важно, чтобы тестируемые рыночные периоды включали в себя как можно больше примеров всевозможных рыночных условий. Направления вверх, вниз и вбок являются простейшими примерами возможных рыночных условий. Исследуемый период должен содержать как можно больше примеров. Целью тестирования является моделирование возможных условий будущего путем включения максимального числа рыночных условий прошлого. Если тестовый
период представлен только несколькими годами данных, это может повлечь за собой проблемы. Например, если рынок акций не имел периода серьезного падения цен, и соответственно на представленных данных по фьючерсам на фондовые индексы также не было серьезных падений, то тестирование на таких данных будет отдавать предпочтение системам с бычьим уклоном. За все время своего существования рынки фондовых индексов не дают данных достаточно, чтобы отвечать рыночным условиям будущего. Рынок нефти, с другой стороны, продемонстрировал за всю свою историю разнообразие в значительно большей степени, и можно ожидать, что на его данных можно произвести более здоровую и устойчивую торговую систему. Если акции падали в течении довольно долгого периода в следствии затяжного кризиса или депрессии, то как не трудно догадаться, наиболее прибыльными здесь окажутся системы лучше распознающие медвежий тренд, и большее количество доходов будет получено именно в этом направлении рынка. Это не означает, что торговая система должна отдавать предпочтение этой стороне. Система не должна иметь собственного мнения или уклона в какую бы то ни было из сторон рынка, в идеале она должна быть нейтральной.Общий вывод может быть следующим: не существует строгого определения того, какое количество данных должен включать в себя тест. Но если предположить, что средняя система следования за трендом торгует примерно раз в месяц на каждом рынке, то по меньшей мере, три года должны браться в качестве минимального периода тестирования для того, чтобы первичный тест произвел по крайней мере 30 торгов. Затем следует добавить два или более лет для опережающего тестирования и в результате получится пять лет, что и является обычно приемлемым минимумом. К этому стоит добавить еще времени, если рынок не был разноплановым (падающим, растущим, боковым) на изучаемом периоде. В период тестирования следует включить как можно больше разнообразных рыночных условий, чтобы получить наиболее репрезентативную выборку рыночных условий.