<<
>>

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

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

В данном тесте положение защитной установки управления капиталом прогоняется от 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] дат в формате ГГММДД

/ / ОРП - набор [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

mmstp

maxhold ranseed parms[1];

parms[2];

parms[3]; parms[8];

единицах среднего истинного

единицах среднего истинного

// целевая прибыль в

// диапазона

// защитная остановка

// диапазона

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

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

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

340

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

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

AvgTrueRangeS(exitatr,hi,lo,cls,5 0,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(5 673.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('C' , limprice); ts.exitshortstop('Dl , stpprice);

}

else {

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

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

ts.exitlonglimit('F' , limprice); ts.exitlongstop('G'f 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% прибыльных сделок, но со значительно худшими показателями риска/прибыли и средней прибыли со сделки. Это однозначно показывает важность удержания потенциально прибыльных позиций.

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

Заключение

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

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

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

343

Таблица 14—1. Эффективность портфеля в пределах выборки при использовании случайного входа с модифицированными стандартными выходами в зависимости от параметров целевой прибыли (по горизонтали) и защитной остановки (по вертикали) PTUM \ MMSTP 0.5 1-0 1.5 2.0 2.5 3.0 35 СРЕД 0.S Р/ПРИб -7.37 ?5J» -4.32 -3.85 -3.47 -3.45 -3.54 -1.44 ЛРИБ% 40 63 69 73 75 7S 76 68 *СДЕЛ -2232 -2131 -2004 -2022 -2085 -2210 -2364 -2163 1,0 Р/ПРНБ -4.70 -315 -2.62 -2 35 -243 -2.53 -2.55 -2.90 ПРИБ% 34 57 60 62 62 63 55 1СДЕЛ -1922 -1771 -1749 -1778 •1974 -2159 -2278 -1947 1.5 р/прие -3.75 •2.49 -2.18 -2.С2 -2.00 -2.17 -2.1* -2.41 ПРИЕ% 27 41 46 52 53 54 54 47 $СДЕЛ -1Бв1 -1709 -1736 -1*12 -19*3 -2147 -2221 -1924 го Р/ПРИЕ -356 -2 36 -207 -1» ?SOS -211 -2.07 -2.32 ПРИ Б* 22 36 43 46 48 49 49 42 5СДЕЛ -2011 -1518 •1544 -1951 ?2117 -2361 -2288 -2041 2.5 Р/ПРИБ -3.22 -2.17 -1.86 -1.60 -1.91 -1.98 •1.93 -2.12 21 34 41 44 48 46 47 40 4СДЕЛ -1*09 -1786 -1862 -2063 -2236 -2246 -2Q03 3.0 Р.'ЛРИБ -299 -2.02 И.70 ? 1,58 -1.81 -1.89 -1.87 ?200 ЛРИБ% 20 33 40 43 45 46 46 39 8СДЕЛ -1960 -1779 -1722 -1644 -2057 -2226 -2259 -197* ъ.ъ Р/ПРИБ -2.В6 -1,93 -1.63 -1.63 -1.7S -1.86 -1.81 -1.92 ПРИБ% 1В 33 40 43 45 45 46 39 ЗСДЕЛ -1046 -1757 -1669 -1*0» -2030 -2190 -2226 -1950 4,0 J^/ПРИБ -2.01 -169 -1.47 ?1.50 -1.62 -1.69 -1.6* -1.75 ПРИБ*. 19 33 39 43 44 45 46 36 ЗСДЁЛ -164* -1S90 •1568 -5712 -1922 -2068 -2108 -1831 4.5 Р/ПРИБ -2.54 -1.&6 -1.46 -1.46 -1.60 -1.66 -1.87 -17Э ПРИ Б % 1В 32 ~3* 43 44 45 45 38 -1624 •1590 ?1541 -1714 -1933 -2077 -2109 -1833 5.0 Р/ПРИЁ -2.53 -1.06 •1.48 -1.46 -1.57 -1.64 -1.82 -1,71 Г,РИЕ,% 19 32 S91 42 44 45 45 38 5СДЕЛ -1847 -1813 -1604 -1704 -1917 -2056 -2062 -1832 СРЕД Р/ПРИБ -3.61 -2.44 -2.08 •1.96 -2.03 -2.10 -2.09 -2.33 ПРИБ*. 25 39 46 49 51] 51 52 44 «СДЕЛ -1943 -1757 -1737 -1 823 -2010 -2183 -2218 -1950 344

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

<< | >>
Источник: Джеффри Оуэн Кац, Донна Л. МакКормик . Энциклопедия торговых стратегий / Пер, с англ. — М.: Альпина Паблишер. — 400 с. . 2002

Еще по теме ТЕСТИРОВАНИЕ МОДЕЛИ С ФИКСИРОВАННОЙ ЗАЩИТНОЙ ОСТАНОВКОЙ И ЦЕЛЕВОЙ ПРИБЫЛЬЮ:

  1. ТЕСТИРОВАНИЕ ДИНАМИЧЕСКИХ ЗАЩИТНЫХ ОСТАНОВОК
  2. ТЕСТИРОВАНИЕ ЦЕЛЕВОЙ ПРИБЫЛИ
  3. Тестирование потенциального целевого рынка
  4. Тестирование торговой системы - Игра на Сжатие 1, с признаком целевых уровней цены
  5. НАНЕСЕНИЕ ЗАЩИТНЫХ И ЗАЩИТНО-ДЕКОРАТИВНЫХ ПОКРЫТИЙ
  6. НАНЕСЕНИЕ ЗАЩИТНЫХ И ЗАЩИТНО-ДЕКОРАТИВНЫХ ПОКРЫТИЙ
  7. ОСТЕРЕГАЙТЕСЬ ФИКСИРОВАТЬ ПРИБЫЛЬ СЛИШКОМ РАНО
  8. Необходимо проявлять бдительность и фиксировать прибыль
  9. Тестирование модели
  10. 6.4.3. Построение и тестирование модели APT