Блог им. SciFi
#install.packages("forecast") #install.packages("tseries") #install.packages("quantmod") #install.packages("rusquant", repos="http://R-Forge.R-project.org") # Установка пакетов. Она не требуется, если уже все установлено. library(tseries) library(quantmod) library(rusquant) library(forecast) library(arfima) # Подключение библиотек. ARFIMA и quantmod пока не используются. getSymbols("RIM6", src = "Finam", from = Sys.Date()-30, period = "5min") # Получение 5 минутных свечей за последние 30 дней. Достаточно из за последние 2 дня. #candleChart(RIM6) # По желанию можно построить график, чтобы убедиться в правильности загрузки данных. closes <- Cl(RIM6) returns <- OpCl(RIM6) # Цены закрытия и доходности print("Best ARIMA Model for Close Prices") print(arimaorder(auto.arima(closes))) # Автоматический поиск лучшей ARIMA модели для цен закрытия с помощью критериев типа AIC print("Best ARIMA Model for Returns") print(arimaorder(auto.arima(returns))) # Аналогично для доходностей fit.closes <- Arima(closes, order=c(3, 1, 2)) fit.returns <- Arima(returns, order=c(2, 0, 2)) # После того, как нашли лучшую математическую модель, заново оптимизируем ее под цены print("AIC Closes:") print(AIC(fit.closes)) # Вывод AIC для цен закрытия print("AIC Returns:") print(AIC(fit.returns)) # Аналогично для доходностей par(mfrow=c(2,1)) # Создаем график с 2 строками и 1 столбцом plot(forecast(fit.closes), main='Close Prediction', lwd = 2, type="l", col="red") lines(fitted(fit.closes),col="blue", lwd = 2) # Добавляем цены закрытия (красные) и предсказания цен закрытия (синие) # Если взять меньший период, чем 30 дней, эти линии будут видны plot(forecast(fit.returns), main='Return Prediction', lwd = 2, type="l", col="red") lines(fitted(fit.returns),col="blue", lwd = 2) # Аналогично для доходностей print('Close Price Predictions') print(predict(fit.closes, n.ahead = 3)) # Распечатываем предсказания цены и ее диапазона (отклонение) print('Return Predictions') print(predict(fit.returns, n.ahead = 3)) # Аналогично для доходностей #residuals.closes <- residuals(fit.closes) #adf.test(residuals.closes) #acf(residuals.closes) # По желанию можно проанализировать остатки модели на автокорреляцию и стационарность # с помощью теста Дики-Фуллера # Остатки будут представлять из себя белый шум
Но, если честно, я не очень верю в примитивное предсказание цены. На моей памяти, даже использование продвинутой ARFIMA с использованием CUDA для численного решения не показало ничего, пригодного для торговли. Правда, реализация была не моя, а моего знакомого, тонкостей я не знаю, и не поручусь, что он выжал из темы все, что возможно.
НО!
Правильная постановка вопроса не «если модель содержит», а «какая модель лучше подходит».
Это как в вопросе с ФНЧ. Можно проектировать фильтр с идеальной АЧХ, или с минимальной задержкой или еще как. Но по факту лично моих исследований, простая ЕМА оказывается в моих системах лучше и продвинутых КИХ и продвинутых БИХ. фильтров. И медианных фильтров, и прямой оценки производной численными методами.
Жизнь как бы мне намекает, сложность не окупается. Возможно, у Вас и не так.
SergeyJu, могут быть оные. В качестве примера можно привести КИХ-фильтр на 2 точки с h_{1} = 1, h_{0} = 0.95 и белым шумом на входе. Как-то так.
Модели могут иметь больше или меньше параметров, лучше или хуже соответствовать конкретной задаче.
Качество модели безотносительно области применения оценить практически невозможно.
Попробуйте, авось что и выйдет. Чисто идеологически, все, что работает в предположении стационарности ряда, или стационарности с точностью до одного оцениваемого и медленно меняющегося параметра, на ценовых рядах работать должно плохо. Наши ряды более зашумлены и менее стационарны, чем то, с чем обычно имеют дело в технике.
))
является лажой, т.к. почему-то вне зависимости от того, что дала Вам библиотека forecast, Вы используете только модели ARIMA(3, 1, 2) и ARIMA(2, 0, 2)
www.otexts.org/fpp
Table of contents
Forecasting: principles and practice
Getting started
The forecaster's toolbox
Judgmental forecasts
Simple regression
Multiple regression
Time series decomposition
Exponential smoothing
ARIMA models
Advanced forecasting methods
Data
Using R
Resources
Reviews