Доклады ТУСУРа. 2004 г. Автоматизированные системы обработки информации, управления и проектирования УДК 519.86
ПРИМЕНЕНИЕ НЕЙРОННЫХ СЕТЕЙ ДЛЯ ПРОГНОЗИРОВАНИЯ ФИНАНСОВЫХ ВРЕМЕННЫХ РЯДОВ
Е.А. Ефремова, Е.В. Дунаев
В статье рассмотрены некоторые аспекты и особенности использования нейронных сетей для прогнозирования финансовых временных рядов с целью получения прибыли.
Предсказание финансовых временных рядов - необходимый элемент любой инвестиционной деятельности. Сама идея инвестиций - вложения денег сейчас с целью получения дохода в будущем - основывается на идее прогнозирования будущего. Любая задача, связанная с манипулированием финансовыми инструментами, будь то валюта или ценные бумаги, сопряжена с риском и требует тщательного расчета и прогнозирования.
Поведение рыночного сообщества имеет много аналогий с поведением толпы, характеризующимся особыми законами массовой психологии. Частичная предсказуемость рынка обусловлена относительно примитивным поведением игроков, которые образуют единую хаотическую динамическую систему с небольшим числом внутренних степеней свободы.
Для успешной торговли на фондовом рынке необходимо выработать систему игры, апробированную на прошлом поведении временного ряда, и четко следовать этой системе, не поддаваясь влиянию эмоций.
Как известно, существуют два основных подхода к анализу рынка: технический и фундаментальный. Первый из них базируется на теории Доу, в основе которой лежит аксиома: «Цены учитывают все», и соответственно технический аналитик использует только цены актива и различные индикаторы (функции цен). Фундаментальный анализ, наоборот, ищет взаимосвязь цен актива, внешних событий и данных типа макроэкономических показателей и финансовой отчетности корпораций и т.д.
Применение нейронных сетей в качестве дополнения дает уникальную возможность объединить эти два метода. Такой анализ, в отличие от технического, не имеет никаких ограничений по характеру входной информации. Это могут быть как индикаторы данного временного ряда, так и сведения о поведении других рыночных инструментов, и внешние события. Нейро-сети активно используют на Западе институциональные инвесторы (например пенсионные фонды и страховые компании), работающие с большими портфелями, для которых особенно важны корреляции между различными рынками [1].
В отличие от технического анализа, основанного на общих рекомендациях и опыте трейдера, нейросети способны строить оптимальную модель прогнозирования, более того, модель адаптивна и меняется вместе с рынком, что особенно важно для современных высокодинамичных финансовых рынков, в частности российского.
Применение нейронных сетей в финансах базируется на одном фундаментальном допущении - замене прогнозирования распознаванием. Нейросеть не предсказывает будущее, она
«старается узнать» в текущем состоянии рынка ранее встречавшуюся ситуацию и максимально точно воспроизвести реакцию рынка.
Для прогнозирования финансовых временных рядов возможно использование многослойных персептронов. Использование сетей с обратными связями в данном случае нецелесообразно в связи с трудностью обучения таких сетей и неактуальностью основной характеристики сетей с обратными связями - краткосрочной памяти.
Необходимо определить, какие входы подавать сети и какие данные получать на выходе. В общем случае входы сети отражают динамику торгов (цены и объемы) по исследуемому инструменту за некоторый предыдущий период времени. Выходом сети обычно выбирается изменение цены исследуемого финансового инструмента в будущем. Такой выход позволяет игроку принимать решения о совершении сделок на рынке.
Формирование входов нейронной сети
Несмотря на то что предсказания являются экстраполяцией данных, нейросети на самом деле решают задачу интерполяции, что существенно повышает надежность решения. Предсказание временного ряда сводится к типовой задаче нейроанализа - аппроксимации функций многих переменных по заданному набору примеров с помощью процедуры погружения ряда в многомерное пространство.
Для динамических систем доказана следующая теорема Такенса. Если временной ряд порождается динамической системой, то есть значения Х( есть произвольные функции состояния системы, то существует такая глубина погружения ё (примерно равная эффективному числу степеней свободы данной динамической системы), которая обеспечивает однозначное предсказание следующего значения временного ряда. Таким образом, выбрав достаточно большое ё, можно гарантировать однозначную зависимость будущего значения ряда от его ё предыдущих значений:
Х, = /(Х,,
т.е. предсказание временного ряда сводится к задаче интерполяции функции многих переменных. Нейросеть далее можно использовать для восстановления этой неизвестной функции по набору примеров, заданных историей временного ряда [2].
Хотя предсказание финансовых рядов сводится к задаче аппроксимации многомерной функции, оно имеет свои особенности как при формировании входов, так и при выборе выходов нейросети. Достаточно важным также является вопрос оценки качества финансовых предсказаний для выбора и построения наилучшей стратегии обучения нейросети.
В качестве входов и выходов нейросети не следует выбирать сами значения котировок (обозначим их С). Действительно значимыми для предсказаний являются изменения котировок. Так как эти изменения обычно гораздо меньше по амплитуде, чем сами котировки, между последовательными значениями курсов имеется большая корреляция - наиболее вероятное значение курса в следующий момент равно его предыдущему значению:
С+1) = (С +АС,) = С, + (АС,) - С,.
Для повышения качества обучения следует стремиться к статистической независимости входов, то есть к отсутствию подобных корреляций. Поэтому в качестве входных переменных логично выбирать наиболее статистически независимые величины, например изменения котировок АС, или логарифм относительного приращения:
log
AC,
C
v^ t-1 J
Использование логарифма относительного приращения является удачным для длительных временных рядов, когда уже заметно влияние инфляции. В этом случае простые разности в разных частях ряда будут иметь различную амплитуду, так как фактически измеряются в различных единицах. Напротив, отношения последовательных котировок не зависят от единиц измерения и будут одного масштаба несмотря на инфляционное изменение единиц измерения. В итоге большая стационарность ряда позволит использовать для обучения большую историю и обеспечит лучшее обучение.
Отрицательной чертой погружения в лаговое пространство является ограниченный «кругозор» сети, тогда как технический анализ не фиксирует окно в прошлом и использует достаточно далекие значения ряда. Например, утверждается, что максимальные и минимальные значения ряда даже в относительно далеком прошлом оказывают достаточно сильное воздействие на психологию игроков и, следовательно, должны быть значимыми для предсказаний. Недостаточно широкое окно погружения в лаговое пространство не способно предоставить такую информацию, что, естественно, снижает эффективность предсказания. С другой стороны, расширение окна до таких значений, когда захватываются далекие экстремальные значения ряда, повышает размерность сети, что в свою очередь приводит к понижению точности нейросетевого предсказания уже из-за разрастания размера сети [2].
Альтернативный способ кодирования прошлого поведения ряда позволяет решить эту проблему. Интуитивно понятно, что чем дальше в прошлое уходит история ряда, тем меньше деталей его поведения влияет на результат предсказаний. Это обосновано психологией субъективного восприятия прошлого участниками торгов, которые собственно и формируют будущее. Следовательно, представление динамики ряда должно иметь избирательную точность -чем дальше в прошлое, тем меньше деталей - при сохранении общего вида кривой.
Одним из альтернативных способов кодирования временного ряда является использование в качестве входных данных значений индикаторов технического анализа на относительно далеком периоде времени и значений колебаний курса в текущем периоде.
Также достаточно перспективным инструментом здесь может оказаться вейвлетное разложение (wavelet decomposition). Оно эквивалентно по информативности лаговому погружению, но легче допускает такое сжатие информации, которое описывает прошлое с избирательной точностью.
Обучение нейронной сети
При обучении нейросетей, предназначенных для прогнозирования финансовых временных рядов, используют стандартный подход. Имеющиеся примеры разбивают на три выборки: обучающую, валидационную и тестовую. Обучающая выборка предназначена для подстройки синаптических коэффициентов обучаемых нейронных сетей с целью минимизации ошибки на выходе сети. Валидационная выборка используется для выбора наилучших из нескольких обученных сетей и/или для определения момента останова обучения. Тестовая выборка, которая не использовалась в процессе обучения, служит для контроля качества прогнозирования.
Выбор функции ошибки
Для обучения нейросети недостаточно сформировать обучающие наборы входов-выходов. Необходимо также определить ошибку предсказаний сети. Среднеквадратичная ошибка не имеет большого «финансового смысла» для рыночных рядов. Например, для выбора рыночной позиции надежное определение знака курса боле важно, чем понижение среднеквадратичного отклонения. Хотя эти показатели и связаны между собой, сети, оптимизированные по одному из них, будут давать худшие предсказания другого.
Ошибка сети представляется в виде функции от синаптических коэффициентов и минимизируется одним из градиентных методов. Традиционно используют среднеквадратичную ошибку (суммирование производится по всем выходам):
где у - выход нейронной сети;
ё - желаемое значение выхода.
Целью прогнозирования финансовых рядов является получение и максимизация прибыли. Поэтому в прогнозировании финансовых рядов важна не близость прогноза к истинному значению (что обеспечивает минимизация функции среднеквадратичной ошибки), а одинаковая направленность прогноза и истинного значения. Таким свойством обладает функция
Ошибку Е усредняют по всем примерам обучающей выборки, и полученное значение используют для подстройки синаптических коэффициентов [2].
Использование комитета нейросетей
Использование различных архитектур сетей, случайность выбора первоначальных синаптических коэффициентов, а также использование других отличающих сети параметров - все это приводит к тому, что предсказания различных нейронных сетей, обученных на одних и тех же примерах, разнятся, иногда достаточно сильно. Явно «неудачные» варианты сетей отпадают на этапе валидации и тестирования. А более или менее «удачные» сети можно использовать совместно, организовав так называемый комитет сетей, используя для принятия решения значения выходов всех входящих в комитет сетей [2].
Е = - 1п [1 + уё ].
Легко показать, что среднее значение выходов комитета должно давать лучшие предсказания, чем средняя сеть из этого комитета. Это следует из неравенства Коши
где si - ошибка /-й сети в комитете;
Ь - количество сетей в комитете.
Таким образом, предпочтительно использовать для принятия решения среднее значение выходов комитета нейросетей. Более того, можно использовать не среднее значение выходов, а среднее взвешенное. Веса выбираются адаптивно, максимизируя эффективность предсказаний комитета на обучающей выборке. В итоге лучшие сети будут вносить наибольший вклад, в то время как предсказания сетей, дающих худшие результаты, будут вносить меньший вклад и не будут портить предсказания.
Заключение
Использование нейронных сетей для анализа финансовой информации является перспективной альтернативой (или дополнением) для традиционных методов исследования. В силу своей адаптивности одни и те же нейронные сети могут использоваться для анализа нескольких инструментов и рынков, в то время как найденные игроком для конкретного инструмента закономерности с помощью методов технического анализа могут работать хуже или не работать вообще для других инструментов.
Специфика объекта исследования накладывает некоторые особенности на использование нейронных сетей для анализа данных. Такой особенностью является выбор функции ошибки нейронной сети, отличной от традиционной среднеквадратичной. Следует отметить, что одной из важных составляющих анализа данных с помощью нейронных сетей является предобработка данных, направленная на сокращение размерности входов сети, повышение совместной энтропии входных переменных и нормировку входных и выходных данных.
Дальнейшая работа (авторов) в этой области будет направлена на эмпирические исследования, такие как практическая реализация нейронных сетей и построение торговых систем на базе нейронных сетей.
ЛИТЕРАТУРА
1. Панфилов П.Н. Введение в нейронные сети // Современный трейдинг. - 2001. - № 2. -С. 12-17.
2. Ежов А.А. Нейрокомпьютинг и его применения в экономике и бизнесе / А.А. Ежов, С .А. Шумский. - М.: МИФИ, 1998. - 222 с.
2