Параметр количества дней в скользящей средней
На рисунке 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 при изменении порога выхода
Copyright 2006 Trading Blox, все права защищены.
Основа для прогнозов
Исторические тесты позволяют делать прогнозы, то есть показывают уровни эффективности, которых можно ожидать в будущем. Чем больше будущее напоминает прошлое, тем ближе результаты трейдинга будут к результатам исторического тестирования. Большая проблема исторического тестирования как средства системного анализа заключается в том, что будущее никогда не бывает точно таким же, как прошлое. Пока система зарабатывает деньги на неизменном поведении игроков рынка, отражающемся на состоянии рынка, можно говорить о допустимой аппроксимации будущего, хотя и не совсем точной. Исторические результаты теста, проведенного со всеми оптимизированными параметрами, показывают достаточно специфическую картину сделок – это сделки, заключенные при использовании системы в ее наилучшем виде. То есть симуляционная модель показывает, какой наилучший результат мог бы быть продемонстрирован в прошлом.
Можно было бы ожидать таких же результатов от реального трейдинга, если бы будущее в точности соответствовало прошлому. Но это никогда не произойдет! Давайте еще раз посмотрим на графики в данной главе: каждый из них имеет форму, напоминающую гору с вершиной, как, например, на рисунке 11-4.
Если значение в точке A обозначает типичное неоптимизированное значение параметра, а значение в точке B обозначает оптимизированный параметр, я бы сказал, что В представляет лучшее значение параметра с точки зрения трейдинга, при котором, однако, результаты будущего трейдинга будут, скорее всего, хуже, чем в исторических тестах.
Значение параметра A хуже с точки зрения трейдинга, однако лучше с точки зрения прогнозирования, потому что если торговля в системе производится на базе этого значения, то реальные результаты могут быть либо лучше, либо хуже, чем значения исторических тестов на базе значения параметра, равного A.
Рисунок 11-4. Примеры значений A и B
Почему так происходит? Чтобы прояснить ситуацию, давайте предположим, что будущее изменится таким образом, что сдвинет график либо влево, либо вправо – мы точно не знаем куда. Слева и справа от значений A и B на рисунке 11-5 присутствует набор значений – возможных изменений параметра в связи с изменчивостью будущего. Мы называем такие параметры границами ошибки.
В случае значения A любые изменения значения оптимального параметра влево от A приведут к ухудшению результативности, а любые изменения вправо – к улучшению результативности. Таким образом, тесты со значением параметра, равного A, могут использоваться в качестве прогноза вне зависимости от будущих результатов, потому что с этим значением мы можем получить либо слишком негативные, либо слишком позитивные прогнозы.
Рисунок 11-5. Параметры A и B с границами ошибки
В случае значения, равного 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 при изменении количества дней в скользящей средней
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. В итоге все закончится разочарованием в реальных результатах – к сожалению, вы были слишком увлечены легкими поправками системы, что привело к подгонке кривой.
Далее мы обсудим возможности предотвращения проблем, описанных в этой главе. Я покажу вам способы минимизации эффекта трейдера, определения случайных эффектов, корректной оптимизации и предотвращения сверхоптимизации исторических данных – так, чтобы, используя ту или иную систему, вы могли получить реальные сведения, а не иллюзорные прогнозы.
Глава 12
На твердой почве
Торговать с использованием слабых методов —
все равно что жонглировать, стоя в шлюпке
во время шторма. Конечно, это можно делать,
но гораздо проще жонглировать, стоя на твердой почве.
Теперь, когда вы уже знакомы с основными причинами неточных результатов исторических тестов, давайте рассмотрим основные принципы правильного тестирования прошлого.
В лучшем случае вы можете получить лишь примерное представление о том, как связано будущее с результатами исторического моделирования. Но к счастью, даже примерное представление может обеспечить хорошему трейдеру перевес, достаточный для того, чтобы заработать много денег. Чтобы при оценке ваших идей проанализировать важность факторов, влияющих на величину ошибки или уровень неточности, необходимо рассмотреть несколько основных статистических концепций, лежащих в основе исторического тестирования. Так как я не большой любитель книг, напичканных формулами и пространными объяснениями, то постараюсь быть прост в аспекте математики и понятен в объяснениях.