Главная страница

Д.Катс.Д.Маккормик.Энциклопедия торговых стратегий. Донна л. Маккормик


Скачать 5.96 Mb.
НазваниеДонна л. Маккормик
АнкорД.Катс.Д.Маккормик.Энциклопедия торговых стратегий.pdf
Дата28.01.2017
Размер5.96 Mb.
Формат файлаpdf
Имя файлаД.Катс.Д.Маккормик.Энциклопедия торговых стратегий.pdf
ТипДокументы
#727
КатегорияЭкономика. Финансы
страница39 из 41
1   ...   33   34   35   36   37   38   39   40   41
ГЛАВА 15 СОЧЕТАНИЕ выходов с ИСКУССТВЕННЫМ ИНТЕЛЛЕКТОМ 365
}
} // обрабатываем следующий день
)
Вышеприведенный фрагмент кода описывает логику стратегии выхо- дов. Параметры ptlim и mmstp имеют значения 4,5 и 1,5 соответственно,
поскольку эти значения давали лучшую эффективность при торговле порт- фелем (см. табл. 14-1 в гл. 14). Параметр thresh, т.е. значение порога для выходов на основе нейронного прогноза, подвергается оптимизации. Ло- гика дополнительного выхода видна в блоке «if», где сравниваются порог и прогноз, выданный сетью. Если условие выполняется, то по цене закры- тия дня отдается приказ на выход из сделки. Параметр thresh прогоняется от 50 до 80 с шагом 2.
РЕЗУЛЬТАТЫ ТЕСТИРОВАНИЯ НЕЙРОННОГО ВЫХОДА
Результаты базовой системы
В табл. 15-1 приведены результаты работы МССВ. Порог был установлен достаточно высоко, чтобы сеть не генерировала никаких выходов. Эта таблица идентична табл. 14-1 при оптимальных значениях фиксирован- ной защитной остановки и целевой прибыли. В таблице: ВЫБ — часть об- разца данных — в пределах, ВНЕ — вне пределов выборки); ПРИБДЛ
общая прибыль длинных сделок, в тысячах долларов; ПРИБКР — общая прибыль коротких сделок, в тысячах долларов; Ф.ПРИБ — фактор при- были; ДОХ % — прибыль в процентах годовых; Р/ПРИБ — годовое соот- ношение риска/прибыли; ВЕР — ассоциированная вероятность статисти- ческой достоверности; СДЕЛ — число сделок на всех рынках в составе портфеля; ПРИБ%процент прибыльных сделок; $СДЕЛ — средняя при- быль/убыток со сделки; ДНИ — средняя длительность сделки в днях.
Между эффективностью системы в пределах и вне пределов выборки существует очевидная взаимосвязь. Средняя сделка принесла убыток
$1581 в пределах и $1580 вне пределов выборки; процент прибыльных сделок на обеих выборках составил 39%. Соотношения риск/прибыль со- ставили —1,46 в пределах и —1,45 вне пределов выборки.
Результаты торговли портфелем с нейронным выходом
Табл. 15-2 представляет собой стандартную таблицу результатов оптими- зации. В ней приведены результаты торговли портфелем финансовых инструментов для всех значений порога, а также результаты решения,
которое было оптимальным в пределах выборки, полученные на данных вне выборки.

366
ЧАСТЬ III ИССЛЕДОВАНИЕ выходов
В пределах выборки было получено улучшение общих результатов за счет применения дополнительного нейронного выхода. Средняя прибыль в сделке достаточно медленно изменялась при изменениях значения по- рога. Наилучшее значение порога составило 54, средняя сделка при этом приносила убыток в $832. Процент прибыльных сделок составил 41%, го- довое соотношение риска/прибыли —0,87. Таким образом, внедрение нейронного выхода значительно повысило эффективность торговли по сравнению с результатами, приведенными в табл. 15-1. Вне пределов вы- борки, впрочем, улучшения не наблюдалось: эффективность не особо от- личалась от работы базовой МССВ. Когда исследовалась работа нейрон- ных сетей для генерации входов, эффективность при переходе на данные вне пределов выборки падала весьма резко — видимо, нечто подобное произошло и в этом тесте, где в качестве элемента стратегии выходов ис- пользовалась та же нейронная сеть.
Результаты тестирования нейронных выходов
на различных рынках
В табл. 15-3 приводятся результаты торговли с использованием оптималь- ной МССВ и дополнительного нейронного сигнала выхода на различных рынках. Было использовано оптимальное значение порога (54) согласно табл. 15-2.
Значительная прибыль как в пределах, так и вне пределов выборки была получена только на рынке живых свиней. Ряд рынков (например,
немецкая марка и иена) показали значительную прибыль в пределах вы- борки, но были убыточны вне ее пределов. В длинных позициях рынки
NYFE и неэтилированного бензина были прибыльны как в пределах, так и вне пределов выборки — это можно объяснить и статистическим арте- фактом, поскольку в пределах выборки в длинных позициях многие рын- ки приносили прибыль.
Таблица 15—1. Эффективность базовой МССВ, предназначенной для
использования в сочетании с нейронной сетью, прогнозирую-
щей сигналы выхода
ВЫБ
В
ВНЕ
ПРИБДЛ
-1976
-974
ПРИБКР
-4073
-1632
Ф.ПРИБ
0.83
0.84
дох%
-10.3
-21.6
Р/ПРИБ
-1.46
-1.45
ВЕР
1.0000
0.9985
СДЕЛ
3826
1649
ПРИБ%
39
39
$СДЕЛ
-1581
-1580
ДНИ
8
8

ГЛАВА 15 СОЧЕТАНИЕ выходов с ИСКУССТВЕННЫМ ИНТЕЛЛЕКТОМ
367
Таблица 15—2. Эффективность торговли портфелем при сочетании МССВ
и нейронного сигнала выхода для различных значений пара-
метра порога
МЕТОДОЛОГИЯ ТЕСТИРОВАНИЯ ГЕНЕТИЧЕСКОГО
КОМПОНЕНТА ВЫХОДОВ
Поскольку практически очевидна необходимость отдельных наборов пра- вил для длинных и коротких позиций, мы провели два теста. В первом тес- те система генерирует случайные входы в длинные позиции (сигналы к открытию коротких позиций игнорируются), а для выходов применяется
МССВ, а также отдельные правила, которые разрабатываются генетичес- ким алгоритмом. Во втором тесте все входы в длинные позиции игнори- руются, открываются только короткие позиции. Делается попытка раз- работать правила, хорошо работающие в качестве дополнения к МССВ
для коротких сделок.
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 = x21mod01.c
// parms - набор [1..MAXPRM] параметров
// dt - набор [1..nb] дат в формате ГГММДД
// орn - набор [ 1..nb] цен открытия
// hi - набор [1..nb] максимальных цен

368 ЧАСТЬ III ИССЛЕДОВАНИЕ выходов
// lo - набор [l..nb] минимальных цен
//
cls — набор [l..nb] цен закрытия
// vol - набор [l..nb] значений объема
// oi - набор [l..nb] значений открытого интереса
// dlrv — набор [l..nb] средних долларовой волатильности
// nb - количество дней в наборе данных
// ts — ссылка на класс торгового симулятора
// eqcls — набор [l..nb] уровней капитала по ценам закрытия
// объявляем локальные переменные static int rc, cb, ncontracts, maxhold, signal, ranseed;
static float iranstp, ptlim, limprice, stpprice, entryprice;
static int entryposted, entrybar, exitsignal, modeltype;
static int rulel[MAXBAR+1], rule2[MAXBAR+1], rule3[MAXBAR+1];
static float exitatr[MAXBAR+1], rnum, thresh;
static long iseed;
// копируем параметры в локальные переменные для удобного обращения ranseed = parms[14]; // используется для инициализации случайной
// последовательности modeltype = parms[15]; // 1=длинные позиции, 2=короткие позиции maxhold = 10; // период максимального удержания позиции ptlim =4.5; // целевая прибыль в единицах среднего истинного диапазона mmstp = 1.5; // защитная остановка в единицах среднего истинного диапазона
// выполняем вычисления по всему объему данных, включая правила
AvgTrueRangeS{exitatr,hi,lo,cls,50,nb); // средний истинный диапазон для
/ / выхода
Rules{opn, hi, lo, cls, vol, oi, exitatr, nb,
parms [1] , parms[2], parms[3], parms [4] , rulel);
Rules (opn, hi, lo, cls, vol, oi, exitatr, nb,
parms[5], parms[6], parms[7], parms[8], rule2);
Rules (opn, hi, lo, cls, vol, oi, exitatr, nb,
parms[9], parms[10], parms[11], parms[12], rule3);
// запускаем генератор случайных чисел
// ... используем различные случайные последовательности для каждого рынка
// ... 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.currenteguity(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;

ГЛАВА 15 СОЧЕТАНИЕ выходов с ИСКУССТВЕННЫМ ИНТЕЛЛЕКТОМ
// генерируем "стандартные" случайные сигналы входа signal = 0;
rnum = ran2 (Stiseed) ;
if (rnum < 0.025 &&
modeltype == 2) signal = -1; // случайный короткий вход else if (rnum > 0.975 &&
modeltype == 1) 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;
}
// выходим из сделок, используя модифицированный стандартный выход
// вместе с нейросетевым выходом exitsignal = rulel[cb] && rule2[cb] && rule3[cb];
if(entryposted > 0} {
// инициализация и выходы для длинных позиций в день входа limprice = entryprice + ptlim * exitatr[cb];
stpprice = entryprice - mmstp * exitatr[cb];
ts.exitlonglimit{'A' , limprice);
ts.exitlongstop('B', stpprice);
if(exitsignal) ts.exitlongclose('C') ;
}
else if{entryposted < 0) {
// инициализация и выходы для коротких позиций в день входа limprice = entryprice - ptlim * exitatr[cb];
stpprice = entryprice + mmstp * exitatr[cb) ,•
ts.exitshortlimit('D', limprice);
ts.exitshortstop('E' , stpprice);
if(exitsignal) ts.exitshortclose('F') ;
}
else (
// выходы после дня входа if(ts.position()> 0) [ // длинные позиции ts.exitlonglimit('G' , limprice) ;
ts.exitlongstop('H', stpprice);
if(cb-entrybar >= maxhold)||
exitsignal) ts.exitlongclose('I') ;
}
else if(ts.position() < 0) [ // короткие позиции ts.exitshortlimit('J' , limprice);
ts.exitshortstop('K' , stpprice);
if(cb-entrybar >= maxhold ||
exitsignal) ts.exitshortclose('L');
}
)
} // обрабатываем следующий день
}
369

370
ЧАСТЬ III ИССЛЕДОВАНИЕ выходов
Таблица 15—3. Эффективность торговли МССВ в сочетании с нейронным
сигналом выхода в пределах и вне пределов выборки на
различных рынках
Вышеприведенный код демонстрирует логику как входов, так и выхо- дов. Параметр modeltype управляет выбором длинных или коротких по- зиций для тестирования. Параметры ptlim и mmstp задают соответствен- но целевую прибыль и защитную остановку; они фиксированы на тех же уровнях, что и в предыдущем тесте нейронной сети. Каждое из трех пра-

ГЛАВА 15 СОЧЕТАНИЕ выходов с ИСКУССТВЕННЫМ ИНТЕЛЛЕКТОМ 371
вил рассчитывается как серия значений ИСТИНА/ЛОЖЬ, и если все три принимают значение ИСТИНА, то подается сигнал на выход exitsig. В текст программы добавлен оператор if, который подает сигнал на выход по цене закрытия, если (if) все три правила дают значение ИСТИНА (exitsig =
ИСТИНА). Эволюция правил для длинных и коротких позиций проводи- лась аналогично эволюции правил для входов, описанной в гл. 12. Исполь- зовались 12 хромосом с тремя генами-правилами каждая. Для получения правил выхода из длинных и коротких позиций проводится эволюция 2500
поколений с использованием OptEvolve. Затем для тестирования в преде- лах и вне пределов выборки отбирались по 10 лучших длинных и корот- ких решений.
10 лучших решений
с базовой стратегией выхода
В табл. 15-4 приведены 10 лучших значений для длинных и коротких по- зиций. Обозначения в таблице: НОМЕР— номер решения, ВЕР— веро- ятность статистической достоверности (в этих числах пропущена, но пред- полагается десятичная точка), $СДЕЛ — средняя прибыль/убыток со сдел- ки, СДЕЛ — общее количество проведенных сделок, Ф.ПРИБ — фактор прибыли, ДОХ% — доходность в процентах годовых.
Лучшее из решений для длинных позиций было обнаружено в 845 по- колении эволюционного процесса, а для коротких — в 1253 поколении. В
отличие от теста моделей входа ни одно из генетически полученных ре- шений не обеспечило прибыли, но, согласно табл. 15-5, сочетание генети- ческих сигналов с базовой стратегией выходов привело к явному улучше- нию результатов.
Правила, соответствующие хромосомам из табл. 15-4, звучат следую- щим образом.
Правила для выхода из длинной позиции: если цена закрытия текуще- го дня выше экспоненциального скользящего среднего (ЭСС) цен закры- тия с периодом 12 дней, но ниже ЭСС с периодом 49 дней и текущий день представляет собой новый шестидневный максимум, то из длинной пози- ции следует выходить. Правила, таким образом, ищут ситуацию, где на фоне долгосрочного падающего тренда наблюдается кратковременный рост цен, достигший своего максимума и готовый завершиться, после чего должно возобновиться падение — весьма подходящий момент для выхо- да из длинной позиции.
Правила для короткой позиции гласят, что выходить следует в случае,
когда цена закрытия текущего дня выше 16-дневного ЭСС и 22-дневного простого скользящего среднего цен закрытия, а индикатор конвергенции/
дивергенции скользящих средних (MACD) падает. Данный MACD исполь- зует ЭСС с периодом 6 дней для быстрого компонента и ЭСС с периодом

372
ЧАСТЬ III ИССЛЕДОВАНИЕ выходов
Таблица 15—4. Лучшие 10 решений для длинных и коротких позиций,
полученные в процессе эволюции
Решения для длинных позиций
НОМЕР
845
1752
1804
1464
1755
1591
1584
637
1810
1850
ВЕР
706728
712448
737793
728199
729060
761321
733418
750316
739410
742540
$СДЕЛ
-324
-350
-354
-379
-382
-384
-394
-397
-399
-399
СДЕЛ
1972
1947
1994
1944
1934
1999
1925
1974
1944
1938
Ф.ПРИБ
0.96
0.96
0.96
0.96
0.96
0.96
0.96
0.96
0.96
0.96
ДОХ%
-4.9
•4.4
-5.0
-5.0
-5.1
-4.5
-4.8
-5.2
-5.0
-5.3
Решения для коротких позиций
НОМЕР
1253
1758
1183
1379
1129
472
1833
1816
1881
1427
ВЕР
999842
999695
998990
999639
999211
999161
999161
999834
998851
999581
$СДЕЛ
-1645
-1646
-1717
-1755
-1756
-1757
-1757
-1764
-1764
-1767
СДЕЛ
1959
1943
1885
1920
1885
1885
1885
1932
1869
1916
Ф.ПРИБ
0.78
0.80
0.81
0.79
0.81
0.81
0.81
0.79
0.82
0.80
ДОХ%
-10.2
-10.1
-10.1
-9.9
-10.1
-10.2
-10.2
-10.3
-9.9
-10.0
10 дней для медленного компонента. Таким образом, система выходит в тех случаях, когда после сглаживания рынок все еще производит впечат- ление падающего, но последняя цена закрытия пробивает вверх два сколь- зящих средних, что может быть признаком начала нового повышающего- ся тренда.
Результаты выходов по описанным правилам для длинных и
коротких позиций
В табл. 15-5 приведены результаты торговли с помощью 10 лучших реше- ний (длинные и короткие позиции), использующих МССВ и генетически разработанные сигналы выхода. Входы в рынок были случайными. В таб- лице отдельно показаны результаты длинных и коротких позиций. Дан-

ГЛАВА 15 СОЧЕТАНИЕ выходов с ИСКУССТВЕННЫМ ИНТЕЛЛЕКТОМ
373
Таблица 15—5. Эффективность МССВ с добавлением генетически разрабо-
танных правил сигнала выхода при случайном, входе в сделки
Длинные позиции
ТЕСТ
СТАНД
ГЕН
СТАНД
ГЕН
ВЫ6
в
в
ВНЕ
ВНЕ
ПРИБ
-1324
-640
-942
-845
ПРИБДЛ
-1324
-640
-942
-845
ПРИБКР
0
0
0
0
Ф.ПРИБ
0.93
0.96
0.89
0.89
ДОХ%.
-7.3
-4.9
-13.2
-15.8
Р/ПРИБ
-0.35
-0.17
-0.61
-0.60
ВЕР
0.8628
0.7067
0.8938
0.8903
СДЕЛ
1923
1972
830
854
ПРИБ*
41
43
39
41
$СДЕЛ
-688
-324
-1135
-990
ДНИ
8
7
8
7
Короткие позиции
ТЕСТ
СТАНД
ГЕН
СТАНД
ГЕН
ВЫБ
в
в
ВНЕ
ВНЕ
ПРИБ
-3850
-3223
-1497
-889
ПРИБДП
0
0
0
0
ПРИБКР
-3850
-3223
-1497
-889
Ф.ПРИБ
0.80
0.78
0.82
0.86
ДОХ%.
-9.9
-10.3
-20.4
-18.2
Р/ПРИБ
-1.09
-1.15
-1.02
-0.73
ВЕР
0.9997
0.9998
0.9818
0.9325
СДЕЛ
1847
1959
792
841
ПРИБ%
37
37
38
40
$СДЕЛ
-2084
-1645
-1890
-1056
ДНИ
8
6
8
6
ные также разбиты по номеру теста и по виду выборки. Символы В и ВНЕ
означают результаты тестов на данных в пределах выборки и вне преде- лов выборки соответственно. СТАНД означает тест с использованием толь- ко МССВ, ГЕН — тест МССВ в сочетании с генетически разработанными правилами.
В длинных позициях в пределах выборки добавление правил значи- тельно снизило средний убыток в сделке — с $688 до $324. Процент при- быльных сделок повысился с 41 до 43%. Годовое соотношение риска/при- были улучшилось с —0,35 до —0,17. Вне пределов выборки эффект гене- тически разработанных сигналов выхода сохранился, хотя и в меньшей степени. Средний убыток в сделке снизился с $1135 до $990. Процент при- быльных сделок повысился с 39 до 41 %.Соотношение риска/прибыли улуч- шилось с —0,61 до —0,60. В общем, добавление генетически разработан- ных правил к стандартной стратегии выходов себя оправдало. В отличие от нейронных сигналов выхода эффект сохранился вне пределов выбор- ки, т.е. подгонка под исторические данные и избыточная оптимизация не имели решающего значения.
В коротких позициях как в пределах, так и вне пределов выборки от- мечен подобный положительный эффект. В пределах выборки добавле- ние генетически разработанного сигнала выхода снизило средний убы- ток в сделке с $2084 до $1645. Процент прибыльных сделок не изменился.
Как ни странно, годовое соотношение риска/прибыли ухудшилось с
—1,09 до — 1,15. Вне пределов выборки средний убыток в сделке значитель- но уменьшился: с $1890 до $1058. Процент прибыльных сделок вырос с 38
до 40%, а годовое соотношение риска/прибыли улучшилось с —1,02 до
—0,73. Как и ранее, добавление генетически найденного правила выхода к системе МССВ доказало свою эффективность и вне пределов выборки.

374
ЧАСТЬ III ИССЛЕДОВАНИЕ выходов
Эффективность длинных позиций на различных рынках
В табл. 15-6 приведена информация о работе системы МССВ совместно с генетически разработанными правилами выхода из длинных позиций на различных рынках. Как в пределах, так и вне пределов выборки были выгодны несколько рынков: NYFE, сырой нефти, неэтилированного бен- зина и живых свиней. Другие рынки были прибыльными в пределах вы- борки и убыточными вне пределов выборки, или наоборот. Взаимосвязь между результатами торговли в пределах и вне пределов выборки была низкой.
Таблица 15—6. Эффективность системы МССВ с добавлением генетически
разработанных правил выхода. Длинные позиции. Сравни-
тельные данные по различным рынкам

1   ...   33   34   35   36   37   38   39   40   41


написать администратору сайта