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

歡迎光臨散文網 會員登陸 & 注冊

R語言對S&P500股票指數(shù)進行ARIMA + GARCH交易策略|附代碼數(shù)據(jù)

2022-12-20 23:00 作者:拓端tecdat  | 我要投稿

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

最近我們被客戶要求撰寫關于交易策略的研究報告,包括一些圖形和統(tǒng)計輸出。 在本文中,我想向您展示如何應用S&P500股票市場指數(shù)的交易策略

通過組合ARIMA和GARCH模型,從長期來看,我們可以超過“買入并持有”方法。

策略概述

該策略在“滾動”預測的基礎上執(zhí)行:

  1. 對于每一天,股票指數(shù)的對數(shù)收益的前_k_天被用作擬合最佳ARIMA和GARCH模型的窗口。?

  2. 組合模型用于對第二天的收益進行預測。

  3. 如果預測為負,則在上一個收盤時做空股票,而如果預測為正,則做多。

  4. 如果預測與前一天的方向相同,則什么都不會改變。

策略實施

第一個任務是在R中安裝和導入必要的庫:

如果已經安裝了庫,則可以簡單地導入它們:

> library(quantmod) > library(lattice) > library(timeSeries) > library(rugarch)

完成后,將把該策略應用于S&P500。

然后,我們可以創(chuàng)建標準普爾500的“收盤價”的對數(shù)收益率差分序列,并去除初始NA值:

根據(jù)Akaike信息準則,循環(huán)過程將為我們提供“最佳”擬合ARMA模型,然后我們可以將其用于輸入GARCH模型:

> ? ?final.aic <- Inf> ? ?final.order <- c(0,0,0)> ? ?for (p in 0:5) for (q in 0:5) {> ? ? ? ?if ( p == 0 && q == 0) {> ? ? ? ? ? ?next> ? ? ? ?}> > ? ? ? ? arimaFit = tryCatch( arima(spReturnsOffset, order=c(p, 0, q)),> ? ? ? ? ? ? ? ? ? ? ? ? ? ? error=function( err ) FALSE,> ? ? ? ? ? ? ? ? ? ? ? ? ? ? warning=function( err ) FALSE )> > ? ? ? ? if( !is.logical( arimaFit ) ) {> ? ? ? ? ? ?current.aic <- AIC(arimaFit)> ? ? ? ? ? ?if (current.aic < final.aic) {> ? ? ? ? ? ? ? ?final.aic <- current.aic> ? ? ? ? ? ? ? ?final.order <- c(p, 0, q)> ? ? ? ? ? ? ? ?final.arima <- arima(spReturnsOffset, order=final.order)> ? ? ? ? ? ?}> ? ? ? ?} else {> ? ? ? ? ? ?next> ? ? ? ?}> ? ?}

如果GARCH模型無法收斂,那么我們只需將日期設置為產生“長期”預測 。

為了準備CSV文件的輸出,我創(chuàng)建了一個字符串,其中包含用逗號分隔的數(shù)據(jù),并帶有第二天的預測方向:

> ? ? if(is(fit, "warning")) { > ? ? ? forecasts[d+1] = paste(index(spReturnsOffset[windowLength]), 1, sep=",") > ? ? ? print(paste(index(spReturnsOffset[windowLength]), 1, sep=",")) > ? ? } else { > ? ? ? fore = ugarchforecast(fit, n.ahead=1) > ? ? ? ind = fore@forecast$seriesFor> ? ? ? forecasts[d+1] = paste(colnames(ind), ifelse(ind[1] < 0, -1, 1), sep=",") > ? ? ? print(paste(colnames(ind), ifelse(ind[1] < 0, -1, 1), sep=",")) > ? ? } > }

倒數(shù)第二步是將CSV文件輸出 。

確保在與forecasts.csv文件相同的目錄中運行:

forecasts?= open("forecasts.csv",?"r").readlines()

至此,我們已將更正的指標文件存儲在中forecasts_new.csv

策略結果

現(xiàn)在,我們已經生成了指標CSV文件,我們需要將其效果與“買入并持有”進行比較。

我們首先從CSV文件中讀取指標并將其存儲為spArimaGarch

然后,我們將ARIMA + GARCH預測的日期與S&P500的原始收益集相交。

一旦獲得ARIMA + GARCH策略的收益,就可以為ARIMA + GARCH模型和“買入并持有”創(chuàng)建資產曲線。最后,我們將它們合并為一個數(shù)據(jù)結構:

> spArimaGarchCurve = log( cumprod( 1 + spArimaGarchReturns ) ) > spBuyHoldCurve = log( cumprod( 1 + spIntersect[,2] ) ) > spCombinedCurve = merge( spArimaGarchCurve, spBuyHoldCurve, all=F )

最后,我們可以在同一圖上繪制兩條收益曲線:

> xyplot( > ?spCombinedCurve,> ?superpose=T,> ?col=c("darkred", "darkblue"),> ?lwd=2,> ?key=list( > ? ?text=list(> ? ? ?c("ARIMA+GARCH", "Buy & Hold")> ? ?),> ? ?lines=list(> ? ? ?lwd=2, col=c("darkred", "darkblue")> ? ?)> ?)> )

資產曲線如下:

點擊標題查閱往期內容

R語言動量交易策略分析調整后的數(shù)據(jù)

左右滑動查看更多

01

02

03

04

ARIMA + GARCH策略的股票曲線與S&P500的“買入并持有”

如您所見,在65年的時間里,ARIMA + GARCH策略的表現(xiàn)明顯優(yōu)于“買入并持有”。但是,您還可以看到,大部分收益發(fā)生在1970年至1980年之間。

因此,在將此類模型建立之前將其應用于歷史序列真的合適嗎?另一種選擇是開始將模型應用于最新數(shù)據(jù)。實際上,我們可以考慮一下從2005年1月1日至今的最近十年的表現(xiàn):

從2005年至今,ARIMA + GARCH策略與S&P500的“買入并持有”股票曲線

現(xiàn)在,我們已經完成了ARIMA和GARCH模型的討論,我想通過考慮長狀態(tài)空間模型和協(xié)整時間序列來繼續(xù)進行時間序列分析討論。

時間序列的這些后續(xù)領域將向我們介紹一些模型,這些模型可以改善我們的預測,這將大大提高我們的交易獲利能力和/或降低風險。

本文摘選?《?R語言對S&P500股票指數(shù)進行ARIMA + GARCH交易策略?》?,點擊“閱讀原文”獲取全文完整資料。

點擊標題查閱往期內容

R語言ARMA GARCH COPULA模型擬合股票收益率時間序列和模擬可視化
ARMA-GARCH-COPULA模型和金融時間序列案例
時間序列分析:ARIMA GARCH模型分析股票價格數(shù)據(jù)
GJR-GARCH和GARCH波動率預測普爾指數(shù)時間序列和Mincer Zarnowitz回歸、DM檢驗、JB檢驗
【視頻】時間序列分析:ARIMA-ARCH / GARCH模型分析股票價格
時間序列GARCH模型分析股市波動率
PYTHON用GARCH、離散隨機波動率模型DSV模擬估計股票收益時間序列與蒙特卡洛可視化
極值理論 EVT、POT超閾值、GARCH 模型分析股票指數(shù)VaR、條件CVaR:多元化投資組合預測風險測度分析
Garch波動率預測的區(qū)制轉移交易策略
金融時間序列模型ARIMA 和GARCH 在股票市場預測應用
時間序列分析模型:ARIMA-ARCH / GARCH模型分析股票價格
R語言風險價值:ARIMA,GARCH,Delta-normal法滾動估計VaR(Value at Risk)和回測分析股票數(shù)據(jù)
R語言GARCH建模常用軟件包比較、擬合標準普爾SP 500指數(shù)波動率時間序列和預測可視化
Python金融時間序列模型ARIMA 和GARCH 在股票市場預測應用
MATLAB用GARCH模型對股票市場收益率時間序列波動的擬合與預測R語言GARCH-DCC模型和DCC(MVT)建模估計
Python 用ARIMA、GARCH模型預測分析股票市場收益率時間序列
R語言中的時間序列分析模型:ARIMA-ARCH / GARCH模型分析股票價格
R語言ARIMA-GARCH波動率模型預測股票市場蘋果公司日收益率時間序列
Python使用GARCH,EGARCH,GJR-GARCH模型和蒙特卡洛模擬進行股價預測
R語言時間序列GARCH模型分析股市波動率
R語言ARMA-EGARCH模型、集成預測算法對SPX實際波動率進行預測
matlab實現(xiàn)MCMC的馬爾可夫轉換ARMA - GARCH模型估計
Python使用GARCH,EGARCH,GJR-GARCH模型和蒙特卡洛模擬進行股價預測
使用R語言對S&P500股票指數(shù)進行ARIMA + GARCH交易策略
R語言用多元ARMA,GARCH ,EWMA, ETS,隨機波動率SV模型對金融時間序列數(shù)據(jù)建模
R語言股票市場指數(shù):ARMA-GARCH模型和對數(shù)收益率數(shù)據(jù)探索性分析
R語言多元Copula GARCH 模型時間序列預測
R語言使用多元AR-GARCH模型衡量市場風險
R語言中的時間序列分析模型:ARIMA-ARCH / GARCH模型分析股票價格
R語言用Garch模型和回歸模型對股票價格分析
GARCH(1,1),MA以及歷史模擬法的VaR比較
matlab估計arma garch 條件均值和方差模型R語言POT超閾值模型和極值理論EVT分析


R語言對S&P500股票指數(shù)進行ARIMA + GARCH交易策略|附代碼數(shù)據(jù)的評論 (共 條)

分享到微博請遵守國家法律
龙门县| 娄底市| 贡嘎县| 邹城市| 东乡族自治县| 晋城| 常山县| 鄢陵县| 高要市| 玉溪市| 马关县| 修文县| 奎屯市| 普格县| 湄潭县| 梧州市| 双峰县| 江孜县| 名山县| 遂溪县| 连平县| 格尔木市| 舟曲县| 华阴市| 若尔盖县| 加查县| 澄江县| 海宁市| 武邑县| 遵化市| 岳池县| 嘉兴市| 庆元县| 历史| 岚皋县| 新郑市| 秦皇岛市| 台南县| 庆云县| 海安县| 安顺市|