<HELP> for explanation

Блог им. uralpro

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

Прибыльны ли модели 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? Часть 2

    Похоже, что рассчитанная нами модель в некоторые дни может описывать лежащий в ее основе процесс лучше, чем в другие. Вероятно, если мы будем отфильтровывать сделки в тех случаях, где наша уверенность в точности модели меньше, то сможем повысить производительность стратегии. Такой подход требует вычисления статистической значимости ежедневного расчета модели, и вход в сделку должен осуществляться после того, как эта значимость превысит определенный порог.  Есть несколько путей достижения этой цели. Во-первых, мы можем визуально исследовать коррелограмму остатков модели и вынести суждение о том, насколько хорошо модель соответствует процессу. В идеале, остатки (шум) модели должны быть похожи на белый шум, то  есть серийная корреляция должна отсутствовать. Коррелограмма остатков может быть построена в R следующим образом:

acf(fit@fit$residuals, main = 'ACF of Model Residuals')

Прибыльны ли модели ARIMA/GARCH? Часть 2
Так как визуально эта коррелограмма представляет хорошее соответствие модели процессу, очевидно, что подход, основанный на субъективном суждении, не очень хорош. Лучший способ — проверить модель с помощью стаистики Льюнга-Бокса (Ljung-Box). Статистика Льюнга-Бокса — это проверка гипотезы о том, верно ли утверждение, что автокорреляция остатков вычисленной модели значительно отличается от 0. В этом тесте  нулевой гипотезой является предположение, что автокорреляция остатков равна 0, а альтернативой — то, что в процессе имеется серийная корреляция. Отклонение нулевой гипотезы и принятие альтернативы будет значить, что модель не очень хорошо подходит к процессу, так как есть необъясненные структуры в остатках. Статистика Льюнга-Бокса вычисляется в R следующим образом:

ljung.box <- Box.test(resid, lag = 20, type = "Ljung-Box", fitdf = 0)
ljung.box

Box-Ljung test

data: resid
X-squared = 23.099, df = 20, p-value = 0.284

В данном случае p-значение говорит о том, что остатки независимы и данная модель имеет хорошее соответствие процессу. Отметим, что статистика Льюнга-Бокса (величина X-squared в вышеприведенном коде) растет сильнее при увеличении автокорреляции остатков. Р-значение — это вероятность получения величины остатка такой же или более статистики при нулевой гипотезе. Таким образом, высокое р-значение является доказательством независимости остатков. Заметьте, что вычисление применяется для всех лагов, начиная с первого, что определено в функции Box.test().

Применяя тест Льюнга-Бокса к модели, пересчитываемой ежедневно, мы получаем очень мало дней, где отвергается нулевая гипотеза о независимости остатков, так что внедрив такой фильтр в нашу стратегию мы получим слабое соответствие модели и вряд ли это улучшит производительность, что и видно на графике в заглавии статьи.

Заключение и направления дальнейших исследований

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

Есть очень много вариантов модели GARCH, например, экспоненциальная, интегральная, квадратичная, структурная и т.д. Они могут дать лучшее соответствие рассматриваемому процессу, чем простая модель GARCH(1,1), примененная в нашем примере. 

Я нахожу очень интересной область исследований, в которой предсказание временной серии осуществляется в результате сложной комбинации различных моделей,  например, взятием средней от индивидуального предсказания каждой модели, или поиском консенсуса, или большинством голосов о знаке предсказания. Заимствуя термин из машинного обучения, «ансамбль» моделей может часто генерировать более точное предсказание, чем  любая из его составляющих. Возможно полезным подходом будет совмещение предсказаний ARIMA/GARCH модели, представленной здесь, с обученной нейронной сетью или другим обучающимся методом.  Мы можем предположить, что ARIMA/GARCH модель объясняет линейные зависимости во временной серии, а нейронная сеть может хорошо  поймать зависимости нелинейные.

Другие стратегии и алгоритмы автоматической торговли смотрите на моем сайте www.quantalgos.ru

 

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

wrmngr

wrmngr, ряд приращений цены в общем случае не обладает положительной автокорреляцией, а про волатильность вы правы, и это очень хорошо можно использовать в ХФТ алго
Да, именно про волатильность речь. И использовать это конечно можно, но, скорее всего бессмысленно строить модели авторегрессии для этого процесса
avatar

wrmngr


.
… бл@дь, а я то считал себя продвинутым, а оно вон оно чё... 
avatar

ZMX

ARIMA не подходит в большенстве случаев, acf ведь четко показывает, что никакой существенной автокорреляции нет. Остается только MA, но это и в тех. анализе используется. А вот GARCH эффект есть, но толку с осознания этого без модели, которую этот самый GARCH мог бы корректировать не много. Так что график доходности в вашей первой статье говорит сам за себя — толку ровным счетом ноль.
Илья Гаврилов, попробуйте использовать ARIMA не просто для ценового ряда, а для более сложных исходных данных. ведь маркет дата не ограничивается ценой
uralpro, что же про arFima все молчат? этож используется в фонде Арсена Яковлева, если таковой ещё существует? Там трендовая составляющая включена, вообще красота.
avatar

discovery

«это очень хорошо можно использовать в ХФТ алго». Это когда в неликвиде(опциках) стоять маркетмейкером с малым объемом, а потом, если получился плюс, говорить, что был применен тот или иной метод? А потом мы видим такие выводы и разгребаем эти кучи псевдореальных успехов и псевдонаучных стат трудов и  тратим время.
avatar

discovery

discovery, мы опционы вообще не котируем, а на фьючерсах у нас тысячи сделок в день, так что сложно говорить о случайных прибылях
uralpro, хорошо! Давайте, пожалуйста, про arfima. Вы же параллельно занимаетесь занимательным :)  . Я серьезно.
Мы можем предположить, что рынок это шум, а источник прибыли — мат. ожидание. Где и как его искать — вот в чем вопрос.
avatar

ELab


Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.

Залогиниться

Зарегистрироваться
....все тэги
Регистрация
UPDONW