В нашей библиотеке: 321 книг 226 авторов 0 статей За всё время нас посетило 860075 человек которые просмотрели 17101527 страниц.
Читатели оставили 10 отзывов о писателях, 68 отзывов о книгах и 6 о сайте


Название: Энциклопедия торговых стратегий

Автор: Джеффри Оуэн Кац

Жанр: Технический анализ

Рейтинг:

Просмотров: 1734

Страница: | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | 95 | 96 | 97 | 98 | 99 | 100 | 101 | 102 | 103 | 104 | 105 | 106 | 107 | 108 | 109 | 110 | 111 | 112 | 113 | 114 | 115 | 116 | 117 | 118 | 119 | 120 | 121 | 122 | 123 | 124 | 125 | 126 | 127 | 128 | 129 | 130 | 131 | 132 | 133 | 134 | 135 | 136 | 137 | 138 | 139 | 140 | 141 | 142 | 143 | 144 | 145 | 146 | 147 | 148 | 149 | 150 | 151 | 152 | 153 | 154 | 155 | 156 | 157 | 158 | 159 | 160 | 161 | 162 | 163 | 164 | 165 | 166 | 167 | 168 | 169 | 170 | 171 | 172 | 173 | 174 | 175 |




Методология тестирования

 

Для тестирования методов сезонных входов использованы данные с 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    СЕЗОННОСТЬ  185

 

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

// parms — набор [1..MAXPRM]  параметров

// dt      - набор [l..nb]  дат в формате ГГММДД

//  орn  — набор [1..nb]  цен открытия

// hi       - набор [l..nb] максимальных цен

// 1о     — набор [1..nb] минимальных цен

//  cls  - набор [l..nb]  цен закрытия

// vol     — набор  [1..nb]  значений объема

// oi      — набор [1..nb]  значений открытого интереса

// dlrv   — набор  [1..nb]  средних долларовой волатильности

// nb     - количество торговых дней в наборе данных

// ts       — ссылка на класс торгового симулятора

// eqcls — набор [1..nb]  уровней капитала при закрытых позициях

 

// объявляем локальные переменные

static int rc, cb, neontracts,  maxhold, ordertype,  signal;

static int avglen, disp, k, modeltype, rnatype;

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

static float exitatr[MAXBAR+1];

static float savg[MAXBAR+1] , pchg[MAXBAR+1] , stoch[MAXBAR+1] ;

static float ma1[MAXBAR+1] , ma2 [MAXBAR+1] ;

 

// копируем параметры в локальные функции для удобного обращения avglen = parms[1];      // длина скользящей средней

disp      - parms[2];       // фактор смещения

thresh   = parms[3];       // пороги для импульсных моделей matype            = parms[7];      // тип скользящей:

// 1=простое скользящее среднее

// 2-экспоненциальное

// 3=треугольное  с передним взвешиванием

// 4-треугольное

// 5=простое центрованное

// 6 =экспоненциальное  центрированное

// 7 =треугольное центрированное modeltype = parms[8]; // тип модели:

// 1-импульс

// 2-пересечение

// 3=пересечение  с подтверждением

// 4=пересечение  с подтверждением  и инверсией

ordertype = parms[9]; // вход: 1-на открытии, 2-по лимитному приказу,

// 3 -по стоп - приказу

maxhold = 10;  // период максимального  удержания позиции рt1irn = 4 ;           // целевая прибыль в единицах волатильности mmstp = 1;    // защитная остановка  в единицах волатильности

// выполняем вычисления для всех данных, используя процедуры быстрой

// обработки массивов

AvgTrueRangeS(exitatr,hi,lo,cls,50, nb) ; // средний истинный диапазон для

// выхода

ГЛАВА 8   СЕЗОННОСТЬ   187

 

pchg[l] = 0.0;

for(cb =2 ; cb <= nb; cb++) {

tmp = cls[cb] - cls[cb-l];           // изменение цены tmp = tmp / exitatr[cb];      // нормирование pchg[cb] = clip(tmp, -2.0,2.0);           // клиппинг

}

switch(modeltype)  {

case 1 // данные для импульсной модели SeasonalAvg(savg,pchg,dt,1,OOS_DATE,nb); // сезонности MovAvg{savg,savg,matype,avglen,nb);             // сглаживание

// скользящей

for(cb = 1; cb <= nb; cb++)

rna2 [cb] = fabs (savg [cb] } ;

MovAvg(mal, ma2, 1, 100, nb};           // среднее отклонение break;

case 2: case 3: case 4:   // данные для модели пересечения SeasonalAvg(savg,pchg,dt,1,OOS_DATE,nb); // сезонности for(cb =2 ; cb <= nb; cb++)

savg [cb]  = savg[cb-l] ;            // объединение

MovAvg{mal,savg,matype,avglen,nb);  // сглаживание  среднего MovAvg(ma2,rnal,matype,avglen,nb) ;      // пересечение  средней if(modeltype  ==3 || modeltype == 4) // стохастический

// осциллятор

StochOsc(stoch,hi,lo,cls,1,9 , nb) ;        // 9-дневный Быстрый %К;

break;

default:  nrerror{"TRAPSMOD: invalid modeltype");

}

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

 

// не открываем позиций в периоде подсчета

// ... то же самое, что установка MaxBarsBack в TradeStation if(dt[cb] < IS_DATE)  { eqcls[cb] = 0.0; continue; }

 

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

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

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

 

// не входим в сделки в последние 30 дней внутри выборки

// оставляем место в массивах для будущих сезонностей if(cb > nb-30) continue;

 

// считаем количество  контрактов для позиции

// ... мы хотим торговать эквивалентом  долларовой волатильности

// ... двух новых контрактов на S&P-500 от 12/31/98 neontracts = RoundToInteger{5673 . О / dlrv[cb]) ; if(ncontracts < 1) ncontracts = 1;

 

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

 

// генерировать  входные сигналы,  цены стоп- и лимитных приказов

// для всех моделей сезонного входа signal = 0;

switch{modeltype)  {

case 1: // основная модель входа на основе порогов импульса k = cb + disp;

tmp = thresh * mal[k];

if(savg[k]  > tmp && savg [k-1] <= tmp)

signal = 1;

e l se if ( sa vg [ k] < -t m p & & sa vg[ k-1 ] > = - t m p )

si gn a l  =  -1;

188      ЧАСТЬ II   ИССЛЕДОВАНИЕ входов в РЫНОК

 

break;

case 2: // основная модель входа на пересечении k = cb + disp;

if(CrossesAbove(mal, ma2, k)) signal = 1;

else if{CrossesBelow(mal, ma2, k)} signal = -1;

break;

case 3: // пересечение  с подтверждением k = cb + disp;

if(CrossesAbove(mal, ma2, k)) {

if(stoch[cb]  < 25.0) signal = 1;

}

else if(CrossesBelow(mal, ma2, k)) (

if(stoch[cb] > 75.0) signal = -1;

}

break;

case 4: // пересечение  с подтверждением  и инверсией k = cb + disp;

if(CrossesAbove(mal, ma2, k)) (

if(stoch[cb]  < 25.0) signal = 1;

else if(stoch[cb] > 75.0) signal = -1;

}

else if(CrossesBelow(mal, ma2, k)) {

if(stoch[cb]  > 75.0) signal = -1;

else if(stoch[cb] < 25.0) signal = 1;

)

break;

default: nrerror("TRAPSMOD: invalid modeltype");

}

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

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

 

// входим в сделку, используя определенный тип приказа 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.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('X', ptlim*tmp, mmstp*tmp, maxhold);

 

} // обрабатываем следующий день

)

 

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

ГЛАВА 8    СЕЗОННОСТЬ 189

 

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

После  вычисления среднего истинного интервала рассчитываются нормализованные и «обрезанные» изменения цен.  Каждая точка  в ряду данных  pchg отражает  изменение цены  между ценами закрытия текуще- го и предшествующего дней.  Изменения цены  затем  нормализуются пу- тем деления их на средний истинный интервал и «обрезаются» для сни- жения влияния экстремальных перепадов цены  (статистических выбро- сов). Нормализация необходима, поскольку волатильность рынков меня- ется со временем иногда  очень сильно. Например, сейчас  индекс S&P 500 в 5 и более раз дороже,  чем 15 лет назад.  Очевидно, что и средняя дневная волатильность изменилась соответствующим образом. Если  бы  измене- ния цены  не подвергались нормализации и не представлялись в единицах текущей волатильности, сравнение сезонных явлений за разные годы было  бы искаженным. Годы,  когда волатильность была выше,  давали  бы больший вклад,  чем годы с низкой волатильностью. В случае S&P 500 пос- ледние  годы полностью доминировали бы при проведении усреднения, а при нормализованном представлении каждый год вносит почти  одинако- вый вклад.  Срезание выбросов проводится на уровне  — 2 и + 2 средних истинных интервала, чтобы  удалять  случайные и аномальные значения, не искажая общую  оценку.

Опция выбора  modeltype  определяет, какие операции проводятся да- лее. Значение 1 выбирает основную импульсную модель.  Сезонные пока- затели  рассчитываются для  обрезанных и нормализованных изменений цен,  причем в пределах  выборки используется метод «складного ножа»,  а вне пределов выборки — метод «всех прошедших лет». Эти операции обес- печиваются вызовом функции S easonalAvg.  Временной ряд сезонных по- казателей затем  сглаживается скользящим средним (вид  среднего уста- навливается параметром matype,  а длина— параметром avglen).  Затем рассчитывается временной ряд средних  абсолютных отклонений сезон- ных  импульсов.  Этот  ряд представляет собой  простое скользящее сред- нее с периодом 100 дней от ряда абсолютных значений сезонных импуль- сов,  которое затем  используется в дальнейших расчетах  уровней поро- гов.  Значения modeltype 2,  3 и 4 представляют собой  вариации моделей, основанных на  пересечении. Сезонные показатели рассчитываются, и показатель изменения цены  для каждого  дня интегрируется (вычисляет- ся  «бегущая сумма»),  в результате образуется новый ряд,  ведущий себя подобно ценовому ряду.  Эта синтезированная серия  отображает движе- ние цен на основе типичного поведения рынка в предшествующие и, воз-

190                                                                                  ЧАСТЬ II   ИССЛЕДОВАНИЕ входов в РЫНОК

 

можно,  в будущие годы.  Затем  рассчитываются два скользящих средних: та!  (скользящее среднее  интегрированного сезонного ряда  типа  matype с периодом avglen)  и та2  (сигнальная линия для  определения момента пересечения,  представляет собой  скользящее среднее  ma1 с теми же па- раметрами matype и avglen). Если же выбран  modeltype 3 или  4, то прово- дятся дополнительные расчеты  для моделей  с подтверждением и/ или ин- версией; в данном случае рассчитывается значение Быстрого %К с перио- дом 9 дней,  которое  затем сохраняется в векторе  stoch.

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

Modeltype  1 представляет базовую  модель,  основанную на пороге  це- нового импульса. Порог рассчитывается как произведение множителя, оп- ределяющего относительную величину порога  (thresh) на среднее абсолют- ное отклонение сезонного импульса за прошлые 100 дней.  Сигнал к по- купке генерируется, если сумма сезонного импульса (savg) и параметра смещения (disp) поднимается выше уровня порога. Если данная сумма опус- кается ниже величины, равной значению порога со знаком минус,  подает- ся сигнал на продажу.  Иными словами, если для данного дня плюс-минус несколько дней (disp) предсказывается достаточно сильный сезонный им- пульс цен,  то торговля ведется в направлении ожидаемого движения.

Modeltype  2 представляет базовую  модель  пересечения и  использует

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

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

Modeltype 4 использует модель,  основанную на пересечении с добав- лением подтверждения и инверсии. При  использовании modeltype 4 сиг- нал к покупке подается, если первое  скользящее среднее  пересекает вто-

ГЛАВА 8    СЕЗОННОСТЬ                                                                                                                                                         191

 

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

В свою очередь цена лимитного приказа (limprice) устанавливается на уровне середины ценового диапазона текущего дня. Цена входного стоп- приказа  (stpprice) устанавливается на уровне закрытия текущего дня плюс (для покупки) или минус (для продажи) половина среднего истинного ди- апазона последних 50 дней. Остальные блоки кода идентичны приводив- шимся в предыдущих главах: они обеспечивают размещение приказов указанного вида (ordertype) и стандартные  выходы.

 

РЕЗУЛЬТАТЫ ТЕСТОВ

 

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

В табл.  8-1  и 8-2 показаны результаты тестирования этих моделей  по отдельным рынкам в пределах выборки (табл. 8-1) и вне пределов выбор- ки (табл. 8-2). В первом столбце указаны обозначения  рынка. Последняя колонка показывает, сколько прибыльных тестов было получено для дан- ного рынка.  Цифры в верхней  строке  указывают номер  теста,  последняя строка — на скольких рынках  данная модель была прибыльной. Эти дан- ные  достаточно подробно показывают степень  прибыльности системы: один  минус  ( —) означает умеренные средние  убытки  в сделке  ($2000 —

4000), два минуса  (       ) — крупные убытки  (более $4000). Один плюс ( + )

означает умеренную прибыль ($1000 — 2000),  два плюса  (+ + ) означают крупную прибыль — более $2000 в сделке. Пустая ячейка обозначает при- быль до $ 1000 или убыток до $ 1999. (Названия рынков и их символы соот- ветствуют обозначениям табл. II -1; часть II , введение.)

 

Тесты базовой модели, основанной на пересечении

 

Интегрированный временной ряд ценоподобных сезонных показателей сглаживался с помощью простого скользящего среднего  ma1 с периодом avglen. На его основе строилось второе среднее та2. Сигнал к покупке

192                                                                                  ЧАСТЬ И   ИССЛЕДОВАНИЕ входов в РЫНОК

 

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

Оптимизация в этих  тестах  состояла в прогонке параметра периода скользящего среднего avglen от 5 до 20 с шагом 5 и также в прогонке пара- метра смещения (disp) от 0 до 20 с шагом  1. С использованием входа по цене открытия по показателю соотношения риска/ прибыли в пределах  выбор- ки оптимальными были значения периода скользящего среднего 20 и сме- щения 5. При входе по лимитному приказу оптимален был период 20 и сме- щение 8, при входе по остановке период 20 и смещение 6. Модель, видимо, лучше работала с длинными скользящими средними (с сильным сглажива- нием) , и для входов по лимитному приказу требовались немного более ран- ние сигналы по сравнению с входами  по рыночному и стоп-приказу.

В пределах  выборки не было получено ни одного  положительного ре- зультата  при использовании и длинных, и коротких позиций, хотя сред- ний убыток в сделке  был гораздо  меньше, чем во многих тестах из преды- дущих глав. Лучше всего работали стоп-приказы, немного хуже — лимит- ные приказы, а хуже всего — рыночные приказы по цене  открытия. Для стоп-приказов и лимитных приказов при ограничении только  длинными позициями торговля была выгодной. Во всех случаях наилучший период скользящих средних  составлял 20 дней,  а оптимальное значение смеще- ния изменялось для разных типов приказов. При использовании входа по цене  открытия оптимальное смещение равнялось 5 дням,  при  входе  по лимитному приказу — 8 дням,  а по стоп-приказу — 6 дням.  Это  вполне осмысленно, поскольку лимитные приказы отдаются раньше, чем рыноч- ные  приказы по открытию (так как для выполнения лимитного приказа требуется  некоторое время).

Вне пределов выборки результаты показали подобное же распределе- ние  относительной эффективности по показателям средней прибыли со сделки ($СДЕЛ); использование приказов по остановке давало прибыль в

$576 со сделки, что соответствует доходности 8,3% годовых.  Это немного, но,  тем  не  менее,   это  реальный положительный результат  на  недавних данных  вне  пределов выборки. При  использовании входов  по стоп-при- казу торговля, ограниченная только  длинными позициями, была выгод- ной и в пределах,  и вне пределов выборки, а торговля короткими позици- ями была убыточной в обоих случаях.  Это соответствует результатам мно- гих ранее  проводившихся тестов.  Для  всех видов  приказов и всех выбо- рок процент прибыльных сделок  составлял от 40 до 43%.

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

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

ГЛАВА 8    СЕЗОННОСТЬ                                                                                                                                                            193

 

Таблица  8—1.   Эффективность в пределах выборки  на различных рынках и в различных тестах

 

 

При  использовании рыночного входа по цене открытия капитал сни- жался  до ноября 1988 г. До июля  1989 г. было  восстановлено около  50% потерь,  образуя  U -образную модель  со вторым  пиком в районе ноября

1990 г. Затем  наблюдалось довольно быстрое  снижение до ноября 1992 г., после  чего — более  медленное падение капитала на  протяжении всего остатка выборки и первой  трети периода вне выборки. Это снижение за- кончилось в апреле  1996 г., и с тех пор до конца периода вне выборки ка- питал  возрастал.

194      ЧАСТЬ II   ИССЛЕДОВАНИЕ входов в РЫНОК

 

Таблица  8—2.   Эффективность вне пределов выборки  на различных рынках и в различных тестах

 

 

При использовании входа по лимитному приказу капитал почти не из- менился до января 1987 г., очень резко вырос до пика в мае 1987 г. и затем падал до ноября 1992 г. С этого времени до июля  1994 г. наблюдался рез- кий  подъем,   после  чего  наблюдались беспорядочные изменения без яв- ного тренда.

Использование входных  стоп-приказов обеспечивало стабильный и

сильный рост капитала до июня  1988 г., а затем наблюдалось падение до конца периода выборки и в течение  первой  трети  периода вне  выборки.

ГЛАВА  8   СЕЗОННОСТЬ                                                                                                                                                         195

 

Минимум был достигнут  в декабре  1995 г., а с тех пор и до февраля 1999 г. (конец данных)  отмечен  резкий подъем.

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

Кроме этого,   интересно отметить  расхождение между  поведением

сезонных моделей  в этом  исследовании и в наших  собственных тестах S&P 500 более раннего периода (Katz, M cC orm ick, апрель 1997). Различия, скорее  всего,  объясняются разной настройкой процедуры оптимизации. В ранних  тестах  проводилась настройка на  торговлю  только  индексом S&P 500, а в более поздних — целым  портфелем финансовых инструмен- тов. По сравнению с другими  рынками сезонные явления на рынке  S&P

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

196                                                                                  ЧАСТЬ II   ИССЛЕДОВАНИЕ входов в РЫНОК

 

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

 




Страница: | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | 95 | 96 | 97 | 98 | 99 | 100 | 101 | 102 | 103 | 104 | 105 | 106 | 107 | 108 | 109 | 110 | 111 | 112 | 113 | 114 | 115 | 116 | 117 | 118 | 119 | 120 | 121 | 122 | 123 | 124 | 125 | 126 | 127 | 128 | 129 | 130 | 131 | 132 | 133 | 134 | 135 | 136 | 137 | 138 | 139 | 140 | 141 | 142 | 143 | 144 | 145 | 146 | 147 | 148 | 149 | 150 | 151 | 152 | 153 | 154 | 155 | 156 | 157 | 158 | 159 | 160 | 161 | 162 | 163 | 164 | 165 | 166 | 167 | 168 | 169 | 170 | 171 | 172 | 173 | 174 | 175 |

Оцените книгу: 1 2 3 4 5

Добавление комментария:






Информацию в электронную библиотеку yourforexschool.com добавляют исключительно для ознакомления. Если вы являетесь автором книги или компанией которая имеет права распространения и вы хотите чтоб на сайте не было вашей книги, то напишите в обратную связь и мы незамедлительно удалим её.

Копирование материалов сайта разрешено только с использованием активной ссылки на yourforexschool.com Copyright © 2010