python用回歸、arima、隨機森林、GARCH模型分析國債期貨波動性、收益率、價格預(yù)測
全文鏈接:http://tecdat.cn/?p=31123
原文出處:拓端數(shù)據(jù)部落公眾號
分析師:Yihan Mao
解決方案
本文為客戶提供咨詢,讓個人購買人員了解美國國債期貨的特性,以便于進行個人投資及管理。
任務(wù)/目標(biāo)
由于國債期貨的方便,可以快速交易,所以無論是用來投機還是用來對沖風(fēng)險都有很好的作用效果。我們提取美國國債期貨的數(shù)據(jù),進行波動性,收益率上的分析,并進行價格預(yù)測。
數(shù)據(jù)源準(zhǔn)備
用python(import YahooFinance)獲取美國國債期貨近10年的數(shù)據(jù)作為基本分析數(shù)據(jù)。同時,由于國債期貨的價格受到許多宏觀因素的影響,所以并且還需要找到一些其他的影響要素,這里我們提取GDP,CPI,Treasury Yield(收益率)并作為我們的特征。
特征轉(zhuǎn)換
數(shù)據(jù)預(yù)處理。datetime換成標(biāo)準(zhǔn)時間,算出日logreturn(log收益),分別算出15,50,100天的SMA與RSI加入到特征。畫出boxplot,通過圖過濾掉outliers跟一些不正常的點。用pandas篩選數(shù)據(jù),填補過濾掉空數(shù)據(jù)。
分析收益
畫出日收益率,尋找聚集波動性強的點,進行進一步分析。通過圖看出在哪一段時間日收益較高,并且尋找近期事件發(fā)生的影響。我們發(fā)現(xiàn)存在收益相對較高,有投資價值。
分析波動性
波動性可以考慮為標(biāo)準(zhǔn)差的表現(xiàn)。首先直觀觀察,畫出短期SMA與長期SMA,交點較多的地方為潛在波動性強的地方。再畫出Bollinger Bands,密集的地方為波動性大的地方。


將這段時間發(fā)生的事情結(jié)合在一起分析,可以看出人們在發(fā)生經(jīng)濟變動的時候會選擇用此國債期貨進行風(fēng)險轉(zhuǎn)移。
?
建模分析
Regression Model:
由于特征數(shù)據(jù)有多重因素,我們可以一個多重線性回歸。 通過畫圖scatterplot matrix我們發(fā)現(xiàn),很多之間并不是線性,而且存在變量之間的線性關(guān)系(由于目標(biāo)是預(yù)測,所以可以忽略),所以我們進行Box-Tidewell Transformation. 然后選取訓(xùn)練集合跟預(yù)測集合,建立模型進行回歸預(yù)測。
ARIMA:
由于國債期貨不是商品類型,所以我們不考慮季節(jié)性的變化。(ARIMA模型是指將非平穩(wěn)時間序列轉(zhuǎn)化為平穩(wěn)時間序列,然后將結(jié)果變量做自回歸(AR)和自平移(MA)。)
首先畫圖查看是否存在自相關(guān)。用ADF test來檢測是否平穩(wěn),如果不平穩(wěn)我們對其進行差分處理,知道檢測P-value<0. 然后用Ljung-Box Test 檢測白噪聲,如果不是白噪聲證明可以預(yù)測此時間序列。

接下來定階。Auto-select得知選擇ARIMA(1,1,1). 我們建立模型。并對模型進行residual分析,得知模型良好。

同時看出residual可以看做normal分布。
我們選擇前80%的數(shù)據(jù)為訓(xùn)練集合,后20%為測試集合,建立預(yù)測。

可以看出預(yù)測值與實際值近似。如果假設(shè)經(jīng)濟狀況平穩(wěn),沒有重大事情發(fā)生的狀況下(eg.covid-19),可以參考其變化來進行投機,實際上仍需考慮多方面宏觀因素。
隨機森林:
用隨機的方式建立一個由很多決策樹組成的,每一棵樹都只負(fù)責(zé)自己的部分。每一棵樹來進行自己的分類運算,最后選擇評分最高的來進行預(yù)測。

GARCH模型:
金融市場有杠桿效應(yīng)。方差并不是恒定的,ARCH模型是一個很好的解決方法。
由于國債期貨長達30年,很多宏觀因素的變化對其有很大的影響。
預(yù)測取決于我們的目的,如果我們的目的僅僅是投機,我們只需要觀察價格的變化走勢,同時受到一些宏觀因素的影響。比如我們還可以通過畫出RSI的變化,來訓(xùn)練什么時候應(yīng)該買入賣出。

同時根據(jù)交易量(Volume)的變化可以看出人們的活動狀況,尤其是在宏觀事件影響的時候。這個對于風(fēng)險管理有很重要的參考價值。
改進:
可以根據(jù)每周工作日設(shè)置indicator變量,更好的反應(yīng)時間因素。同時可以設(shè)置他們的相互作用(interaction effect)。
選取的宏觀因素可以進一步增加。
關(guān)于作者

在此對Yihan Mao對本文所作的貢獻表示誠摯感謝,他畢業(yè)于廈門大學(xué)(馬來西亞分校),專長金融數(shù)學(xué),數(shù)據(jù)分析可視化。

最受歡迎的見解
1.R語言對S&P500股票指數(shù)進行ARIMA + GARCH交易策略
2.R語言改進的股票配對交易策略分析SPY—TLT組合和中國股市投資組合
3.R語言時間序列:ARIMA GARCH模型的交易策略在外匯市場預(yù)測應(yīng)用
4.TMA三均線期指高頻交易策略的R語言實現(xiàn)
5.r語言多均線量化策略回測比較
6.用R語言實現(xiàn)神經(jīng)網(wǎng)絡(luò)預(yù)測股票實例
7.r語言預(yù)測波動率的實現(xiàn):ARCH模型與HAR-RV模型
8.R語言如何做馬爾科夫轉(zhuǎn)換模型markov switching model
9.matlab使用Copula仿真優(yōu)化市場風(fēng)險