[R] Merge xts and Return.portfolio
Joshua Ulrich
josh.m.ulrich at gmail.com
Fri Nov 15 15:30:02 CET 2013
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
More information about the R-help
mailing list