Прогнозирование валютных пар с помощью искусственной нейронной сети

УДК 519.95

ПРОГНОЗИРОВАНИЕ ВАЛЮТНЫХ ПАР С ПОМОЩЬЮ ИСКУССТВЕННОЙ НЕЙРОННОЙ СЕТИ

© О.В. Крючин, А.А. Арзамасцев

Ключевые слова: временные ряды; нейронные сети.

Статья описывает применение технологии искусственных нейронных сетей к прогнозированию временных рядов. В качестве примера временного ряда используются валютные пары. Описываются применения различных структур и приводятся сравнительные результаты.

ВВЕДЕНИЕ

Предсказание финансовых временных рядов - необходимый элемент любой инвестиционной деятельности. Сама идея инвестиций - вложения денег сейчас с целью получения дохода в будущем - основывается на идее прогнозирования будущего. Соответственно, предсказание финансовых временных рядов лежит в основе деятельности всей индустрии инвестиций - всех биржевых и небиржевых систем торговли ценными бумагами.

В 1980-е гг. идея предсказания временных рядов нашла поддержку в незадолго до этого появившейся теории динамического хаоса. Эта теория построена на противопоставлении хаотичности и стохастичности (случайности). Хаотические ряды только выглядят случайными, но, как детерминированный динамический процесс, вполне допускают краткосрочное прогнозирование. Область возможных предсказаний ограничена по времени горизонтом прогнозирования, но этого может оказаться достаточно для получения реального дохода от предсказаний [1].

О динамической системе говорят в том случае, если можно указать такой набор величин, называемых динамическими переменными и характеризующими состояние системы, что их значения в любой последующий момент времени получаются из исходного набора по определенному правилу. Это правило задает оператор эволюции системы [2]. Для случая валютных пар состояние системы характеризуется временным рядом

х

где х(ґі) - значение валютной пары в момент времени ґі . Значение валютной пары можно найти по следующей формуле:

У

где Я - оператор эволюции системы, у(п) - вычисленное значение валютной пары в момент времени ґп .

Таким образом, задачу прогнозирования временных рядов валютных пар можно свести к нахождению таких Я , I и с, чтобы величина є = \хп — уп | была минимальна. В большинстве случаев точного значения уп не требуется, достаточно определить направление изменения ряда, то есть Дуп = уп — хп—с .

ЦЕЛЬ РАБОТЫ

Целью данной работы является определение возможности прогнозирования ряда валютных пар с помощью искусственных нейронных сетей (ИНС). То есть необходимо решить следующий ряд задач:

- подобрать структуру ИНС, наилучшим образом описывающую временной ряд валютных пар (1);

- оценить адекватность ИНС при данной структуре;

- сделать вывод о возможности использования данной структуры ИНС для прогнозирования.

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

Нейросетевой анализ не предполагает никаких ограничений по характеру входной информации. Это могут быть как индикаторы данного временного ряда, так и сведения о поведении других рыночных инструментов. Недаром нейросети активно используют именно институциональные инвесторы (например, крупные пенсионные фонды), работающие с большими портфелями, для которых особенно важны корреляции между различными рынками. В отличие от теханализа, основанного на общих рекомендациях, нейросети способны находить оптимальные для данного инструмента индикаторы и строить по ним оптимальную опять же для данного ряда стратегию предсказания. Более того, эти стратегии могут быть адаптивными, меняясь вместе с рынком, что особенно важно для молодых, активно развивающихся рынков, в частности, российского.

Нейросетевое моделирование в чистом виде базируется лишь на данных, не привлекая никаких априор-

ных соображений. В этом его сила и одновременно -его ахиллесова пята. Имеющихся данных может не хватить для обучения, размерность потенциальных входов может оказаться слишком большой.

Несмотря на то, что предсказания, казалось бы, являются экстраполяцией данных, нейросети на самом деле решают задачу интерполяции (теорема Таккенса [1]), что существенно повышает надежность решения.

ФОРМИРОВАНИЕ СТРУКТУРЫ ИНС

ИНС, моделирующая ряд валютных пар, формируется следующим образом:

1. Подбирается размерность лагового пространства I, соответствующая количеству входов ИНС. Предполагается, что значение I должно находиться в диапазоне (8; 16) [3].

2. Выбирается тип структуры ИНС. Входной слой ИНС будет содержать I нейронов, выходной - 1 нейрон, количество нейронов на скрытых слоях и само количество скрытых слоев определяется конфигурацией структуры.

3. Выбираются величина разряжения С и количество валютных пар, используемых для обучения N. Значение N — I соответствует количеству строк обучающей выборки, поэтому оно обусловливается количеством весовых коэффициентов [4].

4. Измеряются значения котировок в моменты

їс = ^с'^с >^3с N+1 )с )  х = (х0, Х1,--’^+г—1 ) .

5. Формируется матрица входных данных X и вектор выходных Б , где

Х = Г %—I—1 Х

N—I—1 -*-N—1

^—I—2 ^N—1—1

... Хх

Л^N—3

Ч—1

Б

N—2

4+1

6. При помощи какого-либо метода обучения производится подбор весовых коэффициентов ИНС.

Надо заметить, что не существует однозначного способа выбора размерности лагового пространства и величины разряжения, более того, различные значения имеют свои преимущества и недостатки. Для используемой в данной работе валютной пары %рЪ]ру (отношение британского фунта к японской йене), изображенной на рисунке 1, были подобраны следующие параметры: I = 12, С =15, 20, 60.

х

х

х

2

х

N —1

Рис. 1. График отношения британского фунта к японской йене

МНОГОСЛОЙНЫЙ ПЕРСЕПТРОН

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

N1 —1

= Т (NNiNNi—'

:),

где NL - количество слоев, NNi - количество нейронов на і-ом слое, Такая структура изображена на рис. 2. В данном случае ИНС состоит из трех слоев, на первом из которых 2, на втором 3, а на третьем 1 нейрон. По формуле можно получить количество связей - 9.

Матричная структура является универсальной, т. е. применимой почти к любой задаче.

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

/

к=1

1=1

где Я к и к^к - некоторые функции одной переменной.

Теорема Хехт - Нильсена доказывает представимость функции многих переменных достаточно общего вида с помощью двухслойной нейронной сети с прямыми полными связями с п нейронами входного слоя, (2п + 1) нейронами скрытого слоя с заранее известными ограниченными функциями активации (например, сигмоидальными) и т нейронами выходного слоя с неизвестными функциями активации. Важным следствием из теоремы Хехт - Нильсена является представимость любой многомерной функции нескольких переменных с помощью нейронной сети фиксированной размерности. Неизвестными остаются следующие характеристики функций активации нейронов. Про функции активации нейронов выходного слоя из теоремы Хехт - Нильсена известно только то, что они представляют собой нелинейные функции общего вида. В одной из работ, продолжающих развитие теории, связанной с рассматриваемой теоремой, доказывается, что функции активации нейронов выходного слоя должны быть монотонно возрастающими. Это утверждение в некоторой степени сужает класс функций, которые могут использоваться при реализации отображения с помощью двухслойной нейронной сети. На практике требования теоремы Хехт - Нильсена к функциям активации удовлетворяются следующим образом. В нейронных сетях как для первого (скрытого), так и для второго (выходного) слоя используют сигмоидальные передаточные функции с

•.V

Рис. 2. Структура многослойного персептрона

Рис. 3. Многослойный персептрон, используемый для прогнозирования

настраиваемыми параметрами. То есть в процессе обучения индивидуально для каждого нейрона задаются максимальное и минимальное значения, а также наклон сигмоидальной функции. Таким образом, из объединенной теоремы Колмогорова - Арнольда - Хехт - Нильсена следует, что для любого алгоритма существует НС, которая его реализует. Что говорит о том, что НС является универсальным вычислительным средством для аппроксимирования функций. [1]

Таким образом, на скрытом слое должно быть более чем в 2 раза больше нейронов, чем на входном и для 12 входов следует использовать структуру, изображенную на рис. 3.

СЕТЬ ВОЛЬТЕРИ

Сеть Вольтери - это динамическая сеть для нелинейной обработки последовательности сигналов, задержанных относительно друг друга. Возбуждением для сети в момент п служит вектор

Х = |хп,Хп_ ,...,Хп_1 ]" , где - количество единичных задержек, а 1( +1 означает длину вектора. В соответствии с определением ряда Вольтери выходной сигнал у генерируется по формуле:

L

2=1

Рис. 4. Сеть Вольтери

У(п) = 2 wh x(n —1) +

,1=1

LL

+ 22Whh X

+

ll ll2 1 LL

2............2 Wj i2 ...,ik x

где x обозначает входной сигнал, а веса w, , w, j ,..., w, j к и т. д., называемые ядрами Вольте-

ри, соответствуют реакциям высших порядков. Порядок этого полинома также называют степенью ряда Вольтери [б].

Для описания ряда Вольтери с задержкой равной З и степенью ряда 2 необходима структура, изображенная на рисунке. На вход i-го нейрона входного слоя

подается x, mod lt , Т. е. при Задержке З xi mod З

Формула вычисления выходного значения нейрона также отлична от формулы, применимой к матричной сети. Выходной значение нейрона, стоящего в i-ом слое на j-ой позиции, можно вычислить следующим

образом:

У,,

x

jmodl

I f

+ W

i, j, jmodlt

где j - входное значение активационной функции

нейрона (результат, полученный сумматором). Значения всех весовых коэффициентов равны 1 и, следовательно, ^1 = Т у—1 2к . Алгоритм обучения в данном

к=0

случае подбирает именно ядра Вольтери, т. е. они фактически выступают в роли весовых коэффициентов и в большинстве случаев при описании сети Вольтери под весовыми коэффициентами понимаются именно ядра. Количество нейронов на і-ом слое можно вычис-

, N, —i—1

лить по формуле NNi = lt L , а количество весо-

nl —1

вых коэффициентов (ядер) L = 2 Nn, . Степень

ряда рекомендуется равной 3, что соответствует ИНС с четырьмя слоями.

РЕЗУЛЬТАТЫ ТЕСТИРОВАНИЯ

Тестирование проводилось следующим образом:

1. Был взят некий момент времени ? = ?0 .

2. По описанному выше алгоритму была сформирована обучающая выборка.

3. Методом обратного распространения ошибки были подобраны весовые коэффициенты.

4. На вход ИНС была подана строка данных (х^ _1+1 ,хы _1+2 ,..,хы ) и получено выходное значение

уы+\ .

5. Было вычислено приращение

А%+1 = Уы+\ _ Хн и вычислено ст = Ду^+1Дх^+1 = = Ду^+1 (х^+1 _ хм ). В случае адекватности должно выполняться условие:

а > 0.

6. Момент времени / был сдвинут ґ = ґ + с .

7. Переход к шагу 2.

На рис. 5 и 6 изображены результаты, полученные после обучения матричной сети и сети Вольтери. Серым цветом показаны реальные выходные данные х , а черным (тонким на рис. 5 и жирным на рис. 6) - выходные данные, вычисленные ИНС у . Как можно видеть, ряд уУ , вычисленный сетью Вольтери, почти полностью совпадает с реальным рядом, в то время как ряд ум , вычисленный матричной сетью, выглядит отраженным по отношению к реальному ряду. На основе этого ряда был построен ряд

Пм= (Пм 0,Пм VПм 2,...’ Пм N—1 ), элементы кот°р°го получены следующим образом цм- = таху —

—умі + тіпум , изображенный на рис. 5 жирным

черным цветом. Таким образом, для сравнения адекватности матричной сети и сети Вольтери следует сравнить следующие ряды х = (х0х1.. ,хы^—1),

уу = (уу 0, уУ 1,..’ уУ N—1 ) и Пм = (пм 0,Пм 1,”’Пм«—1 ).

Можно заметить два основных различия между уУ и пм . Первое заключается в том, что ряд цм более

гладкий и похож на результат аппроксимации ряда х . Второе отличие заключается в эффекте запаздывания, явно наблюдаемого на рис. 5. Это значит что адекватность данной сети невысока. На рис. 6 также наблюдается запаздывание ряда уУ по сравнению с рядом х, но менее явное. Таким образом, приведенные данные говорят о том, что сеть Вольтери лучше подходит для прогнозирования котировок. Это подтверждается и значениями ст: при использовании матричной сети неравенство (7) выполняется в 51-54 % случаев, а при использовании сети Вольтери - в 63-69 %.

+

)

1=1

Рис. 5. Результат прогнозирования котировок с использованием матричной сети

Рис. б. Результат прогнозирования котировок с использованием сети Вольтери

ВЫВОДЫ

Исходя из приведенных выше данных, можно сделать вывод, что ИНС структуры Вольтери, имеющая четыре слоя и 12 входов, определяет правильное направление изменения котировок в 67 % случаев и может быть успешно использована для прогнозирования валютных пар.

ЛИТЕРАТУРА

1. Предсказание финансовых временных рядов. ЦЕ.Ь: Ьир://агис1е$. mq14.com/ru/542

2. Кузнецов С.П. Динамические системы и хаос. М., 1994.

3. Козадаев А. С. Прогнозирование временных рядов с помощью аппарата искусственных нейронных сетей // Инновационные технологии обучения: проблемы и перспективы: сб. науч. тр. Всерос. науч.-метод. конф., 29-30 марта 2008 г. Липецк: ЛГПУ, 2008. С. 120-123.

4. Козадаев А. С. Предварительная оценка качества обучающей выборки для искусственных нейронных сетей в задачах прогнозирования временных рядов // Вестн. Тамб. ун-та. Сер. Естеств. и техн. науки. Тамбов, 2008. Т. 13. Вып. 1. С. 99-100.

5. Бахметова Н.А., Токарев С.В. Моделирование технологических процессов с помощью нейронных сетей // Современные наукоемкие технологии. 2008. № 2. С. 139.

6. Осовский С. Нейронные сети для обработки информации. М.: Финансы и статистика, 2002. 165 с.

Поступила в редакцию 15 сентября 2009 г.

Kryuchin O.V, Arzamastsev A.A. Forecasting of currency pairs by means of an artificial neural network. Article describes application of technology of artificial neural networks to forecasting of time numbers. As an example of a time number currency pairs are used. Applications of various structures are described and comparative results are cited.

Key words: time numbers; neural networks.