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) На сильных движениях рынка можно много оставить в таком случае.
  • evgen000
    09 июня 2016, 13:45
    Думаю результат будет сильно лучше в часы когда не выходит никакая статистика.
  • Кстати, фиттинг ARIMA-GARCH моделей с разными параметрами распределения ошибки и порядками моделей можно неплохо реализовать через parLapply из пакета «parallels». Плюс, надеюсь, у Вас стоит MRO, а не базовый R с cran-r.

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

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

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