Тел.факс: +7(831)437-66-01
Факторинг  Разработка торговых систем 

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 [ 29 ] 30 31 32 33 34

Причины подстройки

Причина подстройки - в нарутиении правил тестирования и оптимизации. Есть шесть типов таких нарушений:

1. Слишком много правил и условий, ограничивающих число степеней свободы.

2. Выборка данных слишком мала.

3. Неполный анализ статистической характеристики торговой системы.

4. Неполный анализ результатов оптимизации.

5. Неправильные методы оптимизации.

6. Отсутствие постоптимизационной проверки.

Степени свободы

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

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

Степени свободы с точки зрения объема данных

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

Рассмотрим два примера, в которых используется выборка данных двухлетней ценовой истории по четырем элементам цены - открытиям, максимумам, минимумам и закрытиям, или в общей сложности 2080 элементов данных.

Сначала система применяет 10-дневную среднюю максимумов и 50-дневную среднюю минимумов. Средняя 1 использует 11

степеней свободы: 10 максимумов плюс одно правило. Средняя 2 использует 5] степень свободы: 50 минимумов плюс одно правило. Всего использовано 62 степени свободы.

Вторая система применяет 10-дневную среднюю закрытий и 50-дневную среднюю закрытий. Средняя 1 использует 11 степеней свободы: 10 закрытий плюс одно правило. Средняя 2 использует всего 41 степень свободы: 40 дополнительных закрытий плюс одно правило. Всего использовано 52 степени свободы. Заметьте, что элементы данных, использовавшиеся дважды, считаются один раз.

Степени свободы и уверенность

Неотъемлемая заповедь статистического моделирования - слишком большое число правил и ограничений приводит к ненадежным результатам. Другими словами, если в торговой модели слишком много переменных (по отношению к числу выбранных сделок или даже к объему данных), то оптимизационные результаты сомнительны. Это кратко обсуждалось в Главе 4.

Наложение на ценовые данные слишком многих ограничений - основная причина подстройки. Но для разработчика моделей не всегда очевидно, что в этом виноват он (или она). Например, в каждый новый день система стоит перед выбором, какое правило из 250 применить. Правило может быть очень конкретным, например, Купить и держать до получения прибыли $250 . С помощью многократного компьютерного тестирования, может быть найден правильный вариант для получения прибыли, исходя из ежедневных ценовых движений прошлого года. Тогда мы имеем следующее выражение:

f(250 дней, 250 правил) = Идеальный трейдинг

Однако это было бы очевидно каждому. Использование всего двух правил (покупки и продажи) применительно к каждому дню также принесет большую прибыль - но не такую большую, как в случае (1). Такая модель будет выглядеть следующим образом:

f(250 дней, 2 правила) = Ежедневные прибыли

Поскольку правила не были достаточно конкретны, чтобы улавливать прибыли на уровне их дневных максимумов, нам



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

На практике оптимизация часто содержит менее заметные формы подстройки. Это может быть:

Поочередное (по одному за раз) добавление правил, для наблюдения повышения эффективности (и исключение неработающих правил);

Тестирование многих вариантов одного и того же правила (например, скорости скользящей средней).

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

Каждое протестированное новое правило, как применяемое, так и исключенное, является одной из тех потерянных степеней свободы, которые никогда не будут восполнены. Если вы находите одно работаюшее правило путем тестирования 250, нашли ли вы истинный рыночный образец?

Рассмотрим следующее: вы обнаружили, что производство кофе в Бразилии в точности предсказывало последующий (двумя месяцами позже) урожай зерновых в Северной Африке в течение всех последних 20 лет. Это важная информация, поскольку она позволяет определить спрос на зерновые. Дальнейшее исследование показывает, что эту связь можно объяснить климатическим влиянием Гольфстрима, протекающего от Восточного побережья Южной Америки к Среднему Востоку. Сможете ли вы извлечь преимущество из этой зависимости? Не исключено.

Но что если вам сообщили, что для нахождения этих 20 успешных испытаний из 20 возможных исследовались 100 разных стран, и лишь в одной из них испытания оказались успешными? Что если данная зависимость не подтвердилась на данных за 5 лет, предшествующих 20-летнему периоду испытания? То, чего

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

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

Возможно, это отражает некоторые наблюдения, сделанные вами в течение нескольких прошльгх лет слежения за рынком. Вы прогоняете эту модель на 5 годах дневных данных, и она оказывается прибыльной в 4 годах из 5, принося 30% годовых. Это подтверждает вашу теорию. Вы применили 2 правила и один тест данных за 1250 дней, получив 350 сделок. Это удовлетворяет всем критериям.

Другой трейдер полагает, что система основанная на скользящих средних будет работать, пока контролируется риск. На данных за 1250 дней он тестирует 49 скользящих средних, в диапазоне от 2 до 50, и 20 стоп-лоссов, от $50 до $1,000 с шагом $50, то есть в общей сложности 980 комбинаций. Результаты показывают, что 20% этих тестов прибыльны и лучший вариант дает годовую доходность 70%. Но 980 тестов проводились на 1250 элементах данных. Это должно существенным образом снизггть ваше доверие к полученным результатам и поставить вопрос - Правильна ли эта система, или она является очередным подтверждением эффекта Гольфстрима?

Первый случай был явно идеализирован. Подтверждение теории с первой попытки вызывает много вопросов. Но важен принцип. Тщательно подумайте, прежде чем добавлять и тестировать новое правило. По возможности старайтесь сделать каждое правило последним, поскольку каждое правило уменьшает число степеней свободы, а вместе с ней и вашу уверенность в модели. Думайте об этом как о съемке кинофильма, каждый кадр которого стоит $100,000.

Для обеспечения статистической валидности как минимум 90% степеней свободы должно остаться после вычета всех правил, индикаторов и затрат для выхода системы на рабочий режим. Степени свободы могут быть чрезмерно ограничены:



1. Слишком маленькой выборкой данных.

2. Слишком большими затратами при выходе системы на рабочий режим.

3. Слишком большим количеством правил.

4. Слишком большим числом переменных (любых элементов модели, использующих данные).

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

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

Объем выборки

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

Здесь полезно руководствоваться формулой стандартной ошибки. Следующие четыре примера показывают слишком маленькую выборку, выборку из 50, 100 и 300 элементов:

Стандартная ошибка = 1/квадратный корень из размера выборки

Выборка из 10 сделок Стандартная ошибка

= 1/Vio

=1/3.162 =31.6%

Выборка из 50 сделок Стандартная ошибка

= 1/V50 = 1/7.07 = 14.1%

Выборка из 100 сделок Стандартная ошибка

Выборка из 300 сделок Стандартная ошибка

1/Vioo

1/10 10%

l/Vsoo

1/17.3 5.7%

Скорость торговли у разных систем разная. Например, долгосрочная торговая система, торгующая, скажем, от 2 до 4 раз в год, для получения 50 сделок потребует очень много данных. Кроме того, она будет содержать индикаторы, использующие много степеней свободы, и будет привносить много пусковых расходов. Наоборот, краткосрочной системе, торгующей дважды в неделю, для генерации 50 сделок потребуется меньше данных, она будет использовать гораздо меньше степеней свободы и будет иметь незначительные пусковые расходы данных.

Оценка сделок

Хотя неправильная оценка сделок не является прямой причиной подстройки, но ее неверное применение является распространенной причиной неудач. Поэтому в порядке повторения стоит уделить ей особое внимание. Как детально описывалось в Отаве 8, неправильная оценка выборки сделок может приводить к провалу модели в реальной торговле.

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



1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 [ 29 ] 30 31 32 33 34