- •Применение нейросетевых алгоритмов к анализу финансовых рынков.
- •1. Краткое описание задачи прогнозирования краткосрочных и долгосрочных тенденций финансовых рынков.
- •2. Краткое описание задачи оптимального распределения свободных средств банка между различными финансовыми рынками и их инструментами.
- •3.Поступление данных в систему.
- •4. Выбор и подготовка данных для участия в прогнозе.
- •5. Прогнозирование тенденций финансовых рынков.
- •5.1. Линейный анализ при прогнозировании.
- •5.2. Нелинейный анализ при прогнозировании.
- •6.Задача оптимального распределения свободных средств банка.
5. Прогнозирование тенденций финансовых рынков.
Стандартная методика работы с уже спроектированными нейросетями состоит в их обучении на некоторой выборке и дальнейшем длительном (по мере возможности) использовании результатов этого обучения. Мы решили изменить методику по следующим причинам: финансовые рынки очень динамичная, быстроменяющаяся система, поэтому нет смысла в обучении системы на выборке большого объема, на практике объем выборки редко превышает 20-25 рабочих дней. В связи с вышесказанным, обучение нейросети при условии оптимизации стандартных алгоритмов и наличии аппаратного обеспечения высокой вычислительной мощности занимает считанные секунды, поэтому в нашей системе обучающая выборка для каждого прогноза формируется "с нуля", "наследоваться" могут лишь настройки по выбору критериев и выполняемые с ними преобразования, набор функций, использующийся для аппроксимации зависимости, алгоритмы, использующиеся при обучении.
Второй особенностью предметной области является в общем случае достаточная линейность зависимости прогнозируемой величины от критериев. Объясняется это на наш взгляд не только объективными причинами (линейностью оказываемого влияния одной величины на другую), но и субъективными, так как аналитику легче уловить и проверить с помощью математических методов именно линейные зависимости. Вышесказанное утверждение проиллюстрировано на рисунках 2 и 3. Как видно из рисунков, при применении только линейной аппроксимации получается значительная по нашему мнению погрешность, особенно, как показала практика, для рынка акций и валютного рынка, вследствие их большей динамичности и неуправляемости. Поэтому процедура прогноза в нашей системе состоит из двух этапов: на первом этапе происходит аппроксимация искомой зависимости линейной функцией, а на втором происходит аппроксимация погрешности первого этапа с помощью нелинейной функции.
Рис.2
Рис. 3
5.1. Линейный анализ при прогнозировании.
Цель данного этапа - прогноз "в первом приближении".
В случае невырожденной модели используется метод наименьших квадратов (МНК). В случае же когда модель вырождена, используется метод гребневой оценки.
За время эксплуатации погрешность линейного анализа не превышала:
1) для рынка облигаций при прогнозировании цен 1%, доходности - 4%;
2) для рынка акций при прогнозировании цен 3,5%;
3) для валютного рынка - 5%.
На наш взгляд, полученные результаты линейного анализа далеки от желаемой точности, поэтому следующим этапом стал нелинейный анализ погрешности линейного анализа.
5.2. Нелинейный анализ при прогнозировании.
В качестве оценки работы системы при проведении нелинейного анализа применяется метод наименьших квадратов.
Этапы проведения нелинейного анализа в нашей системе совпадают со стандартными шагами при работе с нейросетями.
1 этап. Подготовка выходных данных.
Выходными данными являются: zi=yi-pi, где yi- реальное значение прогнозируемой величины на некоторую дату, pi- расчитанное на эту дату с помощью линейного анализа.
2 этап. Преобразование входных сигналов.
xij*=(xij-M(Xi))/(Xi), где xij- j-я координата некоторого критерия Xi, M(Xi) - выборочная оценка математического ожидания,(Xi) - выборочная оценка среднего квадратичного отклонения.
3 этап. Выбор функций, участвующих в аппроксимации зависимости, из следующего набора функций:
n
- f(x,a)=c1/(c2+((ai*xi))m), где m - четное, с1<>0, c2>0;
n i=1
- f(x,a)=COS((ai*xi));
ni=1
- f(x,a)=SIN((ai*xi));
ni=1 n
- f(x,a)=(ai*xi)m-1*c1/(c2+((ai*xi))m), где m - четное, с1<>0, c2>0;
i=1 n i=1
- f(x,a)=c1/(c2+EXP(-(ai*xi))), где с1<>0, c2>= 1;
n i=1
- f(x,a)=c1/LN(c2+((ai*xi))m), где m - четное, с1<>0, c2>0;
i=1
xi (i=1,...,n) - значение i-го критерия на некоторую дату; ai (i=1,...,n) - параметр при i-ом критерии; c1, c2- константы, m - целочисленная константа m>0.
Данный набор функций, предоставляемый для участия в нелинейном анализе, в будущем может быть расширен. Единственными ограничениями являются следующие требования к функциям: они должны быть везде дифференцируемы и области их значений должны быть ограничены сверху и снизу. При выборе пользователем функций, участвующих в нелинейном анализе, система выдает рекомендации, т.к. при определении констант выбранных пользователем функций, может возникнуть ситуация, когда итоговая функция будет иметь область значений только в отрицательной или положительной полуплоскостях, либо будет ограничена по значению таким образом, что значения погрешности выйдут за данные границы, в перечисленных случаях прогноз априори будет некорректен. Помимо этого система предоставляет уже готовые наборы функций наилучшим образом зарекомендовавих себя на соответствующих рынках. Например для рынка облигаций это: n n n
f(x,a) = sin((ai*xi))+1/(1+exp(-(bi*xi)))-1/(1+exp(-(ci*xi))),
i=1 i=1 i=1
а для рынка акций:
n n n n
f(x,a)=sin((ai*xi))+1/(1+exp(-(bi*xi)))-1/(1+exp(-(ci * xi)))-1/ln(1+((di*xi))2).
i=1 i=1 i=1 i=1
Таким образом, аппроксимирующую функцию в общем виде можно представить как:
kn
F(x,a)=(fj((aij*xi)), где k - кол-во функций, n - кол-во критериев.
j=1 i=1
Архитектура нейронной сети в общем виде представлена на рис.4. Здесь j- линейные сумматоры, вычисляющие сумму произведений входных данных и искомых параметров, fj- нелинейные функции, используемые для аппроксимации,- итоговый сумматор. Данная сеть имеет простую архитектуру. Мы делали попытки предоставить возможность аналитику увеличивать число скрытых уровней, но, как показал опыт, это не привело к улучшению качества прогноза, а только привело к усложнению системы.
Рис.4
4 этап. Выбор алгоритма обучения нейронной сети, основанного на методах обратного распространения ошибки, градиентного спуска, сопряженных градиентов, Ньютона, квазиньютоновский метод. Методы оценивались по времени, затрачиваемому на обучение, и величине погрешности. Для градиентных методов были разработаны собственные алгоритмы, оптимизирующие процедуру выхода из локальных минимумов. Наилучшим образом зарекомендовали себя метод градиентного спуска и квазиньютоновский метод.
5. Итоговое вычисление границ прогнозируемого значения.
P=Pлинейное+Pнелинейное+-Eнелинейное, где
P - итоговое прогнозируемое значение, Pлинейныйи Pнелинейное- значения линейного и нелинейного анализов, Eнелинейное- погрешность, полученная на этапе нелинейного анализа:
За время эксплуатации итоговая погрешность прогноза не превышала:
1) для рынка облигаций при прогнозировании цен 0,3%, доходности - 2%;
2) для рынка акций при прогнозировании цен 1,2%;
3) для валютного рынка -1,3%.
На рисунках 5 и 6 представлены графики реальной погрешности и их аппроксимации для облигации ОБР(011) на рисунке 5 и для акции РАО ЕЭС на рисунке 6 (аналогичные графики для этапа линейного анализа представлены на рисунках 2 и 3).
Рис.5
Обычная линия - реальная погрешность, пунктир - нелинейная аппроксимация
Рис.6
Как мы видим, посредством применения нелинейного анализа удалось существенно снизить погрешность прогноза по сравнению с полученной на этапе линейного анализа.