Skip to content

Instantly share code, notes, and snippets.

@timelyportfolio
Last active December 17, 2015 20:09
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 1 You must be signed in to fork a gist
  • Save timelyportfolio/5665790 to your computer and use it in GitHub Desktop.
Save timelyportfolio/5665790 to your computer and use it in GitHub Desktop.
explore the intended and unintended consequences of fed and boj actions
<!DOCTYPE html>
<!-- saved from url=(0014)about:internet -->
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<title>Intended Or Unintended Consequence</title>
</head>
<body>
<h2>Intended Or Unintended Consequence</h2>
<p>A quick glimpse at the US 10y Treasury Bond rate since 2000 seems benign with low volatility and a general downward trend.</p>
<pre><code class="r">require(latticeExtra)
require(quantmod)
US10y &lt;- getSymbols(&quot;^TNX&quot;, from = &quot;2000-01-01&quot;, auto.assign = FALSE)[,
4]
asTheEconomist(xyplot(US10y, scales = list(y = list(rot = 1)),
main = &quot;US 10y Yield Since 2000&quot;))
</code></pre>
<p><img src="data:image/png;base64,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" alt="plot of chunk unnamed-chunk-2"/> </p>
<p>However, if we plot the change in rate over 252 days or 1 year, we might wonder whether the rate is as benign as we initially surmised. Although this might seem like an acceptable intended consequence of the aggressive monetary easing by the US Fed, I fear that we will face the historically normal unintended consequences.</p>
<pre><code class="r">p1 &lt;- asTheEconomist(xyplot(US10y - lag(US10y, 252),
scales = list(y = list(rot = 0)), main = &quot;US 10y Yield - Yearly Change&quot;))
p1
</code></pre>
<p><img src="data:image/png;base64,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" alt="plot of chunk unnamed-chunk-3"/> </p>
<p>And if we use some Vanguard US Bond Funds (vbmfx and vustx) as a proxy for the US bond market <a href="http://timelyportfolio.blogspot.com/2013/01/approaching-zero-bound-bonds.html">Approaching the Zero Bound - Bonds</a>, we see that we are now in a market different than the last 4 years.</p>
<pre><code class="r">require(directlabels)
require(reshape2)
getSymbols(&quot;VUSTX&quot;, from = &quot;1990-01-01&quot;)
</code></pre>
<pre><code>## [1] &quot;VUSTX&quot;
</code></pre>
<pre><code class="r">getSymbols(&quot;VBMFX&quot;, from = &quot;1990-01-01&quot;)
</code></pre>
<pre><code>## [1] &quot;VBMFX&quot;
</code></pre>
<pre><code class="r">
bonds.tr &lt;- merge(ROC(VUSTX[, 6], 250), ROC(VBMFX[,
6], 250))
colnames(bonds.tr) &lt;- c(&quot;VanguardLongTsy&quot;, &quot;VanguardTotBnd&quot;)
bond.funds.melt &lt;- melt(as.data.frame(cbind(as.Date(index(bonds.tr)),
coredata(bonds.tr))), id.vars = 1)
colnames(bond.funds.melt) &lt;- c(&quot;date&quot;, &quot;fund&quot;, &quot;totret250&quot;)
bond.funds.melt$date &lt;- as.Date(bond.funds.melt$date)
p2 &lt;- direct.label(xyplot(bonds.tr, screens = 1, ylim = c(-0.35,
0.35), scales = list(y = list(rot = 0)), col = theEconomist.theme()$superpose.line$col,
par.settings = theEconomist.theme(box = &quot;transparent&quot;),
lattice.options = theEconomist.opts(), xlab = NULL,
main = &quot;Vanguard Bond Funds 250 Day Total Return&quot;),
list(&quot;last.points&quot;, hjust = 1, cex = 1.2))
p2
</code></pre>
<p><img src="data:image/png;base64,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" alt="plot of chunk unnamed-chunk-4"/> </p>
<pre><code class="r">
p3 &lt;- asTheEconomist(horizonplot(totret250 ~ date |
fund, origin = 0, horizonscale = 0.05, data = bond.funds.melt,
strip = TRUE, strip.left = FALSE, par.strip.text = list(cex = 1.1),
layout = c(1, 2), main = &quot;Vanguard Bond Funds 250 Day Total Return&quot;))
p3
</code></pre>
<p><img src="data:image/png;base64,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" alt="plot of chunk unnamed-chunk-4"/> </p>
<pre><code class="r">
# print(p2,position=c(0,0.4,1,1),more=TRUE)
# print(update(p3,main=NULL),position=c(0,0,1,0.5))
</code></pre>
<h2>Comparison to Japan</h2>
<p>For some reference, let&#39;s look at a country getting quite a bit of attention lately in the press. We can add US yields to my favorite chart from <a href="http://timelyportfolio.blogspot.com/2013/05/japan-jgb-yieldsmore-lattice-charts.html">Japan - JGB Yields–More Lattice Charts</a>. Most of the difference is in the short end of the curve where the US is still near the minimum since 2012 while Japan is near the max out to 7 years.</p>
<pre><code class="r">url &lt;- &quot;http://www.mof.go.jp/english/jgbs/reference/interest_rate/&quot;
filenames &lt;- paste(&quot;jgbcme&quot;,c(&quot;&quot;,&quot;_2010&quot;,&quot;_2000-2009&quot;,&quot;_1990-1999&quot;,&quot;_1980-1989&quot;,&quot;_1974-1979&quot;),&quot;.csv&quot;,sep=&quot;&quot;)
#load all data and combine into one jgb data.frame
jgb &lt;- read.csv(paste(url,filenames[1],sep=&quot;&quot;),stringsAsFactors=FALSE)
for (i in 2:length(filenames)) {
jgb &lt;- rbind(jgb,read.csv(paste(url,&quot;/historical/&quot;,filenames[i],sep=&quot;&quot;),stringsAsFactors=FALSE))
}
#now clean up the jgb data.frame to make a jgb xts
jgb.xts &lt;- as.xts(data.matrix(jgb[,2:NCOL(jgb)]),order.by=as.Date(jgb[,1]))
colnames(jgb.xts) &lt;- paste0(gsub(&quot;X&quot;,&quot;JGB&quot;,colnames(jgb.xts)))
#get Yen from the Fed
#getSymbols(&quot;DEXJPUS&quot;,src=&quot;FRED&quot;)
xtsMelt &lt;- function(data) {
require(reshape2)
#translate xts to time series to json with date and data
#for this behavior will be more generic than the original
#data will not be transformed, so template.rmd will be changed to reflect
#convert to data frame
data.df &lt;- data.frame(cbind(format(index(data),&quot;%Y-%m-%d&quot;),coredata(data)))
colnames(data.df)[1] = &quot;date&quot;
data.melt &lt;- melt(data.df,id.vars=1,stringsAsFactors=FALSE)
colnames(data.melt) &lt;- c(&quot;date&quot;,&quot;indexname&quot;,&quot;value&quot;)
#remove periods from indexnames to prevent javascript confusion
#these . usually come from spaces in the colnames when melted
data.melt[,&quot;indexname&quot;] &lt;- apply(matrix(data.melt[,&quot;indexname&quot;]),2,gsub,pattern=&quot;[.]&quot;,replacement=&quot;&quot;)
return(data.melt)
#return(df2json(na.omit(data.melt)))
}
jgb.melt &lt;- xtsMelt(jgb.xts[&quot;2012::&quot;,])
jgb.melt$date &lt;- as.Date(jgb.melt$date)
jgb.melt$value &lt;- as.numeric(jgb.melt$value)
jgb.melt$indexname &lt;- factor(
jgb.melt$indexname,
levels = colnames(jgb.xts)
)
jgb.melt$maturity &lt;- as.numeric(
substr(
jgb.melt$indexname,
4,
length( jgb.melt$indexname ) - 4
)
)
jgb.melt$country &lt;- rep( &quot;Japan&quot;, nrow( jgb.melt ))
#now get the US bonds from FRED
USbondssymbols &lt;- paste0(&quot;DGS&quot;,c(1,2,3,5,7,10,20,30))
ust.xts &lt;- xts()
for (i in 1:length( USbondssymbols ) ) {
ust.xts &lt;- merge(
ust.xts,
getSymbols(
USbondssymbols[i],
auto.assign = FALSE,
src = &quot;FRED&quot;
)
)
}
ust.melt &lt;- na.omit( xtsMelt( ust.xts[&quot;2012::&quot;,] ) )
ust.melt$date &lt;- as.Date(ust.melt$date)
ust.melt$value &lt;- as.numeric(ust.melt$value)
ust.melt$indexname &lt;- factor(
ust.melt$indexname,
levels = colnames(ust.xts)
)
ust.melt$maturity &lt;- as.numeric(
substr(
ust.melt$indexname,
4,
length( ust.melt$indexname ) - 4
)
)
ust.melt$country &lt;- rep( &quot;US&quot;, nrow( ust.melt ))
bonds.melt &lt;- rbind( jgb.melt, ust.melt )
p4 &lt;- xyplot(
value ~ date | maturity,
groups = country,
data = bonds.melt,
type = &quot;l&quot;,
col = c(brewer.pal(9,&quot;Blues&quot;)[5],brewer.pal(9,&quot;Blues&quot;)[7]),
layout = c( length( unique( bonds.melt$maturity ) ), 1 ),
panel = function(x, y, subscripts, col, ...) {
panel.abline(
h = c(
sapply( by( y, bonds.melt[subscripts,&quot;country&quot;], summary ), min ),
sapply( by( y, bonds.melt[subscripts,&quot;country&quot;], summary ), max )
),
#if(!col){
col = col[1:length(unique(bonds.melt[subscripts,&quot;country&quot;]))]
#} else col = trellis.par.get()$superpose.line$col[1:length(unique(bonds.melt[subscripts,&quot;country&quot;]))]
)
panel.xyplot( x = x, y = y, subscripts = subscripts, col = col, ... )
panel.text(
x = x[ length(unique(x)) / 2],
y = mean(
c(
sapply( by( y, bonds.melt[subscripts,&quot;country&quot;], summary ), max )[1],
sapply( by( y, bonds.melt[subscripts,&quot;country&quot;], summary ), min )[2]
)
),
labels = paste0(unique(bonds.melt$maturity)[panel.number()],&quot;y&quot;),
cex = 0.8,
#font = 2,
col = &quot;black&quot;,
adj = c(0.5,0.5)
)
},
scales = list(
x = list(
draw = FALSE
#tck = c(1,0),
#alternating = 1,
#at = min(bonds.melt$date),
#labels = format(min(bonds.melt$date),&quot;%Y&quot;)
),
y = list( tck = c(1,0), lwd = c(0,1) )
),
strip = FALSE,
par.settings = list(axis.line = list(col = 0)),
xlab = NULL,
ylab = &quot;Yield&quot;,
main = &quot;JGB and US Yields by Maturity Since Jan 2012&quot;
)
p4 &lt;- p4 + layer(
panel.abline(
h = pretty(bonds.melt$value,4),
lty = 3
)
)
p4
</code></pre>
<p><img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAkAAAAEgCAMAAABrWDzDAAAA/FBMVEUAAAAAADoAAFYAAGYAGWYALYEAOpAARpkAZpAAZrYILYENAEgNUbUTGQAYJ3kYLQAYRpkYYrgYcbUccbUhUUghcYEhcZwhcbUrADErAFYrfNY6AAA6AGY6OgA6Ojo6OpA6ZmY6ZrY6kJA6kNs8J1Y8Ypk8ldZMRgBMrplMrtZcYjFcrtZmAABmADpmAGZmOjpmOpBmZjpmZmZmkJBmtrZmtv9rfFZrlXlrrplrrrhrrtaQOgCQOjqQOmaQZpCQkLaQtpCQ27aQ2/+2ZgC2Zjq2tma225C2/7a2/9u2///bkDrb25Db/7bb/9vb////tmb/25D//7b//9v///9hwjRcAAAACXBIWXMAAAsSAAALEgHS3X78AAAUdElEQVR4nO2dCX/ktnmHud1UjdLTaRI2Vtu0HTeuk41Tu1Zcc+Mm2WniaursSML3/y4hTuIiAfIFZkjx//x2pRkOeAzxCHhxkGwYAASaax8A2DYQCJCAQIAEBAIkIBAgAYEAiYhAT29ePzD2/LZpmlfv+NuGc/N+YitPb+THelX+k6+nVjqJF/2Ce5nA2ZG1ukZuwIUfz0FsyzmU43388P3l6mic/U98ndFUx6bRZ+dWLHi8u7WW748xgR7vhDbNvRZo0qCIQHI1eZL7033gWX8b2ZG9uiYu0Kt/6lPxnLMSH5tAoOhy+2jSjAt05JvpPzzqzR3Nr50aNCJQn0+3IuNv3suzac7pWRZMfR7/fvhj/CIU6PFOr8r4n+nrB/5fJTgJM+UbszpXViWXG795LzZ0FgUPF+gzsYF/6TesjkKUkrfKV5781WfNq9+9ef1/fPl3rZXN0cjvZh+62KU6IPsMhF9UfCB2es+/izpN/8xPlF5eJ49WzYhA/IT3Lx//Uef5UMbI0kjkHf/rUy8iAtnnsy99jsYZ8efa56zKArm63jBPbRae+nWOvB4VAv327r7P1v+6M4n/6AvEF36rBLq1VjZHY+1SH7p1QPYZCL6o3Ex/gP02z/x9//v51/KlXl4+f1bPiEDnobhXVZh1dlQuHPrcvHkvCpZTKJA48aZQ1zWPkZOnkW/U6kpZnfog/qr7AENXZ71Av3tzYKfXf7iz9sWttAW6tZZbK5ujCQ/9yMsTdUD2Fwy+qP6QvxYFm6wmzZk6T4eJL5Upgc7ipOsYSJ9f/p6f194onmtnmWlhEC3+rk2mPN4JA+W2lZFmR3x1sZuhCnsQGfT8ti9QdBz16t2xL3Nu/v9OReRNKJAM+s1ys7I5GqmEOXRZ6JgDss9A8EXVZ2eeLiLQudllAeQLdBRRsyolzuacMxOWyuBaBBIPYwJZoY+pxtSycYHklnV1pQRip77ekrnMM/L0+ps3B35o+igmBbJWNkejYiDr0Jkn0HAGvC8qN3ISyXQVxoxAp5364wt06v+0eA6J8JmZioYZgWQC67w6VZhsbonCXLS5jjGBTGXlVGFiiUpvqjCe6SpjuB2Pd5/zHzw2kkehBOKmNaFAw8rmaByB1L4Pdu1pzkDwRdWn4mvoIJppgU77bIKxQCD5d3dgphl/y9wq7Nx4f5hOEC2aM/YGzGm1BFIxq2wWmdXt9MM2lchMCtQfivRPH4VsRevtOQLJIFmbobfuCOQF0TKtPgPBF5XfQiy9H5rxTBWhavn+8GOgs2lx6BDGC6L7xYcTj070eeXZ8G+miD+b9gzPCT+s0L18zdCrZ1a30utmvNidimKEHfydbPHIo+AryfDpC7cKE8uHlc3ROAKJAxG7PA5/AuYMBF+Umcru3upINNEiBFolJ0qukFYGWaxcoFif9GVWBnmsW6ATpVogrQwyWbdAYPVAIEACAgESEAiQgECABAQCJCAQIAGBAAkIBEhAIEACAgESEAiQgECABAQCJCAQIAGBAAkIBEhAIEACAgESEAiQgECABAQCJCAQIAGBdkCbZvG2IdB+WG7JBBBoP0AgQAICARIQCJAghMrjQKD9AIEACQgESEAgQAICARIQCJCAQIAEBAIkIBAgERWIKhUE2g8QCJCICESZCSSBQHuhHReIIhEE2guxeYctBAK5jAtEqsYg0F5oI3UYBNoBhWbEt1GB4ovnAIG2AbkPUJrSessg0F4oIpCvCpcn3jrLBwJtg7IC6V8QaDeQO/ymBKJsFwJtA6pAbo8PBNoddIGYLVA7/Kop0BFPHV0LBQQSv/S71iysKND5lj19iucer4KKAtE2najCPIGaJvU/nWA7KVZyGOJn29K+ilq9Zdbm2uF1ehPLBDo2hxkygnoUL4FMm6xuCcROMGgVFBWovZBA5wMEWgubFIi3wm4pGwfFIAtk/7qYQGA1VBFIv6FsGAJtA+qEeAi0cwpdUWFqLQi0M2K5vCDnLYG0OBBoF8SymSqQWUg5MAi0BaITV5dcUTEIxCDQfpAZHlnKFgvEINCOGBWoLSIQCQi0AcoJxNphRQi0G7yYxV46WyBzcQYE2g9RgZQIywUqc2wQaP20EAhQiMcsEAhk0sZyvCUIVPKpGRBo/XgCmSsqhAgQCKTQU+D1W7VQvlwkUEEg0PqZEmiuDIXLHwi0BQKBTDfO/JF0CLRD3CsqIBCYSVmBSnVBKyDQ+okJtHRCPATaI63zEwKBRRiBKJfkQKAdo9piZIGKHhQE2g6DQC0EAvMpIRCDQPslFGhRPAOB9kpEoCU2QKC94ghkL0uumGbxQUGg7WAEYjMFqgkE2g46bg6fWXBFINB2gEC7o2zwoQRiC5vvdYBAF6BQbtvXdEGgPVFSIAaBdkep3G5NAx4C7YoKAl2/+a6BQPWpIdBqgED1KVbfQKB9UlaglQGB6lMs24lPp5TIZ3gdm1fvChwRBLoEqxJIPsPrfPO+/1fimCBQfVYlEBPP8Dod+M/jPXv8V+LGIFB9ViYQf4bX6Z49f/3Q23OiPpISAtVnZQLxRzDJEuj562/IT6SEQPVZlUDyGV4qBjp9nnqaV9clEkCg+hTrNy7VCrvVrbCnX6imWJdmZHMQqD4FBSrchfj4E6sl5mvSv5kQRwOB6rNagU52X1AnhNFvWMemSx4NBKoPTaCaM+JthCryx1CliTeTQKDKtKsaO09iCcSkQAmDIFBltifQEPuYMmkCCFSZMYHW6pQIhJxYejo9BKqMuo4rWLxagbpyAj2/bZoyI247xszhCZeushgKml4Egc68w4k6VrJz1CxC35Q1C+TFPcQqzB1sa5rU/3SC7aQosZO27f9HPuHLZx/oc//mpmmOzezj6Lrp/0NSscRevdOvFwnECyFAYLIEmlsAySph8Vwev0EV7SYM+n4yS6CnN43ktT08e4Q/RNq4KssE4pzul87lCXSJC8RiAo1bZJVARz4ye7KUeX6LAIhMPNhZLFBfCC2byxOOdNlDF17a4E2OQE9iasiTNUGE17VNarwfTBMTqF0sEK8SFs3l8VrnZqAiNVIxQ6Dnt6IEQru9LFGBVFg0VyBZJQRzeXKmYji6dENjPUOg6WRWFca7fRoEPYVxH5Sily0TSFUJ3lweRVCYRLpzOt1M1yNdRQUCNdC3U1Xv1LKW/uAuZy5PJCAeCZEHd9SCFBDourgPuignkDOXJwiR2WgjvXNLpkSEwyLtepfpZjyg4wmkb65R9LlL3tQdE+MEGb9AIJYnEKiFJdBwex/9rhBGIDUrbHQ2WHygAgKtH3Nj+aFNlilQuo01zEONhsjePGdPoHQknS1Q3wq7+fYXZa6YBh62QO0sgSQZHTY6ErqWQM9vD31gX+iK6fVzoZnGZndqn2zhYwoSjfRhmRNOxwXyt5uQM1egp08feoGeyJcqboqLzacgCdRFdFnYxooKlNr7nBJoZz3RFxeoXSCQG+mYhWNtLHuB+eEvtDZTSiDZE70vfy4okGq+LxXIz8RoI5359RG5l0dvdPzTnbfCNiFQLNLNFCgZIucIFNuTAQJdaEeDQEacmTvv7Fcm44MIp2gbS20kpyf602/e7LAn+nKTkuWDTkkCKTecy7bCCGey0RXZano8LBavG/ZeAl2wCDKPilsuUGcNUxQLkZNdTBBonK0J5IxyDVezj69TRqCJD00V9p/7an4pLi0QswWay9DPrN+zZIQzWXqIFIUEYo93e5xLdnGBKPcrEwVP57wvIFAyRaZAjJ2b/c2h35ZAXjiSM6UwR49kiqkP7RhIzAnaWStsSwKxSgIldzr1oT2UgRKo5p7MgwqcXeZP1lDJ/TerEei4y/n0lxVo9MNkHpqEs1vpaT3KCIRWWO09vXCBdspaBMo2yFttcpQhb8sQaDHtOgSKzfbJJKeVnt5GMsXUhxDoYjsbFSgy2yeTIiEyBFpK7L4r9XY2NnQRnS6WCQS6KhcViI2OfUWmi+VSvZGeTrFvgUpPnU/sL75YDqovMqh6+ZJOsWOBRq69KHlX5/SlH2ZfEGhz2NNL3cXXOJpFRRAEuiZxgVSpcHGJ3HAmUycIdE1WJ5A1ozmzWQaBrsk6Ber0O/k7tVJ6s8kUeu8zxnQt9i5QYNC1BGJGoI5dXqDl7Fsg8ctbyq4nkL5/2HCBOwRaMVGB9N0Lr9MSY36dkbrvAQS6Js69w/SyqwpkrtthEGgDtN5PdfOwePcQHXHjE3mH1RGMNWaqIb0KUxtcGCKngUDmZ6sFKvN4bZ8zn24+/ZwLk5GFBaoJBHIEaqsJ9Pyb568fWOI5FxBoUzgCta5AFXYnBJp+zkXnv84SqGIFlWaTAs0Yo8zY2LBJHTzXGQ4bSqC851yYYmgiSfUCJskmBZIUymTjzCUECp5zMQEEqkx5gdrqAo085yIKBKrM1gSycJ9zMYISqGYbvAAQSLW6LinQaaIvaCCjBFoBWxaoVBFkC6S2fJWOaA8IVJliAqlbPw237lmLQMnLBlcABIoIdKWhMJ/0dacrAALpzkPK3efqAIHqsgOBVtBMTwGBogIVgtYEfwECrfrRKxsQSEK4dULZA6nBpEDnVd/wrrBAdSZxsG75zTc2L5CcgeCkblL/0wmKpWjbMnvh22lrfZWuk//rn47KubJEIDV8s1bKlUAVm+2kwYYNFEAQqPZNOoQ+EGiNlBvKWLiprDZWt/zmLRCoLlcXSJG4cEL8WBhFL1rrsmy1H2ikzb1EhNF7h2WSYwcEWhvDfbudpflXlZabFZsn0KK7tyxY59JsVKCWLFAhukyB4olSEw6XHNGF2bJAoSmXFii7kd5FY+n0o5jWz2YFamOt74uXQNmN9K6LlFUQ6GpsQqAuSNi5n0Cgq6EHQOUb/b9dLNCJ9+ZnXGrjM9VI9xbbg2LD3X9o4/UrYKMC6dnvTP+0boywsAR6/h/3Son8rM0VyKzSDQJtHgik+d93LHbNelaAE00VRjz6iacQ6Pro62/ET6a6kykCnW8Zi12zPlqFdPbLqEDBlrrhR86V75tg6wJpYcgC9QUQi12zPiZQ5K68fokTW6UbyiEIdE0CgbQ88+6sYJAP3POvWZ/oJvQEslN2zi9/FQi0DqwruFSLnnRVqYx9/GvWu/Gnqi8RaEjcbeSywTQbF4jZAqkFhG4g75r1qWa0u7yzGum6Z2hUD/MpBLo+OvAZai6CQP416/kCORVTqoKCQCsiHD4vOLvQLleCz4L3ViMdAm0GfV+E2RcF5nQTTvXWUBvpEGgdLBZIMl1KqJfRMmhMoOE28ymBtnDhcpqXIBDhosCsbsL8Xh4TNmUItIkr39NcXKD0TMBZIqj2V02BvG7CRCPdRDjJofbVj5NmcaUSqGCkOzTg56450cvjT8VgtiBZIXJSDwhEoeSFWIs3NdFId/2wR0B1/VRCoDkHu1auJhDFoDLV4FQvTyiQaZmp8ggCSTYpUBm6KYOi3YRZAg3bTu1+xrGul5cg0LEJHoGT7uVxnqoU4re5hkY6g0A2L0Cg51+P3TR3eS9P/AKKTvc35wi0gZuEl+AFCPT0y7vmdt5swqW9PGYkPad8SQkCgQiUfB7O+TV/Ck4wm3CqmJhqpAcJnAUzBEoBgQiUfqDS+RDMJpzby+MMfI2XXSoxBFKsR6DFRp0PjBc+3mzCOY10Zo+AJhrpOnGWQDmx/Ma5jkDuZcmzZ4J5efBx03zQdf/9Dz/12ljZAlmp87oJdxMipyksUGYXn74vqvWIZPXZ8uB6mE2oq6Fxg8JeHjZox0q0sV5IBZWmTgk0aUFrbq5RUiBrNqHdxoonjjXSTS9P1kBo8nggEIVpC1rLGC1NSy6BBpxGeiqFnSzZvZjY7NQuXipVBEqEM8MlOcNUHvM/cxdTlUgXGBQIM7LGvEb6DkLkNNcTiNkP6lJXmIoXOfnSLZuKEUshU5nfWQLtpnxJU1OgMYssgaxIyFpxEuuPfyqFeRMGxRM3ZMlspEMgQx2B7AcHTN0K0498ciKgobTIEkgHyNYs00QTCgLNoYZAQyN9uIWuY8bwpv3bpvmr6CejONVNPIW/QqdrPDMnbHoHiHDyqSWQ3cZynmPidgr94M/bH/7l9/2eosm8sT6b0cayM30nEy0uQ3GBZEvKCOR3IYY8ffrgj6RP/nmnBAoLpmH8Sm4XAhWkgkC6RRVqFItxjs0hdl+eMYU6r40ll3lrjhxawV4eoClfhVmSmBDZaBQLLX72wVcf/cePP3FDizyBom2stECprwCB8pknUJvEFciLncMCSIykH6yRdJN3IyGyr0dYpCQKGC0QQuQyLCmB3KjGd8TiR3/dNN/5+0AxO2+OTXNr35cnGeH4S638jvc6+xtADVUUqkCjsTGH33fw6N90MFY7WSPpiYGscN3OamSJ99MHj6KlLPMFsiLioRwa1+h0H5mt7BUDZiTddauLDEOEuW91LEaHLcbSgyIsEMh61bbDeFY8dV8IjbSxMiooXbhYsW+qDzkjAoZAJZktkGOKfCy41UL3A9GP/6LrIm0sNpLRIyFydgXV5YfI0KgM8wTqura18uBXzZ9xM+QyrpEuMVQ+P78VJY9uY/kVVGT7kT1aNVQ0hZ8cZlyU+c34wZ+v/v2rjz7pPv6w+/J7fLmpyIbyhz+B4gM+W1msHfThBCVCRCBvhdiaKF+uCKkjsfvq64fuy7/rfvYhm6iSui//5uejpYc1zDCSIkgN1gStJ5o/lJdfkPXJ1ARB3sbqkuHtkALly5agCyRCnHSupttHEGOLzA2iXXgM5F6QNblqbBMoX7bNpEDH4LYpMezbu0OPvTEl0Pnmff8vtQX/9u5gV0wJdDqonsIhdZP6n06wnRQrOYx1fJVFAt3LKBmAUeaVQAB40GMgsGsKtMLAnpkUCIAUEAiQgECABAQCJCAQIAGBAAkIBEhAIEACAgESEAiQgECABAQCJCAQIAGBAAkIBEhAIEACAgESEAiQgECABAQCJCAQIAGBAAkIBEhAIEACAgESEAiQ+BPVXHanNYMcGwAAAABJRU5ErkJggg==" alt="plot of chunk unnamed-chunk-5"/> </p>
</body>
</html>
## Intended Or Unintended Consequence
A quick glimpse at the US 10y Treasury Bond rate since 2000 seems benign with low volatility and a general downward trend.
```{r echo=F, warning= F, message=F}
opts_chunk$set(message = FALSE, warning = FALSE, error = FALSE, fig.width = 8, fig.height = 4, tidy.opts = list( width.cutoff = 50 ))
```
```{r}
require(latticeExtra)
require(quantmod)
US10y <- getSymbols("^TNX", from = "2000-01-01", auto.assign = FALSE)[,4]
asTheEconomist(
xyplot(
US10y,
scales = list( y = list( rot = 1 ) ),
main = "US 10y Yield Since 2000"
)
)
```
However, if we plot the change in rate over 252 days or 1 year, we might wonder whether the rate is as benign as we initially surmised. Although this might seem like an acceptable intended consequence of the aggressive monetary easing by the US Fed, I fear that we will face the historically normal unintended consequences.
```{r}
p1 <- asTheEconomist(
xyplot (
US10y - lag( US10y, 252 ),
scales = list(y=list(rot=0)),
main = "US 10y Yield - Yearly Change"
)
)
p1
```
And if we use some Vanguard US Bond Funds (vbmfx and vustx) as a proxy for the US bond market [Approaching the Zero Bound - Bonds](http://timelyportfolio.blogspot.com/2013/01/approaching-zero-bound-bonds.html), we see that we are now in a market different than the last 4 years.
```{r}
require(directlabels)
require(reshape2)
getSymbols("VUSTX",from="1990-01-01")
getSymbols("VBMFX",from="1990-01-01")
bonds.tr <- merge(ROC(VUSTX[,6],250),ROC(VBMFX[,6],250))
colnames(bonds.tr) <- c("VanguardLongTsy","VanguardTotBnd")
bond.funds.melt <- melt(as.data.frame(cbind(as.Date(index(bonds.tr)),coredata(bonds.tr))),id.vars=1)
colnames(bond.funds.melt) <- c("date","fund","totret250")
bond.funds.melt$date <- as.Date(bond.funds.melt$date)
p2 <- direct.label(
xyplot(bonds.tr,screens=1,
ylim=c(-0.35,0.35),scales=list(y=list(rot=0)),
col=theEconomist.theme()$superpose.line$col,
par.settings=theEconomist.theme(box="transparent"),
lattice.options=theEconomist.opts(),
xlab=NULL,
main="Vanguard Bond Funds 250 Day Total Return"),
list("last.points",hjust=1,cex=1.2))
p2
p3 <- asTheEconomist(
horizonplot(totret250~date|fund,origin=0,horizonscale=0.05,
data=bond.funds.melt,
strip=TRUE,strip.left=FALSE,par.strip.text=list(cex=1.1),
layout=c(1,2),
main="Vanguard Bond Funds 250 Day Total Return"))
p3
#print(p2,position=c(0,0.4,1,1),more=TRUE)
#print(update(p3,main=NULL),position=c(0,0,1,0.5))
```
## Comparison to Japan
For some reference, let's look at a country getting quite a bit of attention lately in the press. We can add US yields to my favorite chart from [Japan - JGB Yields–More Lattice Charts](http://timelyportfolio.blogspot.com/2013/05/japan-jgb-yieldsmore-lattice-charts.html). Most of the difference is in the short end of the curve where the US is still near the minimum since 2012 while Japan is near the max out to 7 years.
```{r}
url <- "http://www.mof.go.jp/english/jgbs/reference/interest_rate/"
filenames <- paste("jgbcme",c("","_2010","_2000-2009","_1990-1999","_1980-1989","_1974-1979"),".csv",sep="")
#load all data and combine into one jgb data.frame
jgb <- read.csv(paste(url,filenames[1],sep=""),stringsAsFactors=FALSE)
for (i in 2:length(filenames)) {
jgb <- rbind(jgb,read.csv(paste(url,"/historical/",filenames[i],sep=""),stringsAsFactors=FALSE))
}
#now clean up the jgb data.frame to make a jgb xts
jgb.xts <- as.xts(data.matrix(jgb[,2:NCOL(jgb)]),order.by=as.Date(jgb[,1]))
colnames(jgb.xts) <- paste0(gsub("X","JGB",colnames(jgb.xts)))
#get Yen from the Fed
#getSymbols("DEXJPUS",src="FRED")
xtsMelt <- function(data) {
require(reshape2)
#translate xts to time series to json with date and data
#for this behavior will be more generic than the original
#data will not be transformed, so template.rmd will be changed to reflect
#convert to data frame
data.df <- data.frame(cbind(format(index(data),"%Y-%m-%d"),coredata(data)))
colnames(data.df)[1] = "date"
data.melt <- melt(data.df,id.vars=1,stringsAsFactors=FALSE)
colnames(data.melt) <- c("date","indexname","value")
#remove periods from indexnames to prevent javascript confusion
#these . usually come from spaces in the colnames when melted
data.melt[,"indexname"] <- apply(matrix(data.melt[,"indexname"]),2,gsub,pattern="[.]",replacement="")
return(data.melt)
#return(df2json(na.omit(data.melt)))
}
jgb.melt <- xtsMelt(jgb.xts["2012::",])
jgb.melt$date <- as.Date(jgb.melt$date)
jgb.melt$value <- as.numeric(jgb.melt$value)
jgb.melt$indexname <- factor(
jgb.melt$indexname,
levels = colnames(jgb.xts)
)
jgb.melt$maturity <- as.numeric(
substr(
jgb.melt$indexname,
4,
length( jgb.melt$indexname ) - 4
)
)
jgb.melt$country <- rep( "Japan", nrow( jgb.melt ))
#now get the US bonds from FRED
USbondssymbols <- paste0("DGS",c(1,2,3,5,7,10,20,30))
ust.xts <- xts()
for (i in 1:length( USbondssymbols ) ) {
ust.xts <- merge(
ust.xts,
getSymbols(
USbondssymbols[i],
auto.assign = FALSE,
src = "FRED"
)
)
}
ust.melt <- na.omit( xtsMelt( ust.xts["2012::",] ) )
ust.melt$date <- as.Date(ust.melt$date)
ust.melt$value <- as.numeric(ust.melt$value)
ust.melt$indexname <- factor(
ust.melt$indexname,
levels = colnames(ust.xts)
)
ust.melt$maturity <- as.numeric(
substr(
ust.melt$indexname,
4,
length( ust.melt$indexname ) - 4
)
)
ust.melt$country <- rep( "US", nrow( ust.melt ))
bonds.melt <- rbind( jgb.melt, ust.melt )
p4 <- xyplot(
value ~ date | maturity,
groups = country,
data = bonds.melt,
type = "l",
col = c(brewer.pal(9,"Blues")[5],brewer.pal(9,"Blues")[7]),
layout = c( length( unique( bonds.melt$maturity ) ), 1 ),
panel = function(x, y, subscripts, col, ...) {
panel.abline(
h = c(
sapply( by( y, bonds.melt[subscripts,"country"], summary ), min ),
sapply( by( y, bonds.melt[subscripts,"country"], summary ), max )
),
#if(!col){
col = col[1:length(unique(bonds.melt[subscripts,"country"]))]
#} else col = trellis.par.get()$superpose.line$col[1:length(unique(bonds.melt[subscripts,"country"]))]
)
panel.xyplot( x = x, y = y, subscripts = subscripts, col = col, ... )
panel.text(
x = x[ length(unique(x)) / 2],
y = mean(
c(
sapply( by( y, bonds.melt[subscripts,"country"], summary ), max )[1],
sapply( by( y, bonds.melt[subscripts,"country"], summary ), min )[2]
)
),
labels = paste0(unique(bonds.melt$maturity)[panel.number()],"y"),
cex = 0.8,
#font = 2,
col = "black",
adj = c(0.5,0.5)
)
},
scales = list(
x = list(
draw = FALSE
#tck = c(1,0),
#alternating = 1,
#at = min(bonds.melt$date),
#labels = format(min(bonds.melt$date),"%Y")
),
y = list( tck = c(1,0), lwd = c(0,1) )
),
strip = FALSE,
par.settings = list(axis.line = list(col = 0)),
xlab = NULL,
ylab = "Yield",
main = "JGB and US Yields by Maturity Since Jan 2012"
)
p4 <- p4 + layer(
panel.abline(
h = pretty(bonds.melt$value,4),
lty = 3
)
)
p4
```
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment