最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

R語(yǔ)言時(shí)間序列:ARIMA / GARCH模型的交易策略在外匯市場(chǎng)預(yù)測(cè)應(yīng)用

2021-06-08 21:47 作者:拓端tecdat  | 我要投稿

原文鏈接:http://tecdat.cn/?p=17622

原文出處:拓端數(shù)據(jù)部落公眾號(hào)

?

?

最近,我們繼續(xù)對(duì)時(shí)間序列建模進(jìn)行探索,研究時(shí)間序列模型的自回歸和條件異方差族。我們想了解自回歸移動(dòng)平均值(ARIMA)和廣義自回歸條件異方差(GARCH)模型。它們?cè)诹炕鹑谖墨I(xiàn)中經(jīng)常被引用。

接下來(lái)是我對(duì)這些模型的理解,基于擬合模型的預(yù)測(cè)的一般擬合程序和簡(jiǎn)單交易策略的摘要。

?

這些時(shí)間序列分析模型是什么?

?

擬合ARIMA和GARCH模型是一種發(fā)現(xiàn)時(shí)間序列中的觀測(cè)值,噪聲和方差影響時(shí)間序列的方式。適當(dāng)?shù)財(cái)M合的這種模型將具有一定的預(yù)測(cè)效用,當(dāng)然前提是該模型在將來(lái)的一段時(shí)間內(nèi)仍非常適合基礎(chǔ)過(guò)程。

ARMA

ARMA模型是自回歸(AR)模型和移動(dòng)平均(MA)模型的線性組合。AR模型其預(yù)測(cè)變量是該序列的先前值。MA模型在結(jié)構(gòu)上類似于AR模型,除了預(yù)測(cè)變量是噪聲項(xiàng)。p,q階的自回歸移動(dòng)平均模型– ARMA(p,q)–是兩者的線性組合,可以定義為:

其中 w是白噪聲,而a和 b是模型的系數(shù)。

ARIMA(p,d,q)模型是ARMA(p,q)模型,它們的差值是d倍-或積分(I)-以產(chǎn)生平穩(wěn)序列。

GARCH

最后,GARCH模型還試圖說(shuō)明時(shí)間序列的異方差行為(即,波動(dòng)性聚類的特征)以及該序列先前值的序列影響(由AR解釋)和噪聲項(xiàng)(由MA解釋)。GARCH模型使用方差本身的自回歸過(guò)程,也就是說(shuō),它使用方差的歷史值來(lái)說(shuō)明方差隨時(shí)間的變化。

那么我們?nèi)绾螒?yīng)用這些模型?

有了這種背景,我接下來(lái)將ARIMA / GARCH模型擬合到EUR / USD匯率,并將其用作交易系統(tǒng)的基礎(chǔ)。使用擬合程序估算每天的模型參數(shù),然后使用該模型預(yù)測(cè)第二天的收益,并相應(yīng)保持一個(gè)交易日。

在每個(gè)交易日結(jié)束時(shí),會(huì)使用滾動(dòng)返回窗口來(lái)擬合最佳ARIMA / GARCH模型。擬合過(guò)程基于對(duì)參數(shù)的搜索,以最小化Aikake信息準(zhǔn)則,但是也可以使用其他方法。例如,我們可以選擇最小化貝葉斯信息準(zhǔn)則的參數(shù),這可以通過(guò)懲罰復(fù)雜模型(即具有大量參數(shù)的模型)來(lái)減少過(guò)度擬合。

我選擇使用1000天的滾動(dòng)窗口來(lái)擬合模型,但這是優(yōu)化的參數(shù)。有一種情況是在滾動(dòng)窗口中使用盡可能多的數(shù)據(jù),但這可能無(wú)法足夠快地捕獲不斷變化的模型參數(shù)以適應(yīng)不斷變化的市場(chǎng)。

這是代碼:

  1. ### ARIMA / GARCH交易模型


  2. #獲取數(shù)據(jù)并初始化對(duì)象以保存預(yù)測(cè)

  3. EURUSD <- read.csv('EURUSD.csv', header = T)


  4. returns <- diff(log(EURUSD$C)) ## ROC也可以使用:默認(rèn)情況下計(jì)算對(duì)數(shù)



  5. #遍歷每個(gè)交易日,從滾動(dòng)窗口中估計(jì)最佳模型參數(shù)

  6. #并預(yù)測(cè)第二天的收益

  7. for (i in 0:forecasts.length) {

  8. ??roll.returns <- returns[(1+i):(window.length + i)] #創(chuàng)建滾動(dòng)窗口



  9. ??# 估計(jì)最佳ARIMA模型

  10. ??for (p in 0:5) for (q in 0:5) { #將可能的階限制為p,q <= 5

  11. ????if (p == 0 && q == 0) next #將可能的階限制為p,q <= 5



  12. ??????current.aic <- AIC(arimaFit)

  13. ??????if (current.aic < final.aic) { #如果AIC降低則保留階數(shù)

  14. ????????final.aic <- current.aic

  15. ????????final.order <- c(p,0,q)

  16. ????????final.arima <- arima(roll.returns, order = final.order)

  17. ??????}

  18. ????}

  19. ????else next

  20. ??}

  21. ??# 指定并擬合GARCH模型

  22. ??spec = ugarchspec(


  23. ??# 指定并擬合GARCH模型

  24. ??# 模型并不總是收斂-在這種情況下,將0值分配給預(yù)測(cè)值和p.val

  25. ??if (is(fit, "warning")) {

  26. ????forecasts[i+1] <- 0



  27. ????directions[i+1] <- ifelse(x[1] > 0, 1, -1) #僅定向預(yù)測(cè)

  28. ????forecasts[i+1] <- x[1] # 預(yù)測(cè)的實(shí)際值

  29. ????print(forecasts[i])

  30. ????# 殘差分析

  31. ????resid <- as.numeric(residuals(fit, standardize = TRUE))



  32. }



  33. forecasts.ts <- xts(forecasts, dates[(window.length):length(returns)])

  34. # 創(chuàng)建滯后的序列預(yù)測(cè)



  35. ag.direction <- ifelse(ag.forecasts > 0, 1, ifelse(ag.forecasts < 0, -1, 0))

  36. # 創(chuàng)建滯后的序列預(yù)測(cè)

  37. ag.direction.returns <- ag.direction * returns[(window.length):length(returns)]

  38. ag.direction.returns[1] <- 0 # remove NA

  39. # 創(chuàng)建ARIMA / GARCH買入持有的回測(cè)

  40. ag.curve <- cumsum( ag.direction.returns)





  41. # 繪制兩條曲線:策略收益和累積收益



  42. plot(x = both.curves[,"Strategy returns"], xl

首先,僅是方向性預(yù)測(cè):在預(yù)測(cè)正收益時(shí)購(gòu)買,在預(yù)測(cè)負(fù)收益時(shí)出售。這種方法的結(jié)果如下所示(不包含交易費(fèi)用): 在上面的模型擬合過(guò)程中,我保留了實(shí)際的預(yù)測(cè)收益值以及預(yù)測(cè)收益的方向。我想研究預(yù)測(cè)返回值的大小的預(yù)測(cè)能力。具體來(lái)說(shuō),當(dāng)預(yù)測(cè)回報(bào)的幅度低于某個(gè)閾值時(shí)進(jìn)行過(guò)濾交易會(huì)改善策略的性能嗎?下面的代碼以較小的返回閾值執(zhí)行此分析。為簡(jiǎn)單起見,我將預(yù)測(cè)對(duì)數(shù)收益率轉(zhuǎn)換為簡(jiǎn)單收益率,以便能夠控制預(yù)測(cè)的信號(hào)并易于實(shí)現(xiàn)。

  1. # 僅在預(yù)測(cè)超過(guò)閾值幅度時(shí)測(cè)試進(jìn)入交易

  2. simp.forecasts <- exp(ag.forecasts) - 1



  3. ag.threshold.returns[1] <- 0 # 刪除缺失

  4. ag.threshold.curve <- cumsum(ag.threshold.returns))



  5. # 繪制兩條曲線:策略收益和累積收益

  6. plot(x = both.curves[,"Strategy returns"], xlab = "Time", y

?結(jié)果覆蓋了原始策略:?在我看來(lái),我們擬合某段時(shí)間的ARIMA / GARCH模型可能比其他時(shí)間更好或更糟地表示了基礎(chǔ)過(guò)程。當(dāng)我們對(duì)模型缺乏信心時(shí),過(guò)濾交易可能會(huì)改善性能。這種方法要求評(píng)估每天模型擬合的統(tǒng)計(jì)顯著性,并且僅在顯著性超過(guò)特定閾值時(shí)才輸入交易。有許多方法可以實(shí)現(xiàn)這一點(diǎn)。首先,我們可以檢查模型殘差的相關(guān)圖,并在此基礎(chǔ)上判斷擬合優(yōu)度。理想情況下,殘差的相關(guān)圖類似于白噪聲過(guò)程,沒(méi)有序列相關(guān)性。殘差的相關(guān)圖可以在R中構(gòu)造如下:


?

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


?



盡管此相關(guān)圖表明模型擬合良好,但顯然它不是一種很好的方法,因?yàn)樗蕾囉谥饔^判斷,更不用說(shuō)人類有能力審查每天的模型。更好的方法是檢查L(zhǎng)jung-Box統(tǒng)計(jì)量是否適合模型擬合。Ljung-Box是用于評(píng)估擬合模型殘差的自相關(guān)是否與零顯著不同的假設(shè)檢驗(yàn)。在該檢驗(yàn)中,零假設(shè)是殘差的自相關(guān)為零;另一種是我們的時(shí)間序列分析具有序列相關(guān)性。否定空值并確認(rèn)替代值將意味著該模型不是很好的擬合,因?yàn)闅埐钪写嬖跓o(wú)法解釋的結(jié)構(gòu)。Ljung-Box統(tǒng)計(jì)量在R中的計(jì)算方式如下:



  1. Box-Ljung test

  2. data: resid

  3. X-squared = 23.099, df = 20, p-value = 0.284

在這種情況下,p值可以證明殘差是獨(dú)立的,并且該特定模型非常合適。作為解釋,為了增加殘差的自相關(guān),Ljung-Box測(cè)試統(tǒng)計(jì)量(在上面的代碼輸出中為X平方)變得更大。p值是在原假設(shè)下獲得大于或大于檢驗(yàn)統(tǒng)計(jì)量的值的概率。因此,在這種情況下,高p值是殘差獨(dú)立性的證據(jù)。

將Ljung-Box檢驗(yàn)應(yīng)用于每天的模型擬合可發(fā)現(xiàn)很少幾天獨(dú)立殘差的零假設(shè)被拒絕,因此將策略擴(kuò)展為過(guò)濾模型擬合不太可能增加太多價(jià)值:

時(shí)間序列分析結(jié)論和未來(lái)工作

在回溯測(cè)試期間,ARIMA / GARCH策略的表現(xiàn)優(yōu)于歐元/美元匯率的買入和持有策略,但是,該表現(xiàn)并不出色。似乎可以通過(guò)過(guò)濾諸如預(yù)測(cè)幅度和模型擬合優(yōu)度之類的特征來(lái)提高策略的性能,盡管后者在此特定示例中并沒(méi)有增加太多價(jià)值。另一個(gè)過(guò)濾選項(xiàng)是為每天的預(yù)測(cè)計(jì)算95%的置信區(qū)間,并且僅在每個(gè)信號(hào)相同時(shí)才輸入交易,盡管這會(huì)大大減少實(shí)際進(jìn)行的交易數(shù)量。

GARCH模型還有許多其他種類,例如指數(shù),積分,二次,閾值和轉(zhuǎn)換等。與本示例中使用的簡(jiǎn)單GARCH(1,1)模型相比,這些方法可能會(huì)或可能不會(huì)更好地表示基礎(chǔ)過(guò)程。

我最近發(fā)現(xiàn)非常有趣的一個(gè)研究領(lǐng)域是通過(guò)不同模型的智能組合對(duì)時(shí)間序列進(jìn)行預(yù)測(cè)。例如,通過(guò)取幾個(gè)模型的單個(gè)預(yù)測(cè)的平均值,或?qū)︻A(yù)測(cè)的信號(hào)進(jìn)行多數(shù)表決。要借用一些機(jī)器學(xué)習(xí)的術(shù)語(yǔ),這種“集合”模型通常會(huì)比任何組合模型產(chǎn)生更準(zhǔn)確的預(yù)測(cè)。也許有用的方法是使用經(jīng)過(guò)適當(dāng)訓(xùn)練的人工神經(jīng)網(wǎng)絡(luò)或其他統(tǒng)計(jì)學(xué)習(xí)方法來(lái)對(duì)此處提出的ARIMA / GARCH模型進(jìn)行預(yù)測(cè)。也許我們可以期望ARIMA / GARCH模型能夠捕獲時(shí)間序列的任何線性特征,而神經(jīng)網(wǎng)絡(luò)可能非常適合非線性特征。

如果您有任何想法可以改善時(shí)間序列分析模型的預(yù)測(cè)準(zhǔn)確性,歡迎在下方評(píng)論或聯(lián)系我們。
?

?

最受歡迎的見解

1.HAR-RV-J與遞歸神經(jīng)網(wǎng)絡(luò)(RNN)混合模型預(yù)測(cè)和交易大型股票指數(shù)的高頻波動(dòng)率

2.R語(yǔ)言中基于混合數(shù)據(jù)抽樣(MIDAS)回歸的HAR-RV模型預(yù)測(cè)GDP增長(zhǎng)

3.波動(dòng)率的實(shí)現(xiàn):ARCH模型與HAR-RV模型

4.R語(yǔ)言ARMA-EGARCH模型、集成預(yù)測(cè)算法對(duì)SPX實(shí)際波動(dòng)率進(jìn)行預(yù)測(cè)

5.GARCH(1,1),MA以及歷史模擬法的VaR比較

6.R語(yǔ)言多元COPULA GARCH 模型時(shí)間序列預(yù)測(cè)

7.R語(yǔ)言基于ARMA-GARCH過(guò)程的VAR擬合和預(yù)測(cè)

8.matlab預(yù)測(cè)ARMA-GARCH 條件均值和方差模型

9.R語(yǔ)言對(duì)S&P500股票指數(shù)進(jìn)行ARIMA + GARCH交易策略


R語(yǔ)言時(shí)間序列:ARIMA / GARCH模型的交易策略在外匯市場(chǎng)預(yù)測(cè)應(yīng)用的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國(guó)家法律
广宁县| 汉川市| 娱乐| 教育| 中阳县| 蒙城县| 保靖县| 玉门市| 西青区| 石台县| 稷山县| 马边| 沛县| 遂平县| 车险| 库尔勒市| 溧阳市| 息烽县| 浦北县| 九龙城区| 抚州市| 惠东县| 海伦市| 金塔县| 平罗县| 淮安市| 庄浪县| 井研县| 鄂托克前旗| 霍山县| 津市市| 威信县| 克东县| 湖口县| 北票市| 厦门市| 石阡县| 乌拉特中旗| 股票| 邓州市| 汽车|