Общие понятия Выбор брокера Анализ рынка Торговые стратегии Книги по Forex
Общие понятия
Биржа Форекс
Игра на бирже
Валютный трейдинг
Управление валютным портфелем
Как стать трейдером
Выбор брокера
Брокерское обслуживание
Как выбрать брокера Форекс
Лучшие дилинговые центры
Анализ рынка
Технический анализ
Японские свечи
Индикатор Ишимоку
Волны Вульфа
Полосы Боллинджера
Скользящие средние
Линия тренда
Фундаментальный анализ
Механические торговые системы
Оценка эффективности механических торговых систем
Торговые сигналы
Лучшие
дилинговые центры:
Дилинговый центр EXNESS
Дилинговый центр Forex4you
Дилинговый центр Alpari

Модели на основе точки разворота

Для работы таких моделей требуются два дополнительных набора фактов, идентичных фактам для обращенного во времени Медленного %К во всем, кроме целевого параметра. Цель первого набора равна 1, что обозначает нижнюю точку разворота (минимум), когда завтрашняя цена открытия ниже цен трех предыдущих и десяти последующих дней. Если это условие не выполняется, то значение цели приравнивается к 0. Целью второго набора является 1, т. е. максимум, являющийся точкой разворота в случае, если завтрашняя цена открытия выше цен трех предыдущих и десяти последующих дней. Если это условие не выполняется, то значение цели приравнивается к 0. Если считать, что на рынке присутствуют устойчивые модели, то нейронная сеть должна иметь способность усваивать их и предсказывать положение завтрашней цены открытия.

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

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

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

// запись фактов в файл
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) минимумов. При записи фактов вместо значения Медленного %К записываются значения цели. Во втором блоке вводятся правила для сравнения выхода нейронной сети с соответствующим порогом и генерации собственно сигналов входа в рынок. В обоих блоках включен код, препятствующий записи фактов и использованию прогнозирования в случае, когда завтрашняя цена открытия не может образовать минимум согласно правилам. В коде ниже приведены аналогичные правила прогнозирования максимумов.

// записываем факты в файл
for(cb = 1; cb <= nb; cb++) {
if(dt[cb] < IS_DATE) continue; // период анализа
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. Как и в случае с нейронной сетью, обучавшейся прогнозированию обращенного во времени Медленного %К, между числом связей в сети и множественной корреляцией выхода с целью наблюдалось растущая связь; т. е. корреляция была выше для более крупных сетей. Сеть, в общем, обучалась на наборе из 23900 фактов, что меньше, чем сеть для прогноза обращенного Медленного %К. Различие в количестве фактов объясняется тем, что использовались только случаи, где завтрашняя цена открытия могла представлять точку разворота. Поскольку факты для прогнозирования минимумов отстояли дальше друг от друга, резонно заключить, что избыточность в этой выборке будет ниже. При коррекции использовались следующие эффективные размеры выборок: 23919 фактов (исходная) и 8000 (эффективная выборка со сниженным количеством фактов). После коррекции наилучшие результаты были показаны самой большой из двух 4-слойных сетей, вторая 4-слойная сеть также была весьма результативной. Кроме этих двух сетей 3-слойная сеть с 10 нейронами среднего слоя также показала хорошие результаты. Для тестирования торговой эффективности была выбрана большая сеть из 4 слоев (nn9. net) и маленькая сеть из трех слоев (nn4.net).


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


Далее

Вернуться к оглавлению

Торговые стратегии
Скальпинг
Стратегия "Середина"
Позиционная среднесрочная
Система ATCF
Стратегия по Moving Average, ADX и Фракталам
Стратегия разворотного периода
Стратегия "теней"
Стратегия "Серфинг"
Стратегия Trend Finder Daily
Стратегия на внутреннем баре
Скальпинг M1 GBPJPY
Стратегия "4 средних"
Торговая стратегия The Bat
Книги по Forex
А.Фарлей "Мастерство свинг-трейдинга"
B. Сафонов "Практическое использование волн Эллиотта в трейдинге"
Кац Дж.О., МакКормик Д.Л. "Энциклопедия торговых стратегий"
Лучшие
дилинговые центры:
Дилинговый центр EXNESS
Дилинговый центр Forex4you
Дилинговый центр Alpari
Торговые стратегии