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


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

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

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

Рейтинг:

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

Страница: | 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 |




Назначение  тестов

 

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

 

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

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

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

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

ГЛАВА 14    УЛУЧШЕНИЯ СТАНДАРТНОЙ СИСТЕМЫ ВЫХОДА                                                                                        339

 

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

 

ТЕСТИРОВАНИЕ   МОДЕЛИ  С  ФИКСИРОВАННОЙ  ЗАЩИТНОЙ ОСТАНОВКОЙ   И  ЦЕЛЕВОЙ   ПРИБЫЛЬЮ

 

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

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

 

float *lo, float *cls, float *vol, float *oi, float *dlrv, int nb, TRDSIM &ts, float *eqcls) {

 

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

// модифицированного стандартного выхода. Эта модель тестирует

// МСС, используя вариации в параметрах.

// File = x20mod01.c

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

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

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

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

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

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

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

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

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

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

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

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

 

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

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

static float mmstp, ptlim, lirnprice, stpprice;

static int entryposted, entrybar;

static float exitatr[MAXBAR+1] , rnum, entryprice;

static long iseed;

 

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

// диапазона

mmstp = parms[2];       // защитная остановка в единицах среднего истинного

// диапазона

maxhold = parms[3];    // период максимального удержания позиции ranseed = parms[8];           // используется для инициализации случайной

// последовательности

340      ЧАСТЬ III    ИССЛЕДОВАНИЕ выходов

 

// выполняем вычисления  по всему объему данных

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

// выхода

// очищаем генератор случайных чисел

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

//инструмента

// ... ts.model() возвращает индекс рынка (SP=1, YX-2, ...)

iseed = -(ranseed + 10 * ts.model());

rnum = ran2(&iseed);

 

// проходим через дни,  чтобы смоделировать  реальную торговлю 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);

 

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

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

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

 

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

 

// генерировать  "стандартные"  случайные  сигналы входа signal = 0;

rnurn = ran2(&iseed) ;

if(rnum < 0.025)  signal = -1;    // случайный короткий вход else if (rnum > 0.975)  signal = 1;          // случайный длинный вход

 

// входим в сделки по цене открытия entryposted = 0;

if(ts.position!) <= 0 && signal == 1) (

ts.buyopen('1' , ncontracts};

entryposted = 1; entryprice = opn[cb+l]; entrybar = cb + 1;

}

else if(ts.position))  >= 0 && signal == -1) {

ts.sellopen('2' , ncontracts) ;

entryposted  = -1; entryprice = opn[cb+l]; entrybar = cb + 1

}

 

// выходим из сделок,  используя модифицированный  стандартный  выход if(entryposted > 0) {

// инициализация  и выходы для длинных позиций в день входа

limprice = entryprice + ptlim * exitatr[cb]; stpprice = entryprice - mmstp * exitatr[cb]; ts.exitlonglimit{'A', limprice); ts.exitlongstop('B', stpprice);

}

else if(entryposted  < 0) {

// инициализация и выходы для коротких позиций в день входа limprice = entryprice - ptlim * exitatr[cb];

stpprice = entryprice + mmstp * exitatr[cb];

ГЛАВА 14    УЛУЧШЕНИЯ СТАНДАРТНОЙ  СИСТЕМЫ  ВЫХОДА  341

 

ts.exitshortlimit('С' , limprice);

ts.exitshortstop('D' , stpprice);

}

else {

// выходы после дня входа

if (ts-position{) > 0) {   // длинные позиции ts.exitlonglimit('F' , limprice); ts.exitlongstop('G',  stpprice);

if(cb-entrybar >= maxhold) ts.exitlongclose('E');

}

else if(ts.position() < 0) ( // короткие позиции

ts.exitshortlimit('I' , limprice);

ts.exitshortstop('J' , stpprice);

if(cb-entrybar >= maxhold) ts.exitshortclose('H') ;

}

}

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

)

 

В коде использован стандартный случайный вход по цене открытия и модифицированный стандартный выход.  Правила выхода следующие: лимитный приказ на выход размещается на уровне  некоторого количе- ства средних  истинных диапазонов выше  (для длинных) или  ниже  (для коротких позиций) цены входа. Данное количество доверительных интер- валов  определяется параметром ptlim. Кроме лимитного приказа целевой прибыли, размещается защитная остановка на уровне  некоторого коли- чества средних доверительных интервалов ниже  (для длинных) или выше (для коротких позиций) цены  входа.  Данное  количество доверительных интервалов определяется параметром mmstp. Максимальное время удер- жания  позиции определяется параметром maxhold.  Если  сделки  не были закрыты ранее  по достижении целевой прибыли или защитной останов- ки,  то они  закроются по истечении maxhold дней  (в этом тесте,  как и во всех предшествовавших, фиксированное значение maxhold равно  10).

В табл.   14-1  приведены годовые  соотношения риска/ прибыли (Р/ ПРИБ), процент прибыльных сделок (ПРИБ%) и средняя прибыль или убыток со сделки  ($СДЕЛ)  для каждой из комбинаций значений лимита и защитной остановки. В столбце справа приведены средние значения СРЕД для каждого  из значений лимита  целевой прибыли, в нижней строке  — средние  значения СРЕД для каждого  из значений защитной остановки.

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

342                                                                                      ЧАСТЬ III   ИССЛЕДОВАНИЕ выходов

 

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

Наилучшая общая  эффективность по показателям годового  соотно- шения  риска/ прибыли  и средней  прибыли  сделки  была достигнута  при целевой прибыли  4,5 и защитной  остановке  1,5. При удалении от опти- мальных значений возрастало отношение риск/ прибыль, равно как и сред- ний убыток  в сделке.  Между размещением целевой прибыли и защитной установки не было особо выраженной связи. Значения,  оптимальные для одного параметра,  при изменении  другого менялись незначительно.  По- чти так же хорошо работало сочетание целевой прибыли  1,5 и защитной остановки 4 — была получена несколько большая средняя прибыль в сдел- ке и несколько худшее соотношение риска/ прибыли. Интересно, что про- извольно заданные значения оказались весьма близкими к оптимальным (занимая соседние ячейки в табл. 14-1). Впрочем, оптимальные значения обеспечили  на 6% больше прибыльных  сделок,  чем произвольно  задан- ные целевая  прибыль 4 и защитная остановка 1.

Для  оптимальных параметров процент прибыльных сделок  составил

39%. При  поиске максимального значения обнаружилось, что параметр целевой прибыли 0,5 обеспечивает 69% прибыльных сделок,  но со значи- тельно худшими показателями риска/ прибыли и средней прибыли со сдел- ки.  Это однозначно показывает важность удержания потенциально при- быльных  позиций.

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

 

Заключение

 

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

rllABA 14   Yfll'lWEH1-'lfl CT.Aii,ll,APlHOC CTEMbl  BbiXO,llA     343

 

TaiJJlUl{a 14-1.  3,P,PeKmU6Hocmb nopm,Pellfi 6 npeoenax 6b6opKu npu ucnonbJoD

6aHuu  cny auHozo  6XoOa c MOou.Pu!fupo6aHHb!MU cmaHoapmHb!O

.MU 6b!xooa.Mu 6 Ja6ucw.<ocmu om napaMBmpo6  !fe!le6ou npu6wzu

(no zopu3oHmanu)  u JaupJmHou ocmaH06KU (no 6epmuKanu)

 

IPTl.IM IW _  _II,       1.0       1.!i       2.1)      2.li        ;s.o       3.11     CPEll

 

-=

 
10.5     IP!nPH6           -7.37    - .2       -4.3      -3.&5   -3.47    -3.45    -3.54    -4.14

l  nPH&%        48        8          8          73        75        75        78        18

I$CAUl            ·2232   ·213     .:zog     ·2011li    . .-2210         23114  -- 1113

 

1 1.0    I  PmPH&        -4.70    -3.H     -2.112  ·2.        ·2.43    -2.        ·2.        ·2.80

I OP111i%       34        411      57        eo        112      112                 55

ISCllEII            -1822   -1771   -1748   -1n8 ·11174     ·21511 ·11147

 

11.       IP/OPI16         ·3.75    ·2.411  -2.18    -2.02    ·2.011  ·2.17    ·2.10    ·2.41

27        41        48        52        53        54        54        47

1 2.0            • -3.:                                       ·2.                        ·2.0                 ·1.11!               -2.                   ·2.                 ·2.                           -2.

 
·11181 -17011 ·17311 -1812   ·11183 ·2147   ·2221   ·11124

4          ..

·20'      -18       ·184     -1115   ·21       -221     ·22J      .;zo.

 

IPtnPI16

 
12.5     -3.22    -2.17    -1.118  -UO     -1.el     ·1.110    ·1.113            -2.14

21        34        41        44        48        48        47        4C

IOPH6%

i $CllEII           _-!      

-           ·171111           ·1882   ·21111l            ·2238   ·2003

 

1 3.0    IP!nPH&          ·2.1111            ·2.02    ·1.70    ·1.tlll     ·1.81    ·1.811  ·1.87    -2.00

!OPH6%          20        33        ..a        43        4li         48        48        3ll

I SCil   _-_tllllll ·1'lli      ·1722   -1844   ·2057   ·22211 -225&  _-_11111

..:!{i

 
:3.11    · P[nPH6          _. .ee    -1.93    -1 88    ·1.0l     ·1.711  ·1.81    _-!._1121

OP116%          111      33        ..a        43        4li         48        311

$Clli;J   ·111411           -11 7  ·1IIBII   ·111011           ·2030   ·2180   ·22211 _:WiCl

 

4.0       PtnPH6            ·2.81    ·1.1111            ·1.47    ·1.50    ·1.112  ·1.811  ·1.88    ·1.7S

I OPHii%         111      33        311      43        44        4li         48        311

'""Akfl  ·1848   -15110  ·15!18            -171:    -11122 ·20e8    ·_2108            ·1831

 
4.5       P/OPit&           -2         -t.ee     -1M     ·1.41    -1.80    ·1.88    -1.        ·1.7l

. OPHii%         32        43        44        4li         31

$CllEII _-11124           ·1}11Cl  ·1ll_t  -1714   _-11133           -20n     -211     -183:

 

5.0       P/OPH6           -2.        ·1.118  ·1.48   ·1.48    ·1.57     ·1.84    ·1 52    _.-1,

_n        111      32        311      42        44        4$        45        311

$CAEJI            -1847   -1813   -1ell4   -17lW  -11117 ·2058   ·20112 -1

 

CPЈ,!1 PtnPI16            ·3.81    -2.44    -2.08    ·1.811  -2 03    -2.10    ·2.011  ·2.33

OPH6%           25        3ll         48        41        51        51        li2         44

- !  ,;At.ll          -11143 -           ·173<   ·1112l  ·2010   -2183   -22111 -11150

344                                                                                      ЧАСТЬ III   ИССЛЕДОВАНИЕ выходов

 

ТЕСТИРОВАНИЕ  ДИНАМИЧЕСКИХ   ЗАЩИТНЫХ   ОСТАНОВОК

 

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

Существует много  способов  перемещать  защитную  остановку  так,

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

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

Второй тест динамической  защитной  остановки  похож на методику подгонки фиксированной защитной остановки в МССВ. Уровень смеща-

ется вверх (для длинных позиций)  или вниз  (для коротких позиций)  от

текущей цены на некоторое количество средних истинных диапазонов.  В отличие от фиксированной защитной остановки, использованной в МССВ, в данном случае защитная  остановка перемещается  в зависимости  от те- кущей рыночной цены.  Смещение  может происходить только в одну сто- рону — вверх для длинных позиций,  вниз для коротких.  Целью является поддержание одинакового статистического расстояния между наилучшей ценой,  достигнутой во время  удержания позиции,  и защитной останов- кой.  Защитная  остановка для длинных позиций  рассчитывается  следую- щим образом:  ( 1) Из цены входа вычитается параметр mmstp, умножен- ный на средний истинный  диапазон.  Результат будет уровнем защитной остановки для следующего дня.  (2) На следующей день из текущей цены вычитается другой параметр stpa, умноженный на средний истинный ди- апазон. (3) Если  цена  защитной остановки, полученная на шаге 2, выше ценового уровня текущей защитной  остановки,  то текущее значение  за- щитной остановки заменяется вычисленным. (4) Стадии 2 и 3 повторяют- ся для каждого  последующего дня.  При  расчете  защитной остановки для короткой позиции произведение среднего  истинного диапазона на пара- метр  (mmstp или stpa.} прибавляется к рыночной цене,  и уровень  защит- ной остановки опускается вниз.

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

ГЛАВА 14    УЛУЧШЕНИЯ СТАНДАРТНОЙ СИСТЕМЫ  ВЫХОДА                                                                                        345

 

ких позиций уровень остановки задается  выше цены входа и опускается в зависимости от того,  насколько текущая  цена ниже  его. В принципе этот метод основывается на варианте  смещенного экспоненциального сколь- зящего  среднего  (ЭСС),  за тем исключением, что величина скользящего среднего  инициализируется  отдельным условием  при  входе  в  сделку  и может  изменяться только  в одном  направлении (так как  защитная оста- новка  может двигаться  только  в направлении рыночной цены).  Защитная остановка для  длинных  позиций  рассчитывается нижеследующим обра- зом: ( I ) Начальное значение в день входа в рынок  задается вычитанием из цены  входа произведения параметра mmstp и среднего  истинного диапа- зона.  (2) На следующий день от максимальной цены  отнимается произве- дение  параметра stpa и среднего  истинного диапазона; затем  вычитается текущее  значение защитной остановки и результат  умножается на пара- метр stpb. (3) Если результат шага 2 больше  нуля,  добавляем его к текуще- му значению защитной остановки, если  нет,  то уровень  не  изменяется. (4) Повторяем шаги 2 и 3 для каждого последующего дня. При вычислении защитной остановки для коротких позиций произведения среднего истин- ного диапазона на параметры прибавляются к рыночной цене.  К уровню защитной остановки прибавляются только  отрицательные поправки.

 

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

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

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

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

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

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

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

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

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

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

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

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

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

 

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

static int rc, cb, ncontracts, maxhold, signal, ranseed; static float stpa, stpb, mmstp, ptlim, limprice, stpprice; static int entryposted, entrybar, model type;

static float exitatr[MAXBAR+1] , rnum, entryprice, tmp, atr;

static long iseed;

 

// копируем параметры в локальные переменные для удобного обращения

mmstp  =                      parms[1];         // используется для начальный защитной остановки stpa - parms[2];      // дополнительный параметр защитной остановки stpb = parms[3];            // дополнительный параметр защитной остановки ptlim                 = parms[6];      // целевая прибыль в единицах среднего истинного

// диапазона

346      ЧАСТЬ III    ИССЛЕДОВАНИЕ выходов

 

 

modeltype

= parms[7];

//

тип используемой динамической  защитной

 

 

//

остановки

maxhold

= parms[8];

//

период максимального  удержания позиции

ranseed

= parms[9];

//

используется  для инициализации  случайной

 

 

//

последовательности

// выполняем вычисления  по всему объему данных

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

// для выхода

 

// очищаем генератор  случайных чисел

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

// ... ts.model() возвращает индекс рынка (SP=1, YX-2, ...)

iseed = -{ranseed + 10 * ts.model());

rnum = ran2(&iseed);

 

// проходим через дни, чтобы смоделировать реальную торговлю 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);

 

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

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

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

 

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

 

// генерировать  "стандартные"  случайные  сигналы входа signal = 0;

rnum = ran2(&iseed);

if(rnum < 0,025)  signal = -1     // случайный короткий вход else if(rnum > 0.975) signal = 1 // случайный длинный вход

 

// входим в сделки по цене открытия entryposted = 0;

if (ts.position()  <= 0 && signal == 1) { ts.buyopen{'1' , ncontracts) ; entryposted - 1;

entryprice = opn[cb+1];

entrybar = cb + 1;

}

else if(ts.position{} >= 0 && signal == -1) {

ts.sellopen{'2', ncontracts};

entryposted = -1; entryprice = opn[cb+1]; entrybar = cb + 1;

}

 

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

// защитными остановками atr = exitatr[cb];

if (entryposted > 0) {

ГЛАВА 14    УЛУЧШЕНИЯ СТАНДАРТНОЙ СИСТЕМЫ  ВЫХОДА   347

 

// инициализация и выходы для длинных позиций в день входа switch(modeltype) {

case 1:

limprice = entryprice + ptlim * atr;

stpprice = min (Lowest (lo, 2, cb), entryprice - mmstp * atr);

break;

case 2:

case 3:

limprice = entryprice + ptlim * atr; stpprice = entryprice - mmstp * atr; break;

default: nrerror("Invalid modeltype");

}

ts.exitlonglimit('A' , limprice} ;

ts.exitlongstop('B' , stpprice) ;

}

else if (entryposted < 0) {

// инициализация и выходы для коротких позиций в день входа switch(model type) {

case 1:

limprice = entryprice - ptlim * atr;

stpprice = max (Highest(hi, 2, cb), entryprice + mmstp * atr);

break; case 2: case 3:

limprice = entryprice - ptlim * atr;

stpprice - entryprice + mmstp * atr;

break;

default: nrerror{"Invalid modeltype" ) ;

}

ts.exitshortlimit('C', limprice) ;

ts.exitshortstop('D' , stpprice);

}

else {

// выходы после дня входа

if(ts.position() > 0) { // длинные позиции switch{modeltype) {

case 1:

stpprice - max(stpprice, Lowest(lo,2,cb));

break;

case 2:

stpprice = max(stpprice, cls [cb]-stpa*atr);

break;

case 3:

tmp = (hi [cb] - stpa * atr) - stpprice; if{tmp > 0.0) stpprice += stpb * tmp; break;

}

ts.exitlonglimit('F' , limprice);

ts.exitlongstop('G' , stpprice);

if (cb-entrybar >= maxhold) ts.exitlongclose('E' } ;

}

else if (ts.position(} < 0) { // короткие позиции

switch(modeltype) {

case 1:

stpprice = min(stpprice, Highest(hi,2,cb}) ;

break;

case 2:

stpprice = min (stpprice, cls [cb]+stpa*atr);

break;

348      ЧАСТЬ III    ИССЛЕДОВАНИЕ выходов

 

сазеЗ:

tmp = {lo[cb] + stpa * atr) - stpprice; if(tmp < 0.0) stpprice += stpb * tmp; break;

}

ts.exitshortlimit('I' , limprice) ;

ts.exitshortstop('J' , stpprice);

if(cb-entrybar >= maxhold) ts.exitshortclose('H') ;

}

}

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

}

 

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

Затем в каждом торговом дне производится коррекция уровня  защит- ной остановки. Вид коррекции зависит  от выбранного параметром modeltype типа.  Для остановки на основе  ММ/ ММ  рассчитывается мак- симальный максимум или минимальный минимум в зависимости от вида открытой позиции (короткая или длинная). Если  результат  ближе  к ры- ночной цене,  чем текущий уровень защитной остановки, то он использу- ется в качестве  новой  защитной остановки. В другой модели средний ис- тинный диапазон умножается на второй  параметр stpa. Результат  вычи- тается  (для длинной позиции) или прибавляется (для короткой) к теку- щей цене закрытия. Если результат ближе  к текущей  цене,  чем текущий уровень защитной остановки, то он заменяет уровень защитной останов- ки, приближая его, таким образом, к текущей рыночной цене. Для треть- его типа остановки (на основе  ЭСС)  средний истинный диапазон умно- жается  на второй  параметр stpa. Результат  вычитается (для длинной по- зиции) или прибавляется (для короткой) к текущей  цене  закрытия для получения сдвига.  Эта разность заносится в переменную  tm p. Уровень

ГЛАВА  14    УЛУЧШЕНИЯ   СТАНДАРТНОЙ СИСТЕМЫ ВЫХОДА                                                                                       349

 

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

 

Тестирование защитной  остановки на основе максимального максимума/ минимального минимума

 

В этом  тесте  (modeltype  =  I )  параметр начальной защитной остановки (НАЧСТП) управляет максимальной близостью уровня  остановки к цене в первый день. Он прогоняется от 0,5 до 3,5 с шагом 0,5.

Каждая строка  в табл.  14-2  представляет данные  об эффективности каждого из значений  НАЧСТП  в пределах выборки.  В последней строке указана эффективность лучшего из найденных значений вне пределов вы- борки.  Таблица имеет те же обозначения, что и другие таблицы оптими- зации в этой книге (МПАД означает максимальное  падение капитала в тысячах долларов).

Судя по результатам, эта защитная  остановка постоянно  располага- лась слишком близко,  на что указывает сниженный по сравнению  с ос- новной  стратегией МССВ процент прибыльных  сделок.  В предыдущем тесте наилучшее решение (при mmstp 1,5, ptlim 4,5) давало 39% прибыль- ных сделок, при соотношении  риска/ прибыли  —1, 46 и приносило сред- ний убыток в сделке $1581. В этом тесте лучшее решение давало только

28% прибыльных сделок  в пределах  и 29% вне пределов выборки. Мно- гие потенциально прибыльные сделки (в том числе сделки, которые были бы прибыльны с оптимальной фиксированной защитной остановкой МССВ)   были  превращены в малоубыточные. Близость расположения этой  защитной остановки также  подтверждается небольшой средней длительностью сделки  (4 дня)  по сравнению с обычными 6 —8 днями. Среднее соотношение риска/ прибыли ( — 2,52 в пределах  и  —2, 38 вне выборки)  и средний убыток в сделке ($1864 в пределах и $1818 вне пре- делов выборки) также были значительно хуже, чем при оптимальной фиксированной защитной остановке. Метод ММ/ ММ с периодом 2 дня однозначно  малоэффективен,  и ему следует предпочесть  фиксирован- ную остановку, найденную с помощью оптимизации,  как это было сде- лано ранее (табл. 14-1) .

35 0     ЧАСТЬ III    ИССЛЕДОВАНИЕ выходов

 

Таблица  14—2.                     Эффективность портфеля для динамической защитной остановки на ММ/ ММ  с периодом  2 дня при  целевой  прибыли согласно табл.  14-1

 

В пределах выборки

НАЧСТП

ПРИБ

ПРИБЛ   ПРИБКР   Ф. ПРИБ

дох%

Р/ ПРИБ

ВЕР

МПАД

СДЕЛ

ПРИБ%

$СДЕЛ

дни

0.50

-7057

-3534

-4423

0.67

-10.3

-2.71

1.00

7951

4210

25    -1890       3

1.00

-7710

-3333

-4386

0.70

-10.3

-2.54

1.0 0

7711 L     4187

27    -1843       4

1.50

2.00

2.60

3.00

3.50

-7792

-7857

-7776

-7745

-7754

-3353

-3343

-3297

-3257

-3262

-4438

-4514

-4478

-4487

-4492

0.70

0.70

0.70

0.70

0.70

-10.3

-10.3

-10.3

-10.3

-10.3

-2.53

-2.54

-2.62

-2.52

-2.52

1.00

1.0 0

1.0 0

1.0 0

1.0 0

7778

7839

7766

7727

7736

4178

4172

4171

4171

4171

28    -1865       4

28    -1883       4

28    -1864       4

28    -1857       4

28    -1859       4

 

Вне пределов выборки

2.50         -3259 1 -1511     -1748       0.71    -22.4      -2.38     1.000    3450     1793         29    -1818           4

 

Тестированиединамическойзащитнойостановки на основе среднего истинного диапазона

 

В этой модели два параметра,  представленные  в коде как mmstp и sfpa, служили множителями среднего истинного диапазона при размещении защитной остановки на входном и на последующих днях соответственно. В табл. 14-3 показана прогонка параметров для входного дня (ПЕРВЫЙ) и последующих дней (ПОСЛЕД)  от 0,5 до 3,5 с шагом 0,5.

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

По показателю соотношения риска/ прибыли наилучшие результаты дос- тигаются при значении параметра первого  дня,  равного 2, и параметров последующих дней,  равных  2 или  2,5. Наилучшим сочетанием значений является  2 для первого дня и 2,5 для последующих,  когда соотношение риска/ прибыли минимально  и убыток со сделки также минимален.  Мо- дель работала чуть лучше, чем оптимальная фиксированная защитная ос- тановка, соотношение  риска/ прибыли составило — 1,40 по сравнению с

— 1,46. Процент прибыльных сделок был также выше (42% против 39%). Как и в табл. 14-1, жирным шрифтом выделено лучшее решение.

 

Тестирование динамической защитной остановки на основе ЭСС

 

В этой  модели  используются три параметра: исходная защитная оста- новка  для первого  бара,  сдвиг среднего  истинного диапазона (СИДС в табл. 14-4) и коэффициент степени адаптации (КОЭФФ), который опре- деляет  относительную скорость движения уровня  защитной остановки по направлению к рыночной цене или же период лежащего в основе модели модифицированного экспоненциального скользящего среднего. Все параметры подвергались оптимизации  в ходе широкого поиска.

ГЛАВА 14     УЛУЧШЕНИЯ СТАНДАРТНОЙ СИСТЕМЫ ВЫХОДА   351

 

Таблица  14—3.                     Эффективность портфеля для динамической защитной остановки на основе  среднего  истинного диапазона как функция параметров остановки первого  и последующих дней

 

ПЕРВЫЙ

ПОСЛЕД

0.50

1.00

1.50

2.00

2.50

3.00

3.50

СРЕД

 

 

 

 

 

 

 

 

 

 

0.50

Р/ ПРИБ

-3.48

-2.95

-2.75

-2.61

-2.53

-2.54

-2.54

-2.77

 

ПРИБ%

26

23

20

20

19

19

19

21

 

$ СДЕЛ

-1846

-1869

-1873

-1847

-1808

-1820

-1820

-1840

 

 

 

 

 




Страница: | 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