ПРОГНОЗИРОВАНИЕ ДВИЖЕНИЯ ЦЕНЫ С ПОМОЩЬЮ НЕЙРОННЫХ СЕТЕЙ Дэмбэрэлсурэн Н. Научный руководитель: д.ф.-м.н., профессоор Степанов С.Е. Финансовый университет при Правительстве Российской Федерации Цель описываемого исследования – изучение нейронных сетей и их практического применения на финансовом рынке. В процессе исследования были рассмотрены все основные компоненты, необходимые для функционирования нейронной сети, и написана программа, использующая нейронные сети, а в качестве входных данных были выбраны показатели индикатора 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