УДК 004.8
ПРОГНОЗИРОВАНИЕ ВАЛЮТНОГО КУРСА EUR/USD С ИСПОЛЬЗОВАНИЕМ НЕЙРОННЫХ СЕТЕЙ
© 2012 А. В. Абрамов
аспирант каф. программного обеспечения и администрирования информационных систем e-mail: A bramov. saracin@yandex. ru
Курский государственный университет
Валютный рынок FOREX сегодня является сферой интересов не только крупных компаний, но и многочисленных трейдеров, основная цель деятельности которых -получить прибыль. Основополагающим фактором успеха в этом деле является предсказание будущих котировок. В статье рассматривается нейросетевая модель прогнозирования валютного курса EUR/USD, приводится описание комбинированного алгоритма обучения.
Ключевые слова: валютный курс, прогнозирование, нейронные сети, алгоритм имитации отжига.
В последнее время тема «игры» на международном рынке FOREX стала весьма популярной в обществе. В сети Интернет сегодня можно найти множество предложений от брокерских компаний, которые предоставляют клиенту возможность стать участником рынка и получать прибыль от сделок. Без соответствующих инструментов и методов прогнозирования будущих значений валютного курса шансы на успех в данном виде деятельности весьма малы. Ранее было показано, что использование нейронных сетей в подобных задачах обладает рядом неоспоримых достоинств [Абрамов 2011].
Предлагаемая методика прогнозирования состоит из четырех основных этапов:
- предварительный анализ финансового ряда;
- построение нейросетевой модели;
- обучение нейронной сети по комбинированному алгоритму;
- прогнозирование с помощью обученной нейронной сети.
В качестве прогнозируемого временного ряда в рамках данной статьи выбран финансовый ряд котировок валютного курса EUR/USD, содержащий ежедневные цены закрытия [Архив котировок 2012]. Известно, что в качестве входных и выходных параметров нейронной сети не следует выбирать сами значения котировок C(t). Действительно значимыми для прогнозирования являются их изменения. В силу того, что эти изменения в большинстве случаев «гораздо меньше по амплитуде, чем сами котировки, между последовательными значениями курсов имеется большая корреляция - наиболее вероятное значение курса в следующий момент равно его предыдущему значению» [Ежов 1998: 153].
Наличие таких статистических взаимосвязей в обучающем наборе данных приводит к низкому качеству обучения сети. Для устранения подобного рода корреляций при подготовке входных данных логично выполнить над значениями котировок некоторые преобразования, например вычислить изменения котировок
АС = C(t) - С(t -1)
(1)
или логарифм относительного приращения
С„ = ыСС-)). (2)
Рассмотрим график курса БИЯ/ИЗБ с 03.01.2000 по 14.05.2012 (рис. 1) [Архив котировок 2012]. Очевидно, значения котировок ограничены снизу значением 0.8, а сверху 1.6. Вычтя из каждого значения 0.7, мы получим числовой ряд, все значения которого одного порядка и лежат в диапазоне (0;1). Данная историческая особенность котировок БИЯ/ИЗБ позволяет не применять к исходному ряду преобразования (1) или (2), а воспользоваться более простой формулой для получения входных данных нейронной сети:
= С, - 0.7, (3)
где xj - входное значение, С; - исходное значение котировки.
Рис. 1. График валютного курса ЕТЖ/иЗБ
Известно, что Европейский центральный банк (ЕЦБ) имеет большое количество финансовых рычагов и оказывает наиболее существенное влияние на курс валюты Еврозоны. Наиболее важным финансовым инструментом ЕЦБ является процентная ставка, при помощи которой регулируются инфляционное давление и темпы экономического роста. Для улучшения качества прогноза данные процентной ставки ЕЦБ добавлены в обучающее множество наряду с котировками БИК/ИББ.
Для решения задачи прогнозирования временного ряда 1к, где k = 0,1,..., могут
использоваться нелинейные модели вида 2к+\ = Р(гк,..., гк_п+1), где Р(гк,..., гк_п+1) -
некоторая нелинейная функция; +1 - прогнозируемое значение ряда; гк,..., 2к_п+х -
наблюдаемые значения (предыстория ряда); п - порядок модели.
Возможность использования нейронных сетей в прогнозировании временных рядов основывается на теореме об универсальной аппроксимации, которая утверждает, что многослойного персептрона с одним скрытым слоем достаточно для построения равномерной аппроксимации с точностью £ для любого обучающего множества, представленного набором входов (хх,х2,...,хп) и желаемых откликов /(хх,х2,...,хп). Однако из теоремы не следует, что один скрытый слой является оптимальным с точки
зрения времени обучения, простоты реализации, а также качества обобщения [Хайкин 2006].
Для прогнозирования финансового ряда в рамках данной статьи использована полносвязная нейронная сеть, в которой каждый нейрон предшествующего слоя имеет связи со всеми нейронами последующего слоя. Пусть на нейрон у поступает поток сигналов от нейронов, расположенных в предыдущем слое, тогда индуцированное локальное поле (^. }(и), полученное на входе функции активации, связанной с данным нейроном, вычисляется по формуле
где m - общее число входов нейрона у, }(и) - синаптический вес, связывающий
выход нейрона і со входом нейрона у на итерации п, (уі)(п) - значение, генерируемое на выходе нейрона і на итерации п. Функциональный сигнал (у }(и) на выходе нейрона у на итерации п равен:
где р^ - функция активации у-го нейрона. Функция активации - непрерывно
дифференцируемая нелинейная функция. В качестве функции активации выбрана функция гиперболического тангенса:
где s - индуцированное локальное поле. Используемая в данной работе сеть содержит 10 входных нейронов, 20 нейронов в скрытом слое и один выходной нейрон. На первые пять нейронов входного слоя подаются цены закрытия EUR/USD в хронологическом порядке, а на оставшиеся нейроны подаются значения процентной ставки ЕЦБ соответственно датам котировок.
Для обучения нейронной сети используется комбинация алгоритма обратного распространения ошибки и метода Simulated Annealing (имитация отжига, модельная закалка, далее - SA-алгоритм). Данный метод впервые был разработан Скоттом Киркпатриком в середине 70-х и предназначался для оптимизации проектирования интегральных схем [Heaton 2008]. Идея алгоритма была позаимствована из процесса отжига в металлургии, использующегося для повышения однородности и прочности металла. Данный процесс заключается в нагревании металла до определенной температуры и последующего медленного охлаждения, приводящего к повторной кристаллизации вещества. При высоких температурах атомы обладают высокими уровнями энергии и степенями свободы, что увеличивает их способность к реструктуризации. Последующее медленное охлаждение создает возможность для формирования более прочной и стабильной кристаллической решётки.
В соответствии с физическим процессом SA-алгоритм пытается заменить текущее решение задачи случайным решением с вероятностью, зависящей от разности значений целевой функции начального и нового решения и параметра, условно называемого температурой.
Допускается, что система может перейти в состояние с меньшим значением целевой функции из состояния с большим значением с вероятностью тем большей, чем
(4)
(5)
(6)
больше температура, которая медленно понижается на каждом шаге оптимизации. По завершению процесса система «застывает» в состоянии с минимальной температурой. На рисунке 2 представлена схема БЛ-алгоритма в общем случае.
Рис. 2. Блок-схема БЛ-алгоритма
В реализации SA-алгоритма, предназначенной для обучения нейронных сетей, под решением понимается набор весовых коэффициентов нейронов, а в качестве целевой функции выступает функция ошибки сети [Heaton 2008]. Шаг изменения температуры вычисляется по формуле
ln(b )
e
c—1
(7)
где Ь - начальная температура, е - конечная температура, с - количество циклов. В рамках данного эксперимента выбраны следующие параметры: Ь=10; е =2; с = 100.
Идея комбинирования алгоритмов заключается в следующем: обучение
начинается с помощью алгоритма обратного распространения ошибки, как только ошибка перестает уменьшаться в течение определенного количества итераций, происходит переключение на БЛ-алгоритм, который пытается решить проблему локального минимума, затем процесс снова возвращается к алгоритму обратного распространения ошибки. Обучение заканчивается после достижения целевого значения ошибки сети.
Для обучения сети были выбраны цены закрытия пары ЕЦКУиЗБ с 19.03.2008 по 01.05.2012 [Архив котировок 2012] и соответствующие им процентные ставки ЕЦБ [Ставка ЕЦБ 2012]. Эксперимент проводился с помощью программы, разработанной на языке С#, в которой для ускорения работы предусмотрен запуск процессов обучения и прогнозирования в отдельных потоках. В результате нескольких попыток удалось обучить нейронную сеть с ошибкой 3,5%. Процесс тренировки прошел за 3488 итераций. График зависимости величины ошибки от номера шага обучения приведен на рисунке 3.
о.з
0.25
0.2
0.15
0.1
0.05
0 500 1000 1500 2000 2500 3000 3500
---Алгоритм обратного распространения ошибки ♦ БА-алгоритм
Рис. 3. Зависимость ошибки от номера итерации
Точками отмечены места переключения алгоритма обратного распространения ошибки на БЛ-алгоритм. Как видно из графика, комбинация указанных методов в данном случае оправдала себя и обеспечила сходимость процесса тренировки нейронной сети.
В качестве проверочного множества нейронной сети были выбраны цены закрытия ЕЦК/иЗБ с 02.05.2012 по 10.05.2012 [Архив котировок 2012]. Результат прогнозирования цен указанного периода с помощью обученной нейронной сети приведен на рисунке 4. Среднеквадратичная ошибка прогноза составила 7,3%. В трех случаях из шести нейронная сеть верно предсказала направление движения дневной цены, а также правильно предсказала нисходящий недельный тренд.
1.34 -1-------------------------------------------------------------
1.2 -I------------------------------------------------------------------
01.05.2012 03.05.2012 05.05.2012 07.05.2012 09.05.2012 11.05.2012
—•—Реальный курс Прогноз
Рис. 4. Прогноз нейронной сети
В целом точность прогноза в данном эксперименте недостаточно высока для принятия серьезных решений в реальной торговле, однако полученный результат может быть улучшен за счет более глубокого анализа исходного финансового временного ряда и тщательной подготовки входных данных, использования так называемых «комитетов» сетей и более содержательных экономических индикаторов. Применение нейронных сетей в задачах прогнозирования имеет большой потенциал, который ещё только предстоит раскрыть.
Библиографический список
Абрамов А. В. Перспектива применения нейронных сетей для прогнозирования валютного рынка FOREX // Применение инновационных технологий в научных исследованиях: сб. науч. ст. по материалам Междунар. науч.-практ. конф. / редкол.: А. В. Филонович (отв. ред.) [и др.]. Курск: Юго-Зап. гос. ун-т, 2011. С. 194.
Архив котировок [Сайт]. URL: http://www.fibo.ru/trader/download_quotes.html (дата обращения 20.05.2012).
Ежов А. А., Шумский С. А. Нейрокомпьютинг и его применения в экономике и бизнесе. М.: МИФИ, 1998. 224 с.
Ставка ЕЦБ [Сайт]. URL: http://quote.rbc.ru/macro/indicator/22/169.shtml (дата
обращения 20.05.2012).
Хайкин С. Нейронные сети: полный курс, 2-е изд.: пер. с англ. М.:Издательский дом «Вильямс», 2006. 1104 с.
Heaton J. Introduction to Neural Networks for C#, 2 Ed., 1st printing, Heaton Research, Inc, 2008. 428 p.