GARCH Panel in plot.xts

[This article was first published on Timely Portfolio, and kindly contributed to R-bloggers]. (You can report issue about the content on this page here)
Want to share your content on R-bloggers? click here if you have a blog, or here if you don't.

I’m clearly out of my realm of competence with most of the rugarch functions, but I thought it might be nice to provide an example combining plot.xts and uGARCHroll.

image

R code from GIST:

#install.packages("xtsExtra", repos="http://R-Forge.R-project.org")
require(quantmod)
require(rugarch)
require(xtsExtra) #if you get an error, see first line and install from r-forge
getSymbols("DEXJPUS",src="FRED")
DEXJPUS<-1/to.weekly(DEXJPUS)
ugarch.panel <- function(index,x,type,cex,col,pch,...){
spec = ugarchspec(
variance.model=list(garchOrder=c(1,1)),
mean.model=list(armaOrder=c(1,1), include.mean=T))
#get ugarchroll; I cannot say I completely understand what I'm doing here
ugr <- ugarchroll(spec,
data = na.omit(x),
forecast.length = floor(NROW(na.omit(x)) / 1000) * 1000,
n.ahead = 1,
refit.every = 50,
refit.window = "moving")
#get garch coefficients
ugr.var <- merge(x,as.data.frame(ugr,which="VaR"))
ugr.var <- as.xts(apply(ugr.var,MARGIN=2,na.fill,fill=c(0,"extend")),order.by=index(x))[,2:4]
print(tail(ugr.var))
default.panel(index,ugr.var[,3],type="h",cex,pch,col,...)
default.panel(index,ugr.var[,1],type="l",cex,pch,col="red",...)
default.panel(index,ugr.var[,2],type="l",cex,pch,col="gray50",...)
text(x=index[1],y=par("usr")[4],"VaR from rugarch ugarchroll",adj=c(0,1),cex=0.8)
}
plot.xts(na.omit(merge(DEXJPUS[,4],ROC(DEXJPUS[,4],n=1,type="discrete"))),
screens=c(1,2),
minor.ticks=FALSE, major.format="%Y",
panel=c(default.panel,ugarch.panel),
main="Japanese Yen (source: St. Louis Federal Reserve)")

To leave a comment for the author, please follow the link and comment on their blog: Timely Portfolio.

R-bloggers.com offers daily e-mail updates about R news and tutorials about learning R and many other topics. Click here if you're looking to post or find an R/data-science job.
Want to share your content on R-bloggers? click here if you have a blog, or here if you don't.

Never miss an update!
Subscribe to R-bloggers to receive
e-mails with the latest R posts.
(You will not see this message again.)

Click here to close (This popup will not appear again)