Глава 12. Часть 2. На твердой почве

Репрезентативные выборки
Репрезентативность наших тестов для целей предсказания будущего определяется двумя факторами:
– Количество рынков: тесты, проводимые на различных рынках, будут, скорее всего, включать рынки с разной степенью волатильности типов тренда.
– Продолжительность теста: тесты, проводимые на более продолжительных периодах, учитывают различные состояния рынка и с большей вероятностью включают периоды, в которых прошлое сопоставимо с будущим.
Я рекомендую проводить тестирование на всех данных, которые будут вам доступны. Вы заплатите гораздо меньше за доступ к данным, нежели за использование системы, которая, по вашему мнению, работала, но только потому, что вы не протестировали ее на достаточном количестве рынков или за достаточное количество лет. Не почувствуете ли вы себя дураком, когда ваша система перестанет работать из-за того, что рынок пришел в состояние, которое уже наблюдалось три или четыре раза на протяжении последних двадцати лет, не включенных в ваш тест?
Этой ошибке часто подвержены молодые трейдеры. Они полагают, что наблюдаемое ими состояние является репрезентативным для всех рынков в целом. Часто они не понимают, что рынки проходят через различные этапы и меняются со временем, зачастую возвращаясь к тому состоянию, в котором были когда-то. Молодежь в трейдинге, как и в жизни вообще, не желает изучать историю, существовавшую до момента их появления. Будьте молодыми, но не будьте глупыми – изучайте историю.
Помните те времена интернет-бума, когда буквально каждый был дейтрейдером и гением? Сколько этих гениев пережило коллапс, когда их прежде удачные методы перестали работать? Если бы они провели тестирование, то поняли бы, что их методы зависели от конкретных рыночных условий бума, поэтому они должны были отказаться от их использования, как только эти условия перестали существовать. Или, как вариант, они могли бы взять на вооружение устойчивые методы, хорошо работающие во всех условиях.
Размер выборки
Концепция размера выборки проста: для того чтобы делать статистически достоверные заключения, нужно иметь достаточно большую выборку. Чем меньше выборка, тем грубее выводы, которые можно сделать; чем выборка больше, тем выводы качественнее. Нет никакого волшебного количества – просто чем больше, тем лучше, а чем меньше, тем хуже. Выборка из 20 и менее элементов содержит большую вероятность ошибки. Выборка из 100 и более значений с большей вероятностью может использоваться для прогнозирования. Для большинства тестов обычно достаточно выборки в несколько сотен значений. Есть несколько специальных формул и методов, позволяющих оценить требуемую величину выборки, однако эти формулы не предназначены для данных, используемых в трейдинге, где у нас просто нет такого прекрасного распределения возможных исходов, как, например, распределение женщин по росту, показанное на рисунке 4–3 в главе 4.
Однако проблема состоит не в том, как много элементов выборки вам нужно. Проблема возникает при оценке прошлого, а именно случаев, когда определенные правила вступали в силу достаточно редко. Поэтому для этих типов правил просто невозможно получить большую выборку. Возьмем, к примеру, поведение на рынке на последней стадии роста ценовых «пузырей». Для этих условий можно придумать правила и даже протестировать их, однако выборка будет слишком мала для принятия решения. В таких случаях важно понимать, что результаты теста не будут иметь ничего общего с тем, что мы могли бы узнать, если бы выборка была больше. Ранее отмеченные мной сезонные явления представляют область, в которой возникают аналогичные проблемы.
Тестируя новые правила для системы, вы должны оценивать, как часто эти правила оказывают влияние на результат. Если за все время проведения теста правило воздействовало на результат всего четыре раза, то у вас нет статистических достоверных оснований, чтобы определить, работает оно или нет. Вполне возможно, что замеченные вами эффекты были вызваны случайными причинами. Одним из решений ситуации является изменение правила для того, чтобы оно вступало в действие чаще, – это увеличит размер выборки, а тем самым статистическую описательную ценность тестов для этого правила.
Помимо размера выборки есть еще две проблемы, которые, однако, зачастую игнорируются:
– Оптимизация под отдельный рынок: гораздо сложнее тестировать с помощью достаточного размера выборки методы оптимизации, предназначенные для каждого отдельного рынка, так как на каждом отдельно взятом рынке существует меньше возможностей для трейдинга.
– Сложные системы: в сложных системах есть много правил. Поэтому со временем становится сложно определить, сколько раз применялось каждое правило, а также каково было его влияние. Таким образом, становится сложнее доверять статистической значимости тестов, проводимых с использованием сложных систем.
По этим причинам я не рекомендую проводить оптимизацию для отдельных рынков и предпочитаю простые идеи, статистическое значение которых гораздо выше.
Назад в будущее
Главный вопрос, интересующий всех, звучит так: «Как можно определить возможный исход будущего реального трейдинга?»
Чтобы ответить на него, нужно понимать факторы, вызывающие потери, необходимость точных показателей и достаточного количества репрезентативных примеров. Исходя из этого, вы можете размышлять об эффектах изменений на рынках и о том, почему даже прекрасные системы, выстроенные опытными трейдерами, достаточно изменчивы с точки зрения отдачи. Реальность такова, что вы не знаете и не можете предсказать, как будет вести себя система. Лучшее, что вы можете сделать, это использовать инструменты, позволяющие определить набор возможных значений, и выявить факторы, влияющие на эти значения.
Удачливые системы
Тот факт, что какая-то система в недавнем прошлом сработала хорошо, может быть связан с простой удачей или идеальными условиями на рынке в тот момент именно для данной системы. В целом хорошо работающим системам свойственно после успешных периодов испытывать плохие времена. Не ждите, что сможете повторить отличные результаты еще раз. Это может случиться, но на это не стоит полагаться. Скорее всего, в ближайшем будущем вам предстоит период частично удачной деятельности.
Параметры вперемешку
Всем желающим начать торговлю по какой-либо системе я предлагаю выполнить следующее упражнение. Возьмите несколько параметров системы и существенно поменяйте их значения, например на 20 или 25 процентов. Выберите точку, расположенную значительно ниже кривых оптимизации, изображенных на рисунках 12-1 и 12-2. Теперь посмотрите на результаты теста. Используя систему прорыва Боллинджера, я решил посмотреть, что произойдет, если мы изменим оптимальные значения с 350 дней и -0,8 в качестве порога выхода на 250 дней и 0,0 соответственно. Такие значения уменьшили RAR% с 59 процентов до 58 процентов, а значение R-cubed сократилось с 3,67 до 2,18 – достаточно значительное снижение. Это только один пример серьезных изменений, которые можно обнаружить при переходе от использования исторических данных к реальному трейдингу на рынке.
Окна повторяющейся оптимизации
Еще одно упражнение, более тесно, чем предыдущее, связанное с практикой перехода от тестирования к трейдингу. Для проведения упражнения выберите дату за истекший 8 – 10-летний период, а затем проведите оптимизацию всех данных до этой даты, используя те же методы оптимизации, что вы использовали бы в обычных условиях при ваших обычных допущениях. Просто представьте себе, что единственные данные, которые у вас есть, – это данные по состоянию на выбранную вами дату. После того как вы определили оптимальные значения параметров, проведите тестирование с включением двух лет после избранной вами даты. Как изменились результаты с учетом последующих лет?
Продолжите процесс, добавив еще несколько лет из прошлого. Как соотносятся результаты этого теста с результатами первичного тестирования и первым окном повторяющейся оптимизации? Насколько сопоставимы результаты первичного тестирования с данными, рассчитанными на основании всей имеющейся информации? Продолжайте процесс до тех пор, пока не достигнете настоящего времени.
Чтобы проиллюстрировать это упражнение, я провел оптимизацию систем прорыва Боллинджера, в рамках которой менял каждый из трех параметров в достаточно широких пределах. После этого я выбрал оптимальный набор значений, расположенный недалеко от точки, в которой был достигнут максимум значения R-cubed. Я произвел оптимизацию в рамках пяти независимых тестов. В таблице 12-4 показаны результаты повторяющейся оптимизации за год после указанного периода.
Таблица 12-4. Повторяющаяся оптимизация и реальный RAR%
Copyright 2006 Trading Blox, все права защищены.
Как видно из таблицы, результаты существенно различаются по каждому тестируемому периоду. Более того, оптимальные значения для каждого тестируемого периода различны. Это подтверждает неточность процессов тестирования и свидетельствует о том, что при переходе от тестов к реальному трейдингу вы непременно столкнетесь с неожиданным положением вещей.
Моделирование по методу Монте-Карло
Моделирование по методу Монте-Карло представляет собой способ определения силы системы и отвечает на вопросы: «Что могло бы произойти, если бы прошлое было чуть другим?» или «Что может принести будущее?» Вы можете рассматривать метод как способ создания альтернативных ситуаций на основании набора данных, составляющих реальный набор данных о ценах.
Моделирование по Монте-Карло относится к классу методов, использующих случайный набор данных для исследования какого-либо феномена. Оно в особенности применимо для ситуаций, точное математическое моделирование которых невозможно или затруднено. Название Монте-Карло происходит от города в Монако, известного своими казино, предлагающими большое количество игр, исход которых зависит от случайности, – например рулетка, блэкджек, кости и т. п. Метод использовался в ходе Манхэттенского проекта учеными, работавшими над созданием атомной бомбы, так что его название уходит корнями в ту эпоху.
Тогда ученые пытались определить характеристики расщепления урана, чтобы рассчитать точную массу урана, необходимую для создания бомбы. Обогащенный уран был крайне дорог, поэтому они не могли себе позволить ошибиться в расчетах – в противном случае они потеряли бы месяцы (не говоря уже о деньгах), если бы бомба не взорвалась из-за недостаточного количества в ней урана. Аналогично, если бы они ошиблись в другую сторону, посчитав, что нужно большее количество урана, чем требовалось на самом деле, то тестирование пришлось бы отложить на месяцы. К сожалению, с помощью существовавших тогда методов невозможно было создать модель поведения атомов урана в бомбе, а компьютерные ресурсы, способные справиться с этой задачей, появились гораздо позже.
Для определения количества расщепляемого урана им необходимо было узнать, какая доля нейтронов при расщеплении атома может привести к расщеплению другого атома. Известный физик Ричард Фейнман предположил, что они могут определить характеристики поведения отдельного нейтрона с помощью команды математиков, чтобы затем установить, был ли нейтрон поглощен другим ядром или расщепил другой атом. Фейнман понял, что для отображения различных типов нейтронов при расщеплении атома можно использовать случайные числа. Произведенное несколько тысяч раз, это действие позволило бы им пронаблюдать за распределением характеристик расщепления урана и определить необходимое его количество. Фейнман знал, что будущее предсказать невозможно, так как процесс был очень сложным, но он мог взять те части проблемы, которые понимал, и, используя случайные числа для моделирования особенностей нейтронов, получить ответ на требуемый вопрос. Он сумел понять характеристики расщепления урана в целом, хотя и не мог точно предсказать, что будет происходить с каждым атомом в какой-то момент времени.
Альтернативные ситуации в трейдинге
Поведение рынков, которые формируются действиями тысяч людей, руководствующихся собственным опытом и мышлением, гораздо сложнее, чем чисто физические процессы расщепления атомов. К счастью, подобно Фейнману и его анализу, мы можем использовать случайные значения для лучшего понимания потенциальных характеристик системы трейдинга, хотя и не знаем, что может принести будущее. Мы можем изучить набор различных альтернативных ситуаций, вариантов развития событий в случае немного другого исходного состояния.
Для создания таких альтернативных ситуаций в методе Монте-Карло используется один из двух способов:
– Сделки вперемешку: порядок и начальные даты сделок перемешиваются случайным образом, а затем потери или доходы в процентах используются для корректировки размера капитала путем открытия новой сделки.
– Кривая капитала вперемешку: выстраивание новых кривых капитала путем сбора случайных частей первоначальной кривой капитала.
Если сравнить эти два метода, то кривая вперемешку позволяет строить более реалистичные кривые капитала, так как метод Монте-Карло с изменением очередности сделок может привести к недооценке величины падений.
Периоды максимального истощения обязательно возникают в конце больших трендов или периодов быстрого роста капитала. В эти времена корреляция рынков вырастает по сравнению с обычными моментами. Это правдиво как для рынков ценных бумаг, так и для фьючерсов. В конце большого тренда, когда он прерывается и меняет направление, кажется, что все сразу начинает двигаться против тебя: даже рынки, прежде казавшиеся некоррелировавшими, становятся таковыми в волатильные дни прекращения большого тренда.
Так как смешивание сделок устраняет связь между сделками и их датами, оно также устраняет эффект влияния на кривую капитала в случаях, когда многие сделки одновременно закрываются и меняются на противоположные. Это означает, что длительность и частота ваших периодов истощения при применении метода будут показаны меньшими, чем на самом деле. Возьмите, к примеру, изменения цен на золото и серебро весной 2006 года. Если бы вы тестировали систему следования тренду, работающую на этих рынках, то перемешивание сделок означало бы, что периоды истощения для этих рынков произошли в разное время, что существенно сократило бы эффект каждого отдельного падения. На самом деле этот эффект воздействовал на другие, на первый взгляд не связанные рынки, такие как рынок сахара: в тот же период, когда падали цены на золото и серебро (20 дней с середины мая по середину июня 2006 года), на рынке сахара также наблюдалось падение. Таким образом, смешивание сделок – неподходящий метод, так как он недооценивает уровни истощения, с которыми неизбежно сталкиваются трейдеры, использующие долгосрочные и среднесрочные системы.
Другим примером такого рода служит однодневное падение на фондовом рынке США в 1987 году. В день, когда при открытии возник кризис на рынке евродолларов, я обнаружил, что аналогичная ситуация наблюдается и на других рынках, обычно не коррелирующих с евродолларами. Смешивание сделок по методу Монте-Карло обычно размывает эффект таких фактов, потому что разделяет сделки, проведенные в одном и том же направлении в одни и те же дни.
Многие программные продукты, позволяющие делать расчеты по методу Монте-Карло, дают возможность выстраивать новые кривые, возникающие при смешивании кривых капитала. Однако они не принимают в расчет один важный момент. В ходе тестирования и практического опыта я обнаружил, что влияние периода плохих дней в конце большого тренда заметно большее, чем можно ожидать от случайного события. В эти периоды существенного истощения кривая капитала для системы следования за трендом демонстрировала серийную корреляцию или корреляцию между величиной изменения в текущий и предшествующий день. Проще говоря, плохие дни группируются таким образом, что это сложно объяснить случайными факторами.
Давайте вернемся к недавно описанному примеру с падением на рынках золота, серебра и сахара весной 2006 года. Если перемешать только величины ежедневных изменений, то будет потерян достаточно длинный период существенных колебаний размера капитала в период с середины мая по середину июня, так как маловероятно, что эти изменения вновь окажутся рядом при случайной выборке, даже если взяты из реальной кривой.
Чтобы учесть это в программах моделирования, мы в компании Trading Blox также используем изменения значения кривой капитала, однако позволяем сделать выборку не по дневным значениям, а по значениям нескольких дней. Этот метод позволяет группировать вместе плохие дни, возможные в реальном трейдинге. В рамках моего теста я брал 20-дневные интервалы для перемешивания кривых капитала и обнаружил, что это может предотвратить автокорреляцию кривой капитала и позволяет модели приобрести более реалистичный вид для целей прогнозирования.
Рисунок 12-3. Распределение RAR%, рассчитанного по методу Монте-Карло
Copyright 2006 Trading Blox, все права защищены.
Отчеты по методу Монте-Карло
Что можно сделать с моделируемыми альтернативными кривыми капитала, получаемыми с помощью метода Монте-Карло? Мы можем использовать их при построении распределения результатов для определенного показателя, с тем чтобы определить набор вариантов, возможных в случае, если будущее напоминает одну из наших альтернативных смоделированных ситуаций. На рисунке 12-3 изображено распределение 2000 альтернативных вариантов кривых капитала, для каждой из которых рассчитан показатель RAR%, а затем на график нанесены распределения значений этих кривых.
Вертикальная линия, пересекающая кривую вверху графика, показывает величину RAR%, которой достигли 90 процентов из 2000 смоделированных кривых капитала. В нашем случае этого уровня достигли 42 процента RAR%.
Графики такого рода хороши тем, что позволяют понять непредсказуемый характер будущего, зависящий от множества вариантов. Однако не следует вчитываться в такие отчеты слишком внимательно. Помните, что эти цифры взяты из кривой капитала, зависящей от исторических данных, и поэтому страдают от недостатков, описанных в главе 11. Моделирование по методу Монте-Карло не делает плохой тест хорошим, так как моделируемые кривые капитала точны настолько, насколько точно историческое тестирование, на котором они базируются. Если ваш показатель RAR% переоценен на 20 процентов из-за парадокса оптимизации, метод Монте-Карло для оптимизированных значений параметра будет также переоценивать RAR% для всех альтернативных кривых, сформированных в процессе моделирования.
Лишь аппроксимация
Как показали проделанные выше упражнения, тестирование прошлого является лишь грубой аппроксимацией возможного состояния дел в будущем. Устойчивые показатели лучше прогнозируют будущее, чем их более чувствительные собратья, однако результат все равно остается неточным. Каждый, кто говорит вам, что вы можете рассчитывать на определенный уровень отдачи, либо лжет (особенно если при этом он пытается вам что-то продать), либо не знает, о чем говорит.
В главе 13 мы рассмотрим некоторые из методов, направленных на укрепление вашего трейдинга, – это сделает вас менее чувствительными к диким скачкам реальных результатов.