Глава 11. Часть 2. Ложь, грязная ложь и тестирование прошлого

Удача и время

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

Что случится с показателями нашего теста, если мы возьмем короткий промежуток времени, например 3,5 года, с января 2003 года по июнь 2006 года? Для этого периода средняя отдача при случайных входах составляет 35 процентов, а коэффициент MAR составляет 1,06. Настоящие системы показывают более хороший результат. Система тройной скользящей средней принесла 48,5 процента отдачи с коэффициентом MAR, равным 1,50. Система прорывов Боллинджера принесла 52,2 процента отдачи с коэффициентом MAR, равным 1,54, а система двойной скользящей средней – 49,7 процента отдачи с коэффициентом MAR, равным 1,25.

Если говорить о случайных тестах, сколько удачливых трейдеров по итогам 100 тестов смогли показать хорошие результаты? Сколькие счастливчики смогли показать более высокие результаты, чем системы? У 17 тестов из 100 коэффициент MAR был выше 1,54; из этих 17 только у 7 отдача была выше, чем 52,2 процента. А самый удачливый трейдер, торговавший без системы, получил 71,4 процента отдачи с падением на уровне 34,5 процента и коэффициентом MAR, равным 2,07. Эти цифры могли бы дать пищу для размышлений тем, кто склонен изучать успех того или иного трейдера, основываясь лишь на результатах его работы за три года.

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

Хорошие инвесторы вкладывают деньги в людей, а не в исторические результаты. Они знают, как идентифицировать способности, создающие великолепные результаты в будущем, а также могут определить черты, свидетельствующие о средних способностях к трейдингу. Этот метод является лучшим способом преодоления действия случайных эффектов. Однако хорошая новость для любителей исторического моделирования состоит в том, что на самом деле достаточно просто определить, когда результаты обратного теста вызваны случайными эффектами, а когда – наличием перевеса в системе. В главе 12 мы подробно обсудим этот вопрос, но сначала давайте рассмотрим еще две причины, по которым обратное тестирование не соответствует реальности.

Оптимизация

Различия между результатами тестирования и реальной работы могут быть вызваны еще одной причиной, которую я называю парадоксом оптимизации. Парадокс часто вызывает путаницу, особенно среди трейдеров, которые слабо знакомы с принципами компьютерного моделирования. Оптимизация – это процесс определения того, какие числовые значения следует использовать при торговле с помощью системы, основанной на расчетах. Эти числовые значения называются параметрами. Например, в длинном скользящем среднем параметром является количество дней. Другим параметром является количество дней в коротком скользящем среднем. Оптимизация представляет собой процесс выбора наилучших, или оптимальных, значений для данных параметров. Многие трейдеры не признают оптимизацию, считая, что она подразумевает подгонку кривой и в итоге ведет к искажению результатов. Но я считаю, что это чушь!

Правильная оптимизация полезна, так как всегда лучше оценивать результаты, изучая изменения какого-либо параметра, чем игнорировать их. Зачастую это помогает выявить, что результаты достигнуты благодаря случайным эффектам, а не наличию перевеса в системе. Оптимизация – это исследование влияния того или иного фактора на результаты, а затем принятие квалифицированного решения о том, какой из них следует использовать при реальной торговле.

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

Парадокс оптимизации

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

Рисунок 11-1. Изменение значения коэффициента MAR при изменении порога входа

Изменение значения коэффициента MAR при изменении порога входа
Copyright 2006 Trading Blox, все права защищены.

Использование значений параметров, определенных в ходе корректной оптимизации, должно повысить вероятность получения хороших результатов при реальной торговле в будущем. Это может подтвердить следующий пример. Как вы помните, в системе прорыва Боллинджера присутствуют два параметра. На рисунке 11-1 изображен график значений коэффициента MAR как отправного входного параметра, определяющего ширину канала волатильности в показателях стандартного отклонения, при значениях от 1 до 4 величин стандартного отклонения.

Заметьте, что пиковыми для данной модели являются результаты при ширине канала, равной 2,4 величинам показателя стандартного отклонения. Любое значение входного порога, меньшее или большее 2,4 в рамках данного теста, покажет более низкое значение коэффициента MAR.

Теперь, возвращаясь к моему утверждению о целесообразности оптимизации, давайте предположим, что мы не оптимизировали ширину канала, а решили просто использовать ширину канала, равную 3,0. Мы принимаем такое решение, помня из курса статистики, что в нормальном распределении более 99 процентов значений находятся в пределах 3-процентного отклонения от среднего. Если предположить, что ситуация в будущем не изменится, такое решение приведет к тому, что мы выложим много денег, и при этом наш трейдинг испытает гораздо более глубокое падение, чем можно было бы ожидать при входном значении 2,4. Для того чтобы дать вам представление о том, насколько существенна разница, скажу, что тест при параметре 2,4 приносит за период 10,5 лет в 8 раз больше денег при том же уровне падения, что тест при параметре 3,0. Отдача при параметре 2,4 приносит 54,5 процента по сравнению с 28,2 процентами при входном значении, равном 3,0.

Рисунок 11-2. Изменение значения коэффициента MAR при изменении количества дней скользящей средней

Изменение значения коэффициента MAR при изменении количества дней скользящей средней
Copyright 2006 Trading Blox, все права защищены.

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

Параметр количества дней в скользящей средней

На рисунке 11-2 изображен график значений коэффициента MAR при изменении количества дней в скользящей средней (определяющего центр канала волатильности в ленте Боллинджера) со 150 до 500 дней.

Заметьте, что пиковыми для данного теста являются результаты для значения 350 дней. Любое значение выше или ниже 350 дней в данном тесте приводит к уменьшению коэффициента MAR.

На рисунке 11-3 изображен график значений коэффициента MAR как пороговых значений выхода. Пороговое значение определяет точку выхода. Ранее, обсуждая в книге систему прорыва Боллинджера, мы говорили о том, что выход из системы производится, когда цена закрытия пересекает скользящую среднюю, определяющую центр канала. В данном тесте я хотел проверить, что случится, если выход из системы будет произведен до или после момента пересечения. Для длинных позиций позитивный порог выхода обозначает количество стандартных отклонений выше скользящей средней, а для коротких позиций – количество стандартных отклонений ниже скользящей средней. Отрицательные значения ниже скользящей средней определяют длинную позицию, а выше него – короткую позицию. Значение параметра, равное нулю, соответствует первоначальной системе, то есть выходу в момент пересечения скользящей средней. Обратите внимание, что происходит на рисунке 11-3 при изменении порога выхода для значений от -1,5 до 1,0. Заметьте, что пиковыми являются значения при величине параметра, равной -0,8. Любое значение, большее или меньшее -0,8, в рамках данного теста приведет к уменьшению значения коэффициента MAR.

Рисунок 11-3. Изменение значения коэффициента MAR при изменении порога выхода

Изменение значения коэффициента MAR при изменении порога выхода
Copyright 2006 Trading Blox, все права защищены.

Основа для прогнозов

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

Можно было бы ожидать таких же результатов от реального трейдинга, если бы будущее в точности соответствовало прошлому. Но это никогда не произойдет! Давайте еще раз посмотрим на графики в данной главе: каждый из них имеет форму, напоминающую гору с вершиной, как, например, на рисунке 11-4.

Если значение в точке A обозначает типичное неоптимизированное значение параметра, а значение в точке B обозначает оптимизированный параметр, я бы сказал, что В представляет лучшее значение параметра с точки зрения трейдинга, при котором, однако, результаты будущего трейдинга будут, скорее всего, хуже, чем в исторических тестах.

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

Рисунок 11-4. Примеры значений A и B

Примеры значений A и B
Copyright 2006 Trading Blox, все права защищены.

Почему так происходит? Чтобы прояснить ситуацию, давайте предположим, что будущее изменится таким образом, что сдвинет график либо влево, либо вправо – мы точно не знаем куда. Слева и справа от значений A и B на рисунке 11-5 присутствует набор значений – возможных изменений параметра в связи с изменчивостью будущего. Мы называем такие параметры границами ошибки.

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

Рисунок 11-5. Параметры A и B с границами ошибки

Параметры A и B с границами ошибки
Copyright 2006 Trading Blox, все права защищены.

В случае значения, равного B, мы придем к другим результатам. Любое изменение, неважно – влево или вправо, приведет к ухудшению результатов.

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

Это не означает, что при проведении сделок мы должны использовать параметр A. Даже в случае существенного сдвига значения вокруг B все равно выше, чем вокруг A. Таким образом, даже если оптимизация уменьшает ценность прогноза, вы все равно захотите торговать с использованием значений, которые, по всей видимости, приведут к позитивным результатам, даже в случае сдвига.

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

Подгонка кривой

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

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

Я наблюдал многочисленные примеры того, как поставщики систем использовали эту технологию для улучшения показателей системы после неудачных периодов. Порой они начинают продавать лучшие, исправленные системы под названием Плюс или Версия 2. Поэтому желающие приобрести «улучшенную систему» должны хорошенько изучить природу правил, составляющих улучшения системы, для того чтобы выяснить, не связано ли улучшение с подгонкой.

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

Для реализации этой идеи мы добавляем правило с двумя параметрами оптимизации: объем сокращения позиции и уровень, на котором производится сокращение. Я смотрю на кривую капитала в нашей модели и принимаю решение о том, что позиции будут сокращены на 90 процентов при уровне падения, равном 38 процентам. Это улучшает результаты с 41,4 процента до 45,7 процента, уровень падения снижается с 56,0 до 39,2 процента, а коэффициент MAR вырастает с 0,74 до 1,17. Кто-то решит, что это отличное правило, улучшающее систему. И будет неправ!

Рисунок 11-6. Изменение коэффициента MAR при изменении количества дней в скользящей средней

Изменение коэффициента MAR при изменении количества дней в скользящей средней
Copyright 2006 Trading Blox, все права защищены.

Проблема в том, что это правило действует только один раз в ходе всего теста, в самом его конце; кроме того, я воспользовался моим знанием кривой капитала. Это говорит о том, что система сознательно подгонялась под известные результаты. «Ну и в чем проблема?» – спросите вы. Взгляните на форму кривой на рисунке 11-6, на котором мы изменили порог выхода при падении и сократили позиции.

Вы наверняка заметили резкое падение результативности при использовании порога для выхода при падении, меньшем 37 процентов. Фактически изменение порога выхода при падении всего на один процент изменяет годовые результаты с прибыли на уровне 45,7 процента на убытки в размере 0,4 процента. Нам пришлось применить наше новое правило в августе 1996 года, после чего наши позиции сократились так сильно, что мы не смогли заработать достаточно денег для того, чтобы выбраться из этой ямы. Так что, возможно, это не такое уж хорошее правило. Оно сработало только для первого случая и только потому, что падение произошло достаточно близко к концу периода тестирования.

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

Важность размера выборки

Как я уже говорил, люди склонны уделять слишком много внимания редким случаям возникновения какого-то феномена, несмотря на то что со статистической точки зрения из нескольких случаев невозможно извлечь много информации. Это – основная причина подгонки. Правила, которые вступают в действие нечасто, могут вызывать ненамеренную подгонку, приводящую к расхождениям между результатами тестирования прошлого и реального трейдинга.

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

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

Я проделал это для системы, описанной в данной главе. Я провел около 4000 тестов, уменьшавших значение позиции в начале каждого месяца на некоторое количество процентов в течение нескольких дней, а по истечении этого периода начинал вновь торговать в полную силу. За десятилетний период тестирования я обнаружил всего два периода, в которых эти действия приводили к изменениям. Если сокращать позиции на 96 процентов в первые два дня сентября и первые 25 дней июля, можно улучшить результаты. Хотите узнать насколько?

Применение правила улучшает отдачу с 45,7 до 58,2 процента, падение немного вырастает с 39,2 до 39,4 процента, а коэффициент MAR растет с 1,17 до 1,48. И вновь мы думаем, что это отличное правило и что с его применением система заработает лучше.

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

Не зная истинной причины, можно подумать, что это отличная система для начала трейдинга. Возможно, вы даже начнете собирать деньги на трейдинг у друзей и родственников, рассказывая им об этой прекрасной системе и ее результатах. Проблема только в том, что на самом деле ваша система приносит не 58,2, а 41,4 процента, падение составляет не 39,4, а 56,0 процентов, а коэффициент MAR равен не 1,48, а 0,74. В итоге все закончится разочарованием в реальных результатах – к сожалению, вы были слишком увлечены легкими поправками системы, что привело к подгонке кривой.

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

Вход