<< Пред. стр.

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

ОГЛАВЛЕНИЕ

След. стр. >>

Результаты обучения для модели обращенного
во времени Медленного %К
Как следует из табл. 11-1, значения некорректированной корреляции не-
уклонно возрастали с увеличением сети в отношении количества связей.
Если же провести коррекцию коэффициентов корреляции, то для эффек-
тивной выборки величиной 13 000 точек картина драматически меняется:
наиболее эффективными оказываются малые 3-слойные сети с 6 нейро-
нами в среднем слое и наименьшая из двух 4-слойных сетей. При более
умеренной коррекции ожидаемая прогностическая способность оказалась
наибольшей для двух 4-слойных сетей, как видно из множественных кор-
реляций результата с целью.
НЕЙРОННЫЕ СЕТИ 265
ГЛАВА 11



При более консервативной оценке (с меньшей эффективной выбор-
кой и, следовательно, с большей коррекцией коэффициентов корреляции)
на основе данных табл. 11 -1 для работы в модели было выбрано две сети —
сеть 18-6-1 (rm2.net) и сеть 18-14-4-1 (nn8.net). Они были признаны лучши-
ми из сетей, способными потенциально эффективно работать вне преде-
лов выборки. Для теста модели входа в рынок программа прогонялась со
значением mode = 2; как обычно, тестировались все входы — по цене от-
крытия, по лимитному приказу и по стоп-приказу.


МОДЕЛИ НА ОСНОВЕ ТОЧКИ РАЗВОРОТА
Для работы таких моделей требуются два дополнительных набора фак-
тов, идентичных фактам для обращенного во времени Медленного %К во.
всем, кроме целевого параметра. Цель первого набора равна 1, что обо-
значает нижнюю точку разворота (минимум), когда завтрашняя цена от-
крытия ниже цен трех предыдущих и десяти последующих дней. Если это
условие не выполняется, то значение цели приравнивается к 0. Целью
второго набора является 1, т.е. максимум, являющийся точкой разворота
в случае, если завтрашняя цена открытия выше цен трех предыдущих и
десяти последующих дней. Если это условие не выполняется, то значение
цели приравнивается к 0. Если считать, что на рынке присутствуют ус-
тойчивые модели, то нейронная сеть должна иметь способность усваи-
вать их и предсказывать положение завтрашней цены открытия.
В отличие от набора фактов для обращенного во времени Медленно-
го %К в этих наборах факты генерируются только в тех случаях, когда зав-
трашняя цена открытия имеет вероятность стать точкой разворота. На-
пример, если завтрашняя цена открытия выше сегодняшней цены откры-
тия, то, согласно предыдущим правилам, завтрашнее открытие уже не
может считаться точкой разворота, что бы ни случилось в дальнейшем.
Зачем заставлять сеть делать прогнозы, когда нет никакой неопределен-
ности? Прогнозирование производится только в случаях, когда завтраш-
няя цена открытия может составить точку разворота, и факты генериру-
ются только для таких случаев.
Обработка вводов, использование статистики и другие аспекты мето-
дологии тестирования для моделей, основанных на точке разворота, иден-
тичны используемым для модели на обращенном во времени Медлен-
ном %К. Обе модели в принципе идентичны, различаются только цели
предсказания и, следовательно, цели для обучения нейронных сетей. Кро-
ме того, ввиду отличия прогнозов различаются правила получения сигна-
лов входа на их основе.
Выходы обученных сетей представляют вероятности (от 0 до 1) при-
сутствия максимума или минимума. Два набора правил для двух моделей
генерации сигналов входа таковы: для первой модели — если прогноз
ИССЛЕДОВАНИЕ входов в РЫНОК
266 ЧАСТЬ II



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

// запись фактов в файл
for(cb = 1; cb <= nb; cb++) {
if(dt[cb] < IS_DATE) continue; // период анализа
if(dt [cb+10] > OOS_DATE) break; // игнорируем данные вне пределов
// выборки
if(opn[cb+l] >= Lowest (opn, 3, cb)}
continue; // пропускаем эти факты
fprintf(fil, "%6d", ++factcount); // номер факта
PrepareNeurallnputs{var, els, cb) ;
for(k = 1; k <= 18; k++)
fprintf(fil, "%7.3f", var[k] ); // стандартные входные данные
if(opn[cb+l] < Lowest {opn, 9, cb+10))
netout = 1.0; else netout =0.0; // считаем цель
fprintf(fil, "%6.1f\n", netout); // цель
if{(cb % 500) == 1)
printf("CB = %d\n", cb); // информация о прогрессе
}

// генерируем входные сигналы, цены лимитных приказов и стоп-приказов
signal=0;
if(opn[cb+1] < Lowest (opn, 3, cb)) { // пускаем только эти
PrepareNeurallnputs(var, cls, cb) ; // обрабатываем данные
ntlset_inputv{nnet, &var[l]); // передаем в сеть входные данные
ntlfire (nnet); // запускаем тест
netout = ntlget_output(nnet, 0); // получаем выходные данные
netout *= 100.О; // переводим в проценты
if(netout > thresh) signal = 1; // сигнал на покупку
}
limprice = 0.5 * (hi[cb] + lo [cb]);
stpprice = cls [cb] + 0 . 5 * signal * exitatr[cb] ;


Поскольку код для модели, прогнозирующей минимумы, почти иден-
тичен коду модели на основе обращенного во времени Медленного %К,
выше приведены только два измененных блока. В первом блоке обращен-
ный Медленный %К не используется, а вместо этого рассчитывается
цель — серия нулей или единиц, указывающая на наличие (1) или отсут-
ствие (0) минимумов. При записи фактов вместо значения Медленного %К
записываются значения цели. Во втором блоке вводятся правила для срав-
нения выхода нейронной сети с соответствующим порогом и генерации
собственно сигналов входа в рынок. В обоих блоках включен код, препят-
ствующий записи фактов и использованию прогнозирования в случае,
когда завтрашняя цена открытия не может образовать минимум согласно
правилам. В коде ниже приведены аналогичные правила прогнозирова-
ния максимумов.
НЕЙРОННЫЕ СЕТИ 267
ГЛАВА 11



if(dt[cb+10] > OOS_DATE) break; / / игнорируем данные вне пределов
// выборки
if(opn[cb+l] <= Highest(opn, 3, cb))
continue; // пропускаем эти факты
fprintf{fil, "%6d", ++factcount); // номер факта
PrepareNeurallnputs(var, cls, cb) ;
for (k = 1; k <= 18; k++)
fprintf(fil, "%7.3f", var[k]); // стандартные входные значения
if{opn[cb+l] > Highest(opn, 9, cb+10))
netout = 1.0; else netout =0.0; // считаем цель
fprintf(fil, "%6.1f\n", netout); // цель
if({cb % 500) == 1)
printf("CB = %d\n", cb); // информация о прогрессе
}

// генерируем входные сигналы, цены лимитных приказов и стоп- приказов
signal=0;
if(opn[cb+l] > Highest(opn, 3, cb)) { // запускаем только эти
PrepareNeurallnputs{var, cls, cb) ; // обрабатываем данные
ntlset_inputv(nnet, &var[l]); // передаем в сеть входные значения
ntlfire (nnet); // запускаем сеть
netout = ntlget_output(nnet, 0); // получаем выходные значения
netout *= 100.О; // переводим в проценты
if(netout > thresh) signal = -1; // сигнал на продажу
}
limprice = 0.5 * (hi[cb] + lo[cb]);
stpprice = cls[cb] + 0.5 * signal * exitatr[cb];




Методология тестирования модели,
основанной на точке разворота
Методология идентична использованной для модели на обращенном во
времени Медленном %К. Набор фактов генерируется, загружается в
N-TRAIN, масштабируется и перетасовывается. Набор сетей по 3 — 4 слоя
нейронов обучается до максимальной сходимости и «полируется». Рас-
считываются статистические показатели, такие как скорректированная
на избыточную подгонку корреляция.


Результаты тестирования моделей,
основанных на точке разворота
Прогнозирование минимумов. Структура табл. 11-2 идентична табл. 11-1.
Как и в случае с нейронной сетью, обучавшейся прогнозированию обра-
щенного во времени Медленного %К, между числом связей в сети и мно-
жественной корреляцией выхода с целью наблюдалось растущая связь; т.е.
корреляция была выше для более крупных сетей. Сеть, в общем, обучалась
на наборе из 23 900 фактов, что меньше, чем сеть для прогноза обращенно-
го Медленного %К. Различие в количестве фактов объясняется тем, что ис-
пользовались только случаи, где завтрашняя цена открытия могла представ-
лять точку разворота. Поскольку факты для прогнозирования минимумов
268 ЧАСТЬ II ИССЛЕДОВАНИЕ входов в РЫНОК




Показатели обучения нейронных сетей для прогнозирования
Таблица 11—2.
нижних точек разворота
Корреляция
Название Размер Число связей Корреляция
после коррекции
76
NN1.NET 18-4-1 0,109 0,094 0,050

114 0,100
18-6-1 0,121
NN2.NET 0,025

152 0,122
18-8-1 0,146
NN3.NET 0,049

190 0,166 0,141
NN4.NET 18-10-1 0,064

228 0,137
0,167
NN5.NET 18-12-1 -0,019

304 0,148
0,185
NN6.NET 18-16-1 -0,060

380 0,188
NN7.NET 18-20-1 0,225 0,057

312 0,219 0,188
NN8.NET 18-14-4-1 0,096

486 0,166
NN9.NET 18-20-6-1 0,260
0,294

Реальное число 23900 Подразумевалось 23900 8000




Показатели обучения нейронных сетей для прогнозирования
Таблица 11—3.
верхних точек разворота
Корреляция
Название Размер Число связей Корреляция после коррекции
76 0,103
NN1.NET 18-4-1 0,088 0,035

114 0,117
NN2.NET 18-6-1 0,097 -0,022

152
18-8-1 0,138 0,116
NN3.NET 0,017

190 0,158 0,133
NN4.NET 18-10-1 0,037

228 0,138
NN5.NET 0,166
18-12-1 -0,029

304 0,166
0,197
NN6.NET 18-16-1 0,033

380 0,183
NN7.NET 0,218 0,015
18-20-1

312
NN8.NET 18-14-4-1 0,119
0,229 0,202

486
NN9.NET 0,124
18-20-6-1 0,274 0,240

Реальное число 25919 25919
Подразумевалось 8000
НЕЙРОННЫЕ СЕТИ 269
ГЛАВА 11



отстояли дальше друг от друга, резонно заключить, что избыточность в этой
выборке будет ниже. При коррекции использовались следующие эффек-
тивные размеры выборок: 23 919 фактов (исходная) и 8000 (эффективная
выборка со сниженным количеством фактов). После коррекции наилуч-
шие результаты были показаны самой большой из двух 4-слойных сетей,
вторая 4-слойная сеть также была весьма результативной. Кроме этих двух
сетей 3-слойная сеть с 10 нейронами среднего слоя также показала хоро-
шие результаты. Для тестирования торговой эффективности была выбра-
на большая сеть из 4 слоев (nn9.net) и маленькая сеть из трех слоев (nn4.net).

Прогнозирование максимумов. В табл. 11-3 приводятся показатели раз-
личных нейронных сетей, обученных на наборе из 25 919 фактов. Пока-
затели и здесь были напрямую связаны с размером сети — большее ко-
личество связей приводило к лучшему результату. После умеренной кор-
рекции коэффициентов корреляции только малая 4-слойная сеть не под-
чинилась этой закономерности, показав большую, чем ожидалось, кор-
реляцию. При более сильной коррекции (в расчете на высокую степень
излишней подгонки под исходные данные) выделялись только две 4-слой-
ные сети, причем наибольшая сеть (nn9.net) показала самую высокую кор-
реляцию. Одна из 3-слойных сетей (nn4.net) также показала достаточно
высокий результат и была отобрана для проведения собственно теста.


РЕЗУЛЬТАТЫ ТОРГОВЛИ ДЛЯ ВСЕХ МОДЕЛЕЙ

В табл. 11-4 приведены лучшие показатели, полученные для данных, на-
ходящихся в пределах выборки, а также эффективность портфеля на дан-
ных в пределах и вне пределов выборки. Приведены показатели для всех
комбинаций приказов, сетей и моделей. В таблице: ВЫБ — вид выборки
данных (В — в пределах, ВНЕ — вне пределов выборки); ДОХ% — доход-
ность в процентах годовых; Р/ПРИБ — соотношение риска/прибыли в
годовом исчислении; ВЕР — ассоциированная вероятность статистичес-
кой достоверности; СДЕЛ — число сделок на всех рынках в составе порт-
феля; ПРИБ% — процент прибыльных сделок; $СДЕЛ — средняя прибыль/
убыток со сделки; ДНИ — средняя длительность сделки в днях; ПРИБДЛ —
общая прибыль от длинных позиций в тысячах долларов; ПРИБКР— об-
щая прибыль от коротких позиций в тысячах долларов. Столбцы PI, P2, РЗ
представляют значения параметров: Р1 — пороговое значение, Р2 — но-
мер нейронной сети (согласно табл. 11-1 — 11-3), РЗ— не использовался.
Во всех случаях приведены те пороговые значения Р1, которые обеспечи-
вали максимальную эффективность в пределах выборки. Вне пределов
выборки были использованы те же значения.
Порог для обращенного во времени Медленного %К оптимизировал-
ся для каждого вида приказов с помощью прогонки параметра Р1 от 50 до
270 ИССЛЕДОВАНИЕ входов в РЫНОК
ЧАСТЬ II



Эффективность портфеля с лучшими параметрами по
Таблица 11—4.
данным выборки для каждого из тестов в пределах и вне
пределов выборки
271
НЕЙРОННЫЕ СЕТИ
ГЛАВА 11




Эффективность портфеля с лучшими параметрами по
Таблица 11—4.
данным выборки для каждого из тестов в пределах и вне
пределов выборки (продолжение)




90 с шагом 1. Для моделей прогнозирования разворотных точек порого-
вые значения прогонялись от 20 до 80 с шагом 2. В обоих случаях оптими-
зация проводилась только в пределах выборки, и лучшие параметры за-
тем использовались и в пределах, и вне пределов выборки во время тести-
рования, как и в других главах этой книги.


Результаты торговли для модели,
основанной на обращенном Медленном %К
Две выбранные нейронные сети с максимальной вероятностью устойчи-
вой работы вне пределов выборки (согласно их скорректированным кор-
реляциям) были исследованы в отношении их торговой эффективности.
Первая сеть была 3-слойной (18-6-1 нейронов), вторая 4-слойной (18-14-4-1
нейронов).
ИССЛЕДОВАНИЕ входов в РЫНОК
272 ЧАСТЬ II



Результаты для сети 18-6-1. В пределах выборки, как и ожидалось,
результаты были великолепными. Средняя сделка приносила более $6000
прибыли при всех видах входов, годовая прибыль составляла от 192,9%
(вход по цене открытия, тест 1) до 134,6% (вход по стоп-приказу, тест 3).
Такие результаты были получены на основе подгонки под данные слож-
ной модели из 114 свободных параметров. Стоит ли за этим что-то, кроме
излишней подгонки? Видимо, да. При использовании входа по стоп-при-
казу вне пределов выборки удалось получить некоторую прибыль — сред-
няя сделка принесла $362. Хотя вне пределов выборки другие виды вхо-
дов были убыточными, эти убытки были меньше, чем наблюдавшиеся при
тестировании других систем в предыдущих главах: при входе по цене от-
крытия убытки составляли только $233 в сделке, а при входе по лимитно-
му приказу (тест 2) — $331. Как это случалось и с другими моделями, вход
по стоп-приказу работал лучше,чем вход по лимитному приказу. Вне пре-
делов выборки система была прибыльна со всеми видами входов при тор-
говле только длинными позициями. Короткие позиции были убыточны со
всеми видами входов.
Эффективность системы в пределах выборки была потрясающей для
всех видов входов и на всех рынках с несколькими исключениями. Наи-
худшей была эффективность на рынке евродоллара, видимо, ввиду свой-
ственных этому рынку высоких транзакционных расходов. Слабо рабо-
тала система на рынках серебра, соевого масла, казначейских облигаций
и векселей, канадского доллара, британского фунта, золота и какао. Ви-
димо, особенности этих рынков затрудняют нейросети, поскольку осталь-
ные рынки были высокоприбыльными. Многие из этих рынков также
работали плохо с другими моделями.
Вне пределов выборки торговля была успешной для всех видов прика-
зов на рынках казначейских облигаций (неприбыльных в пределах вы-
борки), немецкой марки, швейцарского франка, иены, неэтилированно-
го бензина, золота (также неприбыльного в пределах выборки), палладия
и кофе. Многие другие рынки также были прибыльны с двумя или тремя
видами входов. При использовании входа по стоп-приказу (наилучшего в
целом) значительную прибыль приносили даже рынки S&P 500 и NYFE, а
также живого скота, соевых бобов, соевой муки и овса.
На рис. 11-1 изображен график изменения капитала для модели на
основе прогнозирования обращенного во времени Медленного %К с вхо-
дом по стоп-приказу. Как видно, капитал увеличивается в пределах вы-
борки и в течение половины периода вне выборки, после чего начинается
медленное снижение.

Результаты для сети 18-14-4-1. Эта сеть в пределах выборки работала
значительно лучше, чем вне ее пределов. В пределах выборки прибыль
варьировалась от 328,9% в год (при входе по стоп-приказу, тест 6) до 534,7%
(вход по цене открытия, тест 4). Во всех случаях средняя Прибыль в сделке
Рисунок 11-1. График изменения капитала для модели, основанной на обращенном во времени Медлен-
ном %К, нейронная сеть 18-6-1, вход по стоп-приказу.
ИССЛЕДОВАНИЕ входов в РЫНОК
274 ЧАСТЬ II



превышала $6000. Как обычно, длинные позиции были прибыльнее ко-
ротких. Вне пределов выборки все виды входов были убыточны, но, как и
в предыдущем наборе тестов, эти убытки были меньше, чем характерные
для торговых систем, описанных в других главах, т.е. ближе к $1000, чем к
$2000. Эта сеть также проводила гораздо больше сделок, чем предыдущая,
причем лучше всего работал вход по лимитному приказу (тест 5). Убытки
длинных позиций были меньше, чем коротких, за исключением входа по

<< Пред. стр.

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

ОГЛАВЛЕНИЕ

След. стр. >>