public

currencies and US10y

  • Download Gist
currencies and US10y.r
R
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59
require(quantmod)
require(colorRamps)
 
#get currency data from the FED FRED data series
getSymbols("DEXKOUS",src="FRED") #load Korea
getSymbols("DEXMAUS",src="FRED") #load Malaysia
getSymbols("DEXSIUS",src="FRED") #load Singapore
getSymbols("DEXTAUS",src="FRED") #load Taiwan
getSymbols("DEXCHUS",src="FRED") #load China
getSymbols("DEXJPUS",src="FRED") #load Japan
getSymbols("DEXTHUS",src="FRED") #load Thailand
getSymbols("DEXBZUS",src="FRED") #load Brazil
getSymbols("DEXMXUS",src="FRED") #load Mexico
getSymbols("DEXINUS",src="FRED") #load India
getSymbols("DGS10",src="FRED") #load US 10y yield
 
currencies<-merge(DEXKOUS,DEXMAUS,DEXSIUS,DEXTAUS,
DEXCHUS,DEXJPUS,DEXTHUS,DEXBZUS,DEXMXUS,DEXINUS)
colnames(currencies)<-c("Korea","Malaysia","Singapore","Taiwan",
"China","Japan","Thailand","Brazil","Mexico","India")
currencies<-na.omit(currencies)
currencies.roc<-currencies/lag(currencies)-1
currencies.roc[1,]<-0
 
US10y.roc <- diff(DGS10, lag=1)
US10y.roc[1,] <- 0
 
curr.10y <- na.omit(merge(currencies.roc,US10y.roc))
#chart.Correlation(curr.10y)
 
#get rolling correlation of currencies versus the US 10y yield
corr <- as.xts(apply(curr.10y[,1:10],MARGIN=2,FUN=runCor,y=curr.10y[,11],n=500),
order.by=index(curr.10y))
 
#order correlations by their ending value
corr <- corr[, order(t(last(corr)),decreasing=TRUE)]
 
#thanks Joshua Ulrich for showing me how to do this
#stuff we reuse
labs=colnames(corr)
colors=ygobb(15)[3:12]
 
#make plot
layout(matrix(1:2, 2),heights=c(8,5))
par(mar=c(2,4,4,5),oma=c(2,1,2,0))
plot.zoo(corr,col=colors,lwd=2,screens=1,xlab=NA,ylab="Rolling Correlation",las=1)
#this is the primary change Joshua Ulrich made
#to allow a much nicer labelling of points on a right vertical margin
axis(4, coredata(last(corr)),labels=FALSE)
mtext(labs, 4, at=coredata(last(corr)), col=colors,las=1,line=1,cex=0.5)
title(main="Foreign Currencies to US10y Yield
Rolling 500 day (2-year) Correlation",cex.main=1.25,
adj=0,outer=TRUE,line=-2)
par(mar=c(4,4,2,4))
barplot(last(corr),las=1,beside=TRUE,col=colors,
names.arg=labs, ylab=NA,
ylim=c(-0.5,0.5),cex.names=0.7,border="gray70")
title(main="Latest 500-day (2-year) Correlation",
cex.main=0.8,adj=0)

Please sign in to comment on this gist.

Something went wrong with that request. Please try again.