WWW.DISSERS.RU

БЕСПЛАТНАЯ ЭЛЕКТРОННАЯ БИБЛИОТЕКА

   Добро пожаловать!

Pages:     | 1 | 2 || 4 | 5 |   ...   | 6 |

«THE ENCYCLOPEDIA OF TRADING STRATEGIES JEFFREY OWEN KATZ, Ph.D. ...»

-- [ Страница 3 ] --

122 ЧАСТЬ II ИССЛЕДОВАНИЕ входов в РЫНОК ВАРИАЦИИ СИСТЕМЫ ПРОБОЯ ВОЛАТИЛЬНОСТИ Улучшится ли эффективность, если ограничить модели пробоя только длинными позициями? А если вести торговлю только на рынке склонных к трендам валют? Можно ли использовать индикатор трендов, чтобы из бежать пилообразной торговли? Что будет, если не входить повторно в существующие (и, возможно, уже завершающиеся) тренды? Последний вопрос анализировался в отдельном тесте, результаты которого мы не приводим — они были настолько плохи, что никакого дополнительного исследования не проводилось. Остальные три вопроса будут рассмотре ны ниже.

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

Тест 10. Пробой волатильности с входом по лимитному приказу;

только длинные позиции. Лучшая из исследованных моделей (тест 8) была модифицирована для работы только с длинными позициями. Опти мизация параметров проводилась генетическим алгоритмом. При помо щи генетической оптимизации множитель ширины среднего истинного диапазона bw подбирался в пределах 1,5 — 4,5 с шагом 0,1;

период средне го истинного диапазона atrlen прогонялся от 5 до 50 с шагом в 1;

период скользящей средней malen подбирался в пределах 1 — 25 с шагом 1. Гене тическая оптимизация проводилась в объеме 100 «поколений».

Лучшая эффективность в пределах выборки была достигнута при мно жителе ширины среднего истинного диапазона 2,6, периоде скользящего среднего 15 и периоде среднего истинного диапазона 18. При этих пара метрах годовая прибыль составила 53,0% и соотношение риска/прибыли 1,17 (р < 0,0002, р < 0,02 после коррекции). В пределах выборки проведе но 1263 сделки длительностью в среднем 7 дней с прибылью в среднем $4100 с учетом проскальзывания и комиссионных;

48% сделок были при быльны. Даже при неоптимальных значениях параметров удавалось по лучать прибыль — худшие параметры дали 15,5% прибыли!

Вне пределов выборки, несмотря на высокую статистическую досто верность и устойчивость модели (по результатам проверки на данных из выборки различных вариантов), модель была крайне неэффективна. Все го 35% сделок были прибыльными, а убытки составили 14,6% в год. Это нельзя объяснить простой подгонкой, так как в пределах выборки все ком бинации были прибыльными. Неоптимальные параметры привели бы к уменьшенной, но все равно эффективной работе. Дополнительные тесты показали, что ни один набор параметров не мог сделать систему выгод ГЛАВА 5 МОДЕЛИ, ОСНОВАННЫЕ НА ПРОБОЯХ ной вне пределов выборки! Это исключает оптимизацию как причину неэффективной работы — видимо, на рынке за последние годы произош ли изменения, влияющие на способность моделей, основанных на пробое волатильности, давать прибыль даже при работе только с длинными пози циями. График изменения капитала показывает, что основная часть при были была получена до июня 1988 г. Остальные периоды как оптимиза ции, так и проверки показывали только ухудшение.

Как и ранее, в обеих выборках хорошо работали валютные рынки.

Средняя сделка на валютном рынке приносила $5591 дохода в пределах выборки и $1723 за ее пределами. Корзина нефтепродуктов также давала прибыль в обоих случаях, равно как и кофе.

Увы, эта система непригодна для использования в настоящее время, хотя в прошлом на ней можно было бы сделать состояние;

впрочем, для некоторых рынков — валют, нефтепродуктов и кофе — в ней еще есть некоторый потенциал.

Только валютный рынок Считается, что на валютных рынках наблюдаются сильные тренды, что делает их идеальными для систем следования за трендами, основанных на пробоях. Это убеждение вроде бы подтверждается вышеприведенны ми тестами, включая тест 10. В тесте 11 мы ограничиваем модель валют ными рынками.

Тест 11. Пробой волатильности с входом по лимитному приказу;

только валютные рынки. Модель идентична прошлой, за тем исключе нием, что вместо ограничения длинными позициями введено ограниче ние рынками валют. Оптимизация не проводилась ввиду малого количе ства рынков и, соответственно, данных;

вместо этого использованы луч шие параметры теста 8.

Это первый тест, где система, основанная на пробое, дала явно при быльные результаты в обеих выборках с учетом реальных расходов на сделки! В пределах выборки прибыль системы составила 36,2% в год, вне — 17,7%, что тоже неплохо. В пределах выборки проведено 268 сде лок, из них 48% прибыльных со средней прибылью $3977. Вне пределов выборки проведено 102 сделки, из них 43% прибыльных, средняя при быль— $2106.

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

ГЛАВА 5 МОДЕЛИ, ОСНОВАННЫЕ НА ПРОБОЯХ ществующим в том случае, если ADX, рассчитанный по последним 18 дням, достигает нового шестидневного максимума. Входы производятся только при наличии тренда.

// file = x09mod12.c // модель, основанная на пробое волатильности, с входом по лимитному приказ // и 18-дневный фильтр тренда ADX band_width = bw * atr[cb-l];

center_price = xmavg[cb-1];

upper_band = center_price + band_width;

lower_band = center_price - band_width;

limprice = 0.5 * (hi [cb] + lo[cb]);

trending = adx[cb] > Highest(adx, 6, cb-1);

if(trending && cls[cb] > upper_band && ts.position() <= 0) { ts. buylimit('1', limprice, ncontracts);

} else if (trending && cls[cb] < lower_band && ts.position() >= 0) { ts. selllimit('2', limprice, ncontracts);

} // симулятор использует стандартную стратегию выхода tmp = exitatr[cb];

ts.stdexitcls('X', ptlim*tmp, mmstp*tmp, maxhold);

Как и в предыдущих тестах, использовалась генетическая оптимиза ция параметров. Все 100 комбинаций, кроме одной, были прибыльными в пределах выборки;

88 дали прибыль более 20%. Это демонстрирует устой чивость системы к изменению параметров. Наилучшие результаты были следующими: множитель ширины среднего истинного диапазона — 2,6;

период скользящей средней — 8;

период среднего истинного диапазона — 34. При этих параметрах в пределах выборки прибыль составила 68,3%, вероятность случайности результатов менее 0,0005 (0,035 после оптими зации). Совершено 872 сделки, из них 47% прибыльных. Средняя сделка принесла прибыль около $4500. Вне пределов выборки система понесла $2415 убытков и только 36% из 373 сделок были прибыльными. Прибыль составила — 20,9% — один из худших результатов вне выборки. Очевид но, в прошлом ADX был более полезен, чем в недавнее время.

Большинство рынков валют, мазут, кофе, лес и 10-летние казначейс кие бумаги были прибыльными и вне пределов выборки. S&P 500, пшени ца и золото были прибыльны вне пределов выборки, но убыточны в пре делах выборки. Устойчивая прибыльность валют, нефтепродуктов и кофе соответствует наблюдавшейся ранее.

126 ЧАСТЬ II ИССЛЕДОВАНИЕ входов в РЫНОК АНАЛИЗ И ОБОБЩЕНИЯ В табл. 5-3 приведены результаты тестов различных моделей, основанных на пробоях, — по выборке и виду приказа (Р/ПРИБ — годовое соотноше ние риска/прибыли, ДОХ — доходность в процентах годовых, $СДЕЛ — прибыль или убыток от средней сделки).

Виды пробоев В выборке данных, использованной для оптимизации (1985— 1995), наи лучшим образом работали системы на пробое волатильности. Пробои ММ/ММ показали средние результаты, а пробои цен закрытия работали хуже всего;

это отмечалось при использовании всех трех видов приказов.

Вне пределов выборки (1995— 1998) модели на пробое ММ/ММ продол жали работать несколько лучше, чем пробои цен закрытия, но модели на пробое волатильности работали гораздо хуже. По описанным ранее при чинам объяснить ухудшение показателей систем, основанных на волатиль ности, в последние годы только оптимизацией нельзя — возможно, это произошло из-за популярности метода в недавнем прошлом. Впрочем, в последние годы даже лучшие из моделей, основанных на пробое, работа ют плохо.

При разбивке по моделям на графиках изменения капитала наблюда ются три ярко выраженных периода. С августа 1985 г. по июнь 1988 г. все модели были почти одинаково прибыльны. С июня 1988 г. по июль 1994 г.

модели на пробоях цен закрытия и ММ/ММ практически не приносили прибыли. Модель пробоя волатильности резко улучшила свои показате ли в августе 1992 г. — июле 1994 г. С июля 1994 г. по декабрь 1998 г. модели на ММ/ММ и ценах закрытия работали с некоторым убытком, причем некоторое преимущество было у моделей пробоев ММ/ММ. Капитал мо делей, основанных на пробоях волатильности, за этот период значитель но снизился.

Приказы для входа в рынок Как в пределах выборки, так и вне ее на всех моделях наилучшим обра зом работал лимитный приказ. Рыночные приказы и стоп-приказы были малоэффективны. Преимущества лимитного приказа, несомненно, свя заны с тем, что он обеспечивает вхождение в рынок по более выгодной цене. В тестах 1 и 2 видно колоссальное влияние входов по неоптималь ной цене и расходов на сделки (комиссия и проскальзывание). Как ни странно, лимитный приказ хорошо работал с методиками следования за трендом, к которым относятся модели пробоя. Можно было бы ожидать, что многие хорошие тренды будут пропущены при ожидании входа с по ГЛАВА 5 МОДЕЛИ, ОСНОВАННЫЕ НА ПРОБОЯХ Таблица 5—3. Сравнительный обзор результатов входов, основанных на пробоях В пределах выборки Вне пределов выборки Рыночный Лимитный Стоп- Рыночный Лимитный Стоп вход вход вход вход вход вход Пробой канала Р/ПРИБ -0,02 0,54 -0,33 -0, по ценам ДОХ -1, 32,6 -13,5 -10, закрытия $СДЕЛ -60 1066 -671 - Пробой Р/ПРИБ 0,04 0,66 0,22 -0,41 -0,01 -0, ММ/ММ ДОХ 1,2 36,3 8,7 -15,9 -2,1 -15, $СДЕЛ 82 1558 430 -912 -72 - Пробой Р/ПРИБ 0,51 0,96 0,28 -1,20 -0,58 -1, волатильности ДОХ 27,4 48,3 11,6 -20,5 -16,9 -22, $СДЕЛ 4675 3616 931 -7371 -2094 - Пробой Р/ПРИБ 1,17 -0, волатильности, ДОХ 53,0 -14, только длинные $СДЕЛ 4100 - позиции Пробой Р/ПРИБ 0,61 0, волатильности, ДОХ 36,3 17, только валюты $СДЕЛ 3977 Пробой Р/ПРИБ 1,09 -0, волатильности ДОХ 68,3 -20, с фильтром ADX $СДЕЛ 4570 - мощью лимитного приказа. Однако откат рынка (даже после достовер ных пробоев) происходит достаточно часто, что позволяет с помощью ли митных приказов добиться входа по предпочтительной цене и не пропус кать прибыльных трендов.

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

по июль 1994 г., в то время как лимитный приказ был умеренно прибыль ным. С июля 1994 г. по декабрь 1998 г. рыночные приказы стали несколь ко менее эффективными, стоп-приказы сильно снизили прибыльность, эффективность лимитных приказов была непостоянной. В первом пери оде стоп-приказы работали лучше среднего, а в третьем — гораздо хуже 128 ЧАСТЬ II ИССЛЕДОВАНИЕ входов в РЫНОК среднего;

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

Объединив рассмотрение графиков изменения капитала по различ ным типам моделей и приказов, мы увидим, что большая часть прибылей была получена в первом периоде, занимавшем менее трети выборки дан ных. К концу этого периода было накоплено более 70% всего капитала. Во втором периоде отмечался некоторый дрейф капитала, а в третьем — па дение, вначале медленное, а с июля 1997 г. все более быстрое.

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

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

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

ГЛАВА 5 МОДЕЛИ, ОСНОВАННЫЕ НА ПРОБОЯХ Анализ по рынкам Для каждого рынка по всем тестам усреднялась общая прибыль и годовой доход. Полученные значения были в общем неудивительны — положи тельные значения получены как в пределах, так и вне пределов выборки для немецкой марки, швейцарского франка, иены и канадского доллара, а также для сырой нефти и мазута. Торговля корзиной из шести валют, трех нефтепродуктов или того и другого вместе была бы прибыльной. Хотя больше ни одна группа рынков не продемонстрировала постоянной при быльности, это отмечено для некоторых индивидуальных рынков — кофе, живых свиней и леса.

Рынки S&P 500, NYFE, золота, кукурузы и пшеницы давали положи тельные результаты вне выборки при убытках в ее пределах. Прибыль ность рынков индексов может быть объяснена сильными трендами, воз никшими вне пределов выборки. Положительные результаты в пределах выборки при убытках вне ее были отмечены на многих рынках, в том чис ле на рынках казначейских облигаций и банкнот, палладия, откормленно го скота, свиной грудинки, сои, соевой муки, соевого масла, овса, апельси нового сока и хлопка. Рынки казначейских векселей, серебра, платины, живого скота, какао и сахара были убыточны и на выборке, и вне ее. На личие корреляции в 0,15 между общим доходом в пределах выборки и вне ее пределов свидетельствует о том, что рынки, дававшие прибыль во вре мя оптимизации, скорее всего, будут выгодными и вне пределов выборки.

ЗАКЛЮЧЕНИЕ Ни один метод (за исключением ограничения модели валютным рынком) не увеличил эффективность в достаточной степени для преодоления зат рат на сделки вне пределов выборки. Конечно, ряд сочетаний методов не был испытан. Например, ограничение длинными позициями не испыты валось с системой пробоя ММ/ММ, которая лучше работала вне преде лов выборки. Возможно, эти вариации торговых систем были бы эффек тивны. В обоих образцах данных все модели показывали ухудшение ре зультатов со временем, которое нельзя отнести на счет избыточной опти мизации. Модели, основанные на пробое, в настоящее время не работа ют, хотя были эффективны ранее. Это соответствует предположению, что прибыльных трендов становится все меньше — по мнению многих трей деров, рынки становятся «зашумленными» и противодействуют трендам, что затрудняет работу вышеописанных методов, следующих за трендом.

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

В общем, простые системы пробоя следуют предначертанному шаб лону и не работают достаточно хорошо на современных высокоэффек 130 ЧАСТЬ II ИССЛЕДОВАНИЕ входов в РЫНОК тивных рынках. Впрочем, при верном сочетании разновидности модели, основанной на пробое, метода входа и рынка можно получить как мини мум умеренные прибыли. Существует множество вариантов моделей на основе пробоев, много трендовых фильтров помимо ADX и много допол нительных способов для улучшения следующих за трендами моделей, ко торые здесь не рассматривались. Надеемся, что нам все же удалось дать хороший обзор популярных методик, основанных на пробое, и надежный фундамент для ваших самостоятельных исследований.

ЧТО МЫ УЗНАЛИ?

• При возможности следует использовать лимитный приказ для входа в рынок. Рынки шумны и обычно дают возможность вой ти по предпочтительной цене;

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

• Сконцентрируйтесь на уровнях поддержки и сопротивления, основных аксиомах технического анализа, которые вряд ли будут «расторгованы». Модели на пробое максимального мак симума/минимального минимума в тестах работали лучше остальных, несмотря на нестабильные результаты. Избегайте популярных систем на основе волатильности, если только в них нет особых ухищрений, позволяющих удержаться на плаву, несмотря на широкое использование.

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

Не полагайтесь для определения наличия трендов на индика торы типа ADX.

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

ГЛАВА Модели, основанные на скользящих средних Скользящие средние включены в многие программные пакеты по техни ческому анализу и являются темой множества публикаций. Они настоль ко популярны, что в 1998 г. пять из двенадцати выпусков Technical Analysis of Stocks and Commodities содержали посвященные им статьи. В газетах часто публикуются графики 50-дневных скользящих средних биржевых товаров и 20-дневных скользящих средних цен на фьючерсы.

ЧТО ТАКОЕ СКОЛЬЗЯЩЕЕ СРЕДНЕЕ?

Чтобы понять идею скользящих средних, для начала необходимо обсудить временные ряды, т.е. последовательности данных, расположенных в хро нологическом порядке. Например, такими данными являются ежеднев ные цены закрытия каких-либо акций. Они образуют последовательность «точек данных», или «баров», следующих друг за другом во времени. Во временном ряду серии выборка из нескольких последовательных точек данных может быть названа «временным окном». Если точки данных (на пример, цены закрытия) в данном временном окне сложить и сумму раз делить на количество этих точек данных, то получится «среднее». Сколь зящее среднее получается тогда, когда этот процесс повторяется снова и снова при смещении «временного окна» вперед, точка за точкой по ряду данных. Средние, полученные таким образом, образуют новый времен ной ряд, новый набор упорядоченных во времени значений. Эта серия называется «скользящей средней временного ряда» (в данном случае — скользящее среднее цен закрытия). Этот вид скользящих средних извес тен как простое скользящее среднее, поскольку рассчитывается как про стое арифметическое среднее точек данных, что присваивает каждой точ ке один и тот же удельный вес.

ЗАЧЕМ НУЖНЫ СКОЛЬЗЯЩИЕ СРЕДНИЕ Скользящие средние используются для снижения нежелательного шума во временных рядах, чтобы поведение рынка, лежащее в основе процес са ценообразования, стало более понятным и заметным. Скользящее сред 132 ЧАСТЬ II ИССЛЕДОВАНИЕ входов в РЫНОК нее обеспечивает сглаживание данных. Как метод сглаживания скользя щее среднее является примитивным фильтром низких частот, т.е. про пускает низкочастотную активность, отфильтровывая высокочастотные процессы. На графике высокочастотные процессы выглядят как быстрые вертикальные колебания, т.е. как шум, а низкочастотные — как более плавные тренды или волны. Элерс (Ehlers, 1989) рассматривал взаимосвязь скользящих средних и фильтров низких частот. Он разработал уравне ния и, сравнивая различные фильтры со скользящими средними по их по лезности, пришел к выводу, что скользящие средние могут быть исполь зованы для фильтрации любых данных, а не только ценовых.

ПРОБЛЕМА ЗАПАЗДЫВАНИЯ Помимо способности снижать зашумленность временных рядов скользя щие средние обладают преимуществами понятности, простоты и много функциональности. При этом, как и любой мощный метод фильтрации данных или сглаживания в реальном времени, они имеют недостаток — запаздывание. Хотя сглаженные данные «чище» и, следовательно, более подходят для анализа, возникает запаздывание между данными в исход ной серии и в сглаженной серии данных. Такое запаздывание может пред ставлять проблему при необходимости быстрой реакции на события, как это бывает важно для трейдеров.

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

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

впрочем, фильтры имеют тен денцию недостаточно сглаживать данные и работают заметно хуже, ког да рынок отклоняется от настроек этих фильтров. Чанд (Chande, 1992) 134 ЧАСТЬ II ИССЛЕДОВАНИЕ входов в РЫНОК уменьшается «экспоненциально». Треугольное среднее также придает больший удельный вес новым данным, но вес старых данных снижается линейно по направлению к более старым;

в TradeStation и многих других источниках это ошибочно названо «взвешенным скользящим средним».

Адаптивные скользящие средние были разработаны для ускорения ре акции на изменения. Целью было получение скользящего среднего, кото рое могло бы адаптироваться к текущему поведению рынка, так же как система шумоподавления Dolby адаптируется к уровню звука в аудиосиг нале: сглаживание усиливается, когда на рынке имеет место в основном шумовая активность и мало выраженного движения (в периоды затишья шум фильтруется сильнее), и снижается в периоды значительной актив ности рынка, увеличивая тем самым реакцию. Существует несколько ви дов адаптивных скользящих средних. Одно из наиболее эффективных раз работано Марком Джуриком (www.jurikres.com). Еще одно, разработанное Чандом, названо VIDYA (Variable Index Dynamic Moving Average).

Рекурсивный алгоритм экспоненциального скользящего среднего выг лядит так: для каждой точки данных коэффициент (с), определяющий эф фективную длину скользящего среднего (m), умножается на значение дан ной точки данных и к результату прибавляется разность 1,0 — с, умножен ная на текущее значение скользящего среднего, что и дает новое значе ние. Коэффициент с приравнивается к 2,0/(m+1), где т— период сколь зящей средней. Чанд в 1992 г. модифицировал данный алгоритм. В его мо дели значение коэффициента с не является константой, а зависит от теку щей волатильности рынка — «громкости» рынка, выраженной в виде стан дартного отклонения цен за некоторое количество последних точек дан ных. Поскольку стандартное отклонение сильно варьируется на разных рынках и показатель волатильности должен быть относительным, Чанд предложил делить наблюдаемое стандартное отклонение для каждой точ ки на среднее значение стандартного отклонения для всех точек в имею щемся образце данных. Для каждого бара коэффициент 2,0/(m + 1)) рас считывается заново, умножаясь на относительную волатильность, таким образом получается скользящее среднее с периодом, динамически подстра ивающимся под активность рынка.

Мы использовали адаптивное скользящее среднее, основанное на VIDYA, не требующее фиксированных поправок для стандартных откло нений (в виде стандартного отклонения, усредненного по всему образцу данных). Поскольку поведение рынков может очень сильно меняться со временем, а изменения волатильности при этом никак не связаны с адап тацией скользящего среднего, идея фиксированной нормализации не выглядит обоснованной. Вместо использованного Чандом стандартного отклонения, деленного на постоянный коэффициент, мы применили от ношение двух показателей волатильности — краткосрочного и долгосроч ного. Относительная волатильность, требуемая для коррекции с и, следо вательно, для коррекции периода адаптивного скользящего среднего, по ГЛАВА 6 МОДЕЛИ, ОСНОВАННЫЕ НА скользящих СРЕДНИХ лучалась методом деления краткосрочного показателя волатильности на долгосрочный. Показатели волатильности представляли собой скользящие средние квадратов разностей между соседними точками данных. Более короткий показатель использовал период р (подстраиваемый параметр), а период длинного скользящего среднего равнялся 4р. Если долгосрочная волатильность равна краткосрочной (т.е. их отношение равно единице), то адаптивное скользящее среднее ведет себя идентично стандартному экспоненциальному скользящему среднему с периодом m;

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

ВИДЫ МОДЕЛЕЙ С ВХОДОМ, ОСНОВАННЫМ НА СКОЛЬЗЯЩЕМ СРЕДНЕМ Модель с входом, основанным на скользящем среднем, генерирует сигна лы входа на основе просты» соотношений между скользящим средним и ценой или между двумя скользящими средними. Существуют модели и следующие за трендом, и идущие против тренда. Наиболее популярные модели следуют за трендом и отстают от рынка. С другой стороны, моде ли, идущие против тренда, предсказывают развороты и по крайней мере совпадают с событиями на рынке. Это не означает, что следующие за рынком модели работают хуже противотрендовых;

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

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

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

136 ЧАСТЬ II ИССЛЕДОВАНИЕ входов в РЫНОК Скользящие средние могут также использоваться для получения сиг налов входа в противотрендовых системах. Биржевые цены часто реаги руют на линию скользящего среднего примерно так, как на уровни под держки и сопротивления, на чем и основывается модель входа. Согласно ее правилам, покупают, когда цены опускаются до скользящей средней или пересекают ее сверху, и продают, когда они поднимаются до нее или пересекают снизу. Предполагается, что цены «отскакивают» от уровня скользящего среднего, меняя направление движения. Входы против трен да также можно производить на основе стандартного пересечения, но в обратном направлении. Когда цена опускается ниже линии скользящей средней, открывают длинную позицию, а когда цена поднимается выше линии скользящей средней, открывают короткую позицию. Такой «об ратный» подход часто оправдывается в торговле, поскольку, как правило, бывает выгодно продавать после сильного роста цен и покупать, когда цены чрезмерно быстро падают. Поскольку скользящие средние отстают от рынка, к моменту получения сигнала рынок может как раз находиться в начале обратного движения.

Использование скользящих средних для получения сигналов, идущих против рынка в модели, основанной на уровнях поддержки и сопротивле ния, не является чем-то новым. Александер (Alexander, 1993) обсуждал использование отката до уровня поддержки после пересечения скользя щего среднего как вариант организации входа. Тилли (Tilley, 1998) опи сывал систему на уровнях поддержки/сопротивления для торговли вза имными фондами. Суини (Sweeney, 1998) описывал применение скользя щих средних цен закрытия для вычисления внутридневных уровней под держки и сопротивления.

ХАРАКТЕРИСТИКИ ВХОДОВ, ОСНОВАННЫХ НА СКОЛЬЗЯЩИХ СРЕДНИХ Вход на основе скользящих средних, следующих за трендом, в принципе подобен пробою;

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

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

При работе с противотрендовой моделью требуется хорошая стратегия ГЛАВА 6 МОДЕЛИ, ОСНОВАННЫЕ НА скользящих СРЕДНИХ ограничения риска;

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

например, если они используют понятия поддержки и сопротивления.

ПРИКАЗЫ, ИСПОЛЬЗУЕМЫЕ ДЛЯ ОСУЩЕСТВЛЕНИЯ ВХОДОВ Входы, основанные на скользящих средних, могут быть осуществлены с помощью стоп-приказов, лимитных приказов или рыночных приказов.

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

Приказы, используемые для входов, имеют свои достоинства и недо статки. Рыночный приказ никогда не пропустит сигнала, поданного на вход. Стоп-приказ никогда не пропустит важного тренда (если система следует за трендом). Вход всегда будет произведен, когда движение цен подтверждает его выгодность — но за счет проскальзывания и неопти мальных цен входа. Лимитный приказ обеспечит лучшую цену и снизит расходы на сделку, но в ожидании отката цен можно пропустить важные тренды. В противотрендовой модели лимитный приказ может при случае ухудшить входную цену — поскольку приказ отдается по фиксированной цене, а не по цене, которую дает «отрицательное проскальзывание», воз никающее при движении рынка против сделки в момент входа.

МЕТОДОЛОГИЯ ТЕСТИРОВАНИЯ Во всех нижеследующих тестах использован стандартный портфель. Ко личество контрактов при покупке или продаже при входе на любом рын ке в любое время подбиралось так, чтобы приблизительно соответство вать долларовой волатильности двух контрактов S&P 500 на конец 1998 г.

Использованы стандартные выходы. Все тесты проведены с использова нием C-Trader toolkit. Для того чтобы была возможность сравнить резуль таты, использованы портфели, стратегии выхода и платформа тестирова ния, идентичные использованным ранее. Тесты разделены на следующие за трендом и идущие против тренда. Они проводились на основе скрипта, содержащего инструкции для установки параметров, проведения опти 138 ЧАСТЬ II ИССЛЕДОВАНИЕ входов в РЫНОК мизации и генерации результатов для каждого сочетания видов скользя щих средних, моделей и входных приказов.

Приведенный ниже код более сложен, чем код для пробоев;

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

static void Model (float *parms, float *dt, float *opn, float *hi, float *lo, float *cls, float *vol, float *oi, float *dlrv, int nb, TRDSIM &ts, float *eqcls) { // Данные для тестирования всех моделей скользящих средних.

// File = xlOmodOl.c // parms — набор [1..MAXPRM] параметров // dt — набор [l..nb] дат в формате ГГММДД // орn — набор [l..nb] цен открытия // hi — набор [1..nb] максимальных цен // 1о — набор [1..nb] минимальных цен // cls — набор [l..nb] цен закрытия // vol — набор [l..nb] значений обьема // oi — набор [1..nb] значений открытого интереса / / dlrv — набор [1..nb] значений среднего долларовой волатильности / / nb — количество дней в наборе данных // ts — ссылка на класс торгового симулятора // eqcls — набор [1..nb] уровней капитала при закрытых позициях // объявляем локальные переменные static int rc, cb, ncontracts, maxhold, fastmalen,slowmalen;

static int modeltype, ordertype, avgtype, signal;

static float mmstp, ptlim, stpprice, limprice, tmp;

static float exitatr[MAXBAR+1] ;

static float fastma[MAXBAR+1], slowma[MAXBAR+1] ;

// копируем параметры в локальные переменные для более удобного обращения fastmalen = parms[1];

// период для быстрой скользящей средней slowmalen = parms[2];

// период для медленной скользящей средней modeltype - parms[5];

// тип модели входа avgtype = parms[6];

// тип скользящего среднего ordertype = parms[7];

// тип входного приказа maxhold = 10;

// максимальный период удержания позиции ptlim = 4;

// целевая прибыль в единицах волатильности mmstp = 1;

// защитная остановка в единицах волатильности // пропускать неверные комбинации параметров if(fastmalen >= slowmalen) { set_vector(eqcls, 1, nb, 0.0);

return;

} // делаем вычисления по всему ряду данных, используя векторизацию AvgTrueRangeS(exitatr, hi, lo, cls, 50, nb);

// средний истинный // диапазон для выхода switch(avgtype) { // выбираем тип скользящей средней case 1: // простые скользящие средние ГЛАВА 6 МОДЕЛИ, ОСНОВАННЫЕ НА скользящих СРЕДНИХ Averages{fastma, cls, fastmalen, nb);

Averages(slowma, cls, slowmalen, nb);

break;

case 2: // экспоненциальные скользящие средние XAverageS(fastma, cls, fastmalen, nb);

XAverageS(slowma, cls, slowmalen, nb);

break;

case 3: // треугольные скользящие средние с передним взвешиванием FWTAverageS(fastma, cls, fastmalen, nb};

FWTAverageS(slowma, cls, slowmalen, nb);

break;

case 4: // VIDYA-адаптивные скользящие средние VIAverageS(fastma, cls, fastmalen, 10, nb) ;

VIAverageS(slowma, cls, slowmalen, 10, nb) ;

break;

default: nrerror("Invalid moving average selected");

} ;

// проходим через дни, чтобы смоделировать реальную торговлю for(cb =1;

cb < = nb;

cb++) { //не входим в сделки до начала периода выборки //...так же, как установка MaxBarsBack в Trade Station if (dt[cb] < IS_DATE} { eqcls [cb] = 0.0;

continue;

) // выполняем все ожидающие приказы и подсчитываем капитал по закрытым // сделкам гс = ts.update (opn [cb], hi [cb], lo [cb], cls [cb], cb) ;

if (rc = 0) nrerror("Trade buffer overflow");

eqcls[cb] = ts.currentequity(EQ_C1OSETOTAL);

// подсчитываем количество контрактов для сделки / /... мы хотим торговать эквивалентом долларовой волатильности //... 2 новых контрактов S&P-500 от 12/31/ ncontracts = RoundToInteger(5673.0 / dlrv[cb]);

if(ncontracts < 1) ncontracts = 1;

// избегаем установки приказов на день, когда остановлены торги if (hi[cb+1] == lo [cb+1]) continue;

// генерировать входные сигналы, цены стоп- и лимитных приказов, // используя модель входа определенной скользящей средней #define CrossesAbove(a,b, с) {а[с]>=b[с] && a [c-1]=b[c-1]) #define TurnsUp(a,c) {a [c]>=a[c-l] && a [c-1]=a[c-2] ) signal=0;

switch(modeltype) { case 1: // классическая следующая за трендом модель, основанная на // пересечении if (CrossesAbove(fastma, slowma, cb)) signal = 1;

else if (CrossesBelow(fastma, slowma, cb)) signal = -1;

limprice = 0.5 * (hi [cb] + lo [cb]);

stpprice = cls [cb] +0.5 * signal * exitatr[cb] ;

break;

case 2: // следующая за трендом модель, основанная на наклоне if (TurnsUp(fastma, cb)) signal = 1;

else if(TurnsDn{fastma, cb)) signal = -1;

limprice = 0.5 * (hi[cb] + lo [cb]};

stpprice = cls[cb] +0.5 * signal * exitatr[cb];

break;

case 3: // противотрендовая модель if(CrossesAbove(fastma, slowma, cb)) signal = -1 ;

else if(CrossesBelow(fastma, slowma, cb)) signal = 1;

140 ЧАСТЬ II ИССЛЕДОВАНИЕ входов в РЫНОК limprice = 0.5* (hi[cb] + lo[cb]);

stpprice = cls[cb] + 0.5 * signal * exitatr[cb];

break;

case 4: // противотрендовая модель, основанная на поддержке // и сопротивлении if(slowma[cb] > slowma[cb-1] && CrossesBelow(fastma, slowma, cb) ) signal = 1;

else if(slowma[cb] < slowma[cb-1] && CrossesAbove(fastma, slowma, cb)) signal = -1;

limprice = 0.5 * (hi[cb] + lo[cb]);

stpprice = cls[cb] +0.5 * signal * exitatr[cb];

break;

default: nrerror("Invalid model selected"};

} #undef CrossesAbove #undef CrossesBelow #undef TurnsUp #tundef TurnsDn // входим в сделку, используя опеределенный тип приказа if(ts.position() <= 0 && signal == 1) { switch (ordertype) { // выбираем желаемый тип приказа case 1: ts.buyopen('1', ncontracts);

break;

case 2: ts.buylimit('2', limprice, ncontracts);

break;

case 3: ts.buystop('3', stpprice, ncontracts);

break;

default: nrerror("Invalid buy order selected");

} } else if(ts.position)) >= 0 && signal == -1) ( switch (ordertype) ( // выбираем желаемый тип приказа case 1: ts.sellopen{'4', ncontracts);

break;

case 2: ts.selllimit('5', limprice, ncontracts);

break;

case 3: ts.sellstop('6', stpprice, ncontracts);

break;

default: nrerror("Invalid sell order selected");

} ) // симулятор использует стандартную стратегию выхода tmp = exitatr[cb];

ts.stdexitcls('X', ptlim*tmp, mmstp*tmp, maxhold);

} // обрабатываем следующий день } В этом коде содержатся три сегмента. Первый сегмент рассчитывает скользящие средние. Параметр avgtype выбирает вид среднего: 1 — про стое, 2 — экспоненциальное, 3 — треугольное с передним взвешиванием, 4 — модифицированное VIDYA. Даже если в коде использовано всего одно среднее, рассчитываются два одинаковых, чтобы сделать выбор вида скользящего среднего независимым от модели. Также рассчитывается средний истинный диапазон, значение которого требуется для установки защитных остановок и целевых прибылей в стратегии стандартных вы ходов. Два дополнительных параметра — fastmalen и slowmalen — указы вают период быстрой и медленной скользящих средних. Значения сколь зящих средних сохраняются в векторах fastma и stowma.

Следующий блок использует выбранную модель для получения сиг налов выхода, цен для стоп-приказов и цен для лимитных приказов. Сна ГЛАВА 6 МОДЕЛИ, ОСНОВАННЫЕ НА скользящих СРЕДНИХ чала определяются простые соотношения значений (CrossesAbove, CrossesBelow, Turnsllp и TurnsDown). В зависимости от mode/type одна из 4 видов моделей скользящих средних генерирует сигнал. Переменная modeltype принимает следующие значения: 1 — классическая, следующая за трендом модель пересечения двух скользящих средних;

2 — следую щая за трендом модель, основанная на наклоне;

3 — противотрендовая модель, основанная на пересечении и 4 — противотрендовая модель на основе поддержки/сопротивления. В классической модели, основанной на пересечении скользящих средних, трейдер открывает длинную пози цию, если быстрое среднее поднимается выше медленного, и короткую, если быстрое среднее опускается ниже медленного. Эта модель также может содержать сравнение скользящего среднего и цены в случае, когда период быстрого среднего приравнен к единице. При использовании ос нованной на наклоне модели, следующей за трендом, трейдер покупает, когда скользящее среднее после снижения стало расти, и продает в об ратной ситуации. Эта модель требует только медленного скользящего среднего. Противотрендовая модель представляет собой обратную вер сию следующей за трендом классической модели пересечения: трейдер покупает, когда быстрое среднее (или собственно цена) опускается ниже медленного, и продает, когда оно поднимется выше. Такая модель — меч та для приверженцев теории противоположного мнения: она работает строго противоположно системе следования за трендом. Последняя мо дель — грубая система на основе поддержки/сопротивления, где ожида ется, что цены будут «отскакивать» от линии скользящего среднего, как от уровней поддержки/сопротивления. Правила почти идентичны про тивотрендовой системе пересечения за тем исключением, что медленное среднее должно двигаться в направлении входа. Если медленное скользя щее среднее стремится вверх, а цены (или быстрое среднее) падают сверху до его уровня или ниже, то дается сигнал на покупку;

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

В последней части кода параметр ordertype определяет вид приказа:

1 — рыночный приказ при открытии;

2 — лимитный приказ;

3 — стоп приказ. Генерация приказа на покупку или продажу либо отсутствие при каза определяется тем, какой сигнал был сгенерирован предыдущим бло ком программы;

эта информация содержится в переменной signal: 1 — покупка;

—1 — продажа (открытие короткой позиции);

0 — нет приказа.

Уровень цены лимитного приказа (limprice) рассчитывается как сумма 142 ЧАСТЬ II ИССЛЕДОВАНИЕ входов в РЫНОК максимума и минимума текущего дня, деленная на два. Поскольку мно гие из моделей не имеют естественного уровня цены для установки вход ных стоп-приказов, используется стандартный стоп. Его цена (stpprice) получается таким образом: берется цена закрытия предыдущего дня и к ней прибавляется (при сигнале для длинной позиции) или от нее отнима ется (при сигнале для короткой позиции) средний истинный интервал за последние 50 дней, умноженный на 0,50;

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

ТЕСТЫ МОДЕЛЕЙ, СЛЕДУЮЩИХ ЗА ТРЕНДОМ Эта группа включает модели, построенные по принципу следования за трендом, с использованием скользящих средних. Модели различаются ви дом скользящих средних, правилами генерации сигналов и видами прика зов, обеспечивающих вход. Использовались следующие виды скользящих средних: простые, экспоненциальные, треугольные с передним взвеши ванием и модифицированные VIDYA. Исследованы системы простого пе ресечения цены и средней, пересечения двух скользящих средних, а так же модели со входами на основе наклона графика скользящей средней. В качестве входов использовались лимитные, рыночные и стоп-приказы.

Первые 12 тестов проведены на моделях, основанных на пересечении.

Оптимизация состояла в прогонке периода быстрого скользящего сред него от 1 до 5 с шагом 1 и периода медленного скользящего среднего от до 50 с шагом 5. Разумеется, период медленного среднего был всегда длин нее периода короткого. Проводилась оптимизация с лобовым подходом.

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

В тестах 13 — 24 испытывались модели, основанные на наклоне. В них оп тимизация состояла в прогонке периода первого (т.е. единственного) скользящего среднего от 3 до 40 с шагом 1. Как и в тестах 1 — 12, максими зировалось соотношение риска/прибыли. Оптимизация проводилась толь ко на данных в пределах выборки.

Табл. 6-1 и 6-2 показывают прибыль или убыток по каждому из компо нентов портфеля для каждого из тестов в пределах выборки (табл. 6-1) и вне пределов выборки (табл. 6-2). В столбце SYM указан рынок, первая строка — номер теста. Такое представление данных дает достаточно под робную информацию о прибыльности или убыточности рынков отдель ных товаров;

одно тире (—) означает умеренный убыток со сделки, т.е.

ГЛАВА 6 МОДЕЛИ, ОСНОВАННЫЕ НА скользящих СРЕДНИХ борки. Прибыль была несколько лучше при использовании стоп-приказа (поскольку значения прибыли в процентах годовых при оценке убыточ ных систем, естественно, искажаются) и хуже при входе по цене откры тия. В пределах выборки лучше всего работал стоп-приказ, но с минималь ным преимуществом.

В пределах выборки по показателю средней прибыли со сделки наи лучшие результаты дали системы на основе простого скользящего сред него, наихудшие — на основе адаптивного скользящего среднего. Другие два варианта скользящих средних дали промежуточные результаты, при чем экспоненциальное среднее работало лучше в моделях на основе пе Таблица 6—3. Эффективность следующих за трендом моделей в зависимости от вида приказов, вида скользящих средних, типа модели и выборки данных Вне пределов выборки Модель В пределах выборки Среднее Среднее Открытие Лимитный Стоп Открытие Лимитный Стоп в Вне пcс ДОХ% -9.4 -7.5 -6.5 -23.0 -21.4 -19.7 -7.8 -21. Пересеч $СДЕЛ -1785 -926 -1045 -1628 -1213 -1337 -1245.3 -1392. ЭСС ДОХ% -9.2 -7.5 -9.1 -20.4 -22.4 -19.9 -8.6 -20. Пересеч $СДЕЛ -1570 -705 -1534 -1269 -1755 -1223 -1269.7 -1415. ТССПВ ДОХ% -9.3 -8.2 -9.2 -21.6 -18.0 -23.4 -8.9 -21. Пересеч $СДЕЛ -1666 -890 -1720 -1984 -1265 -2715 -1425.3 -1988. АСС ДОХ% -9.6 -7.1 -8.3 -22.5 -19.0 -23.5 -8.3 -21. Пересеч $СДЕЛ -1942 -769 -1731 -1798 -1071 -2350 -1480.7 -1739. пcс ДОХ% -10.1 •8.7 -9.5 -22.4 -19.2 -23.8 -9.4 -21. Наклон $СДЕЛ -1667 -906 -1076 -1083 -615 -2528 -1216.3 -1408. ЭСС ДОХ% -10.1 -9.6 -8.5 -23.1 -20.5 -20.5 -9.4 -21. Наклон $СДЕЛ -2137 -1629 -1289 -1714 -1096 -1199 -1685.0 -1336. ТССПВ ДОХ% -10.0 -9.3 -8.0 -23.4 -19.2 -3.5 -9.1 -15. Наклон $СДЕЛ -1842 -1365 -1203 -1647 -1561 -91 -1470.0 -1099. АСС ДОХ% -10.1 -9.6 -8.7 -23.4 -22.9 -23.0 -9.5 -23. Наклон $СДЕЛ -2353 -1531 -1603 -1872 -1391 -2002 -1829.0 -1755. Модели пересечения Средняя ДОХ% -9.4 -7.6 -8.3 -21.9 -20.2 -21.8 -8.4 -21. Средняя $СДЕЛ. -1738 -823 -1508 -1670 -1326 -1906 -1355 - Модели наклона Средняя ДОХ% -10 -9 -9 -23 -20 -18 -9 - Средняя $СДЕЛ -2000 -1358 -1293 -1579 -1166 -1455 -1550 - 146 ЧАСТЬ II ИССЛЕДОВАНИЕ входов в РЫНОК ресечения, а треугольное с передним взвешиванием — в моделях на ос нове наклона. Из всех моделей на основе пересечения по показателю ДОХ% также лучше всего работали простые скользящие средние. В об щем, модели на основе пересечения работали так же или немного лучше, чем модели на основе наклона, возможно, ввиду их более быстрой реак ции на рыночные изменения. Вне пределов выборки простое скользящее среднее было однозначно лучшим для моделей, основанных на пересече нии, а треугольное с передним взвешиванием — лучшим для моделей, ос нованных на наклоне. По показателю ДОХ% экспоненциальное скользя щее среднее, видимо, было лучшим для моделей, основанных на пересе чении, а треугольное с передним взвешиванием — опять-таки лучшим для моделей, основанных на наклоне.

При рассмотрении отдельных тестов обнаруживается, что вне преде лов выборки наилучшие показатели имела модель, испытанная в тесте 21 :

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

Вне пределов выборки результаты были менее закономерны. При ис пользовании простого скользящего среднего результаты были более все го близки к полученным в пределах выборки;

при использовании экспо ненциального среднего лимитные приказы работали хуже всего, а стоп приказы лучше всего;

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

Модели, основанные на наклоне, всегда плохо работали при рыночном приказе;

лимитные и стоп-приказы давали близкие результаты: в двух слу чаях был предпочтителен лимитный приказ (при простых скользящих сред них и адаптивных скользящих средних) и в двух случаях — стоп-приказ (при экспоненциальных и треугольных скользящих средних). Как и ранее, вне пределов выборки отмечалось большее разнообразие результатов.

Для простых скользящих средних лучше всего работали лимитные приказы, а хуже всего стоп-приказы. При использовании экспоненциаль ных средних наблюдалась отмеченная ранее типичная картина: рыноч ный приказ работает хуже всех, лимитный приказ — лучше всех, а стоп приказ дает средние результаты. Как уже было сказано, треугольное сколь ГЛАВА 6 МОДЕЛИ, ОСНОВАННЫЕ НА скользящих СРЕДНИХ зящее среднее в сочетании со стоп-приказом работало очень необычно.

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

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

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

По показателям прибыли, усредненной для всех моделей и скользя щих средних, хуже всего работали входы по рыночному приказу на от крытии. Входы по лимитному или стоп-приказу работали примерно оди наково, с некоторым преимуществом лимитного приказа, особенно в на чале выборки. Следует отметить, что при рассмотрении графиков изме нения капитала убыточных систем возникает искажение в оценке эффек тивности системы (в нашем анализе мы обращали внимание на показа тель средней прибыли сделки, на соотношение риска/прибыли, годовой или общей доходности именно по этим соображениям). Это искажение затрагивает количество проведенных сделок: убыточная система, кото рая проводит меньше сделок, будет выглядеть по ряду показателей луч ше, чем убыточная система, которая проводит много сделок, даже если «лучшая» система теряет больше на каждой сделке. Сильные убытки при входе с помощью рыночного приказа могут быть не связаны с тем, что приказ сам по себе плох, — ситуация может попросту отражать тот факт, что при использовании этого приказа система проводит больше сделок, чем при использовании лимитного или стоп-приказа.

На рис. 6-1 изображены графики изменения капитала для всех вось ми сочетаний моделей и скользящих средних. Графики усреднены по ви дам приказов. Рис. 6-1 показывает, как со временем происходит измене ние систем. Большинство систем понесли самые тяжелые убытки в пери од с конца 1988 г. до начала 1995 г. Как видите, время лучшей эффектив ности — до 1988 г., в последние годы эффективность систем была сред ней. На графике 3 отражены результаты модели пересечения простых скользящих средних — ярко выраженное изменение с течением време ни делает эту кривую примером, на котором четко видны все три перио да — первоначальные прибыли, сильные убытки и небольшая прибыль в конце. Очевидно, что системы, основанные на пересечении (кривые 1—4), несли гораздо меньшие убытки, чем модели, основанные на накло ГЛАВА 6 МОДЕЛИ, ОСНОВАННЫЕ НА скользящих СРЕДНИХ пает, когда цена (или быстрое среднее) пересекает медленное среднее вверх и продает, когда пересекает вниз. В этой же модели на обратном пересечении все сделано наоборот. В тестах использована оптимизация с лобовым подходом, период быстрого среднего оптимизировался в преде лах 1 —7 с шагом 1, период медленного в пределах 5 —50 с шагом 5. Рас сматривались только случаи, когда длинные скользящие средние по раз меру превышали короткие. Параметры подбирались таким образом, что бы минимизировать вероятность того, что какие-либо из наблюдавшихся прибыльных показателей оказались таковыми случайно. Модель была ап робирована на данных вне пределов выборки с использованием лучших наборов параметров, определенных с помощью данных из выборки.

В тестах модели поддержки/сопротивления (с 37 по 48) трейдер поку пает, когда цены отскакивают вверх от скользящего среднего, и продает, когда они касаются скользящего среднего при движении снизу вверх. В этом случае скользящее среднее играет роль уровня поддержки или со противления, на котором ценовой тренд может развернуться. Правила почти такие же, как для тестов с 25 по 36, за тем исключением, что не каж дое пересечение скользящего среднего приводит к входу. Если цены выше скользящего среднего и пересекают его, генерируется покупка, однако, когда цены отскакивают назад и снова оказываются над скользящим сред ним, второго пересечения недостаточно для инициации продажи. Если цены пересекают скользящее среднее снизу вверх, то осуществляется продажа. Однако при обратном пересечении покупка не генерируется.

Такое поведение модели достигается путем добавления одного условия к обратной модели пересечения. Это условие заключается в том, что сиг нал формируется только тогда, когда он совпадает с направлением накло на медленного скользящего среднего. Поиски наилучшего решения про водились методом прямой оптимизации по данным выборки. Период ко роткого скользящего среднего изменялся от 1 до 5 с шагом 1. Период длин ного скользящего среднего изменялся от 5 до 50 с шагом 5. Если период скользящего среднего равен 1, то данное среднее эквивалентно самой цене. Следовательно, при оптимизации тестировались модель, в которой цена сравнивалась со скользящим средним, и модель, в которой одно скользящее среднее сравнивалось с другим. Исследовались только те слу чаи, в которых период длинного скользящего среднего был больше, чем период короткого среднего. Мы подбирали параметры системы с целью минимизации вероятности того, что система приносит прибыль случай но. Затем модель была проверена на данных вне выборки с использова нием лучшего набора параметров, найденного в пределах выборки.

В табл. 6-4 и 6-5 для тестов с 25 по 48 представлены результаты дей ствия системы на рынках различных финансовых инструментов, как в пределах выборки (табл. 6-4), так и вне нее (табл. 6-5). Символы, обозна чающие величину прибыли (+ и —), могут быть интерпретированы та ким же образом, как и для табл. 6-1 и 6-2.

ЧАСТЬ II ИССЛЕДОВАНИЕ входов в РЫНОК Таблица 6—6. Эффективность противотрендовых моделей в зависимости от вида приказов, вида скользящих средних, типа модели и выборки данных Модель Вне пределов выборки Среднее Среднее в Вне Открытие Лимитный Стоп Открытие Лимитный Стоп ПСС-ОП ДОХ% -10.2 -9.6 -9.5 -22.7 -20.7 -20.6 -9.8 -21. $СДЕЛ -2220 -1630 -1120 -3221 -1917 -1731 -1657 - ЭСС-ОП ДОХ% -10.1 -10.1 -9.1 -22.8 -22.5 -23.1 -9.8 -22. $СДЕЛ -2350 -1905 -1171 -2471 -2214 -3128 -1809 - ТССПВ-ОП ДОХ% -9.7 -9.1 -8.5 -20.9 -16.7 -19.9 -9.1 -19. $СДЕЛ -2405 -1869 -1246 -1821 -971 -1343 -1840 - АСС-ОП ДОХ% -10.3 -10.3 -9.5 -23.0 -22.8 -20.8 -10.0 -22. $СДЕЛ -1865 -1488 -1033 -2222 -2254 -1604 -1462 - ПСС-П/С ДОХ% -9.6 -10.2 4.2 -20.4 -16.9 14.8 -5.2 -7. $СДЕЛ -1099 -844 227 -1962 -1512 482 -572 - эсс-п/с ДОХ% 0 0 0 0 0 0 0 $СДЕЛ 0 0 0 0 0 0 0 ТССПВ-П/С ДОХ% -8.1 -3.2 8.8 -13.2 -13.8 -22.3 -0.8 -16. $СДЕЛ -841 -261 1015 -1444 -1087 -3566 -29 - АСС-П/С ДОХ% 0 0 0 0 0 0 0 0 0 0 0 0 0 0 $СДЕЛ Модели ОП Средняя ДОХ% -10.1 -9.8 -9.2 -22.4 -20.7 -21.1 -9.7 -21. Средняя $СДЕЛ -2210 -1723 -1143 -2434 -1839 -1952 -1691.8 -2074. Модели П/С Средняя ДОХ% -8.8 -6.7 6.5 -16.8 -15.4 -3.7 -3.0 -12. Средняя $СДЕЛ -970 -553 621 -1703 -1300 -1542 -300.5 -1514. ному результату. Другие приказы приводили к потерям в данных систе мах;

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

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

ГЛАВА 6 МОДЕЛИ, ОСНОВАННЫЕ НА скользящих СРЕДНИХ смысла добавлять в систему, основанную на пробоях (как и стоп-приказ, он представляет собой еще один элемент следования за трендом), в про тивотрендовой модели такой элемент может дать определенные преиму щества. В системе, основанной на пробоях, лучше работает лимитный приказ, за исключением случаев, когда стоп-приказ выгоден благодаря своим характеристикам следования за трендом.

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

ЧТО МЫ УЗНАЛИ?

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

входом при пробое, когда развивается противотрендовое движение, или применением трендового фильтра в противотрендовой модели.

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

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

• Даже несмотря на то, что традиционные индикаторы, исполь зуемые стандартным образом, обычно приводят к неудаче (на 156 ЧАСТЬ II ИССЛЕДОВАНИЕ входов в РЫНОК пример, такие старые системы, как пробои волатильности), классические концепции поддержки/сопротивления могут быть весьма выгодными. Пробои уровней поддержки/сопро тивления проявляют себя лучше, чем, например, пробои вола тильности. Аналогично, модели скользящего среднего, исполь зующие концепцию поддержки/сопротивления, работают луч ше прочих. Реализация метода поддержки/сопротивления была рудиментарной, тем не менее в самых удачных сочета ниях она дает одни из лучших результатов. Вероятно, дальней шая разработка данного метода сможет значительно повысить эффективность основанных на нем торговых систем. Хотя метод поддержки/сопротивления широко известен на протя жении многих лет, его дальнейшее развитие может оказаться достаточно сложным. Основной задачей здесь можно назвать поиск автоматизированного «механического» метода поиска текущих уровней поддержки/сопротивления.

154 ЧАСТЬ II ИССЛЕДОВАНИЕ входов в РЫНОК апельсинового сока и свиной грудинки, можно найти высокоприбыльные комбинации типов модели и приказа.

На рис. 6-2 представлены графики изменения капитала для различ ных комбинаций моделей и скользящего среднего. Капитал каждой сис темы был усреднен по типу приказа. Лучшими двумя моделями были мо дель поддержки/сопротивления на основе треугольного скользящего сред него с передним взвешиванием и модель поддержки/сопротивления на основе простого скользящего среднего. Эти модели работали значитель но лучше, чем любые из противотрендовых моделей, основанных на пе ресечении. Можно выделить три временных периода, в каждом из кото рых эти модели вели себя по-разному: от начала выборки до октября 1987 г., с октября 1987 г. по июнь 1991 г. и с июня 1991 г. по декабрь 1998 г.

Наихудшие результаты были получены в течение последнего периода.

Графики изменения капитала, представленные на рис. 6-2, показыва ют, что противотрендовые модели лучше работали в прошлом, в то время как модели следования за трендом лучше работали в последнее время. В пределах выборки стоп-приказ оказался наилучшим видом входного при каза для каждой комбинации модели и скользящего среднего. Вне преде лов выборки стоп-приказ был наихудшим для трех комбинаций модели и скользящего среднего из шести (по двум комбинациям не было сделок, поэтому они не рассматривались). Рыночный приказ по цене открытия следующего дня оказался наихудшим во всех случаях, за исключением двух. Стоп-приказ, как правило, был лучше лимитного приказа в преде лах выборки. Однако вне выборки лимитный приказ был немного лучше стоп-приказа.

ЗАКЛЮЧЕНИЕ В общем, модели следования за трендом в тестах с 1 по 24 работали лучше, чем противотрендовые модели в тестах с 25 по 48, за некоторыми исклю чениями, рассмотренными выше.

Лучшие модели, несомненно, сочетают в себе как противотрендовые элементы, так и элементы следования за трендом. Например, покупка при откате рынка с использованием лимитного приказа после пробоя сколь зящего среднего обеспечивает лучшие результаты, чем другие комбина ции. Противотрендовые модели, основанные на скользящих средних и имеющие элемент следования за трендом (например, стоп-приказ), так же показывают наилучшие результаты. Чистые противотрендовые моде ли и модели следования за трендом значительно им уступают. Более того, добавление трендового фильтра к системе следования за трендом не дает преимуществ, но может увеличивать затраты при входе. С другой сторо ны, комбинация противотрендовых моделей с трендовым фильтром ADX может повысить эффективность системы. Хотя фильтр ADX не имеет ГЛАВА Входы на основе осцилляторов Осцилляторы популярны у трейдеров, использующих технические сис темы, в течение многих лет. Статьи, посвященные осцилляторам, неред ко появляются в таких журналах, как Technical Analysis of Stocks and Commodities и Futures. Описанию осцилляторов посвящено множество книг по техническому анализу.

Наиболее широко применяются в классическом виде и различных ва риантах осциллятор Аппеля (1990) — осциллятор схождения-расхожде ния скользящих средних (так называемый MACD) и гистограмма MACD (MACD-H). Кроме того, популярны стохастический осциллятор Лэйна и индекс относительной силы Вильямса (RSI). В литературе упоминается множество их вариантов. Также следует упомянуть индекс товарных ка налов Ламберта (CCI), индекс случайного блуждания, который тоже мож но считать осциллятором, и осциллятор Геда,а на основе регрессионных каналов (1997). В этой главе будут рассмотрены в первую очередь три са мых известных осциллятора — MACD, стохастический и RSI.

ЧТО ТАКОЕ ОСЦИЛЛЯТОР?

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

ВИДЫ ОСЦИЛЛЯТОРОВ Существуют два главных вида осцилляторов. Один из них — линейные полосовые фильтры, анализирующие частоту колебаний. К этому классу 158 ЧАСТЬ II ИССЛЕДОВАНИЕ входов в РЫНОК относятся MACD и MACD-H. Другой класс приводит к некоторой норма лизованной шкале какой-либо аспект поведения цен (к этому классу от носятся RSI, стохастический осциллятор и CCI);

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

в общем, построенные ими графики имеют ломаный, колеблющийся вид.

Осциллятор MACD (осциллятор схождения/расхождения скользящих средних) и его гистограмма MACD-H работают как грубые полосовые фильтры, удаляя тренды и сдвиги, а также высокочастотный шум. При этом анализируются волны или циклы с частотой, близкой к середине полосы пропускания. MACD сглаживает данные, подобно скользящему среднему, в некоторой степени удаляет тренды, выделяет циклы и иногда не запаздывает по отношению к рынку. Хорошим источником по этому осциллятору можно считать работу Элерса (Ehlers,1989).

MACD рассчитывается путем вычитания скользящего среднего с длин ным периодом из скользящего среднего с более коротким периодом. В принципе можно использовать любые виды средних или фильтров низ ких частот (в классическом MACD использованы экспоненциальные скользящие средние). Ряд вариантов MACD построен на более сложных средних, например VIDYA (рассмотрено в главе о скользящих средних), а также на треугольных средних. Помимо собственно MACD используется гистограмма — разность MACD и его скользящего среднего. Во многих случаях скользящее среднее MACD называется сигнальной линией.

Стохастический осциллятор часто еще называют индикатором пе рекупленности/перепроданности. Согласно Лупо (Lupo, 1994), «стохас тичёский-осциллятор определяет положение последнего рыночного дей ствия по отношению к минимальной и максимальной цене за последние n дней». В этом отношении стохастический осциллятор измеряет импульс цены, он показывает, стремится ли рынок к новому максимуму или мини муму или находится где-то посередине.

К стохастическим относится ряд родственных индикаторов: Быстрый %К, Медленный %К (также называемый Быстрым %D) и Медленный %D.

Быстрый %К измеряет в процентах расположение последней цены зак рытия относительно максимального максимума и минимального мини мума за последние n дней, где n — длина заданного периода индикатора.

Медленный %К, он же Быстрый %D, рассчитывается аналогично Быст рому %К, за тем исключением, что числитель и знаменатель формулы для Быстрого %К предварительно усредняются за последние 3 дня. Мед ленный % D — просто скользящее среднее Медленного %К с периодом 3 дня. Его иногда используют как сигнальную линию, подобно тому, как скользящее среднее MACD используют как сигнальную линию для MACD.

ГЛАВА 7 Входы НА ОСНОВЕ ОСЦИЛЛЯТОРОВ Известно много вариантов стохастического осциллятора;

например, Блау (Blau) в 1993 г. описывал вариант с двойным сглаживанием. Уравне ния для классического стохастического осциллятора Лэйна опубликова ны в статье Мейбаха (Meibahr, 1992). Ниже приведена одна из версий этих уравнений:

A(i) = Максимум из H(i), H(i - 1),... Н(1 - n + 1) B(i) = Минимум из L(i ), L(i - 1),... L(1 - n + 1) D(i) = [A(i) + A(i - 1) + A(i - 2)]/ E(i) = [B(i) + B(i - 1) + B(i - 2)]/ F(i) = [C(i ) +C(i - 1) + C(i-2)]/ Быстрый %К для i-го дня = 100 X [C(i) - B(i)]/[A(i) - B(i)] Медленный %K = Быстрый %D = 100 X [F(i) - E(i)]/[D(i) - E(i)] Медленный %D = простое скользящее среднее Медленного %К с периодом 3 дня В этих уравнениях i означает номер торгового дня, H(i) — максимум дня i, L(i) — минимум дня i, C(i) — цену закрытия дня i. Все остальные переменные — производные серии данных, необходимые для расчета различных стохастических осцилляторов. Как видно из уравнений, сто хастические осцилляторы выделяют относительное положение цены за крытия в пределах, установленных недавними максимумами и миниму мами: высокие значения (до 100) возникают, когда цена закрытия близка к высшим значениям недавних цен, низкие (до 0) — когда цена закрытия близка к низшим.

Индекс относительной силы (RSI) — еще один популярный осцилля тор, который оценивает по процентной шкале относительное движение вверх или вниз. Классический RSI использует экспоненциальные сколь зящие средние, отдельно рассчитанные для движения вверх и вниз. Их сумма и дает процент общего движения. Один из вариантов использует для вычисления простые скользящие средние. Формула классического RSI приведена ниже:

U(i) = Максимум из 0, C(i) - C(i - 1) D(i) = Максимум из 0, C(i - 1) - C(i) АU(i) = [(n - 1) X АU(i - 1) + U(i)]/n AD(i) = [(n - 1) X AD(i - 1) + D(i)]/n RSI(i) = 100 X AU(i)/AU(i) + AD(i)] Период индикатора обозначен как n, движение вверх — U, движение вниз — D, среднее движение вверх — AU, среднее движение вниз — AD.

Номер торгового дня обозначен буквой i. Обычно рассчитывается RSI с периодом 14 дней (n = 14). У Стара (Star, 1993) можно найти подробное обсуждение этого индикатора.

160 ЧАСТЬ II ИССЛЕДОВАНИЕ входов в РЫНОК Кроме того, существует индекс товарных каналов, или CCI, рассмот ренный в работе Девиса (Davies, 1993). Этот осциллятор подобен стохас тическому с усиленным акцентом на статистику: вместо оценки послед ней цены закрытия в рамках недавних максимумов и минимумов он оце нивает ее относительно границ, определяемых медианой и средним от клонением цены за последнее время. Хотя далее этот осциллятор не бу дет рассматриваться, для заинтересованных читателей мы приводим его определение:

Х(i) = H(i) + L(i) + C(i) A(i) = Простое скользящее среднее от X(i) с периодом n дней D(i) = Среднее от [Х(i - k) - A(i)] для k от 0 до n - CCI(v) = [Х(i) - A(i)]/[0,015 X D(i)] В уравнениях индекса товарных каналов X — так называемая меди анная цена, А — скользящее среднее X, D — среднее абсолютное откло нение, n — период индикатора, i — номер торгового дня.

На рис.7-1 изображен график S&P 500, к которому приложены гра фики трех наиболее популярных осцилляторов с прилагающимися к ним сигнальными линиями, медленными версиями и т.п. На графике стохас тического осциллятора также изображены фиксированные пороги на уровнях 80 и 20, для RSI эти пороги традиционно помещают на уровнях и 30. Рисунок показывает графики осцилляторов и их реакцию на изме нения цен, а также иллюстрирует метод расхождения, о котором речь пой дет ниже.

ПОЛУЧЕНИЕ СИГНАЛОВ ВХОДА ПРИ ПОМОЩИ ОСЦИЛЛЯТОРОВ Существуют различные способы применения осцилляторов для получе ния торговых сигналов. В этой главе будут рассмотрены три из них.

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

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

162 ЧАСТЬ II ИССЛЕДОВАНИЕ входов в РЫНОК ность входов. Например, MACD иногда обеспечивает сглаживание дан ных в реальном времени, что позволяет получать лучшие результаты, чем при использовании моделей, основанных на скользящих средних, где пики и провалы на графике значительно запаздывают по сравнению с ценами, а поздние входы снижают эффективность. MACD, со своей стороны, при совпадении собственного периода с циклической активностью рынка обеспечивает примерное совпадение пиков и провалов и сглаживание графика, что также позволяет избежать характерных для скользящих средних многочисленных сделок, вызванных шумом, и повысить прибыль за счет своевременности сделок.

Помимо MACD, другие осцилляторы также, как правило, не отстают или даже опережают цены. По рассмотренным ниже причинам обгоня ющие или одновременные индикаторы вовсе не обязательно дают боль шие прибыли, чем запаздывающие скользящие средние — своевремен ность сигналов не обязательно означает их прибыльность. Проблема в том, что даже при наличии некоторых абсолютно точных сигналов, ос цилляторы будут генерировать множество ложных. В условиях сильно го тренда многие из ожидаемых разворотов никогда не происходят, и система входит в рынок в неверном направлении. Таким образом, за счет точности теряется надежность. Что важнее — поздний, но надежный вход или ранний, но менее надежный — вопрос отдельного эмпиричес кого исследования. В принципе эта проблема возникает при использо вании любого прогностического метода — чем больше задержка, тем точнее (и бесполезнее) прогноз и, чем больше опережение, тем он по лезнее (и ошибочнее). Эта логика напоминает принцип неопределенно сти Гейзенберга.

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

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

ГЛАВА 7 Входы НА ОСНОВЕ ОСЦИЛЛЯТОРОВ ХАРАКТЕРИСТИКИ ВХОДОВ НА ОСНОВЕ ОСЦИЛЛЯТОРОВ Основанные на осцилляторах входы обладают преимуществами опере жения или совпадения по времени с поведением цены, следовательно, они пригодны для входов, направленных против тренда, и теоретически мо гут обеспечивать высокий процент выгодных сделок. Осцилляторы обыч но работают наилучшим образом на циклических или не подверженных трендам рынках. На этих рынках осцилляторы указывают на максимум или минимум еще до начала движения цен. Таким образом, проскальзы вание минимально или даже отрицательно, и переоценка позиции стано вится положительной уже при очень малом движении цены. В таких слу чаях легко получить солидную прибыль даже при неоптимальной страте гии выхода. Считается, что на рынках тренды присутствуют всего около 30% времени;

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

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

МЕТОДИКА ТЕСТИРОВАНИЯ Все приведенные ниже тесты были осуществлены с помощью осцилля торных моделей на портфеле разнообразных ценных бумаг. Можно ли получать прибыльные сделки с осцилляторными моделями? Как они ра ботают во времени — ухудшается или улучшается их функционирова ние за последние годы? Целью нашего тестирования был ответ на эти вопросы.

164 ЧАСТЬ II ИССЛЕДОВАНИЕ входов в РЫНОК Во всех тестах использовался стандартный выход, описанный в пре дыдущих главах. Правила входов будут рассмотрены параллельно с ко дом модели и отдельными тестами. Сделки закрывались при поступлении приказа на вход в обратном направлении или при исполнении стандарт ного выхода. Платформа тестирования тоже была стандартной.

За последние годы мы закодировали на языке C++ ряд осциллято ров, описанных в Technical Analysis of Stocks and Commodities и в ряде других источников. В этой главе мы сравниваем работу версий C++ ос цилляторов MACD, RSI и стохастического с их версиями в TradeStation.

В большинстве случаев результаты идеально совпадали, но в одном слу чае, а именно для Медленного %К, результат разительно отличался. Раз бор кода показал, что TradeStation рассчитывает Медленный %К как экс поненциальное скользящее среднее от Быстрого %К. В нашем же коде отдельно рассчитываются простые скользящие средние с периодом 3 дня для числителя и знаменателя формулы Быстрого %К. Согласно уравне ниям, приведенным Мейбахом (Meibahr, 1992) и другими источниками, правильной является наша версия на C++. Если читатели захотят повто рить наши расчеты в TradeStation и обнаружат расхождения, мы насто ятельно рекомендуем проверить функции индикаторов TradeStation.

Кроме того, при попытке закодировать правильную версию Медленно го %К для TradeStation на EasyLanguage мы неожиданно обнаружили, что TradeStation без предупреждения может выдать неверные результа ты, если одна пользовательская функция вызывает другую. Когда мы из менили код так, чтобы рассчитывалась промежуточная переменная (что бы избежать совместных вызовов), были получены правильные резуль таты. В этих тестах использовалась версия TradeStation 4.02 от 29 июля 1996 г.

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

static void Model (float *parms, float *dt, float *opn, float *hi, float *lo, float *cls, float *vol, float *oi, float *dlrv, int nb, TRDSIM &ts, float *eqcls) ( // Выполнение тестирования моделей на осцилляторах // File = xllmodOl.c // parms - набор [1.. MAXPRM] параметров // dt - набор [l..nb] дат в формате ГГММДД // орn - набор [l..nb] цен открытия // hi — набор [l..nb] максимальных цен // 1о - набор [1..пЬ] минимальных цен // cls — набор [l..nb] цен закрытия // vol - набор [l..nb] значений обьема // oi — набор [l..nb] значений открытого интереса // dlrv — набор [l..nb] средних долларовой волатильности // nb — количество дней в наборе данных // ts — ссылка на класс торгового симулятора // eqcls — набор [l..nb] уровней капитала при закрытых позициях ГЛАВА 7 Входы НА ОСНОВЕ ОСЦИЛЛЯТОРОВ // объявляем локальные переменные static int rc, cb, ncontracts, maxhold, len1, len2, len3;

static int modeltype, ordertype, osctype, signal, i, j, k;

static float mmstp, ptlim, stpprice, limprice, tmp;

static float exitatr[MAXBAR+1];

static float sigline[MAXBAR+1], oscline[MAXBAR+1];

static float upperband[MAXBAR+1], lowerband [MAXBAR+1] ;

// копируем параметры в локальные переменные для удобного обращения lenl = parms[l];

// более короткий для первого параметра длины 1еn2 = parms[2] ;

// более длинный для второго параметра длины 1епЗ = parms[3];

// длина теста дивергенции modeltype = parms[7];

// тип осцилляторной модели входа osctype - parms[8];

// тип осциллятора ordertype = parms[9];

// тип входного приказа maxhold =10;

// период максимального удержания позиции ptlim =4;

// целевая прибыль в единицах волатильности mmstp =1;

// защитная остановка в единицах волатильности // пропускаем неправильные комбинации параметров, if ( (osctype==4 && len1>=len2) ) ( set_vector(eqcls, 1, nb, 0.0);

return;

} // выполняем вычисления для всех данных, используя процедуры быстрой обработки // массивов AvgTrueRangeS{exitatr,hi,lo,cls,50,nb);

// средний истинный диапазон для выхода switch(osctype} { // выбираем осциллятор case 1: // классические быстрые стохастики StochOsc(oscline,hi,lo,cls,1,len1,nb);

//Быстрый %К MovAvg(sigline, oscline, 1, 3, nb);

//Быстрый %D set_vector(upperband, 1, nb, 80.0);

//верхняя граница set_vector(lowerband, 1, nb, 20.0);

//пробой нижней границы break;

case 2: // классические медленные стохастики StochOsc(oscline,hi,lo,cls,2,lenl,nb);

//Медленный %К MovAvg(sigline, oscline, 1, 3, nb);

//Медленный %D set_vector(upperband, 1, nb, 80.0);

//верхняя граница set_vector(lowerband, 1, nb, 20.0);

//пробой нижней границы break;

case 3: // классический RSI RsiOsc(oscline, cls, 1, lenl, nb);

//RSI MovAvgtsigline, oscline, 1, 3, nb) ;

//3-дневное ПСС set_vector(upperband, 1, nb, 70.0);

//верхняя граница set_vector(lowerband, 1, nb, 30.0);

//пробой нижней границы break;

case 4 : // классический MACD MacdOsc(oscline,cls,1,lenl,len2,nb);

//классический MACD MovAvg(sigline, oscline, 2, 9, nb) ;

//9-дневное ЭСС for{i=l;

i<=nb;

i++} lowerband[i]=1.5*fabs(oscline[i] ) ;

//пороги MovAvg(upperband,lowerband,1,120,nb);

//как долгосрочная for{i=l;

i<=nb;

i++} //отклонение от среднего lowerband[i]= -upperband[i];

//полосы break;

default: nrerror("Invalid moving average selected");

};

// проходим через штрихи (дни), чтобы смоделировать реальную торговлю for{cb = 1;

cb <= nb;

cb++} { // не открываем позиций до начала периода выборки //... то же самое, что и установка MaxBarsBack в TradeStation 166 ЧАСТЬ II ИССЛЕДОВАНИЕ входов в РЫНОК if(dt[cb] < IS_DATE) { egcls[cb] = 0.0;

continue;

) // выполняем ожидающие приказы и считаем накопленный капитал rс = ts.update{opn[cb], hi[cb], lo[cb], cls[cb], cb);

if(rc = 0) nrerror("Trade buffer overflow"};

eqcls[cb] = ts.currentequity(EQ_CLOSETOTAL);

// считаем количество контрактов для позиции //... мы хотим торговать эквивалентом долларовой волатильности //... 2 новых контрактов S&P-500 от 12/31/ ncontracts = RoundToInteger(5673.0 / dlrvfcbj);

if(ncontracts < 1) ncontracts = 1;

// избегаем устанавливать приказы на дни с ограниченной торговлей if(hi[cb+l] == lo[cb+l]) continue;

// генерируем входные сигналы, цены стоп- и лимитных приказов, // используя определенную модель входа на осцилляторах #define CrossesAbove (a,b,c) (а[с]>=b[с] && а[с-1]=b [с-1] ) #define TurnsUp(a,c) (а[с]>=а[с-1] && а[с-1]<а[с-2]) #define TurnsDn(a,c) (a[c]=а [с-2] ) signal=0;

switch (modeltype) { case 1: // модель перекупленности-перепроданности if(CrossesAbove(oscline, lowerband, cb)} signal = 1;

else if(CrossesBelow(oscline, upperband, cb)) signal = -1;

limprice = 0.5 * (hi [cb] + lo [cb] ) ;

stpprice = cls[cb] +0.5 * signal * exitatr[cb];

break;

case 2: // модель сигнальной линии if(CrossesAbove(oscline, sigline, cb)) signal = 1;

else if(CrossesBelow(oscline, sigline, cb)) signal = -1;

limprice = 0.5 * (hi [cb] + lo[cb]) ;

stpprice = cls[cb] + 0.5 * signal * exitatr[cb];

break;

case 3: // модель дивергенции i = LowestBar(cls, len3, cb) ;

j = LowestBar(oscline, len3, cb);

if(i < cb && i > cb-6 && j > cb-len3+l && i-j > && TurnsUp(oscline, cb)) signal = 1;

else { i = HighestBar(cls, len3, cb} ;

j = HighestBar(oscline, len3, cb);

if(i < cb && i > cb-6 && j > cb-len3+l && i-j > && TurnsDn(oscline, cb)) signal = -1;

) limprice = 0.5 * (hi[cb] + lo[cb]);

stpprice = cls[cb] + 0.5 * signal * exitatr[cb];

break;

default: nrerror("Invalid model selected");

) #undef CrossesAbove #undef CrossesBelow #undef TurnsUp #undef TurnsDn // входим в сделку, используя определенный тип приказа if (ts.position() <= 0 && signal == 1) { switch(ordertype) { // выбираем нужный вид приказа case 1: ts.buyopen('1', ncontracts);

break;

case 2: ts.buylimit('2', limprice, ncontracts);

break;

ГЛАВА 7 Входы НА ОСНОВЕ ОСЦИЛЛЯТОРОВ case 3: ts.buystop('3', stpprice, ncontracts);

break;

default: nrerror("Invalid buy order selected");

} } else if(ts.position1) >= 0 && signal == -1) { switch(ordertype) { // выбираем желаемый тип приказа case 1: ts.sellopen('4', ncontracts);

break;

case 2: ts.selllimit('5', limprice, ncontracts);

break;

case 3: ts.sellstop('6', stpprice, ncontracts);

break;

default;

nrerror("Invalid sell order selected");

} } // симулятор использует стандартную стратегию выхода tmp = exitatr[cb];

ts.stdexitcls ('Х', ptlim*tmp, nmstp*tmp, maxhold) ;

} // обрабатываем следующий день ] Логика кода весьма напоминает программу, использованную для тес тирования скользящих средних. Сначала копируется ряд параметров в местные переменные для простоты ссылок и считывания дальнейшим кодом. Затем проверяется наличие непригодных сочетаний параметров, например для MACD (osctype = 4) длина короткого скользящего средне го должна быть меньше, чем длинного, иначе тест будет пропущен. В сле дующем крупном блоке osctype выбирает вид рассчитываемого осцилля тора (1 — быстрый стохастический, 2 — медленный стохастический, 3 — классический RSI, 4 — классический MACD). Осциллятор oscline затем рассчитывается в виде ряда данных или вектора, генерируются дополни тельные кривые, связанные с ним, например сигнальная линия sigline или медленная версия осциллятора. Верхний (upperband) и нижний (lowerband) пороги либо рассчитываются, либо задаются. Для стохастического осцил лятора используются стандартные пороги 80 и 20, для RSI — пороги на уровне 70 и 30. Хотя MACD как таковой не имеет порогов, пороги для него устанавливаются на уровне плюс-минус полтора стандартных отклоне ния от нуля. Затем начинается процесс перебора данных, день за днем.

В цикле перебора данных представляют интерес два главных блока — первый генерирует сигналы покупки и продажи, а также цены для лимит ного и стоп-приказов, используемых выбранной моделью. Параметр mode/type выбирает модель: 1 — модель перекупленности/перепроданно сти, 2 — модель сигнальной линии, 3 — модель на расхождении. При этом используется один из вышеперечисленных осцилляторов, выбранный параметром osctype. Последний блок производит вход в рынок согласно выбранному значению параметра ordertype: 1 — для входа по цене откры тия, 2 — по лимитному приказу, 3 — по стоп-приказу. Затем симулятор использует стандартную модель выхода для закрытия сделок.

Точные логические основания для входа будут обсуждаться ниже в контексте индивидуальных тестов, что не требует от читателя понимания или обращения к коду.

168 ЧАСТЬ II ИССЛЕДОВАНИЕ входов в РЫНОК РЕЗУЛЬТАТЫ ТЕСТОВ Проводилось тестирование трех осцилляторных моделей входа: на осно ве понятия перекупленности/перепроданности (осцилляторы RSI и сто хастический), на основе взаимодействия осциллятора с сигнальной лини ей (стохастический осциллятор и MACD) и на основе расхождения (ста тистический осциллятор, RSI и MACD). Все индивидуальные комбинации были исследованы с входами по цене открытия, по лимитному приказу и по стоп-приказу. Сравнение результатов всех трех видов входов приве дено ниже в данной главе.

Табл. 7-1 и 7-2 содержат результаты каждого из 21 тестов. Данные рас пределены по торгуемым финансовым инструментам, по моделям, пока завшим прибыль и убыток в пределах выборки (табл. 7-1) и вне пределов выборки (табл. 7-2). Первый столбец (SYM) — это символ рассматривае мого рынка, первая строка — номер теста. Степень прибыльности и убы точности рынков для каждой модели указана следующим образом: один минус (—) означает убыток в $2000 — 4000, два минуса (- -) — убыток более $4000;

один плюс ( + ) означает прибыль $1000 — 2000, два плю са (++) — прибыль более $2000;

пустая ячейка означает прибыль до $ или убыток до $1999 со сделки.

ТЕСТИРОВАНИЕ МОДЕЛЕЙ, ОСНОВАННЫХ НА ПОНЯТИИ ПЕРЕКУПЛЕННОСТИ/ПЕРЕПРОДАННОСТИ Входы генерировались, когда осциллятор пересекал верхний порог вниз или нижний порог вверх. Эти модели являются противотрендовыми. Ког да осциллятор указывает на импульс цен, направленный вниз, произво дится покупка. В противоположном случае производится продажа. В тес тах от 1 до 6 использовались стохастический осциллятор и RSI, поскольку для них существуют стандартные пороги, часто применяемые вышеопи санным способом.

Тесты 1—3. Стохастические модели на основе понятия перекуп ленности/перепроданности. Эти тесты оценивают работу модели с входом по цене открытия (тест 1), по лимитному приказу (тест 2) и по стоп приказу (тест 3). Использован оригинальный Быстрый %К по Лэйну, пе риод — от 5 до 25 с шагом 1. Наилучшие значения для тестов 1, 2 и 3 соста вили 25, 20 и 16 соответственно. Для стохастического осциллятора тради ционные пороговые значения составляют 20 (нижнее) и 80 (верхнее). В целом эти модели несли тяжелые убытки как в пределах, так и вне выбор ки (табл. 7-3). Как и в предыдущих тестах, вход по лимитному приказу был наилучшим (т.е. имел минимальный убыток со сделки). Процент прибыль ных сделок (37% в пределах, 36% вне пределов сделки) также был макси ГЛАВА 7 Входы НА ОСНОВЕ ОСЦИЛЛЯТОРОВ прибыль была лучше, чем в тесте стохастического осциллятора, и, посколь ку было совершено меньше сделок, хотя убыток на сделку был больше, общий убыток оказался меньше. Модель не нашла какого-либо «слабого места рынка, которое можно было бы использовать для получения при были. Лучше всего работал вход по лимитному приказу, прочие — при мерно одинаково. Прибыль получена на значительно большем количестве отдельных рынков, особенно в тесте 5, где при входе по лимитному при казу прибыльными были в пределах выборки казначейские облигации, золото, серебро, платина, скот, овес и кофе;

вне пределов выборки — зо лото, серебро, платина, скот и овес. Кроме того, вне пределов выборки прибыль удалось получить на рынках NYFE, британского фунта, мазута, кукурузы, сахара, апельсинового сока и леса.

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

Осцилляторы имеют меньшее запаздывание, чем скользящие средние, и менее зашумлены, чем собственно цены. Поэтому при использовании дан ной торговой системы можно надеяться на получение более своевремен ных и надежных сигналов. В тестах 7-12 использованы стохастический осциллятор и MACD. Медленный %К обычно имеет сильно выраженное циклическое поведение, что делает его пригодным для входов на основе сигнальной линии. График MACD обычно строится с сигнальной линией, даже когда пересечения не рассматриваются как критерий входа.

Тесты 7—9. Модели на основе стохастического осциллятора с сиг нальной линией. Эта модель оценивалась с входом по цене открытия (тест 7), по лимитному приказу (тест 8) и по стоп-приказу (тест 9). Рассчи тывался оригинальный Медленный %К по Лэйну, поскольку в предвари тельном тестировании Быстрый %К приводил к избыточному числу сде лок, вызванных высоким уровнем шума. Сигнальная линия представляла собой простое скользящее среднее Медленного %К с периодом 3 дня. Пе риод осциллятора — от 5 до 25 с шагом 1. Наилучшие значения для тестов 7, 8 и 9 составили 15, 14 и 11 соответственно. В целом модель несла тяже лые убытки в расчете на одну сделку. Ввиду большого количества сделок убытки были астрономическими. Вход по лимитному приказу был наи лучшим (т.е. имел минимальный убыток в сделке и максимальный про цент прибыльных сделок). Хуже всего работал вход по цене открытия. Эта модель положительно реагирует на использование стоп-приказов. Воз 172 ЧАСТЬ II ИССЛЕДОВАНИЕ входов в РЫНОК можно, это связано с тем, что они действуют подобно фильтрам трендов:

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

на рынке кофе удалось получить более $2000 в сделке.

Тесты 10—12. Модели MACD на основе сигнальной линии. Эта мо дель оценивалась с входом по цене открытия (тест 10), по лимитному при казу (тест 11) и по стоп-приказу (тест 12). Рассчитывался классический MACD с использованием экспоненциальных скользящих средних. Пери од короткого скользящего среднего прогонялся от 3 до 15 с шагом 2, пери од длинного скользящего среднего — от 10 до 40 с шагом 5. Скользящее среднее, служащее сигнальной линией, имело традиционный фиксиро ванный период, равный 9. В общем, этот осциллятор работал лучше, чем какой-либо из испытанных до сих пор. В пределах выборки лучшим был вход по лимитному приказу, худшим — по цене открытия. Вне пределов выборки вход по стоп-приказу давал максимальный (из полученных до сих пор) процент прибыльных сделок (40%) и минимальный средний убы ток в сделке. В пределах выборки только рынок леса давал ощутимую при быль при входе по лимитному приказу. При входе по стоп-приказу в пре делах выборки были прибыльны также рынки живых свиней, свиной гру динки, кофе и сахара. Из них вне пределов выборки остались прибыль ными лес, живые свиньи, свиная грудинка и кофе. Многие рынки, убы точные в пределах выборки, дали прибыль вне ее. Положительные резуль таты по максимальному количеству рынков были получены при исполь зовании входа по стоп-приказу.

ТЕСТЫ МОДЕЛЕЙ, ОСНОВАННЫХ НА РАСХОЖДЕНИИ Тесты 13 — 21 рассматривают расхождения графиков цены и стохастичес кого осциллятора, RSI и MACD. Расхождение — это концепция, исполь зуемая техническими трейдерами для описания явления, легко заметно го на графике, но трудно поддающегося алгоритмическому определению и анализу. Примеры расхождения изображены на рис. 7-1. Расхождение появляется, когда рынок образует провал, более низкий, чем провал или пара провалов, образованных в это время осциллятором, указывая, таким образом, на покупку. Сигнал к продаже возникает в противоположной ситуации. Поскольку формы волн могут быть самыми разными, опреде ление расхождений — нетривиальная задача. Хотя наш алгоритм устро ен элементарно и далек от совершенства, при исследовании графиков он ГЛАВА 7 Входы НА ОСНОВЕ ОСЦИЛЛЯТОРОВ дает достаточно надежные результаты, чтобы сулить о качестве основан ных на расхождении систем.

Мы будем обсуждать только сигналы покупки, поскольку сигналы про дажи представляют собой их точную противоположность. Логика алго ритма такова: в течение обозреваемого исторического периода (1епЗ) на ходят дни с минимальным значением в ценовой серии и в значениях ос циллятора. Затем проверяют ряд условий: во-первых, минимум ценового ряда не должен приходиться на текущий день (т.е. должно начаться повы шение), но попадать в пределы прошлых шести дней (т.е. этот провал дол жен быть близок к текущему моменту). Минимум в ценовой последова тельности должен иметь место не менее чем через четыре дня в последо вательности значений осциллятора (глубочайший провал осциллятора должен опережать глубочайший провал цен). Еще одно условие состоит в том, чтобы минимальное значение осциллятора не приходилось на пер вый день в обозреваемом периоде (т.е. должен быть сформирован мини мум). Лучше, чтобы осциллятор был в самом начале обратного движения (что определяет второй провал как сигнал к покупке). Если все условия выполнены, то расхождение налицо и отдается приказ на покупку. Если приказ на покупку не отдан, то подобным же образом производится по иск расходящихся пиков, и при их обнаружении и соответствии подоб ным критериям отдается приказ на продажу. Такая методика достаточно хорошо находит расхождения на графиках. За исключением вида входов, единственное различие в тестах с 13 по 21 — это используемый вид ос циллятора.

Тесты 13—15. Модели расхождения цены и стохастического ос циллятора. Со стандартными входами использовался Быстрый %К. Оп тимизация состояла в прогонке периода стохастического осциллятора от 5 до 25 с шагом 1 и обозреваемого периода расхождения от 15 до 25 с ша гом 5. Лучшие параметры для периода и длины составили 20 и 15 для вхо да по цене открытия, 24 и 15 для входа по лимитному приказу и 25 и 15 для входа по стоп-приказу. Как в пределах, так и вне пределов выборки эф фективность этой модели была в числе худших;

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

при входе по лимитному приказу также были при быльны рынки золота и свиной грудинки. Вне пределов выборки неэти лированный бензин был прибыльным со всеми видами входов, соевые бобы — при входах по цене открытия и по стоп-приказу. Вне пределов выборки прибыль была получена на большем количестве рынков, причем наилучших результатов удалось достичь при использовании входа по стоп приказу. Такое явление, несомненно, показывает, что оптимизация не ока зывала влияния на результаты, а также то, что на рынках в последние годы 174 ЧАСТЬ II ИССЛЕДОВАНИЕ входов в РЫНОК произошли изменения, повысившие эффективность использования по добных моделей. Это может быть объяснено снижением числа трендов и более неровным характером торговли на многих рынках.

Тесты 16—18. Модели расхождения цены и RSI. Оптимизация состоя ла в прогонке периода RSI от 5 до 25 с шагом 1 и обозреваемого периода расхождения от 15 до 25 с шагом 5. В общем, результаты были плохими. В пределах выборки наименее убыточным был вход по стоп-приказу, за ним следовал вход по лимитному приказу. Поскольку RSI — один из излюб ленных индикаторов, используемых при поисках расхождения, такие пло хие результаты достойны особого внимания. Мазут приносил прибыли со всеми видами входов, неэтилированный бензин был весьма прибылен при входе по цене открытия и по стоп-приказу, сырая нефть — при входе по лимитному приказу и по стоп-приказу. В пределах выборки со всеми входами были прибыльны соевые бобы, с входом по стоп-приказу непло хо работали апельсиновый сок, кукуруза, соевое масло и свиная грудин ка. Вне пределов выборки рынок нефтепродуктов не приносил устойчи вых прибылей, а соевые бобы оставались прибыльными со всеми видами входов;

апельсиновый сок и соевое масло по-прежнему приносили при быль при входе по стоп-приказу.

Тесты 19—21. Модели расхождения цены и MACD. Период короткого скользящего среднего прогонялся от 3 до 15 с шагом 2;

период длинного скользящего среднего — от 10 до 40 с шагом 5;

обозреваемый период рас хождения — от 15 до 25 с шагом 5. Исследовались только те наборы пара метров, где период длинного скользящего среднего был значительно боль ше, чем период короткого.

Наконец-то модели, которые работают, принося положительную прибыль и в пределах, и вне пределов выборки! При входе по цене откры тия торговля была прибыльной в обоих образцах данных. В пределах вы борки средняя сделка приносила $1393, прибыльными были 45% сделок, а вероятность случайности результатов была всего 8,7% (после коррекции 99,9%). И длинные, и короткие позиции были прибыльными. Несмотря на низкую статистическую достоверность в пределах выборки, вне ее пре делов прибыли продолжались: с учетом проскальзывания и комиссион ных средняя прибыль в сделке составила $140 при 38% прибыльных сде лок (только короткие позиции были прибыльны).

Вход по лимитному приказу в пределах выборки работал несколько хуже, но вне пределов выборки — значительно лучше. На рис. 7-2 изобра жен график изменения капитала для теста с входом по лимитному прика зу. В пределах выборки средняя прибыль в сделке составила $1250 при 47% прибыльных сделок (максимальное из полученных значений);

прибыль ными были и длинные, и короткие позиции, причем вероятность случай ности прибылей составила 13,1% (после коррекции 99,9%). Вне пределов ЧАСТЬ II ИССЛЕДОВАНИЕ входов в РЫНОК Таблица 7—3. Эффективность осцилляторных моделей по моделям, входам и образцам данных Модель В пределах выборки Вне пределов выборки Среднее Среднее Открытие Лимитный Стоп- Открытие Лимитный Стоп- В Вне приказ приказ приказ приказ пределах пределов Перекуп/ -10.2 -10.1 -10.1 -23.7 -23.7 -22.5 -10.1 -23. перепрод. -3672 -2228 -2586 -3130 -2504 -2650 -2828.7 -2761. стохастического Перекуп/ -10.1 -9.9 -9.9 -21.1 -18.3 -21.1 -10.0 -20. перепрод. RSI -7073 -4093 -6878 -3537 -1978 -3824 -6014.7 -3113. Сигнальная -10,3 -10.3 -10.2 -23,5 -23.3 -23.5 -10.3 -23. линия стохаст. -2656 -1813 -2026 -2324 -1330 -1968 -2165.0 -1874. Сигнальная -10.2 -9.6 -7.8 -22.2 -20.6 -18.7 -9.2 -20. линия MACD -1808 -1210 -1476 -1259 -1434 -533 -1498.0 -1075. Расхождение -10.1 -10.1 -9.8 -21.7 -21.2 -19.9 -10.0 -20. стохаст. -3245 -2443 -3008 -3259 -3182 -2179 -2898.7 -2873. Расхождение -9.8 -8.9 -7.1 -21.7 -18.8 -20.1 -8.6 -20. RSI -2278 -1529 -1309 -3065 -3400 -2935 -1705.3 -3133. Расхождение 26,3 12.5 27.2 2.2 19.5 -5.3 22.0 5. MACD 1393 1250 2062 140 985 -589 1568.3 178. Средняя годовая прибыль,% -4.9 -6.6 -4.0 -18.8 -15.2 -18.7 -5.2 -17. Средняя приб.

в сделке, $ -2762.7 -1723.7 -2174.4 -2347.7 -1834.7 -2096.9 -2220.3 -2093. жат средние значения. Колонки справа — усреднения для всех видов вхо дов. Строки внизу — усреднения для всех видов моделей.

Наилучшие результаты в обеих выборках данных получены для моде ли на расхождении цены и MACD. Вход по лимитному приказу дает наи лучшие результаты, как в пределах, так и вне пределов выборки: доход ность в процентах годовых — 12,5% и средняя прибыль в сделке — $ в пределах выборки. Данные показатели вне пределов выборки равны 19,5% и $985 соответственно. Такие показатели кардинально отличаются от прочих моделей.

Наихудшей (при усреднении результатов по видам приказов) оказы вается модель на основе перекупленности/перепроданности RSI, особен но по показателю среднего убытка в сделке. Также среди худших были модели расхождения цены и стохастического осциллятора, перекуплен ности/перепроданности на основе стохастического осциллятора и рас хождения цены и RSI.

ГЛАВА 7 Входы НА ОСНОВЕ ОСЦИЛЛЯТОРОВ При сравнении между собой видов входов (при усреднении по моде лям) лучше всего проявил себя вход по лимитному приказу и хуже всего вход по цене открытия.

ЗАКЛЮЧЕНИЕ Вход по лимитному приказу обычно работает лучше всего при использо вании моделей на основе пробоев и скользящих средних. Возможно, это связано с тем, что он минимизирует транзакционные расходы. Вход по стоп-приказу также иногда повышает эффективность, что зависит от его взаимодействия с моделью входа. Для некоторых осцилляторных систем, например для прибыльной системы на MACD, предпочтителен вход по стоп-приказу, так как этот тип приказа является фильтром трендов.

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

ЧТО МЫ УЗНАЛИ?

Для получения наилучших результатов требуется применять вход по лимитному приказу. Впрочем, следует также протес тировать вариант со стоп-приказом, поскольку иногда он ра ботает лучше.

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

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

ГЛАВА Сезонность Представьте себе, что завтра — 7 июня 1997 г. И перед вами стоит вопрос:

торговать или нет? Если вы будете торговать, то входить надо будет по открытию и выходить по закрытию. Вам также необходимо решить, как войти в рынок. Открыть длинную или короткую позицию? В качестве ча сти процесса принятия решения Вы исследуете поведение рынка в каж дое 7 июня за несколько последних лет (например, за 10). Вы заносите в таблицу следующие данные: количество дней с датой 7 июня, когда про водились торги, среднее изменение цены с открытия до закрытия и про цент времени, когда рынок поднимался или падал. Предположим, за пос ледние 10 лет было 8 случаев, когда рынок был открыт и проводились тор ги. Из этих случаев, допустим, рынок закрылся выше открытия 6 раз (75%), и среднее изменение цены равнялось 2,50 (правдоподобная цифра для S&P 500). На основе этой информации вы размещаете торговый приказ на покупку завтра по открытию и выход по закрытию. Завтрашним вече ром вы повторяете процедуру для 8 июня, на следующий вечер для 9 июня и т.д. Это одна из форм сезонной торговли. Сделаете ли Вы таким обра зом Вашу торговлю прибыльной? Будет ли Ваша торговля хоть немного лучше случайной? Вот вопросы, которые возникают при обсуждении се зонной торговли и на которые эта глава пытается ответить.

ЧТО ТАКОЕ СЕЗОННОСТЬ?

Термин «сезонность» используется трейдерами по-разному. Некоторые рассматривают сезонность как явление, строго связанное с четырьмя вре менами года: например, увеличение спроса на мазут для систем отопле ния зимой и на бензин летом. Другие допускают более широкую трактов ку, которая учитывает погодные условия и предвыборные ситуации.

Годами многочисленные статьи в научных журналах демонстрирова ли, что акции наиболее быстро растут в первых числах каждого месяца.

Предпринимались обсуждения так называемого «эффекта января», со гласно которому акции имеют тенденцию к росту в январе. Ганнула ГЛАВА 8 СЕЗОННОСТЬ (Hannula, 1991) использовал сезонные циклы в своей собственной торгов ле, предоставляя в качестве примера график цены акций EXABYTE с от меченными сильными сезонными проявлениями. Он также обсуждал дру гое явление, иногда наблюдаемое в связи с сезонными моделями, при ко тором максимумы и минимумы меняются местами. Эту картину мы так же наблюдали, и она, возможно, может заслуживать исследования. Дру гие факторы, которые влияют на различные рынки, возникают в опреде ленные календарные даты и, следовательно, должны вызывать сезонные эффекты. Например, заполнение налоговых деклараций повторяется из года в год в одно и то же время. Легендарный трейдер Ганн явно учитывал ежегодно повторяющиеся особенности в своей торговле. В курсе домаш него обучения по проблемам сезонности Бернстейн (Bernstein, 1995) со ветует открывать позиции при достижении существенных минимумов и максимумов, а также в случае, когда имеет место существенное движе ние цены в течение ряда лет. Этот подход, как и подход Ганнулы, может привести к включению в рассмотрение сделок, продолжительностью от нескольких недель до нескольких месяцев.

В 1990 г. мы первыми опубликовали Диаграмму Календарных Эффек тов — набор таблиц и график, которые показывают связь поведения ин декса S&P с текущей календарной датой. Диаграмма показывает общий восходящий тренд с января по сентябрь, а затем медленное падение до 24 октября. Затем рынок, как правило, достигает своего дна, после чего резко растет до конца года. При более детальном рассмотрении видно, что резкий рост цен случается на протяжении большей части января, пер вой половины апреля и первой половины июля. Пик достигается 8 октяб ря, после чего следует резкое падение вплоть до минимума 24 октября.

При подготовке таблиц и диаграмм для этой публикации все экстремаль ные изменения цен были ограничены на уровне ±2% для предотвраще ния их чрезмерного влияния на результаты. Следовательно, сезонное по нижение цен в октябре и другие упомянутые явления не могут объясняться одиночными событиями определенных лет, например кризисом 1987 г.

Некоторые даты отличаются чрезвычайно стабильно повторяющимися ценовыми моделями. Например, если вход в рынок осуществлялся по за крытию 14 апреля, а выход — днем позже, в более чем 90% случаев можно было получить определенную прибыль. Вход 6 мая с выходом на день поз же давал в результате прибыль в 100% случаев, как и вход 13 июля с про дажей на следующий день. Рынок падал в 90% случаев с 18 по 19 октября и в 89% случаев с 16 до 17 октября. Хотя кризис 1987 г. привел к значитель но большему, чем обычно, падению цен, наличие спада на момент кризи са совсем не было неожиданным. Чтобы попытаться уловить высокую вероятность кратковременных движений рынка, можно использовать Диаграмму Календарных Эффектов для открытия позиций продолжитель ностью в один или два дня. Например, такая методология могла бы побу дить трейдера открыть короткую позицию 16 октября и выйти из рынка 180 ЧАСТЬ II ИССЛЕДОВАНИЕ входов в РЫНОК 19 октября, получив колоссальную прибыль на обвале рынка 1987 г. Дан ные, представленные в этой публикации, могли бы также помочь сохра нять позиции в течение периодов значительных подъемов и спадов.

Были и другие исследования, указывающие на наличие ярко выражен ных сезонных эффектов на рынке, которые могут быть использованы для прибыльной торговли. Проведенные нами исследования (Katz, McCormick, апрель 1997) показали, что кратковременное сезонное поведение может быть использовано для торговли индексом S&P 500. Система использова ла пересечение быстрых скользящих средних, которые вычислялись на основе ценовых прогнозов, проведенных с помощью сезонной методоло гии. В связи с тем, что ожидаемые цены могут вычисляться, по крайней мере, на год вперед, запаздывание пересечения скользящего среднего легко компенсировалось смещением, что дало системе возможность про изводить сделки на пересечениях, происходящих через несколько дней после факта. Сделки, выполняемые системой, обычно длятся 7 — 8 дней — весьма краткосрочная модель сезонной торговли. Система оказалась при быльной: она заработала $329 900 на S&P 500 с 3 января 1986 г. по 8 ноября 1996 г. Тест не учитывал затраты на осуществление сделок, но, если вы честь общие комиссионные ($15) и затраты на проскальзывание (по $ на сделку), все равно полученная прибыль составит $298 310 (понижение около 10%). Доход за весь период— 732%. Если предположить, что тор говля осуществлялась фиксированным количеством контрактов, это дает в среднем более 70% годовых при условии отсутствия реинвестирования прибыли. Была осуществлена 351 сделка, 60% которых были выигрышны ми. Прибыльными были как длинные, так и короткие позиции. Средняя сделка приносила $939 — неплохо для простой сезонно-ориентированной торговой системы. Подобные открытия позволяют предположить нали чие на рынке сильных сезонных тенденций, которыми могут воспользо ваться трейдеры. Таким образом, исследования в этой области вполне оправданы.

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

ФОРМИРОВАНИЕ СЕЗОННЫХ ВХОДОВ Существует большое количество способов определения времени входа с использованием сезонных ритмов. Проанализируем два основных под ГЛАВА 8 СЕЗОННОСТЬ хода: импульс цены и пересечение. Для вычисления импульса цены под считывается ряд ценовых изменений и используется центрированное сглаживание (сглаживание, которое не вносит никаких задержек или сдви гов фазы;

в данном случае используется центрированное треугольное скользящее среднее). Каждое изменение (или разница) в ряду ценовых изменений нормируется и делится на 50-дневный средний истинный диа пазон. Для каждого торгового дня определяется календарная дата. При меры одинаковых календарных дат ищутся в прошлом. Для каждого тако го момента рассматривается ценовой импульс, величина которого усред няется для каждой календарной даты. Усредненный импульс помещается в ряд сезонных импульсов для текущей даты. Ряд сезонных импульсов оп ределяет ожидаемую скорость изменения цен в заданный момент време ни. Основанием для этого служит история движения цен в указанный день в разные годы. Значение сезонного импульса для некоторой календарной даты определяется только событиями однолетней или большей давности.

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

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

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

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

В этом исследовании также тестировались несколько правил, исполь зующих подтверждения и инверсии для поиска вариантов, работающих лучше основной модели. Подтверждение означает, что для поддержки ге нерируемого моделью сигнала используются дополнительные данные. На пример, представьте, что модель генерирует сигнал на покупку для дан ного торгового дня. Если все идет так, как ожидается, то ко времени по купки рынок будет близок к минимуму. Если же рынок в это время обра зует вершину, то достоверность сигнала находится под сомнением, по 182 ЧАСТЬ II ИССЛЕДОВАНИЕ входов в РЫНОК скольку рынок не следует типичному сезонному поведению. При суще ствовании таких видимых противоречий было бы полезно иметь допол нительные критерии для принятия решения. Модель на основе пересече ния с подтверждением использует принцип пересечения с дополнитель ным правилом, которое должно выполняться для срабатывания сигнала:

например, если подается сигнал на покупку, то показатель Медленного %К должен быть менее 25%, что означает близость рынка к минимуму за пос леднее время. Соответственно, если подается сигнал на продажу, то Мед ленный %К должен быть выше 75%, означая близость рынка к максимуму за последнее время, соответственно ожидаемому циклическому поведе нию. Модель на принципе подтверждения и инверсии добавляет еще один элемент: если основная модель подает сигнал на покупку, а в это время рынок по показателю Медленного %К близок к максимуму (более 75%), то считается, что произошел разворот, и вместо приказа на покупку отда ется сигнал на продажу. Если система подает сигнал на продажу, а рынок близок к минимуму (Медленный %К менее 25%), то отдается приказ на покупку.

ХАРАКТЕРИСТИКИ СЕЗОННЫХ ВХОДОВ Представьте систему, основанную на простом пересечении скользящих средних. Такая система обычно хорошо улавливает тренды, но отстает от рынка и подвержена пилообразным скачкам. Если использовать бо лее длинные скользящие средние, то можно избежать скачков за счет увеличения запаздывания системы. Теперь добавим к системе сезон ность — применим следующие за трендом скользящие средние не к це нам, а к ряду данных, отображающему сезонные приливы и отливы рын ка. Затем рассчитаем сезонный ряд данных так, чтобы сезонный эффект прогнозировался на несколько дней вперед — достаточно, чтобы изба виться от запаздывания! Таким образом, будет создана система без за паздывания (несмотря на использование медленных, сглаженных сколь зящих средних), которая следует за сезонными трендами. Способность таким образом избавляться от запаздывания связана с одной из характе ристик сезонных систем — предсказуемостью сезонных моделей. Дру гими словами, сезонные модели прогнозируют рынок, а не просто реа гируют на него.

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

Еще одна полезная характеристика сезонных моделей — возможность ГЛАВА 8 СЕЗОННОСТЬ определить дату сделки на дни, месяцы и даже годы вперед, что, несом ненно, полезно.

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

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

ВИДЫ ПРИКАЗОВ, ИСПОЛЬЗУЕМЫХ ДЛЯ ОСУЩЕСТВЛЕНИЯ СЕЗОННЫХ ВХОДОВ Входы, основанные на сезонных сигналах, могут реализовываться тремя способами: при помощи стоп-приказов, лимитных или рыночных прика зов. Поиск наиболее подходящего для данной модели входа является од ной из важных задач разработчика торговых систем.

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

МЕТОДОЛОГИЯ ТЕСТИРОВАНИЯ Для тестирования методов сезонных входов использованы данные с 1 ав густа 1985 г. по 31 декабря 1994 г. (оптимизационная выборка) и с 1 янва ря 1995 г. по 1 февраля 1999 г. (период вне пределов выборки). Для иссле 184 ЧАСТЬ II ИССЛЕДОВАНИЕ входов в РЫНОК дования сезонности выборка размером около 10 лет является недостаточ но протяженной. При обсуждении сезонных сигналов упоминалась прак тика расчета сезонного импульса (или же среднего поведения цен) на ос нове данных за предыдущие годы. Ввиду небольшого размера выборки расчеты будут основываться не только на прошедших, но и на будущих годах. Для этого используется специальная методика — так называемый подход «складного ножа».

Метод перебирает целевые даты, перемещаясь вдоль временного ряда.

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

Представьте, что рассчитывается сезонное поведение начиная с 1 июня 1987 г. Если использовать только данные из пределов выборки, то при шлось бы ограничиться данными за 1986 и 1985 гг. При использовании метода «складного ножа» в расчет можно включать даты не только из про шлого, но и из относительного «будущего», т.е. с 1988 г. по 1994 г. Если год, для которого значение целевой даты рассчитывается (1987), удалить из пределов выборки, то сезонное поведение можно будет рассчитывать на основе 9 лет данных, а этого вполне достаточно. Подобная процедура оправданна, поскольку данные, исследуемые для получения прогноза, не зависят от прогнозируемых данных. Данные, используемые для получе ния прогнозов, отстоят от целевой даты не менее чем на год — следова тельно, они не «загрязнены» текущим состоянием рынка. Этот метод по зволяет значительно увеличить размер выборки, не снижая количество степеней свободы.

Для оценки влияния сезонных факторов вне пределов выборки были использованы все прошедшие годы. Например, для получения данных, соответствующих 14 января 1999 г., был использован метод всех прошед ших лет: в анализ были включены данные с 1998 г. по 1985 г. Таким обра зом, ни один из расчетов вне пределов выборки не основывается на дан ных из будущего или настоящего времени.

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

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

ГЛАВА 8 СЕЗОННОСТЬ void SeasonalAvg (float *a, float *v, float *dt, int mode, int m, int n) { // Подсчитывает сезонное среднее для каждой календарной даты, // основанное на предыдущих и (в некоторых случаях) на последующих // годах. Работает на всех сериях данных.

// а — вне: значений [1..n] сезонных средних // v — в: оригинальных сериях данных [1..n] // dt — в: сериях [1..n] соответствующих дат // mode — в: методе анализа:

// 1 = «складной нож» в пределах выборки, все последние годы вне выборки // 2 = фиксированный период анализа, выраженный в // годах // m — в: дата (режим = 1) или период анализа (режим = 2) // n — в: число дней во всех рядах данных static int i, j, cnt;

static unsigned long k;

static float sum, sdate;

if(mode == 1) { // режим «складного ножа» for(i = 1;

i <= n;

i++) { // для каждой текущей даты sum = 0.0;

cnt = 0;

for{j = 1;

j < 100;

j++) { // двигаемся назад к sdate = f(int)dt[i] - 10000 * j);

// исходной дате if (sdate < dt[3]) break;

// переход к началу k = max(0, (int){i-260.893*j));

// приблизительный индекс hunt(dt, n, sdate, &k) ;

// находим точный индекс if(sdate > dt[k]) k++;

if(sdate = dt[k]) continue;

cnt++;

sum += v[k];

// накапливаем среднее ) for(j = 1;

j < 100;

j++) { // двигаемся вперед sdate = ((int)dt[i] + 10000 * j);

//к исходной дате if(sdate > m) break;

// избегаем данных вне выборки k = min(n, (int)(i+260.893*j);

// приблизительный индекс hunt(dt, n, sdate, &k);

// находим точный индекс if(sdate > dt[k]) k++;

if(sdate = dt[k]) continue;

cnt++;

sum += v[k];

// накапливаем среднюю } a[i] = sum / (cnt + l.OE-20);

// заканчиваем среднюю } // следующая текущая дата } else if(mode == 2) { // режим фиксированного периода // анализа for {i = 1;

i <= n;

i++) { // для каждой текущей даты sum = 0.0;

cnt = 0;

Pages:     | 1 | 2 || 4 | 5 |   ...   | 6 |



© 2011 www.dissers.ru - «Бесплатная электронная библиотека»

Материалы этого сайта размещены для ознакомления, все права принадлежат их авторам.
Если Вы не согласны с тем, что Ваш материал размещён на этом сайте, пожалуйста, напишите нам, мы в течении 1-2 рабочих дней удалим его.