Постов с тегом "arima": 7

arima


О применимости или неприменимости ARIMA

Пока рыночек пилит, мы тоже попилим чего-нибудь. Данная статься написана по мотивам главы 3 «Time-Series Analysis» из книги «Machine trading» E.Chan.
Все расчеты сделаны на matlab.
Первым делом, берем 5-минутки нашего любимого Сбербанка и разделим на две набора данных, первый набор 01.01.2020-01.01.2024 для тренировки нашей модели ARIMA(p, 0, 0), а второй набор с 01.01.2024г. — 08.11.2024г. для проверки модели.
Для тренировки модели используется средняя цена, т.е. 0.5*(High + Low). Для нахождения оптимального числа p (лаг) на тренировочных данных используем цикл, где перебираются p от 1 до 60 и определяем для каждого лага Байесовский информационный критерий (BIC). Оптимальный лаг будет иметь минимальный BIC.
В нашем случае получилось, что оптимальное p = 41 с такими параметрами: 

 

ARIMA(41,0,0) Model (Gaussian Distribution):
 
                   Value       StandardError    TStatistic      PValue   
                ___________    _____________    __________    ___________

    Constant      0.


( Читать дальше )

Прибыльны ли модели ARIMA/GARCH? Часть 2

    • 12 ноября 2016, 10:07
    • |
    • uralpro
  • Еще

Прибыльны ли модели ARIMA/GARCH? Часть 2

Продолжение. Начало здесь.

Вы, наверное, заметили, что в процедуре вычисления параметров модели, описанной выше, я запоминал действительные предсказанные значения, так же как и предсказания направления приращения цены. Я хочу исследовать предсказательную способность величины  приращения. Точнее, может ли фильтрация сделок, в случаях, когда величина предсказанного приращения ниже определенного порога, улучшить доходность стратегии? Код ниже представляет такой анализ для небольших порогах приращений. Для упрощения, я конвертировал логарифмы приращений в простые приращения, чтобы получить управление знаком предсказания и облегчения применения порога:

# Test entering a trade only when prediction exceeds a threshold magnitude
simp.forecasts <- exp(ag.forecasts) - 1
threshold <- 0.000025
ag.threshold <- ifelse(simp.forecasts > threshold, 1, ifelse(simp.forecasts < -threshold, -1, 0))
ag.threshold.returns <- ag.threshold * returns[(window.length):length(returns)]
ag.threshold.returns[1] <- 0 # remove NA
ag.threshold.curve <- log(cumprod( 1 + ag.threshold.returns))
both.curves <- cbind(ag.threshold.curve, buy.hold.curve)
names(both.curves) <- c("Strategy returns", "Buy and hold returns")

# plot both curves together
plot(x = both.curves[,"Strategy returns"], xlab = "Time", ylab = "Cumulative Return",
     main = "Cumulative Returns",  major.ticks= "quarters", #
     minor.ticks = FALSE, ylim = c(-0.2, 0.45), col = "darkorange")
lines(x = both.curves[,"Buy and hold returns"], col = "blue")
legend(x = 'bottomleft', legend = c("Strategy", "B&H"),
       lty = 1, col = myColors)


( Читать дальше )

Прибыльны ли модели ARIMA/GARCH? Часть 1

    • 29 октября 2016, 11:19
    • |
    • uralpro
  • Еще

Прибыльны ли модели ARIMA/GARCH? Часть 1

Статья из блога Robot Wealth.

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

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

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



( Читать дальше )

Добавление и оценка влияния внешнего регрессора BRN6 в модель ARIMA для RIM6 на R

    • 10 июня 2016, 03:33
    • |
    • SciFi
  • Еще
По мотивам поста Применение ARIMA для предсказания цены на RIM6 на R

Итак, я добавил в ARIMA для RIM6 внешний регрессор — цену на нефть BRN6. И проверил — действительно ли это улучшает модель. Теоретически, должно, так как цена на нефть должна опережать РТС. Сначала меняется мировой спрос на нефть — затем уже меняется спрос на рос. активы.

И действительно — это улучшило модель. Критерий AIC, характеризующий качество модели, уменьшился, несмотря на то, что 1 параметром в модели стало больше. Кроме этого, ошибки модели стали меньше. В усовершенствованной версии диапазон (-100, 100), а в простой — (-200, 200).  

Гистограммы остатков моделей

Добавление и оценка влияния внешнего регрессора BRN6 в модель ARIMA для RIM6 на R

Здесь на верхнем графике ошибки (остатки) модели с дополнительным регрессором fit.arima.reg, а на нижнем — обычной ARIMA fit.arima.

( Читать дальше )

Применение ARIMA для предсказания цены на RIM6 на R (Часть 2)

    • 09 июня 2016, 12:28
    • |
    • SciFi
  • Еще
Вчера написал пост Применение ARIMA для предсказания цены на RIM6 на R

Но в нем было всего 2 сделки. Непрезентативно. 

Попробовал сегодня еще раз руками поскальпить, предсказывая цену с помощью R на ближайшие 5 минут. В принципе, заработал 500 р за 17 сделок (34 операции) 1 лотом RIM6.  

Применение ARIMA для предсказания цены на RIM6 на R (Часть 2)

Выводы

1. ARIMA работает как я ожидал в том плане, что когда цена сильно падает, модель предсказывает цену ниже, когда цена стоит — предсказание примерно как цена закрытия. Спред считается хорошо — заявки исполняются. Когда модель предсказывает цену ниже текущей, нужно ставить заявку только на шорт. А то я ловил ножи и выходил с убытком несколько раз. 

2. Я закрывал сделку по цели, не давал прибыли течь. Может быть стоит сначала предсказывать цену на следующие 5 минут и если цена ниже, то шорт не закрывать, а держать дальше, двигая заявку на выкуп. Тогда будет экономия на комиссии и может быть удастся ловить крупные движения. 

( Читать дальше )

Применение модели ARIMA-GARCH для прогнозирования курса рубля на R

    • 12 мая 2016, 11:12
    • |
    • SciFi
  • Еще
Продолжаю копать в сторону машинного обучения и применения R для количественного анализа в трейдинге.

Мои статьи про R, машинное обучение, количественный анализ

В этом посте я расскажу о применении модели ARIMA-GARCH для прогнозирования курса рубля на R. 
Нашел полезную серию статей на тему анализа временных рядов на R. Использовал эту статью.

Немного общей информации из википедии:

ARIMA (англ. autoregressive integrated moving average, иногда модель Бокса — Дженкинса, методология Бокса — Дженкинса) — интегрированная модель авторегрессии — скользящего среднего — модель и методология анализа временных рядов. Является расширением моделей ARMA для нестационарных временных рядов, которые можно сделать стационарными взятием разностей некоторого порядка от исходного временного ряда (так называемые интегрированные или разностно-стационарные временные ряды). Модель ARIMA(p,d,q) означает, что разности временного ряда порядка d подчиняются модели ARMA(p, q).

( Читать дальше )

....все тэги
UPDONW
Новый дизайн