SciFi
SciFi личный блог
09 июня 2016, 12:28

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

Вчера написал пост Применение ARIMA для предсказания цены на RIM6 на R

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

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

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

Выводы

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

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

3. Поизучал GARCH, но применять ARIMA + GARCH сложно, GARCH часто не сходится и модель не работает. Это не удобно. Пока оставлю только ARIMA. РТС падал с нефтью. Нужно попробовать добавить в ARIMA модель еще внешние регрессоры — нефть и S&P / DAX. 

4. Вроде бы мат. ожидание положительное и на мат. моделях можно делать деньги.

5. Выходил не по стопу, а двигал заявку на выкуп по новому предсказанию. И это работает. То есть проходит свеча, если я в минусе, то я пересчитываю следующее предсказание и двигаю заявку на закрытие. Это еще одно преимущество мат. моделей — не надо бить по стакану. Все делается лимитированными заявками.
6 Комментариев
  • IliaM
    09 июня 2016, 12:57
    Если добавить час, 4 часа и день. Может еще интереснее получиться. Общее направление понимать.
  • 1) Используйте в качестве предсказания хотя бы X*_{t+1} — X_{t} > const. Лучше рассматривать что-то а-ля VaR, т.е. брать некоторую квантиль, с которой гарантированно по прогнозу получаете прибыль. X*_{t+1} имеет нормальное распределение, параметры распределения известны (интервальные оценки как раз на них строятся).
    2) Увеличение горизонта прогнозирования ухудшало поведение модели (по крайней мере в моих изысканиях).
    3) ARIMA+GARCH вполне сносно фитится. Для этого используйте fGarch или rugarch. Правда, ньюанс выбора модели в том, что сложность подбора адекватной модели ARIMA-GARCH высока — де-факто требуется зафиттить p*q*s*e*(количество используемых распределений) моделей. Обычно порядок GARCH берут не выше (2,2). А вот распределения надо проверять методом отсечки незначимых коэффициентов распределений. Т.е. возможна такая последовательность: sstd->std->norm. или sged->snorm и т.п. Внешние регрессоры проще добавлять уже тогда в модели VAR/VECM и их обобщения.
    4) Положительное мат.ожидание чего? С учётом комиссий надо смотреть. 
    5) На сильных движениях рынка можно много оставить в таком случае.
      • SciFi, в принципе, фиттинг модели ARIMA-GARCH не сильно дольше фиттинга обычной модели ARIMA. Правда, порядок количества моделей для фиттинга возрастает сильно.
        Дальше, важно брать достаточно большую выборку большую, т.к. тесты единичных корней могут сильно врать на малых выборках (сходимость порядка sqrt(N) вроде для классических тестов единичного корня). 
        Насчёт движений и т.п. — попробуйте торговать на границах. Смысл такой — стационарный случайный процесс всегда тяготеет к среднему значению. Т.о. продавая и покупая на соответствующих квантилях, а закрывая сделку на уровне X*_{t+1}, можно быть в плюсах.
        Да, классически DF и ADF использовать в случае ARIMA-GARCH нельзя. Тут вроде kpss или pp тесты можно использовать, которые учитывают возможный эффект гетероскедастичности e_{t} в МА-части. 
  • evgen000
    09 июня 2016, 13:45
    Думаю результат будет сильно лучше в часы когда не выходит никакая статистика.
  • Кстати, фиттинг ARIMA-GARCH моделей с разными параметрами распределения ошибки и порядками моделей можно неплохо реализовать через parLapply из пакета «parallels». Плюс, надеюсь, у Вас стоит MRO, а не базовый R с cran-r.

    Да, порекомендую ещё один хороший пакет — arfima. Он позволяет фиттить arfima-модели с разными предположениями относительно спектра процесса, моделируя тяжёлые хвосты распределений для прогнозов. Написан толково, мощный, удобный. Коэффициент d для фрактальной части можно взять посредством wmtsa библиотеки, там есть методы оценки данной размерности.

Активные форумы
Что сейчас обсуждают

Старый дизайн
Старый
дизайн