2 votos

R: Cálculo de la rentabilidad acumulada de una cartera

He descargado los precios de cierre ajustados de Yahoo utilizando el quantmod -y lo utilizó para crear una cartera compuesta por un 50% de AAPL - y el 50%. FB -stocks.

Cuando trazo el rendimiento acumulado de mi cartera, obtengo un rendimiento (sospechosamente) alto, ya que está por encima del 100%:

library(ggplot2)
library(quantmod)

cmp <- "AAPL"
getSymbols(Symbols = cmp)
tail(AAPL$AAPL.Adjusted)

cmp <- "FB"
getSymbols(Symbols = cmp)
tail(FB$FB.Adjusted)

df <- data.frame("AAPL" = tail(AAPL$AAPL.Adjusted, 1000),
                 "FB"   = tail(FB$FB.Adjusted, 1000))

for(i in 2:nrow(df)){
  df$AAPL.Adjusted_prc[i] <- df$AAPL.Adjusted[i]/df$AAPL.Adjusted[i-1]-1
  df$FB.Adjusted_prc[i] <- df$FB.Adjusted[i]/df$FB.Adjusted[i-1]-1
}

df <- df[-1,]
df$portfolio   <- (df$AAPL.Adjusted_prc + df$FB.Adjusted_prc)*0.5
df$performance <- cumprod(df$portfolio+1)-1
df$idu <- as.Date(row.names(df))

ggplot(data = df, aes(x = idu, y = performance)) + geom_line()

enter image description here

Un rendimiento acumulado superior al 100% me parece muy poco realista. Esto me lleva a pensar que tal vez sea necesario ajustar/escalar los datos descargados de quantmod antes de usarlo?

3voto

BigCanOfTuna Puntos 210

¿Ha comprobado el rendimiento de las acciones concretas?

library("quantmod")
library("PMwR")

cmp <- "AAPL"
aapl <- getSymbols(Symbols = cmp, auto.assign = FALSE)$AAPL.Adjusted

cmp <- "FB"
fb <- getSymbols(Symbols = cmp, auto.assign = FALSE)$FB.Adjusted

returns(window(merge(aapl, fb), start = as.Date("2015-1-1")),
        period = "itd")
## AAPL.Adjusted:  73.2%  [02 Jan 2015 -- 04 Mar 2019]
##   FB.Adjusted: 113.3%  [02 Jan 2015 -- 04 Mar 2019] 

Así que esto parece bastante realista (y puedes verificar este rendimiento a través de otras fuentes también). Sin embargo, debería fusionar adecuadamente las series temporales en sus marcas de tiempo. Además, el rendimiento de la cartera que se calcula supone que se reequilibra a pesos iguales cada período (es decir, cada día).

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