R语言对S&P500股票指数停止ARIMA + GARCH交易战略|附代码数据

1天前 (03-20 17:19)阅读1回复0
东乐
东乐
  • 管理员
  • 注册排名3
  • 经验值125780
  • 级别管理员
  • 主题25156
  • 回复0
楼主

原文链接:

比来我们被客户要求撰写关于交易战略的研究陈述,包罗一些图形和统计输出。 在本文中,我想向您展现若何利用S&P500股票市场指数的交易战略

通过组合ARIMA和GARCH模子,从持久来看,我们能够超越“买进并持有”办法。

战略概述

该战略在“滚动”揣测的根底上施行:

战略施行

第一个使命是在R中安拆和导进需要的库:

假设已经安拆了库,则能够简单地导进它们:

library(quantmod)

library(lattice)

library(timeSeries)

library(rugarch)

完成后,将把该战略利用于S&P500。

然后,我们能够创建原则普尔500的“收盘价”的对数收益率差分序列,并往除初始NA值:

根据Akaike信息原则,轮回过程将为我们供给“更佳”拟合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文件的输出,我创建了一个字符串,此中包罗用逗号分隔的数据,并带有第二天的揣测标的目的:

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=","))

倒数第二步是将CSV文件输出 。

确保在与forecasts.csv文件不异的目次中运行:

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

至此,我们已将更正的目标文件存储在中forecasts_new.csv。

战略成果

如今,我们已经生成了目标CSV文件,我们需要将其效果与“买进并持有”停止比力。

我们起首从CSV文件中读取目标并将其存储为spArimaGarch:

然后,我们将ARIMA + GARCH揣测的日期与S&P500的原始收益集订交。

一旦获得ARIMA + GARCH战略的收益,就能够为ARIMA + GARCH模子和“买进并持有”创建资产曲线。最初,我们将它们合并为一个数据构造:

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语言对S&P500股票指数停止ARIMA + GARCH交易战略|附代码数据

点击题目查阅往期内容

R语言对S&P500股票指数停止ARIMA + GARCH交易战略|附代码数据

R语言动量交易战略阐发调整后的数据

R语言对S&P500股票指数停止ARIMA + GARCH交易战略|附代码数据

摆布滑动查看更多

R语言对S&P500股票指数停止ARIMA + GARCH交易战略|附代码数据

01

R语言对S&P500股票指数停止ARIMA + GARCH交易战略|附代码数据

02

R语言对S&P500股票指数停止ARIMA + GARCH交易战略|附代码数据

03

R语言对S&P500股票指数停止ARIMA + GARCH交易战略|附代码数据

04

R语言对S&P500股票指数停止ARIMA + GARCH交易战略|附代码数据

ARIMA + GARCH战略的股票曲线与S&P500的“买进并持有”

如您所见,在65年的时间里,ARIMA + GARCH战略的表示明显优于“买进并持有”。但是,您还能够看到,大部门收益发作在1970年至1980年之间。

因而,在将此类模子成立之前将其利用于汗青序列实的适宜吗?另一种抉择是起头将模子利用于最新数据。现实上,我们能够考虑一下从2005年1月1日至今的比来十年的表示:

R语言对S&P500股票指数停止ARIMA + GARCH交易战略|附代码数据

从2005年至今,ARIMA + GARCH战略与S&P500的“买进并持有”股票曲线

如今,我们已经完成了ARIMA和GARCH模子的讨论,我想通过考虑长形态空间模子和协整时间序列来陆续停止时间序列阐发讨论。

时间序列的那些后续范畴将向我们介绍一些模子,那些模子能够改进我们的揣测,那将大大进步我们的交易获利才能和/或降低风险。

R语言对S&P500股票指数停止ARIMA + GARCH交易战略|附代码数据

本文摘选 《 R语言对S&P500股票指数停止ARIMA + GARCH交易战略 》 ,点击“阅读原文”获取全文完全材料。

点击题目查阅往期内容

R语言ARMA GARCH COPULA模子拟合股票收益率时间序列和模仿可视化

ARMA-GARCH-COPULA模子和金融时间序列案例

时间序列阐发:ARIMA GARCH模子阐发股票价格数据

GJR-GARCH和GARCH颠簸率揣测普尔指数时间序列和Mincer Zarnowitz回回、DM查验、JB查验

【视频】时间序列阐发:ARIMA-ARCH / GARCH模子阐发股票价格

时间序列GARCH模子阐发股市颠簸率

PYTHON用GARCH、离散随机颠簸率模子DSV模仿估量股票收益时间序列与蒙特卡洛可视化

极值理论 EVT、POT超阈值、GARCH 模子阐发股票指数VaR、前提CVaR:多元化投资组合揣测风险测度阐发

Garch颠簸率揣测的区造转移交易战略

金融时间序列模子ARIMA 和GARCH 在股票市场揣测利用

时间序列阐发模子:ARIMA-ARCH / GARCH模子阐发股票价格

R语言风险价值:ARIMA,GARCH,Delta-normal法滚动估量VaR(Value at Risk)和回测阐发股票数据

R语言GARCH建模常用软件包比力、拟合原则普尔SP 500指数颠簸率时间序列和揣测可视化

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实现MCMC的马尔可夫转换ARMA - GARCH模子估量

Python利用GARCH,EGARCH,GJR-GARCH模子和蒙特卡洛模仿停止股价揣测

利用R语言对S&P500股票指数停止ARIMA + GARCH交易战略

R语言用多元ARMA,GARCH ,EWMA, ETS,随机颠簸率SV模子对金融时间序列数据建模

R语言股票市场指数:ARMA-GARCH模子和对数收益率数据探痛快阐发

R语言多元Copula GARCH 模子时间序列揣测

R语言利用多元AR-GARCH模子权衡市场风险

R语言中的时间序列阐发模子:ARIMA-ARCH / GARCH模子阐发股票价格

R语言用Garch模子和回回模子对股票价格阐发

GARCH(1,1),MA以及汗青模仿法的VaR比力

matlab估量arma garch 前提均值和方差模子R语言POT超阈值模子和极值理论EVT阐发

0
回帖

R语言对S&P500股票指数停止ARIMA + GARCH交易战略|附代码数据 期待您的回复!

取消
载入表情清单……
载入颜色清单……
插入网络图片

取消确定

图片上传中
编辑器信息
提示信息