REQUIRE package “Quantmod” to be installed
Download data for last 1 year for the S&P500 and 10 components from Yahoo
SP500_url <- "http://chart.finance.yahoo.com/table.csv?s=^GSPC&a=8&b=6&c=2015&d=8&e=6&f=2016&g=d&ignore=.csv"
my_10_com <-c("MMM","AXP","AAPL","BA","CAT","CVX","CSCO","KO","DIS","DD" )
yahoo.read<- function(url){
dat <- read.table(url, header=TRUE, sep = ",")
df <- dat[,c(1,5)]
df$Date <- as.Date(as.character(df$Date))
return (df)
}
SP500 <- yahoo.read(SP500_url)
SP_m <- monthlyReturn(xts(SP500$Close, SP500$Date))
SP_m
## monthly.returns
## 2015-09-30 -0.0250735013
## 2015-10-30 0.0829831178
## 2015-11-30 0.0005048693
## 2015-12-31 -0.0175301852
## 2016-01-29 -0.0507353220
## 2016-02-29 -0.0041283604
## 2016-03-31 0.0659911146
## 2016-04-29 0.0026993985
## 2016-05-31 0.0153246024
## 2016-06-30 0.0009109211
## 2016-07-29 0.0356098011
## 2016-08-31 -0.0012192431
## 2016-09-02 0.0041594828
Calculate daily returns of the S&P500 index and the downloaded stocks over the period under study
m_return <-SP_m
for (i in 1:10){
url <- paste("http://chart.finance.yahoo.com/table.csv?s=",my_10_com[i],"&a=8&b=6&c=2015&d=8&e=6&f=2016&g=d&ignore=.csv")
read_data <- yahoo.read(url)
test<-monthlyReturn(xts(read_data$Close, read_data$Date))
m_return <- merge(m_return, test)
}
m_return
## monthly.returns monthly.returns.1 monthly.returns.2
## 2015-09-30 -0.0250735013 -0.011573514 -0.018015645
## 2015-10-30 0.0829831178 0.108908814 -0.011736072
## 2015-11-30 0.0005048693 -0.004007410 -0.022113062
## 2015-12-31 -0.0175301852 -0.037935898 -0.029173591
## 2016-01-29 -0.0507353220 0.002389810 -0.230769264
## 2016-02-29 -0.0041283604 0.038874139 0.038878542
## 2016-03-31 0.0659911146 0.062217188 0.104713922
## 2016-04-29 0.0026993985 0.004500990 0.065635144
## 2016-05-31 0.0153246024 0.005615975 0.005043589
## 2016-06-30 0.0009109211 0.040399167 -0.076034122
## 2016-07-29 0.0356098011 0.018501634 0.060895344
## 2016-08-31 -0.0012192431 0.004933864 0.017375163
## 2016-09-02 0.0041594828 0.008759166 -0.005946935
## monthly.returns.3 monthly.returns.4 monthly.returns.5
## 2015-09-30 -0.017896848 -0.021446793 -0.120323037
## 2015-10-30 0.083408855 0.130737002 0.116738018
## 2015-11-30 -0.010041816 -0.017694400 -0.004658118
## 2015-12-31 -0.110228239 -0.005912692 -0.064556130
## 2016-01-29 -0.075242313 -0.169167990 -0.084167114
## 2016-02-29 -0.006677563 -0.016232390 0.087724853
## 2016-03-31 0.127210629 0.074124234 0.130576136
## 2016-04-29 -0.139921096 0.061919024 0.015416775
## 2016-05-31 0.065286997 -0.064169145 -0.067035498
## 2016-06-30 -0.042659753 0.029488648 0.045510908
## 2016-07-29 0.090062774 0.029183100 0.091676615
## 2016-08-31 0.018136446 -0.031497882 -0.009787397
## 2016-09-02 0.015362913 0.013209788 -0.003172605
## monthly.returns.6 monthly.returns.7 monthly.returns.8
## 2015-09-30 0.026548687 -0.001901103 0.031362389
## 2015-10-30 0.152129823 0.099047619 0.055583227
## 2015-11-30 0.004841582 -0.055459272 0.006375467
## 2015-12-31 -0.014892696 -0.003302752 0.007977476
## 2016-01-29 -0.038794998 -0.124079492 -0.000931122
## 2016-02-29 -0.035041043 0.100462333 0.004892894
## 2016-03-31 0.143336526 0.087471314 0.075585391
## 2016-04-29 0.071069160 -0.034422165 -0.034274629
## 2016-05-31 -0.011548248 0.056747872 -0.004464308
## 2016-06-30 0.037920812 -0.012392358 0.016367803
## 2016-07-29 -0.022417237 0.064133842 -0.037502778
## 2016-08-31 -0.018540212 0.029806746 -0.004584025
## 2016-09-02 0.003479797 0.012404548 0.005295878
## monthly.returns.9 monthly.returns.10
## 2015-09-30 -0.0174022206 -0.028421689
## 2015-10-30 0.1129158644 0.315352711
## 2015-11-30 -0.0023738087 0.062145014
## 2015-12-31 -0.0739402391 -0.010988982
## 2016-01-29 -0.0881233520 -0.207807814
## 2016-02-29 -0.0031309017 0.153714960
## 2016-03-31 0.0396775662 0.040249730
## 2016-04-29 0.0397744847 0.040903411
## 2016-05-31 -0.0391245489 -0.007586102
## 2016-06-30 -0.0141100684 -0.009325806
## 2016-07-29 -0.0191167757 0.067438191
## 2016-08-31 -0.0155289010 0.006216568
## 2016-09-02 -0.0004234703 0.007040201