Назад в библиотеку

Прогнозирование динамики цен на фондовом рынке

Авторы: А.А. Мицель, Е.А. Ефремова
Источник: Мицель А.А. Прогнозирование динамики цен на фондовом рынке / Мицель А.А., Ефремова Е.А. // Известия Томского политехнического университета 2006, Том 8, С.309–314

Введение

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

В научной литературе [1-3] приводится большое количество математических моделей и методик для анализа финансовых рынков. Наибольшую популярность получили два основных подхода – фундаментальный и технический анализ.

Фундаментальный анализ – это направление в анализе ценных бумаг, которое стремится определить их истинные стоимости, исходя из изучения связанных с ними экономических факторов. Истинные стоимости сравниваются с текущими ценами с целью определения величин отклонения. Но для определения конкретного момента совершения сделки фундаментального анализа зачастую бывает недостаточно. В этой области применяется технический анализ [2].

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

В последнее десятилетие наблюдается устойчивый рост популярности технического анализа. Технический анализ сосредотачивается на индивидуальном поведении данного финансового инструмента, вне его связи с остальными ценными бумагами. Такой подход психологически обоснован сосредоточенностью участников именно на том инструменте, с которым они в данный момент работают. Поведение рыночного сообщества имеет много аналогий с поведением толпы, характеризующимся особыми законами массовой психологии. Частичная предсказуемость рынка обусловлена относительно примитивным коллективным поведением игроков, которые образуют единую хаотическую динамическую систему с относительно небольшим числом внутренних степеней свободы [2].

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

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

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

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

Нейросетевое моделирование в чистом виде базируется лишь на данных, не привлекая никаких априорных соображений. В этом его достоинство и одновременно недостаток. Имеющихся данных может не хватить для обучения, размерность потенциальных входов может оказаться, слишком велика. Для преодоления этих типичных в области финансовых предсказаний трудностей можно воспользоваться опытом, накопленным техническим анализом [1]. В данной работе на основе аппарата нейронных сетей рассматривается задача прогнозирования динамики цен на финансовом рынке [2,3].

Методика предсказаний финансовых временных рядов на основе нейронных сетей

Нейронные сети – это обобщенное название нескольких групп алгоритмов, обладающих одним ценным свойством – они умеют обучаться на примерах, извлекая скрытые закономерности из потока данных. При этом данные могут быть неполны, противоречивы и даже заведомо искажены. Если между входными и выходными данными существует какая-то связь, пусть даже не обнаруживаемая традиционными корреляционными методами, нейронная сеть способна автоматически настроиться на нее с заданной степенью точности. Кроме того, современные нейронные сети обладают рядом дополнительных возможностей – они позволяют оценивать сравнительную важность различных видов входной информации, уменьшать ее объем без потери существенных данных, распознавать симптомы приближения критических ситуаций и т. д. [4,5].

Общая схема нейросетевого предсказания временных рядов [2] представлена на рис. 1.

 

Рисунок 1 – Схема нейросетевого предсказания финансовых временных рядов

Общая схема нейросетевого предсказания временных рядов включает следующие этапы [2,3]:

  1. Определение временного интервала. Формирование базы данных.
  2. Кодирование входов – выходов (нейронные сети могут работать только с числами).
  3. Нормировка данных (результаты нейроанализа не должны зависеть от выбора единиц измерения).
  4. Предобработка данных (удаление очевидных регулярностей из данных облегчает нейронным сетям выявление нетривиальных закономерностей).
  5. Обучение нескольких нейронных сетей с различной архитектурой (результат обучения зависит как от размеров сети, так и от ее начальной конфигурации).
  6. Отбор оптимальных сетей – тех, которые дадут наименьшую ошибку предсказания.
  7. Адаптивное предсказание и принятие решений.

Далее кратко рассмотрим некоторые моменты этой технологической цепочки. Хотя общие принципы нейромоделирования применимы к задаче прогнозирования в полном объеме, предсказание финансовых временных рядов имеет свою специфику.

На первом этапе определяются базовые характеристики данных, которые заданы торговой стратегией. Формируется база данных.

Подзадача получения входных образов для формирования входного множества в задачах прогнозирования временных рядов часто предполагает использование «метода окон». Метод окон состоит в определении двух окон Wi и W0 с фиксированными размерами n и m соответственно. Эти окна, способны перемещаться с некоторым шагом по временной последовательности исторических данных, начиная с первого элемента, и предназначены для доступа к данным временного ряда, причем первое окно Wi, получив такие данные, передает их на вход нейронной сети, а второе – W0 – на выход. Получающаяся на каждом шаге пара Wi>W0 используется как элемент обучающей выборки (распознаваемый образ, или наблюдение). Каждый следующий вектор получается в результате сдвига окон вправо на один шаг. Предполагается наличие скрытых зависимостей во временной последовательности, как множестве наблюдений. Нейронная сеть, обучаясь на этих наблюдениях и соответственно настраивая свои коэффициенты, пытается извлечь эти закономерности и сформировать требуемую функцию прогноза. На основе метода окон возможен одношаговый или многошаговый прогноз [5].

Далее следует отметить, что одним из ключевых моментов в анализе финансовых временных рядов – является предобработка данных, которая способствует успешному обучению нейронной сети, и может включать целый набор методов. Главная задача при предобработке данных – снижение избыточности, что приведет к повышению информативности примеров и, тем самым, повысит качество нейропредсказаний. Эффективным методом отбора наиболее информативных входов является алгоритм box-counting. Эффективными являются также вейвлет-преобразование входных данных, фильтры Кальмана, спектральная обработка [2].

Архитектура нейронной сети зависит от поставленной задачи, в большинстве случаев наиболее оптимальной архитектурой для прогнозирования финансовых временных рядов будет являться многослойный персептрон с обратным распространением ошибки [6].

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

На основе описанной методики [3-5] авторами разработан алгоритм и реализована автоматизированная система.

Подготовка входных и выходных данных

Для работы с системой использовались данные (рыночные котировки акций, обращающихся на ММВБ), полученные путем экспорта из программы Интернет-трейдинга «Альфа-директ» [7].

Данные по каждому временному интервалу имеют пять значений:

  1. цена открытия (цена, по которой была заключена первая сделка по данному финансовому инструменту);
  2. цена закрытия (цена, по которой была заключена последняя сделка);
  3. максимальная цена продаж;
  4. минимальная цена продаж;
  5. объем акций, проданных в этот временной период.

В качестве входных данных рассматривались дневные значения цен закрытия на различных вре- менных периодах по акциям.

Предобработка входных

В качестве входов и выходов нейронной сети были выбраны не сами значения цен закрытия, котировок (обозначим их Ct), а изменения котировок на момент времени t. Действительно значимыми для предсказаний являются изменения котировок. Так как эти изменения, как правило, гораздо меньше по амплитуде, чем сами котировки, между последовательными значениями курсов имеется большая корреляция – наиболее вероятное значение курса в следующий момент равно его предыдущему значению [2]:

 

(1)

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

 

(2)

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

Архитектура сети

В системе реализован многослойный персептрон, количество входов и скрытых слоев является динамическим (определяется пользователем системы), это позволяет осуществить экспериментальный подбор оптимальной структуры сети для каждого финансового инструмента. Многослойный персептрон с обратным распространением ошибки является наиболее оптимальной архитектурой для данного класса задач (аппроксимации функций), т. к. прогнозирование финансовых временных рядов основывается на фундаментальном допущении – замене экстраполяции аппроксимацией [2-3].

Для обучения нейронной сети используется алгоритм обратного распространения ошибки.

Обучение сети разбивается на следующие этапы:

  1. Инициализация сети.Весовым коэффициентам и смещениям сети присваиваются малые случайные значения из диапазона от 0 до 1 и, соответственно, и в дальнейшем происходит их подстройка по выходному сигналу.
  2. Определение элемента обучающей выборки (<текущий вход>, <желаемый выход>). Текущие входы (x0,x1,...,xn), должны различаться для всех элементов обучающей выборки. При использовании многослойного персептрона для прогноза динамики цен формируем один выход, определяющий направление изменения, т. е. рост или падение цен.
  3. Вычисление текущего выходного сигнала. Текущий выходной сигнал определяется в соответствии с традиционной схемой функционирования многослойной нейронной сети.
  4. Настройка синаптических весов. Для настройки используется алгоритм обратно- го распространения ошибки, т. е. используется ре- курсивный алгоритм, который сначала применяет- ся к выходным нейронам сети, а затем проходит сеть в обратном направлении до первого слоя [2]. Синаптические веса настраиваются в соответствии с формулой
     

    (3)

    где ωij(t) – вес от нейрона i или от элемента входного сигнала к нейрону j в момент времени t, xi – выход нейрона i, r – темп обучения, gi – значение ошибки для нейрона j
     

    gj = - ln(1 + yjdj), (4)

    где dj и yj – желаемый и текущий выходы нейрона j.

    Выбор функции ошибки обусловлен тем, что целью прогнозирования финансовых рядов является получение и максимизация прибыли. Поэтому, в прогнозировании финансовых рядов важна не близость прогноза к истинному значению (что обеспечивает минимизация функции среднеквадратичной ошибки), а одинаковая направленность прогноза и истинного значения. Таким свойством обладает функция yj [2-3].

    На основе экспериментальных данных было показано, что наиболее оптимально активационная функция описывается выражением:

     

    (5)

    Активационная функция преобразовывает средневзвешенную сумму выходных сигналов в выходной сигнал:

     

    (6)

    где T – порог нейрона.

Результаты работы системы

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

Вид пользовательского интерфейса системы представлен на рис. 2.

Под точностью прогноза понимается верно угаданный знак изменения цены. Сеть обучалась на 200 примерах, затем подавались на вход как известные ей цены, на которых она обучалась (обучающая выборка), так и те которые ещё не встречались (тестирующая выборка). Сеть содержала два скрытых слоя, три входа и один выход. На вход обученной сети подавались обучающая выборка из трех цен. Обучение проводилось с использованием метода окон.

В целом, в большинстве из проделанных опытов, были получены положительные результаты (количество верно угаданных значений цены составило 60...75 %, а количество верно определенных знаков, т. е. верно угаданной тенденции рынка, составляло 85...90 %).

Заключение

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

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

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

Легко показать, что среднее значение выходов комитета должно давать лучшие предсказания, чем средняя сеть из этого комитета. В силу неравенства Коши имеем:

 

(7)

где εi – ошибка i-ой сети в комитете, L – количество сетей в комитете.

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

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

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

Библиографический список

  1. Шарп У.Ф., Александер Г., Бэйли Дж.В. Инвестиции. – М.:Инфра-М, 1998. – 1028 с.
  2. Ежов А.А., Шумский С.А. Нейрокомпьютинг и его применения в экономике и бизнесе. – М.: МИФИ, 1998. – 222 с.
  3. Панфилов П.Н. Введение в нейронные сети // Современный трейдинг. – 2001. – № 2. – С. 12–17.
  4. Розенблатт Ф. Принципы нейродинамики. Перцептроны и теория механизмов мозга. – М.: Мир, 1965. – 302 с.
  5. Уоссермен Ф. Нейрокомпьютерная техника. – М.: Мир, 1992.– 250 с.
  6. Горбань А.Н. Обучение нейронных сетей. – М.: СП «Параграф», 1990 – 160 с.
  7. Интернет-брокер «Альфа Банка». источник