[R-SIG-Finance] Return.rebalancing and rebalancing on consecutive days
Paul Ramer
paul.ramer at gmail.com
Sun Mar 3 04:15:31 CET 2013
Thanks for looking at the problem. What is standard procedure at this
point? Will the thread be updated with suggested solution or should I
watch the package updates for the solution?
Thank you,
Paul
----
Paul Ramer, CAIA, CFA
paul.ramer at gmail.com
(303) 359-4192
On Sat, Mar 2, 2013 at 7:35 PM, Peter Carl <peter at braverock.com> wrote:
> Paul,
>
> This looks like a situation in Return.portfolio where it is being passed a
> single row of returns that is causing the error.
>
>> Return.portfolio(e1[7,],weights=w1[1,])
> Error in `[.xts`(result, 2:length(result)) : subscript out of bounds
>> Return.portfolio(e1[7:8,],weights=w1[1,])
> portfolio.returns
> 2000-05-09 0.029817496
> 2000-05-10 -0.002608741
>
> This has to do with how the weights and returns are assumed to be
> synchronized through time. Both returns and weights are thought to be
> timestamped at the end-of-period, so the weights are shifted forward to
> apply to the next month's returns. From the documentation:
>
> Rebalancing periods can be thought of as taking effect immediately after
> the close of the bar. So, a March 31 rebalancing date will actually be in
> effect for April 1. A December 31 rebalancing date will be in effect on
> Jan 1, and so forth. This convention was chosen because it fits with
> common usage, and because it simplifies xts Date subsetting via endpoints.
>
> So this appears to be a corner case where a single row of returns is being
> passed in and the weights get shifted out of bounds.
>
> Thanks for the reproducible error. We'll take a look and find a solution.
>
> pcc
> --
> Peter Carl
> http://www.braverock.com/peter
>
>> When I rebalance my portfolio on consecutive days, I get an error:
>> Error in `[.xts`(result, 2:length(result)) : subscript out of bounds.
>>
>> So, I wonder what I am doing wrong.
>>
>> Below is a code snippet both with and without the error. The first is
>> rebalanced on consecutive days whereas the second one has at least a
>> day between all rebalancing. I ran debug on Return.rebalancing. With
>> consecutive rebalancing days, the only thing I could find was the
>> 'from' and 'to' variables had the same date when the 'R' variable was
>> subset.
>>
>> data(edhec)
>> data(weights)
>>
>> days <- c("2000-05-01 18:00:00 MDT", "2000-05-02 18:00:00 MDT",
>> "2000-05-03 18:00:00 MDT", "2000-05-04 18:00:00 MDT",
>> "2000-05-07 18:00:00 MDT", "2000-05-08 18:00:00 MDT",
>> "2000-05-09 18:00:00 MDT", "2000-05-10 18:00:00 MDT",
>> "2000-05-11 18:00:00 MDT", "2000-05-14 18:00:00 MDT",
>> "2000-05-15 18:00:00 MDT", "2000-05-16 18:00:00 MDT",
>> "2000-05-17 18:00:00 MDT", "2000-05-18 18:00:00 MDT",
>> "2000-05-21 18:00:00 MDT", "2000-05-22 18:00:00 MDT",
>> "2000-05-23 18:00:00 MDT", "2000-05-24 18:00:00 MDT",
>> "2000-05-25 18:00:00 MDT", "2000-05-29 18:00:00 MDT",
>> "2000-05-30 18:00:00 MDT", "2000-05-31 18:00:00 MDT")
>>
>> may.reb <- c("2000-05-09 18:00:00 MDT", "2000-05-10 18:00:00 MDT",
>> "2000-05-15 18:00:00 MDT")
>>
>> may.reb.2 <- c("2000-05-09 18:00:00 MDT", "2000-05-11 18:00:00 MDT",
>> "2000-05-15 18:00:00 MDT")
>>
>> e1 <- edhec[1:length(days), ]
>> index(e1) <- as.Date(days)
>>
>> w1 <- weights[1:3, ]
>> index(w1) <- as.Date(may.reb)
>> Return.rebalancing(e1, w1)
>>
>> w2 <- weights[1:3, ]
>> index(w2) <- as.Date(may.reb.2)
>> Return.rebalancing(e1, w2)
>>
>> Session Info:
>> R version 2.15.2 (2012-10-26)
>> Platform: i386-w64-mingw32/i386 (32-bit)
>>
>> locale:
>> [1] LC_COLLATE=English_United States.1252
>> [2] LC_CTYPE=English_United States.1252
>> [3] LC_MONETARY=English_United States.1252
>> [4] LC_NUMERIC=C
>> [5] LC_TIME=English_United States.1252
>>
>> attached base packages:
>> [1] splines stats graphics grDevices utils datasets methods
>> [8] base
>>
>> other attached packages:
>> [1] reshape_0.8.4 plyr_1.8
>> [3] latticeExtra_0.6-24 RColorBrewer_1.0-5
>> [5] Hmisc_3.10-1 survival_2.36-14
>> [7] PerformanceAnalytics_1.1.0 quantmod_0.4-0
>> [9] Defaults_1.1-1 TTR_0.21-1
>> [11] xts_0.9-3.2 zoo_1.7-10
>> [13] lattice_0.20-13
>>
>> loaded via a namespace (and not attached):
>> [1] cluster_1.14.3 compiler_2.15.2 grid_2.15.2 tools_2.15.2
>>
>> Any guidance is appreciated.
>>
>> Thank you,
>>
>> ----
>> Paul Ramer, CAIA, CFA
>> paul.ramer at gmail.com
>> (303) 359-4192
>>
>> _______________________________________________
>> R-SIG-Finance at r-project.org mailing list
>> https://stat.ethz.ch/mailman/listinfo/r-sig-finance
>> -- Subscriber-posting only. If you want to post, subscribe first.
>> -- Also note that this is not the r-help list where general R questions
>> should go.
>>
>
>
More information about the R-SIG-Finance
mailing list