El cálculo de los rendimientos totales para un periodo fijo es bastante sencillo sencillo (último precio dividido por el primer precio menos 1), por lo que la frecuencia de las observaciones (horaria, diaria, semanal, ...) no importa. Pero necesitará una herramienta para limitar a la ventana de interés, como los dos años anteriores. dos años anteriores.
Para esto, sugeriría aprender sobre una serie de tiempo de la clase. Un ejemplo, para el que uso zoo
. Resulta que que zoo
viene con un método window
que permite extraer una ventana de tiempo determinada.
Descargue los datos del DAX (índice bursátil alemán) de Yahoo:
library("tseries")
P <- drop(get.hist.quote("^GDAXI", quote = "Close", retclass = "zoo"))
plot(P)
Para calcular los rendimientos, utilizaré el paquete PMwR
(que yo mantengo).
library("PMwR")
returns(P, period = "mtd")
## -1.8% [31 Oct 2018 -- 21 Nov 2018]
returns(P, period = "ytd")
## -13.0% [29 Dec 2017 -- 21 Nov 2018]
## returns over the previous 2 years
returns(window(P, start = Sys.Date()-365*2), period = "itd")
## 4.9% [22 Nov 2016 -- 21 Nov 2018]
## returns over the previous 3 years
returns(window(P, start = Sys.Date()-365*3), period = "itd")
## 1.4% [23 Nov 2015 -- 21 Nov 2018]
Para seleccionar otros periodos, sólo hay que poner el start
y end
argumentos para window
.
Si quiere un resumen rápido, también puede decir
summary(as.NAVseries(P), na.rm = TRUE)
## ---------------------------------------------------------
## 02 Jan 1991 ==> 21 Nov 2018 (7189 data points, 133 NAs)
## 1359.43 11244.2
## ---------------------------------------------------------
## High 13559.60 (23 Jan 2018)
## Low 1317.17 (15 Jan 1991)
## ---------------------------------------------------------
## Return (%) 7.9 (annualised)
## ---------------------------------------------------------
## Max. drawdown (%) 72.7
## _ peak 8064.97 (07 Mar 2000)
## _ trough 2202.96 (12 Mar 2003)
## _ recovery (20 Jun 2007)
## _ underwater now (%) 17.1
## ---------------------------------------------------------
## Volatility (%) 20.2 (annualised)
## _ upside 15.0
## _ downside 13.7
## ---------------------------------------------------------
##
## Monthly returns ▁▁▂▇█▁▁
##
## Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec YTD
## 1991 4.5 10.1 -3.1 6.0 6.3 -4.9 -0.3 1.9 -2.7 -1.6 -0.6 0.4 16.0
## 1992 6.9 3.6 -1.6 0.6 4.5 -2.8 -8.3 -4.9 -3.9 1.3 3.7 -0.4 -2.5
## [ ...... ]
## 2015 9.1 6.6 5.0 -4.3 -0.4 -4.1 3.3 -9.3 -5.8 12.3 4.9 -5.6 9.6
## 2016 -8.8 -3.1 5.0 0.7 2.2 -5.7 6.8 2.5 -0.8 1.5 -0.2 7.9 6.9
## 2017 0.5 2.6 4.0 1.0 1.4 -2.3 -1.7 -0.5 6.4 3.1 -1.6 -0.8 12.5
## 2018 2.1 -5.7 -2.7 4.3 -0.1 -2.4 4.1 -3.4 -0.9 -6.5 -1.8 -13.0