ПРОГНОЗИРОВАНИЕ ДВИЖЕНИЯ ЦЕНЫ С ПОМОЩЬЮ

реклама
ПРОГНОЗИРОВАНИЕ ДВИЖЕНИЯ ЦЕНЫ
С ПОМОЩЬЮ НЕЙРОННЫХ СЕТЕЙ
Дэмбэрэлсурэн Н.
Научный руководитель:
д.ф.-м.н., профессоор Степанов С.Е.
Финансовый университет при Правительстве
Российской Федерации
Цель описываемого исследования – изучение нейронных сетей и их
практического применения на финансовом рынке. В процессе исследования
были
рассмотрены
все
основные
компоненты,
необходимые
для
функционирования нейронной сети, и написана программа, использующая
нейронные сети, а в качестве входных данных были выбраны показатели
индикатора
RSI.
Затем
была
проведена
верификация
эффективности
использования нейронной сети на основе ценовых данных за 2011–2012 годы.
Введение и основные определения
С каждым днем растет производительность компьютеров и расширяется
сфера их применения. Созданы компьютеры, которые способны обучаться,
понимать речь человека, анализировать данные и делать определенные выводы.
Нас будет интересовать возможность применения компьютеров в торговле на
финансовых рынках. Для этой цели лучше использовать так называемые
«нейронные сети», хорошо справляющиеся с задачей распознавания.
Рассмотрим
самую
простую
модель,
называемую
перцептроном.
Искусственная нейронная сеть – это математическая модель, программная или
аппаратная
реализация
которой
похожа
по
принципу организации
и
функционирования на биологические нейронные сети, т.е. сети нервных клеток
живого организма. Устройство простейшей нейронной сети можно видеть на
рис.1.
1
Рис. 1. Самая первая модель нейронной сети.
Множество входных сигналов, обозначенное через x1, x2,…, xn, или в
совокупности через вектор X, поступает на искусственный нейрон. Каждый
сигнал умножается на соответствующий вес w1, w2,…, wn и поступает на
суммирующий блок Σ. Суммирующий блок складывает взвешенные входы
алгебраически, создавая выход NET. Далее сигнал NET, как правило,
преобразуется активационной функцией F (рис.2) и дает выходной нейронный
сигнал OUT.
Если блок F сужает диапазон изменения величины OUT так, что при любых
значениях NET значения OUT принадлежат некоторому конечному интервалу,
то F называется сжимающей функцией.
Рис. 2. Искусственный нейрон с активационной функцией.
В качестве сжимающей функции часто используется гиперболический
тангенс (рис.3):
( )
2
.
Рис. 3. Сжимающий гиперболический тангенс.
Формулировка и решение задачи
Наблюдая за прошлыми ценами финансового инструмента и значениями его
технических индикаторов, для покупки или продажи контракта мы пытаемся
предсказать будущую ситуацию с ценой или направление движения цены. При
этом мы должны быть уверены в том, что способ принятия нашего решения
отличается от подбрасывания монетки. Нейронная сеть попытается распознать
комбинацию значении индикатора и оценить шансы повышения или понижения цены инструмента.
Для реализации нами использована торговая платформа MetaTrader. Она
содержит встроенный язык программирования MQL, с помощью которого и
создана нейронная сеть. Для начала прогнозирования финансовых временных
рядов нужно определиться с тем, какие данные следует передавать на вход и
что нужно получить в итоге.
Входными данными для нейронной сети стали показания индикатора RSI
последних 10 баров, т.е в сети 10 нейронов. Изначально все весовые
коэффициенты нашей нейронной сети имели значения, равные 0,5.
3
Рис. 4. Технический индикатор RSI.
В качестве активационной функции был использован гиперболический
тангенс: его выходное значение сети находится в промежутке от –1 до 1. После
расчета выходного значения программа выдавала решение:
 если выходное значение меньше 0, то цена пойдет вниз;
 если выходное значение больше 0, то цена пойдет вверх.
На основе этого программа делала вывод о том, продавать или покупать
финансовый инструмент.
Проблема обучения сети
Для того, чтобы нейронная сеть умела правильно распознавать, необходимо
сначала обучить ее. Обучение сети проходит таким образом (рис. 5):
Рис.5. Обучение нейронной сети.
4
Весовые коэффициенты сети должны изменяться до тех пор, пока ошибка
распознавания не станет минимальной. Это означает, что при неотрицательном
выходном значении цена в будущем двигается вверх, а при отрицательном –
двигается вниз. Следует сказать, что нельзя достичь 100% точности
распознавания, всегда будут присутствовать некоторые погрешности. Процесс
обучения – процесс достаточно затратный и требует большого времени.
Поскольку программа делает определенные выводы и умеет проводить
покупку,
продажу
и
закрывать
открытую
позицию
(при
появлении
противоположного сигнала открытой позиции), то можно воспользоваться
тестером стратегии для обучения сети (рис.6).
Также есть возможность изменять некоторые параметры программы:
значения весовых коэффициентов менялись в диапазоне от –1 до 1 с шагом 0,1.
Оказывается, имеет место 166798809978201 возможная ситуация! В тестере
стратегий будут все возможные комбинации со всеми результатами. Нами был
выбран результата, доставляющий наибольшую прибыль (рис.7).
Рис.6. Оптимизация в тестере стратегий.
5
Рис.7. Результат оптимизации.
Анализ эффективности.
Далее был проведен сравнительный анализ программ (рис.8). Обе
программы
используют
один
и
тот
же
технический
индикатор
для
прогнозирования движения цены. Слева – данные обычной программы, а
справа – данные программы, которая использует нейронную сеть. Как видно из
сравнения, прибыль программы, которая использует нейронную сеть, в три раза
больше!
Рис.8 Сравнение двух программ.
6
Для изучения возможности нейронной сеть в настоящем иследовании
исполльзуется лишь один простой технический индикатор. Для улучшения
стратегии торговли можно использовать и другие методы управления рисками
и закрытия позиции. При этом совершенно различные макроэкономические
показатели (даже новости!) вполне применимы в качестве входного сигнала
нейронной сети.
7
Скачать