Построение и тестирование двухфакторной нейросетевой модели прогнозирования динамики цен закрытия обыкновенных акций РАО «ЕЭС России» (EESR) в Российской Торговой Системе

ЦЕЛЬ ИССЛЕДОВАНИЯ

Целью исследования, легшего в основу данной статьи,  являлось построение, обучение и тестирование определенной нейросетевой архитектуры, способной в дальнейшем прогнозировать наиболее вероятный сценарий динамики значений цен закрытия обыкновенных именных акций РАО «ЕЭС России» в Российской Торговой Системе (РТС) на период до одного месяца. Под наиболее вероятным сценарием (прогнозом) (Рис. 1) подразумевается ряд прогнозных значений цены закрытия, в котором довольно  отчетливо определены уровни поддержки и сопротивления краткосрочного тренда на рынке и моменты разворота краткосрочного тренда (т.е. определены моменты и значения максимумов и минимумов недельных отрезков кривой цен закрытия).

 

 

Рис. 1.

 

При построении нейросетевых архитектур, способных прогнозировать цены закрытия обыкновенных акций РАО «ЕЭС России» в РТС автор настоящей статьи рассматривал изменения цен закрытия с позиций технического анализа. В отличие от фундаментального анализа, субъективно рассматривающего влияние многих факторов на изменение прибыли предприятия, размера выплачиваемых дивидендов и будущего денежного потока по приобретенной акции с учетом различных рисков, при техническом анализе предполагается, что все факторы, влияющие на цену акции, уже отражены в цене, и прогноз цены осуществляется на основе ее текущих и предыдущих значений. Можно сказать, что фундаментальный анализ рассматривает цену акции субъективно «изнутри предприятия» с позиции оценки собственности, в то время как технический анализ пытается взглянуть на ее динамику «на рынке» с позиций трейдеров.

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

 

ПАРАМЕТРЫ МОДЕЛИ

Размер обучающего множества

Размер обучающего множества составлял все 1380 известных значения цен закрытия C(T) в моменты времени T с 01.09.95г. по 26.03.01г. Нейросетевые модели, построенные с использованием меньшего размера обучающего множества (740, 560 и 320 значений) давали неточные прогнозные значения, видимо из-за недостатка входящих образов с соответствующими уровнями цен.

Разделение обучающего множества на долгосрочные тренды, сезонные составляющие и шумы с последующим моделированием каждого из них [Linda Shneider, Predicting the AEX-index with neural networks, 1998], считалось нецелесообразным [Baestaens, Van den Bergh & Wood: Neural network solutions for trading in financial markets, 1997], т.к. при использовании любого сглаживания цен закрытия искажается первоначальная информация о линии цен закрытия как о динамике спроса и предложения на рынке, т.е. теряется экономический смысл исследуемого объекта, а также при нейросетевом моделировании процесса через его составляющие привело бы к неточным прогнозам из-за наложения частных ошибок обучения друг на друга.

 

Рис. 2.

 

Предобработка обучающего множества

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

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

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

 

 

Рис. 3.

 

В связи с этим выравнивание по времени проводилось путем замещения моментов времени торговых сессий календарными. Т.е., если для 16.03.01г. (пятница) на соответствующий вход подавался момент времени 36966 (числовое представление даты в PC), то для 19.03.01г. (понедельник) на вход подавался момент времени 36969, а не 36967, что соответствовало бы моменту времени следующей торговой сессии.

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

 

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

Из графика известных значений цен закрытия было определено, что расстояние между моментами разворота краткосрочного тренда лежит в пределах от 59 до 98 торговых сессий. Поэтому считалось, что размер окна также должен лежать в этих пределах. Методом box-counting[1] определено, что значения цен закрытия из окна нейросети, которые ближе к предсказываемым, оказывают большее влияние на предсказываемые значения, чем удаленные от них, т.е. значения завтрашнего дня более зависят от значений сегодняшнего дня, чем предыдущего и еще меньше зависят от значений недельной давности и т.д. Это утверждение также соответствует правилам технического анализа цен закрытия финансовых инструментов. Поэтому была предпринята попытка разбить окно на входы и выходы, используя возрастающие интервалы между входами (Рис. 4). Ошибка обучения при этом по сравнению с обычным равномерным распределением окна снижалась, равно как и ошибка прогноза.

 

Рис.4.

 

Возрастание интервалов входов от выхода происходило в геометрической прогрессии от 2, поэтому окно нейросети было выбрано равным 64 как попадающее в интервал между разворотами краткосрочного тренда. Соответственно, был выбран один выход и 6 входов.

Учитывая свойство динамических нейронных сетей[2] хранения в памяти получаемых образов и адекватного их воспроизведения, в качестве внутренней архитектуры для построения сети была принята архитектура с обратными (рекуррентными) связями. Для прогнозирования экономических временных рядов данная архитектура может являться оптимальной[3].

Исходя из архитектуры сети, количества входов и выходов, окна и общей ширины обучающей выборки было определено количество нейронов скрытого слоя, необходимое для достижения приемлемой теоретической ошибки обучения. Число нейронов скрытого слоя было равно 48 (условно четыре нейрона на каждый вход), что приводило к расчету следующей теоретической ошибки:

Входы: 6×2 = 12

Выход: 1×2 = 2 нейрона

Скрытый слой: 48 нейронов

Межнейронные связи:

Входы — Скрытый слой: 12x48x2(рекуррентность) = 1152 связи

Скрытый слой — Выход: 48×2 = 96 связей

Всего межнейронных связей: 512+64 = 1248 связей

 

Данного количества взаимосвязей достаточно для классификации входных образов при обучении, но не достаточно для «переобучения» сети, т.е. в данном случае аппроксимации линии цен закрытия (1248связей/1380значений » 0.83). Теоретическая ошибка при этом равна 0.009615.

Что касается функции активизации, то принципиален лишь ее характер, который для распознавания (классификации) образов должен соответствовать требованиям нечеткой логики[4]. В данном случае функция активизации для всех нейронов представляла собой гиперболический тангенс (Рис. 5).

Рис. 5.

 

В результате полученная нейросеть характеризовалась следующими параметрами:

Параметр Значение
Размер обучающей выборки 1380 торговых сессий
Размер окна нейросети 64
Количество входов 12 (6 пар)
Количество выходов 2 (1 пара)
Количество нейронов скрытого слоя 48
Вход 1 T-63
Вход 2 C(T-63)
Вход 3 T-31
Вход 4 C(T-31)
Вход 5 T-15
Вход 6 C(T-15)
Вход 7 T-7
Вход 8 C(T-7)
Вход 9 T-3
Вход 10 C(T-3)
Вход 11 T-1
Вход 12 С(T-1)
Выход 1 Момент времени T
Выход 2 Значение цены закрытия C(T)
Функция активизации для всех
Производная функции активизации (для обучающего алгоритма)
Количество скрытых слоев 1
Взаимосвязи между входами и нейронами скрытого слоя с обратными связями
Взаимосвязи между нейронами скрытого слоя и выходными нейронами прямые
Общее количество взаимосвязей 1248

 

ОБУЧЕНИЕ НЕЙРОСЕТИ

Нейросеть обучалась алгоритмом adaptive back propagation, являющимся усовершенствованным вариантом изначального алгоритма обратного распространения ошибки[5]. Алгоритм был направлен на понижение общей ошибки обучения сети, но при этом визуально проводилось оценивание изменений тестовой ошибки на последних 20-ти примерах. После каждого начала возрастания тестовой ошибки на протяжении 20-ти эпох обучение приостанавливалось и добавлялся шум в межнейронные связи. Только когда тестовая ошибка достигла видимого минимума и не изменялась на протяжении 300 эпох при незначительном снижении ошибки обучения, процесс был приостановлен. Окончательные значения ошибок обучения и тестирования составили соответственно 0.097321 и 0.064688.

 

РЕЗУЛЬТАТЫ ПРОГНОЗИРОВАНИЯ

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

Рис. 6.

 

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

В данном случае корректировка осуществлялась грубо, без использования оригинальной нейросети и только для соответствия прогнозного момента времени с фактическим. Так, если фактические моменты времени должны были быть 36983 и 36984, а близлежащие значения прогнозного момента времени были равны 36982.81, 36983.34 и 36984.17, то в ячейки таблицы с индексами 36983 и 36984 записывались значения прогнозов цен соответствующие 36982.81 и 36984.17, а значение цены, соответствующее индексу прогноза 36983.34, не использовалось. Обратная ситуация происходила, если для фактического момента времени близлежащие значения прогнозного момента времени уже были использованы в соседних ячейках. В этом случае текущая ячейка цены с индексом фактического момента оставалась незаполненной. Таким образом, общий интервал прогноза был растянут, некоторые отрезки кривой утеряны и стали неизвестными значения в некоторые дни (Рис. 7, CLOSE DI ¾ скорректированный результат).

Рис. 7.

Тем не менее, после такой коррекции значения прогнозных цен закрытия были размещены соответственно фактическим известным заранее датам торгов.

Рис. 8.

 

На рисунке 8 представлен результат корректировки прогнозных значений цен закрытия вышеуказанным способом. Как видно из графика, оставшиеся после коррекции отрезки прогнозной кривой в точности определяют уровни поддержки и сопротивления краткосрочного тренда и моменты разворота. Используя полученные прогнозные значения цены закрытия обыкновенных именных акций РАО «ЕЭС России» в РТС на период с 27.03.01г. по 26.04.01г. (Рис. 8), трейдер 26.03.01г. может заранее определить свою стратегию для достижения высокой прибыли по проводимым операциям, которая может выглядеть следующим образом:

Дата Факт Прогноз Операция Движение Акции Стоимость Денежные Капитал
  цена ($) цена ($)   акций   пакета средства  
26/03/01 0.1053 0.1053 Остаток   0 0.00 10000.00 10000.00
27/03/01 0.1040 0.1064 Продажа -96153 -96153 -9999.91 19999.91 10000.00
28/03/01 0.1017 0.1058 -96153 -9778.76 19999.91 10221.15
29/03/01 0.0987 0.1009 -96153 -9490.30 19999.91 10509.61
30/03/01 0.1000 -96153 -9615.30 19999.91 10384.61
02/04/01 0.0970 0.0984 -96153 -9326.84 19999.91 10673.07
03/04/01 0.0925 0.0917 Покупка 216215 120062 11105.74 0.02 11105.76
04/04/01 0.0920 0.0919 120062 11045.70 0.02 11045.73
05/04/01 0.0995 120062 11946.17 0.02 11946.19
06/04/01 0.0960 0.0933 120062 11525.95 0.02 11525.98
09/04/01 0.0974 0.0957 120062 11694.04 0.02 11694.06
10/04/01 0.1015 0.1032 120062 12186.29 0.02 12186.32
11/04/01 0.1035 0.1074 120062 12426.42 0.02 12426.44
12/04/01 0.1006 0.1065 120062 12078.24 0.02 12078.26
13/04/01 0.1017 0.1076 120062 12210.31 0.02 12210.33
16/04/01 0.0990 120062 11886.14 0.02 11886.16
17/04/01 0.0988 0.1078 120062 11862.13 0.02 11862.15
18/04/01 0.1054 0.1094 120062 12654.53 0.02 12654.56
19/04/01 0.1080 0.1103 Продажа -240124 -120062 -12966.70 25933.42 12966.72
20/04/01 0.1028 0.1031 -120062 -12342.37 25933.42 13591.04
23/04/01 0.0980 0.0994 Покупка 264626 144564 14167.27 0.07 14167.34
24/04/01 0.1010 0.1014 144564 14600.96 0.07 14601.03
25/04/01 0.1015 0.1042 144564 14673.25 0.07 14673.31
26/04/01 0.1060 0.1060 Остаток   144564 15323.78 0.07 15323.85

 

Таким образом, если учитывать, что трейдер может совершать как длинные так и короткие покупки и продажи, его капитал мог быть увеличен 1.53 раза в то время как при простом держании акции прирост капитала составил бы не более 0.7 % (0.106$/0.1053$).

 

 

 

[1] Ежов А.А., Шумский С.А. Нейрокомпьютинг и его применения в экономике и бизнесе, 1997

[2] L. P. J. Veelenturf, Dynamic neural networks, 1997

[3] Ежов А.А., Шумский С.А. Нейрокомпьютинг и его применения в экономике и бизнесе, 1997

[4] Романов А.Н., Одинцов Б.Е. Советующие информационные системы в экономике, 2000

[5] Werbos, P. J. Back propagation through time: what it does and how to do it, 1990

[6] Бушуев К.В. Некоторые аспекты разработки нейросетевой модели динамики российского рынка акций, 2000

 

Бушуев К.В.