require(PerformanceAnalytics)
require(quantmod)
benchmark<-c("^STOXX50E","^NDX")
downloaded<-getSymbols(benchmark,from=as.Date(Sys.Date()-15))
prices <- merge.xts(na.locf(do.call(merge,lapply(downloaded, function(x) Cl(get(x))))))
returns <- Return.calculate(prices)[-1,] #get rid of first NA
returns
#STOXX50E.Close NDX.Close
#2013-11-01 -0.005153278 0.0006009953
#2013-11-04 0.000000000 0.0014764362
#2013-11-05 -0.005314304 0.0012024522
#2013-11-06 0.006745896 -0.0010151026
#2013-11-07 -0.004390787 -0.0188959585
#2013-11-08 0.000000000 0.0136779259
#2013-11-11 0.003236959 -0.0011464756
#2013-11-12 -0.005945303 0.0006690495
#2013-11-13 -0.004451870 0.0119843220
#2013-11-14 0.010764042 0.0028130469
Return.portfolio(returns)
# portfolio.returns
#2013-11-01 -0.0022761415
#2013-11-04 0.0007403469
#2013-11-05 -0.0020441262
#2013-11-06 0.0028386740
#2013-11-07 -0.0116652539
#2013-11-08 0.0068094113
#2013-11-11 0.0010398246
#2013-11-12 -0.0026371940
#2013-11-13 0.0037957949
#2013-11-14 0.0067416934
#Warning message:
# In Return.portfolio(returns) :
# weighting vector is null, calulating an equal weighted portfolio
merge(returns,Return.portfolio(returns))
#STOXX50E.Close NDX.Close portfolio.returns
#2013-10-31 NA NA -0.0022761415 # Return.portfolio merges into extra lines!
#2013-11-01 -0.005153278 0.0006009953 NA
#2013-11-03 NA NA 0.0007403469
#2013-11-04 0.000000000 0.0014764362 NA
#2013-11-04 NA NA -0.0020441262
#2013-11-05 -0.005314304 0.0012024522 NA
#2013-11-05 NA NA 0.0028386740
#2013-11-06 0.006745896 -0.0010151026 NA
#2013-11-06 NA NA -0.0116652539
#2013-11-07 -0.004390787 -0.0188959585 NA
#2013-11-07 NA NA 0.0068094113
#2013-11-08 0.000000000 0.0136779259 NA
#2013-11-10 NA NA 0.0010398246
#2013-11-11 0.003236959 -0.0011464756 NA
#2013-11-11 NA NA -0.0026371940
#2013-11-12 -0.005945303 0.0006690495 NA
#2013-11-12 NA NA 0.0037957949
#2013-11-13 -0.004451870 0.0119843220 NA
#2013-11-13 NA NA 0.0067416934
#2013-11-14 0.010764042 0.0028130469 NA