|
I came across the issue below trying to calculate simple returns of an xts object using Return.calculate() in PerformanceAnalytics. This returns a series of all zeros. The root of the problem, however, seems to be with xts for which division seems to be a challenge. What am I missing? Coercion to numeric is not really a reasonable solution.
> p <- to.monthly(as.xts(s.ts), OHLC = FALSE) > head(aap) s1 s2 Dec 1999 1000.00 1000.00 Jan 2000 1021.27 959.85 Feb 2000 1017.30 962.06 Mar 2000 1022.99 1008.44 Apr 2000 1015.95 980.95 May 2000 1044.30 963.79 > r <- Return.calculate(aap, method = "simple") > head(r) s1 s2 Dec 1999 0 0 Jan 2000 0 0 Feb 2000 0 0 Mar 2000 0 0 Apr 2000 0 0 May 2000 0 0 > lr <- Return.calculate(aap, method = "compound") > head(lr) s1 s2 Dec 1999 NA NA Jan 2000 0.02104695084364 -0.04097825672856 Feb 2000 -0.00389489202608 0.00229979652957 Mar 2000 0.00557765293308 0.04708304254280 Apr 2000 -0.00690557640376 -0.02763837145911 May 2000 0.02752266915648 -0.01764806131103 > p[2]/p[1]-1 Data: numeric(0) Index: NULL > as.numeric(p[2])/as.numeric(p[1])-1 [1] 0.02127 -0.04015 _______________________________________________ [hidden email] 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. |
|
On Tue, Jun 19, 2012 at 1:43 PM, <[hidden email]> wrote:
> I came across the issue below trying to calculate simple returns of an xts > object using Return.calculate() in PerformanceAnalytics. This returns a > series of all zeros. The root of the problem, however, seems to be with xts > for which division seems to be a challenge. What am I missing? Coercion to > numeric is not really a reasonable solution. > Return.calculate was fixed on R-Forge on April 4, 2012. Please see this SO question about installing from R-Forge: http://stackoverflow.com/q/11105131/271616 Division is only a challenge when you try to divide two objects that do not have any index values in common. Use lag() to align the index instead. >> p <- to.monthly(as.xts(s.ts), OHLC = FALSE) >> head(aap) > s1 s2 > Dec 1999 1000.00 1000.00 > Jan 2000 1021.27 959.85 > Feb 2000 1017.30 962.06 > Mar 2000 1022.99 1008.44 > Apr 2000 1015.95 980.95 > May 2000 1044.30 963.79 > >> r <- Return.calculate(aap, method = "simple") >> head(r) > s1 s2 > Dec 1999 0 0 > Jan 2000 0 0 > Feb 2000 0 0 > Mar 2000 0 0 > Apr 2000 0 0 > May 2000 0 0 > >> lr <- Return.calculate(aap, method = "compound") >> head(lr) > s1 s2 > Dec 1999 NA NA > Jan 2000 0.02104695084364 -0.04097825672856 > Feb 2000 -0.00389489202608 0.00229979652957 > Mar 2000 0.00557765293308 0.04708304254280 > Apr 2000 -0.00690557640376 -0.02763837145911 > May 2000 0.02752266915648 -0.01764806131103 > >> p[2]/p[1]-1 > Data: > numeric(0) > > Index: > NULL > >> as.numeric(p[2])/as.numeric(p[1])-1 > [1] 0.02127 -0.04015 > Best, -- Joshua Ulrich | FOSS Trading: www.fosstrading.com _______________________________________________ [hidden email] 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. |
| Powered by Nabble | Edit this page |
