2 votos

Tabla de rendimientos multiperiodos

Para la presentación del rendimiento se necesita un cuadro multiperiodo (o multihorizonte). Lo que quiero decir es una tabla que muestre el mes, el trimestre, el año y otros subperíodos desde el inicio.

Así que quiero tener una manera fácil de calcular esto con la entrada de devoluciones de longitud y frecuencia arbitraria. En otras palabras, la entrada puede ser una serie diaria de 2 años de datos, una serie mensual de 10 años de datos, etc.

Esta es una tarea sencilla de hacer en Excel, aunque puede ser propensa a errores de fórmula y otros inconvenientes conocidos.

Estoy buscando una implementación de R. He mirado en PerformanceAnalytics, que es capaz de calcular la anualidad desde el inicio o una tabla de año natural con meses. Sin embargo, estas funciones son limitadas, ya que la tabla de calendario requiere datos mensuales y no hay flexibilidad para calcular subperíodos que no sean desde el inicio.

Reconozco que puedo escribir una función personalizada para esto; sin embargo, esta parece ser una forma muy común de mostrar datos en la industria que me imagino que ya existe alguna implementación.

0voto

xperialover Puntos 1

Cuando se requiere tratar muchos datos, espero que el uso de numpy y pandas en un python El entorno de creación de prototipos será la mejor solución.

  • Preprocese sus datos con numpy y pandas según sus necesidades

    después de eso

  • generar su archivo excel.

0voto

BigCanOfTuna Puntos 210

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

Finanhelp.com

FinanHelp es una comunidad para personas con conocimientos de economía y finanzas, o quiere aprender. Puedes hacer tus propias preguntas o resolver las de los demás.

Powered by:

X