Tuesday, January 17, 2012

Foreign Currencies and US 10y Treasury Yields

Since I explored the relationship between the Japanese Yen and the US 10y Treasury Yield on Friday, I thought it might be worthwhile to extend the exploration to a much broader range of currencies. I personally am most interested on how Asian Central Bank manipulation has affected the US 10y yield, and how if that changes what might be the impact to world markets. Please let me know your thoughts.

From TimelyPortfolio
From TimelyPortfolio

R code in GIST:

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)

No comments:

Post a Comment