Sunday 14 December 2014

FOMC Dates - Price Data Exploration

As a first step in visualizing/exploring the data from my last post, FOMC Dates - Scraping Data From Web Pages, I’ll plot the FOMC announcement dates along with the following price series: 2-Year and 10-Year US Treasury yields, S&P500 ETF (SPY) and USD Index ETF (UUP).

I’ll use the quantmod R package to download the price data from the US Federal Reserve Economic Data (FRED) database and Yahoo Finance.

For the graphics, I like the cool gglot2 R package, and although it’s more complicated to code, it’s worth it.

First, install and load the quantmod, reshape2 and ggplot2 R packages.

install.packages(c("quantmod", "reshape2", "ggplot2"), repos = 
    "http://cran.us.r-project.org")
library(quantmod)
library(reshape2)
library(ggplot2)

Download the price series data and store as xts objects, and load the FOMC announcement dates from the file saved in the last post.

# get 2-year and 10-year US Treasury yields
getSymbols(c("DGS2", "DGS10"), src = "FRED")
DGS2 <- DGS2["2009-01-02/"]
DGS10 <- DGS10["2009-01-02/"]
# get S&P500 ETF prices
getSymbols("SPY", from = "2009-01-02")
# get USD Index ETF prices
getSymbols("UUP", from = "2009-01-02")
# load FOMC announcement dates from file previously saved in working directory
load("fomcdates.RData")

Reshape the yield data in order to plot both the 2-Year and 10-Year yields on the same chart. The FOMC announcement dates will be shown as dashed vertical lines.

# prepare yield data
yields <- data.frame(index(DGS2), DGS2, DGS10)
names(yields) <- c("Date", "2Yr Yield", "10Yr Yield")
yieldsmelt <- melt(yields, id.vars = "Date")
# plot yield chart
gp <- ggplot(yieldsmelt, aes(x = Date, y = value)) +
    geom_line(aes(colour = variable)) + 
    labs(list(title = "US Treasury Yields with FOMC Dates", x = "",
        y = "% p.a.")) + 
    scale_colour_manual(name = "Yield", values = c("darkblue", "darkred")) + 
    geom_vline(xintercept = as.numeric(fomcdates), linetype = "dashed",
        size = 0.5, alpha = 0.5) +
    scale_x_date()
print(gp)

Finally, plot the charts for the S&P500 and USD Index ETFs - no need to prep the data as we’re plotting 1 time series per chart.


+ Show R code that plots S&P500 chart

+ Show R code that plots USD Index chart

All look OK but a lot more exploring to do…

Click here for the R code on GitHub.