<< Пред. стр.

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

ОГЛАВЛЕНИЕ

След. стр. >>


Генерация случайных входов. Модель случайного входа генерирует по-
следовательность чисел (состоящую из + 1, 0 и — 1). Каждое число соот-
ветствует определенному торговому дню и приводит к открытию пози-
ций определенного направления: +1 — длинная позиция, — 1 — корот-
ИССЛЕДОВАНИЕ выходов
320 ЧАСТЬ III



кая позиция, 0 — нет входа. К примеру, модель случайного входа генери-
рует число — 1 для 20 октября 1997 г. Это означает, что система в этот день
откроет короткую позицию.
ГПСЧ, используемый для реализации модели случайного входа, совпа-
дает с генератором rап2, описанным в работе Пресса и др. «Численные
методы на языке С» (Press et al. Numerical Recipes in С, 1992). Период дан-
ного ГПСЧ превышает 2Х1018, что гораздо лучше большинства стандарт-
ных генераторов случайных чисел, являющихся частью языков програм-
мирования. Каждому торговому дню ставится в соответствие случайное
число, находящееся в интервале от 0 до 1. Если это число меньше, чем 0,025,
то открывается короткая позиция. Вероятность открытия короткой пози-
ции составляет 0,025, т.е. сигнал к продаже в среднем возникает каждые
40 дней. Длинная позиция открывается, если случайное число превышает
0,975. Частота открытия длинных позиций — один раз в 40 дней. Иными
словами, торговые сигналы генерируются каждые 20 дней. Цены лимит-
ного приказа и стоп-приказа вычисляются стандартным образом.
ГЛАВА 13


Стандартная стратегия выхода




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


ЧТО ТАКОЕ СТАНДАРТНАЯ СТРАТЕГИЯ ВЫХОДА?

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


ХАРАКТЕРИСТИКИ СТАНДАРТНОГО ВЫХОДА
Стандартный выход является простейшим, используемым при тестиро-
вании различных стратегий входа. Совсем не обязательно, что это очень
ИССЛЕДОВАНИЕ выходов
322 ЧАСТЬ III



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


ЦЕЛЬ ТЕСТИРОВАНИЯ ССВ

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




ТЕСТЫ ИСХОДНОЙ ССВ
Для проверки исходной ССВ используется метод случайного входа (опи-
санный во введении к части III). В качестве выходов используются обыч-
ные стандартные выходы (только по цене закрытия). ССВ содержит сле-
дующие правила: Если на закрытии рынок находится ниже цены входа на
величину, равную произведению некоторого множителя (параметр защит-
ной остановки) на размер среднего истинного диапазона последних
50 дней, тогда срабатывает защитная остановка. Если цена закрытия боль-
ше цены входа на величину, равную произведению некоторого множите-
ля (параметр целевой прибыли) на размер среднего истинного диапазо-
на, тогда срабатывает лимитный приказ, фиксирующий целевую прибыль.
Эти правила сформулированы для длинных позиций с выходом по цене
закрытия. Для коротких позиций пороги размещаются наоборот, т.е. за-
щитная остановка помещается выше цены входа, а лимитный приказ —
ниже. Если после 10 дней не достигнута ни защитная остановка, ни целе-
вая прибыль, то сделку останавливают рыночным приказом по цене зак-
рытия. Приведенный ниже код выполняет данные правила выхода и слу-
чайные входы. Тестируются три типа входных приказов (по цене откры-
тия, по лимитному и стоп-приказу). Используется стандартный портфель
и стандартная тестовая программная платформа.

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 = xl9mod01.c
// parms — набор [1..MAXPRM] параметров
// dt - набор [l..nb] дат в формате ГГММДД
// орn — набор [1. .nbl цен открытия
// hi — набор [1..nb] максимальных цен
// 1о - набор [1. .nb] минимальных цен
// cls - набор [l..nb] цен закрытия
// vol — набор [1..nb] значений объема
// oi - набор [l..nb] значений открытого интереса
// dlrv — набор [1..nb] значений среднего долларовой волатильности
// nb — количество дней в наборе данных
// ts — ссылка на класс торгового симулятора
// eqcls — набор [1..nb] уровней капитала по ценам закрытия

//объявляем локальные переменные
static int rc, cb, neontracts, maxhold, ordertype, signal;
static float mmstp, ptlim, stpprice, limprice, tmp;
static float exitatr[MAXBAR+1], rnum;
static int ranseed;
static long iseed;

// копируем параметры в локальные переменные для более удобного обращения
ranseed = parms[8]; // инициируем генератор случайных чисел
ordertype = parms[9]; // вход: 1=по цене открытия, 2=по лимитному
// приказу, 3 =по стоп - приказу
maxhold = 10; // максимальный период удержания позиции
ptlim = 4; // целевая прибыль в единицах волатильности
ИССЛЕДОВАНИЕ выходов
324 ЧАСТЬ III



mmstp = 1; // защитная остановка в единицах волатильности

// делаем вычисления по всем данным
AvgTrueRangeS{exitatr,hi,lo,cls,50,nb); // средний истинный диапазон для
// выхода
// запускаем генератор случайных чисел
// ... отдельный запуск для каждого инструмента
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+1] == lo [cb+1]) continue;

// генерировать входные сигналы, цены стоп- и лимитных приказов
signal = 0;
rnum = ran2(&iseed); // случайное число 0...1
if(rnum < 0.025) signal = -1; // случайный короткий вход
else if(rnum > 0.975) signal = 1; // случайный длинный вход
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, ncont}racts); break;
default: nrerror("Invalid buy order selected");
}
}
else if (ts.position() >= 0 && signal == -1) {
switch(ordertype) { //выбираем желаемый тип приказа
case 1: ts.sellopen{'4', ncontracts); break;
case 2: ts.selllimit('5', limprice, ncontracts); break;
case 3: ts.sellstop('6', stpprice, ncontracts); break;
default: nrerror("Invalid sell order selected"};

}
}

// симулятор использует стандартную стратегию выхода
tmp = exitatr[cb];
ts.stdexitcls {'X' , ptlim* tmp, mmstp* tmp, maxhold) ;

} // обрабатывать следующий день
}
СТАНДАРТНАЯ СТРАТЕГИЯ ВЫХОДА 325
ГЛАВА 13




Код подобен представленному в предыдущих главах. Изменился лишь
порядок генерации сигналов для входа. Входные сигналы теперь созда-
ются с помощью генератора псевдослучайных чисел (ГПСЧ). Перед вхо-
дом в цикл, который проходит через дни для моделирования процесса тор-
говли, ГПСЧ инициализируется с уникальным начальным значением.
Начальное значение инициализации определено номером рынка и пара-
метром (ranseed). При изменении данного параметра генерируется абсо-
лютно другая последовательность случайных входов. Точные значения
инициализации не важны, так как для каждой инициализации создается
уникальный ряд из-за чрезвычайно большого периода ГПСЧ. Используе-
мый ГПСЧ описан как гап2 в вышеупомянутой работе «Numerical Recipes
18
in С» (1992). Период для ГПСЧ больше, чем 2Х10 . Этот ГПСЧ намного
лучше стандартных генераторов, включенных в языки программирова-
ния. Внутри цикла, там, где фактически имеет место торговля, сигналы
генерируются, основываясь на случайных числах. Шаги очень просты. На
каждом дне от ГПСЧ получается равномерно распределенное случайное
число между 0 и 1. Если случайное число меньше 0,025, то генерируется
сигнал для входа в короткую позицию. Вероятность получения короткого
сигнала в любой день равна 0,025, т.е. короткий сигнал должен генериро-
ваться в среднем каждые 40 дней. Если случайное число превышает 0,975,
то подается сигнал для открытия длинной позиции; частота этих сигналов
такая же — один сигнал каждые 40 дней. Другими словами, в среднем тор-
говые сигналы генерируются каждые 20 дней. Цены лимитного приказа и
стоп-приказа рассчитываются обычным способом. Обычным способом
размещаются приказы и определяются выходы.
Для проведения трех испытаний используются следующие шаги: на
данных внутри выборки для каждого типа входного приказа генерируют-
ся и участвуют в торговле 10 различных серий случайных входов. Лучшие
из этих последовательностей затем проверяются на данных вне выборки.
Процесс подобен оптимизации параметра в реальной системе. Изменя-
ясь от 1 до 10, параметр выбирает различные ряды случайных входов для
каждого значения.


Результаты тестов

В табл. 13-1, 13-2 и 13-3 представлены результаты торговли портфелем при
использовании стратегии случайных входов и стандартного выхода. В
колонке СЛУЧ приведены числа, которые передаются на вход генератора
случайных чисел и инициируют случайные последовательности. ПРИБ —
совокупная чистая прибыль в тысячах долларов. ПРИБДЛ — общая при-
быль от длинных позиций в тысячах долларов; ПРИБКР— общая прибыль
от коротких позиций в тысячах долларов, Ф.ПРИБ — фактор прибыли.
ИССЛЕДОВАНИЕ выходов
ЧАСТЬ III
326



ДОХ% — доходность, в процентах годовых; Р/ПРИБ — соотношение рис-
ка/прибыли в годовом исчислении; ВЕР — ассоциированная вероятность
статистической достоверности, МПАД — максимальное падение капита-
ла, в тысячах долларов; С ДЕЛ — число сделок; ПРИБ% — процент прибыль-
ных сделок; $СДЕЛ — средняя прибыль/убыток со сделки; ДНИ — сред-
нее количество дней в сделке, округленное до ближайшего целого числа;
ВНЕ — результат случайной последовательности, обеспечивший лучшую
эффективность внутри выборки, которая затем была продолжена и про-
тестирована на данных вне пределов выборки; СРЕД — среднее значение
результатов, приведенных в строках 1 — 10; СТОТКЛ — стандартное от-
клонение результатов, приведенных в строках 1 — 10.

Тест 1. ССВ со случайными входами по цене открытия. Эта система
работала не очень хорошо внутри выборки. Средняя сделка для всех 10
случайных последовательностей принесла убыток в размере $2243, при-
чем стандартное отклонение составило $304. Данная система показала
такую же среднюю прибыль в сделке, как и наименее привлекательные
системы, тестировавшиеся при изучении входов. Фактически, некоторые
из них показали результаты гораздо худшие, чем случайные. Процент
прибыльных сделок был очень стабилен — со средним значением 36,91%
и стандартным отклонением 0,7%. Общее количество сделок для каждого
рынка за более чем 10-летний период внутри выборки составило 3703;
именно такое количество сделок должно было получиться при случайных


Результаты стратегии стандартного выхода со случайными
Таблица 13—1.
входами по цене открытия
327
СТАНДАРТНАЯ СТРАТЕГИЯ ВЫХОДА
ГЛАВА 13



Таблица 13—2. Результаты стратегии стандартного выхода со случайными
входами по лимитному приказу




Результаты стратегии стандартного выхода со случайными
Таблица 13—3.
входами по стоп-приказу
ИССЛЕДОВАНИЕ выходов
328 ЧАСТЬ III



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

Тест 2. ССВ со случайными входами по лимитному приказу.
Табл. 13-2 идентична табл. 13-1 за исключением того, что она отражает
поведение портфеля со стандартной стратегией выходов и входами по ли-
митному приказу. В пределах выборки средняя сделка приносила убыток
в $1930, что несколько ниже, чем в предыдущем тесте, видимо, ввиду
уменьшения транзакционных расходов при входе по лимитному прика-
зу. Стандартное отклонение составило $477, что несколько выше преды-
дущего значения. Процент прибыльных сделок (38,73%) улучшился менее
чем на 2% благодаря более выгодным ценам входа при использовании ли-
митного приказа. Как и ожидалось, помимо подобных мелких измене-
ний, ничего в табл. 13-2 не представляет особенного интереса.
Вне пределов выборки убыток составил $3056 со сделки, т.е. на два
стандартных отклонения хуже, чем поведение в пределах выборки. Ис-
пользование лимитного приказа для случайных входов привело к несколь-
ко худшим результатам в последние годы. Процент прибыльных сделок
составил 37%, опять-таки на два стандартных отклонения хуже, чем в пре-
делах выборки, но на одном уровне с входом по цене открытия.

Гест 3. ССВ со случайными входами по стоп-приказу. В табл. 13-3
приведены результаты торговли портфелем финансовых инструментов
при использовании случайных входов, основанных на срабатывании стоп-
приказа. По показателю средней прибыли в сделке эффективность в пре-
делах выборки была лучше, чем в двух предыдущих тестах; средний убы-
ток составил $2039, а стандартное отклонение — $391. Процент прибыль-
ных сделок был ниже (36,36% при стандартном отклонении 1,12%). Более
низкий процент прибыльных сделок, видимо, отражает неоптимальные
цены входа в рынок, полученные при входе по стоп-приказу.
Вне выборки прибыль и количество прибыльных сделок находились в
пределах двух стандартных отклонений в большую или меньшую сторо-
ну от значений, полученных в пределах выборки. Следовательно, можно
сделать вывод, что вне пределов выборки результаты находятся в статис-
тически ожидаемых границах и принципиально не отличаются от полу-
ченных в пределах выборки.
Приведенные в табл. 13-1 — 13-3 результаты могут служить основой для
проведения сравнительной оценки методов выхода, описанных в части II
СТАНДАРТНАЯ СТРАТЕГИЯ ВЫХОДА .«А 329
ГЛАВА 13




этой книги. Для этой цели наиболее показательны параметры $СДЕЛ и
ПРИБ%, поскольку они не зависят от количества проведенных системой
сделок.

Эффективность системы со случайными входами по цене откры-
тия и ССВ на различных рынках. В табл. 13-4 приведены показатели
работы системы со случайными входами по цене открытия и ССВ. Ис-
пользовались случайные последовательности, обеспечивающие макси-
мальную доходность в пределах выборки (по показателю годового соот-
ношения риска/прибыли) согласно тесту I. В первом столбце (РЫН) ука-
зан рынок, прочие столбцы содержат данные о различных аспектах рабо-
ты системы в пределах и вне выборки.
В пределах выборки прибыльными были только рынки британского
фунта, иены, откормленного скота, живых свиней и леса. Высокая при-
быль (25,9% в год) была получена только на рынке немецкой марки. Вне

<< Пред. стр.

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

ОГЛАВЛЕНИЕ

След. стр. >>