<< Пред. стр.

стр. 22
(общее количество: 46)

ОГЛАВЛЕНИЕ

След. стр. >>

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


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

Термин «сезонность» используется трейдерами по-разному. Некоторые
рассматривают сезонность как явление, строго связанное с четырьмя вре-
менами года: например, увеличение спроса на мазут для систем отопле-
ния зимой и на бензин летом. Другие допускают более широкую трактов-
ку, которая учитывает погодные условия и предвыборные ситуации.
Годами многочисленные статьи в научных журналах демонстрирова-
ли, что акции наиболее быстро растут в первых числах каждого месяца.
Предпринимались обсуждения так называемого «эффекта января», со-
гласно которому акции имеют тенденцию к росту в январе. Ганнула
ГЛАВА 8 СЕЗОННОСТЬ 179




(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 октября и выйти из рынка
ЧАСТЬ II ИССЛЕДОВАНИЕ входов в РЫНОК
180



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


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




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




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


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



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


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


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



дования сезонности выборка размером около 10 лет является недостаточ-
но протяженной. При обсуждении сезонных сигналов упоминалась прак-
тика расчета сезонного импульса (или же среднего поведения цен) на ос-
нове данных за предыдущие годы. Ввиду небольшого размера выборки
расчеты будут основываться не только на прошедших, но и на будущих
годах. Для этого используется специальная методика — так называемый
подход «складного ножа».
Метод перебирает целевые даты, перемещаясь вдоль временного ряда.
Если при усреднении сезонных эффектов использовать только соответ-
ствующие календарные даты прошлых лет, то для точек, приходящихся
на начало выборки, таких данных очень мало или вообще нет. Поскольку
для получения приемлемого сезонного среднего требуется не менее 6 лет,
то для большей части периода выборки (всего 10 лет) расчет будет невоз-
можен. Следовательно, данных для оптимизации важных параметров или
анализа эффективности работы модели в пределах выборки явно недо-
статочно. Хорошо известный статистический метод «складного ножа»
помогает решить проблему с недостатком данных.
Представьте, что рассчитывается сезонное поведение начиная с 1 июня
1987 г. Если использовать только данные из пределов выборки, то при-
шлось бы ограничиться данными за 1986 и 1985 гг. При использовании
метода «складного ножа» в расчет можно включать даты не только из про-
шлого, но и из относительного «будущего», т.е. с 1988 г. по 1994 г. Если
год, для которого значение целевой даты рассчитывается (1987), удалить
из пределов выборки, то сезонное поведение можно будет рассчитывать
на основе 9 лет данных, а этого вполне достаточно. Подобная процедура
оправданна, поскольку данные, исследуемые для получения прогноза, не
зависят от прогнозируемых данных. Данные, используемые для получе-
ния прогнозов, отстоят от целевой даты не менее чем на год — следова-
тельно, они не «загрязнены» текущим состоянием рынка. Этот метод по-
зволяет значительно увеличить размер выборки, не снижая количество
степеней свободы.
Для оценки влияния сезонных факторов вне пределов выборки были
использованы все прошедшие годы. Например, для получения данных,
соответствующих 14 января 1999 г., был использован метод всех прошед-
ших лет: в анализ были включены данные с 1998 г. по 1985 г. Таким обра-
зом, ни один из расчетов вне пределов выборки не основывается на дан-
ных из будущего или настоящего времени.
Все тесты, следующие ниже, проведены с использованием сезонных
входов на основе разнообразного портфеля рынков. Использованы стан-
дартные выходы, как и в других исследованиях моделей в этой книге.
Позиции закрываются при срабатывании стандартного выхода или при
получении сигнала на вход в противоположном направлении. Использо-
вана стандартная платформа тестирования. Ниже приведен код для тес-
тирования сезонной торговли.
185
ГЛАВА 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;
for(j = 1; j < 100; j++) ( // идем вперед
if(cnt >= m) break; // достаточность лет для теста
sdate = ((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++) ( // идем вперед
if (cnt >= m) break; // достаточность лет для теста
sdate = ((int)dt[i] + 10000 * j); // исходная дата
186 ИССЛЕДОВАНИЕ входов в РЫНОК
ЧАСТЬ II




k = min(n, (int)(i+26Q.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; // заканчиваем среднюю
} // следующая текущая дата
}
}

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 = x12mod01.c

<< Пред. стр.

стр. 22
(общее количество: 46)

ОГЛАВЛЕНИЕ

След. стр. >>