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

Синяя линия — это предсказание динамики. Нейронная сеть думала, что будет двойное дно, после чего цена пойдет примерно на 137.
А вот что было на самом деле. В следующем графике уже предсказание на май и видно, что было в апреле.
Цена действительно пошла на 137, но двойного дна не было, а было обновление лоя на 121 и уже потом поход на 137.
Я думаю, нейронная сеть может предсказывать примерную динамику, но не точно. Хотя, возможно это случайность, что она угадала отскок до 137.
Код на R тут:
#Прогнозы с помощью нейронной сети
#system.time(source('D:/Dropbox/R/MachineLearning/NeuralNetworks/NN.R'))
#Вызов этого скрипта
#install.packages('quantmod')
#install.packages('rusquant')
#install.packages('forecast')
library('quantmod')
library('rusquant')
library('forecast')
#dev.off()
#Очистка графиков
rm(list = ls())
#Очистка среды R от лишних переменных в памяти, если требуется
startDate <- as.Date('2014-03-01')
#endDate <- as.Date('2017-04-01')
getSymbols('GAZP', src='Finam', from=startDate, period='day')
#chartSeries(GAZP)
#Обучение нейронной сети
#p - число входящих нейронов, желательно чтобы совпадало с периодичностью
#lambda - параметр трансорфмации Бокса-Кокса
fit <- nnetar(Cl(GAZP), lambda = 0, p = 40)
#Прогнозирование с помощью нейронной сети
#h - дальность прогноза (по умолчанию 10 если нет периодичности)
fc <- forecast(fit, h = 40)
#График прогноза
plot.forecast(fc, include = 200, showgap = FALSE)
#Детали
print(summary(fc))
В предыдущем посте я использовал для вычисления косинуса либу
neuralnet. В этом посте я уже использовал функцию
nnetar из либы
forecast, так как для прогнозирования временных рядов она удобнее и лаконичнее получается.
Это прекрасно. Заберу себе.
И сбой нивелируется иными предпочтениями… попробуйте, хуже не будет…