Доклады БГУИР
2014 № 8 (86)
УДК 519.711: 004.85
ПРИМЕНЕНИЕ И ОПТИМИЗАЦИЯ НЕЙРОННЫХ СЕТЕЙ ДЛЯ ПОДДЕРЖКИ ПРИНЯТИЯ РЕШЕНИЙ НА ВАЛЮТНОМ РЫНКЕ
В.А. РЫБАК, Х.М. СУЛАЙМАН
Белорусский государственный университет информатики и радиоэлектроники П. Бровки, 6, Минск, 220013, Беларусь
Поступила в редакцию 16 октября 2014
Представлены результаты исследования по разработке нейро-нечеткой системы, которая может использоваться как инструмент поддержки принятия решений на валютном рынке. В рамках данной работы создан алгоритм формирования торговых сигналов, выделены наиболее значимые технические индикаторы, сформирована обучающая выборка, спроектирована и протестирована нейронная сеть. При этом точность полученной модели превосходит линейную и квадратичную регрессию.
Ключевые слова: валютный рынок, торговые системы, нейронные сети.
Введение
Развитие современных информационных технологий позволило существенно расширить круг лиц, которые могут являться участниками валютного рынка. Сегодня каждый из нас при наличии доступа к сети Интернет может выступать в роли трейдера на глобальных мировых торговых площадках, включая Богех. Успешность осуществления сделок при этом будет зависеть от наших умений и навыков оперативно обрабатывать существенный объем различной информации, включая экономические и политические новости, котировки и технические индикаторы.
Для целей автоматизации процесса торговли часто разрабатывают и используют системы с применением нейронных сетей. При этом научной задачей является как подбор оптимальной структуры, так и формирование обучающей выборки. Решению последней проблемы и посвящена данная статья [1].
Методика эксперимента
Идея формирования обучающей выборки состоит в том, чтобы на основании ретроспективных данных попытаться предположить, каким будет курс валюты в будущем. При этом нам в любой момент доступны десятки технических индикаторов, изменяющих свое значение в зависимости от ситуации на рынке.
Одним из наиболее часто используемых индикаторов при построении механических торговых систем (МТС) является скользящая средняя (Moving Average - MA), которую используют как сигнал на покупку, если МА с меньшим периодом пересекает снизу вверх МА с большим периодом, и наоборот.
Указанный индикатор многократно доказал свою полезность в качестве инструмента поддержки принятия решений, однако для формирования обучающей выборки нам необходим выходной числовой ряд, связанный с входными значениями индикаторов, который будет представлять собой торговые сигналы.
Для формирования указанного ряда был разработан соответствующий алгоритм, блок-схема которого представлена ниже на рис. 1.
Идея данного алгоритма заключается в следующем. Имея массив значений цен за истекший период времени (С) сформируем новый массив А, элементами которого будут значения максимального отклонения от текущей цены за период Тп. При этом положительное значение будет означать возможность открытия в данной точке сделки на покупку, отрицательное - на продажу. Таким образом, задача построения МТС сводится к нахождению таких индикаторов, значения которых бы статистически значимо были связаны с торговыми сигналами. Или другими словами - если на хронологических данных ряд индикаторов был достаточно связан с ценой, можно предположить, что данная связь сохранится и в дальнейшем.
НАЧАЛО
.V—10€0;У—1; Гв=9 О
Рис. 1. Блок-схема алгоритма формирования торговых сигналов
Располагая историческими данными о котировках валют (взятых из программы MetaTrader), проведем корреляционный анализ полученного ряда торговых сигналов и разностью между скользящими средними различного периода. Результаты представлены в табл. 1, из которой видно, что для выбранных валютной пары EURUSD и четырехчасового интервала наибольший коэффициент корреляции достигается, если рассматривается разность МА с периодами 120 и 100-110. Из полученных результатов можно предположить, что дальнейшее увеличение периода вызовет еще большее увеличение связи, однако проведенные исследования показали, что при увеличении периода более 140 корреляция начинает убывать.
Исходя из сказанного выше, индикатор МА будет использоваться как один из входных параметров для нейронной сети. Однако для повышения устойчивости МТС необходимо выделить и другие индикаторы, тесно связанные с изменением цены.
Таблица 1. Коэффициенты корреляции между рядом торговых сигналов и разностью значений МА различных
периодов
Периоды 5 10 15 20 25 50 60 70 80 90 100 110 120
120 0,36 0,38 0,41 0,43 0,45 0,54 0,56 0,58 0,60 0,61 0,62 0,62 -
110 0,34 0,36 0,39 0,41 0,44 0,53 0,55 0,57 0,59 0,60 0,61 - -0,62
100 0,32 0,34 0,37 0,39 0,42 0,51 0,54 0,56 0,58 0,59 - -0,61 -0,62
90 0,29 0,32 0,34 0,37 0,39 0,49 0,52 0,54 0,56 - -0,59 -0,60 -0,61
80 0,26 0,29 0,31 0,34 0,36 0,47 0,50 0,53 - -0,56 -0,58 -0,59 -0,60
70 0,23 0,25 0,28 0,31 0,33 0,44 0,48 - -0,53 -0,54 -0,56 -0,57 -0,58
60 0,19 0,22 0,24 0,27 0,30 0,41 - -0,48 -0,50 -0,52 -0,54 -0,55 -0,56
50 0,15 0,18 0,20 0,23 0,26 - -0,41 -0,44 -0,47 -0,49 -0,51 -0,53 -0,54
25 0,05 0,07 0,09 0,11 - -0,26 -0,30 -0,33 -0,36 -0,39 -0,42 -0,44 -0,45
20 0,03 0,05 0,07 - -0,11 -0,23 -0,27 -0,31 -0,34 -0,37 -0,39 -0,41 -0,43
15 0,02 0,03 - -0,07 -0,09 -0,20 -0,24 -0,28 -0,31 -0,34 -0,37 -0,39 -0,41
10 0,01 - -0,03 -0,05 -0,07 -0,18 -0,22 -0,25 -0,29 -0,32 -0,34 -0,36 -0,38
5 - -0,01 -0,02 -0,03 -0,05 -0,15 -0,19 -0,23 -0,26 -0,29 -0,32 -0,34 -0,36
С этой целью был проведен корреляционный анализ между наиболее распространенными техническими индикаторами, используемыми трейдерами, и сформированным рядом торговых сигналов. Результат представлен в табл. 2.
Таблица 2. Коэффициенты корреляции между значениями ряда торговых сигналов и индикаторами
Обозначение Название индикатора Коэффициент
индикатора корреляции
MACD Схождение/расхождение скользящих средних (Moving Average Convergence/Divergence) -0,0795
MACD signal Сигнальная линия MACD -0,1065
MACD - signal Разность между MACD и сигнальной линией 0,0734
АС Технический индикатор ускорения/замедления (Acceleration/Deceleration, AC)
AD Индикатор накопления/распределения (accumulation/distribution, A/D) -0,2610
Alligator Аллигатор (Bill Williams' Alligator) -0,3116
Gator Гатор осциллятор (Gator Oscillator) 0,0788
ADX Индекс среднего направления движения (Average Directional Movement Index, ADX) 0,1072
ATR Средний истинный диапазон (Average True Range, ATR) 0,0055
AO Замечательный осциллятор Билла Вилльямса (Awesome Oscillator, AO) -0,0316
BearsPower Индикатор медвежьей силы -0,0164
Bands Полосы боллинджера (Bollinger Bands®, BB) -0,2950
BullsPower Индикатор бычьей силы -0,0057
CCI Индекс товарного канала (Commodity Channel Index, CCI) -0,0312
DeMarker Индикатор Демарка (DeMarker, DeM) -0,0600
Envelopes Индикатор огибающие линии (конверты, envelopes) -0,3114
Force Индекс силы (Force Index, FRC) 0,0087
Ichimoku Индикатор ишимоку кинко хайо (Ichimoku Kinko Hyo) -0,2783
MFI Индекс денежных потоков (Money Flow Index, MFI) 0,0076
OsMA Индикатор скользящей средней осциллятора (Moving Average of Oscillator) 0,0734
SAR Параболическая система SAR (Parabolic SAR, stop & revers) -0,2963
RSI Индекс относительной силы (Relative Strength Index, RSI) -0,0845
RVI Индекс относительной бодрости (Relative Vigor Index, RVI) -0,0636
StdDev Стандартное отклонение (Standard Deviation, StdDev) -0,0112
Stochastic Стохастический осциллятор (Stochastic Oscillator) -0,0179
WPR Технический индикатор процентный диапазон Вильямса (Williams' Percent Range, %R) -0,0371
Из табл. 2 видно, что наибольший по модулю коэффициент корреляции имеют следующие индикаторы: AD, Alligator, Bands, Envelopes, Ichimoku и SAR. Изменяя их параметры и временные периоды попытаемся улучшить связь со статистическим рядом торговых сигналов.
Перечень параметров индикатора AD не предполагает возможность его оптимизации. Подбор периодов и режимов работы индикатора Alligator изменили коэффициент корреляции только в третьем знаке после запятой. Оптимизация параметров индикатора Bands позволила увеличить модуль коэффициента корреляции до 0,3535 за счет подбора режима и периода (45). Не удалось существенно оптимизировать степень связи у индикатора Envelopes - подбор параметров позволил выйти на значение минус 0,31224 за счет изменения режима сигнальной линии. Несущественно - до минус 0,3136 удалось увеличить модуль коэффициента корреляции между индикатором Ichimoku и рядом торговых сигналов. Улучшить связь индикатора SAR не удалось. Для проверки на устойчивость выбранных на основании табл. 2 индикаторов в табл. 3 представлены коэффициенты корреляции их значений на графиках различных временных периодов.
Таблица 3. Коэффициенты корреляции для выбранных индикаторов на различных таймфреймах
Период AD Alligator Bands Envelopes Ichimoku SAR MA140-MA120
один час -0,1887 -0,4013 -0,3804 -0,4119 -0,4214 -0,4307 0,2721
четыре часа -0,2611 -0,4638 -0,4694 -0,4884 -0,4715 -0,4439 0,5867
один день 0,1122 -0,3219 -0,1819 -0,5647 -0,4128 -0,3114 0,5799
Анализируя представленные в табл. 3 данные, необходимо отметить изменение знака у индикатора AD на дневном графике. Этот факт требует исключения его из перечня
индикаторов, значения которых будут в дальнейшем использованы для формирования обучающей выборки и поддержки принятия решений. Для остальных индикаторов сильная статистическая связь их значений с торговыми сигналами сохранилась. При этом с учетом размера выборки (Ы = 1000) и критических значений коэффициента корреляции (0,1460) величина ошибки р составляет 0,001. То есть с вероятностью 99,9 % выявленные связи являются статистически значимыми.
Таким образом, обучающая выборка для нейронной сети будет состоять из семи рядов, первые шесть из которых будут являться входными параметрами, а седьмой - рядом торговых сигналов.
Построение нейро-нечеткой системы
Для построения нейро-нечеткой системы воспользуемся пакетом MatLab, предоставляющим возможность проектировать нейронные сети и работать с нечеткими множествами [2]. Для примера сформируем текстовый файл с тремя рядами, первые два из которых будут содержать значения технических индикаторов (Envelops и MA140-120), имеющих наибольший коэффициент корреляции, третий - торговые сигналы. Структура сгенерированной нейронной сети представлена на рис. 2.
Проведем обучение нечеткой системы на протяжении 25 итераций. Динамика обучения выводится в основном окне ANFIS-редактора: ось абсцисс соответствует итерациям алгоритма обучения, а ось ординат - значениям средней квадратичной ошибки. После настройки ошибка обучения составляет 123,6. Если увеличить число вершин второго уровня сети (inputmf, рис. 2) с трех до пяти, а количество циклов обучения установить равным 50, то ошибка обучения снизится до 104,5. Ошибка на тестовой выборке составляет 104,5.
Сравним результаты нечеткой идентификации с линейной и квадратичной регрессиями. В результате получаем модель, ошибки которой на обучающей и тестовой выборках составляют 180,5 и 156,5. Для нелинейной модели ошибки на обучающей и тестовой выборках составляют 165,5 и 143,3 соответственно.
Рис. 2. Структура сгенерированной нейро-нечеткой системы
Исследуя вопрос оптимизации структуры созданной модели с большим количеством входными сигналами следует отметить, что при прочих равных условиях искусственная нейронная сеть (ИНС) с большим количеством правил показывает лучшую точность. Это подтверждает и ИНС с шестью нейронами и 216 правилами, ошибка - 1506,9, с семью нейронами и 343 правилами - 1107,5. Однако наращивание количества правил также как и количества входных сигналов упирается в вычислительные мощности и время, требуемое для обучения системы.
Кроме количества входных параметров и структуры ИНС на точность системы существенное влияние оказывают и другие параметры, в частности, Input MF Type. Так, для предлагаемого по умолчанию типа «gbellmf» ошибка обучения (3139,8) получается выше, чем для типа «gaussmf» (2896,1), который из всего множества признан нами наиболее
оптимальным. При этом при изменении типа выходного узла с «constant» (предлагается по умолчанию) на «linear» ошибку обучения удается снизить еще больше - до 1944,6.
Из предложенных методов обучения оптимальным является «hybrid», который по сравнению "backpropa" позволяет получать более точные системы.
Заключение
Таким образом, нечеткая модель точнее линейной и квадратичной регрессий описывает зависимость торговых сигналов от значений технических индикаторов. Важно также заметить, что использование вместо простого метода решетчатого разбиения (Grid partition) метода сложной кластеризации (Sub. clustering) позволяет еще больше снизить уровень ошибки синтезированной нейро-нечеткой сети и тем самым повысить ее адекватность [3]. Проведенные нами исследования позволили выявить оптимальные параметры ИНС в рамках модели ANFIS, которая в полной мере позволяет нам создавать и эффективно использовать СППР на рынке Forex.
APPLICATION AND OPTIMIZATION OF NEURAL NETWORKS FOR DECISION
SUPPORT ON EXCHANGE MARKET
V.A. RYBAK, H.M. SULAIMAN Abstract
The results of investigation of developing neuron-fuzzy system that can be used as a decision support tool on the currency market are presented. The algorithm of trading signals forming is created, the most important technical indicators are chosen, the training selection is formed, and the neuron net is created and tested. The precision of developed model exceeds linear and quadratic regressions.
Список литературы
1. Яремчук А.В. Информационно-аналитические методы и алгоритмы поддержки принятия решений при управлении портфелем ценных бумаг на основе сценарного подхода к прогнозированию: Автореф. дис. ... канд. экон. наук. СПб, 2011.
2. Штовба С.Д. Проектирование нечетких систем средствами MATLAB. М., 2007.
3. Рыбак В.А. Методологические основы принятия решений для управления природоохранной деятельностью. Минск, 2009.