Introduction: Writing the Function
library(quantmod); library(dygraphs); library(RColorBrewer)
year <- 2010
# Function to calculate stock monthly returns
stock_return <- function(ticker)
{
symbol <- getSymbols(ticker, src = "yahoo", auto.assign = FALSE)
symbol <- na.omit(symbol)
symbol <- symbol[,6] # Extracts the adjusted closing stock price (accounts for stock splits)
return <- monthlyReturn(symbol, type = "arithmetic")
assign(ticker, return, .GlobalEnv) # Assign xts objects to global environment
}
Preparing the Data
stock_return("FB")
stock_return("NFLX")
stock_return("AMZN")
merged_return <- merge.xts(FB, NFLX, AMZN, all = FALSE)
colnames(merged_return) <- c("FB", "NFLX", "AMZN")
head(merged_return)
## FB NFLX AMZN
## 2012-05-31 -0.22573895 -0.20838531 -0.08188870
## 2012-06-29 0.05067568 0.07960282 0.07251891
## 2012-07-31 -0.30192929 -0.16995190 0.02167724
## 2012-08-31 -0.16812530 0.05048373 0.06416631
## 2012-09-28 0.19933561 -0.08841251 0.02436864
## 2012-10-31 -0.02539238 0.45554736 -0.08426395
dygraph(merged_return, main = "Facebook vs. Netflix vs. Amazon") %>%
dyAxis("y", label = "") %>%
dyOptions(colors = brewer.pal(3, "Set1"))
Portfolio Analysis
The Sharpe Ratio