Merge xts and Return.portfolio
On Fri, Nov 15, 2013 at 6:32 AM, Simone Medori <simone.medori at me.com> wrote:
Hi,
I'm triyng to merge two xts time series objects, one of them is from Return.portfolio (PerformanceAnalytics).
Despite the merging xts objects have the same indexes, the merged object shows extra lines at the day before of every entry.
I noticed that indexes of merging objects have different classes ("POSIXct" and "Date"): might be this the reason? Why do I get different extra dates anyway?
Yes, this is the reason. Specifically, the cause is the difference in timezone between the POSIXct index and the Date index. For some reason, Return.portfolio returns a xts object with a POSIXct index. Convert it to Date and your merge will work. rp <- Return.portfolio(returns) index(rp) <- as.Date(index(rp)) merge(returns,rp)
Kind regards, Simone
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
Best, -- Joshua Ulrich | about.me/joshuaulrich FOSS Trading | www.fosstrading.com