3 votos

¿Una calculadora que tenga en cuenta el reajuste de la cartera?

Estoy buscando una calculadora que tenga en cuenta el rebalanceo a la hora de estimar los rendimientos totales utilizando datos históricos.

Por ejemplo, introduciría lo siguiente en la calculadora:

  • Tengo una inversión inicial de 10.000 dólares.
  • Pongo el 50% en el fondo A.
  • Puse el 50% en el fondo B.
  • Rebalanceo cada año.
  • Comienza en el año 1990.

A continuación, la calculadora arrojaría el siguiente resultado utilizando los datos de rentabilidad real de ambos fondos desde 1990 hasta la actualidad:

  • El valor total de su cartera en 2015 sería de X cantidad de dólares.

¿Alguien conoce una calculadora de este tipo?

4voto

Oshadha Puntos 18

Mi respuesta es Microsoft Excel.

Busca en Google "VBA for dummies" (en serio) y averigua si tu corredor de bolsa ofrece una 'API'. Con unos breves conocimientos de codificación puedes conseguir una hoja de cálculo que esté conectada en directo con el flujo de datos de tu corredor.

Digamos que tienes una hoja de cálculo con el valor de 1990 de cada uno en las dos primeras columnas (celdas a1 y b1). Tal vez esta fórmula podría ser la tercera columna, te dirá cuánto debes comprar o vender para reequilibrarlos.

=((a1+b1)/2)-a1

entonces, para iterar el rebalanceo, establece tanto a2 como b2 a =C1 y arrastra la fórmula por la fila 25, una fila por cada año. Probablemente será un poco más de trabajo que eso, pero usted consigue la idea.

0 votos

Un comienzo, pero los datos de los precios por sí solos no son suficientes, así que tienes razón re: "un poco más de trabajo que eso". La mayoría de los fondos pagan distribuciones que también habría que seguir y reinvertir. A lo largo de un período prolongado, las distribuciones representarían una parte importante del valor de la cartera. Un enfoque basado en el precio sólo funciona en el caso más sencillo, cuando no hay distribuciones ni otros acontecimientos significativos (por ejemplo, divisiones o consolidaciones). Este escenario es poco probable en el caso de los fondos de inversión, pero posible en el caso de determinadas acciones.

2voto

R tiene un paquete muy bueno que permite calcular la rentabilidad de las carteras reequilibradas. El paquete se llama PerformanceAnalytics (ver: http://www.inside-r.org/packages/cran/PerformanceAnalytics/docs/Return.portfolio ).

Rápidamente escribí un pequeño script para ti que te permite hacer exactamente lo que quieres.

Código:

startAmount <- 10000
library(PerformanceAnalytics)
#a small function to ensure that the data is of the correct type for the package to work
cleanData <- function(df) {
  if(ncol(df) > 0) {
    df <- df[,-1]
    df['Date'] <- as.Date(df[['Date']], format = '%Y-%m-%d')
    #set all the data to numeric data.
    #the first column is the date.
    cols <- c(2:ncol(df))
    df[,cols] <- lapply(df[,cols],function(x) as.numeric(as.character(x)));
    df <- xts(df[,-1], order.by=df[,1])
    return(df)
  } else {
    return("Error; the data.frame does not have any columns.")
  }
}
# use csv2 if you use use a comma as decimal point and a semicolon as field separator
# enter the path to your file where it says: portfolio.csv
yourPortfolio <- cleanData(read.csv('portfolio.csv'))
# the frequency with which you want to rebalance your portfolio is set to yearly. You could also set this to daily, weekly or monthly.
vectorReturns <- Return.portfolio(yourPortfolio, rebalance_on = c(NA, "years"))
dollarAmount <- startAmount*prod(1+vectorReturns)
print(paste("Your portfolio total value in 2015 would be ", dollarAmount, " amount of dollars.", sep = ""))

Por defecto, la cartera se reequilibra a una cartera con la misma ponderación. También es posible reequilibrar la cartera utilizando ponderaciones personalizadas. Consulte la documentación sobre cómo hacerlo.

Para que este código funcione necesitas tener tus datos ya en términos de devolución. Puedes hacerlo fácilmente en Excel. Asegúrese de que sus datos en Excel se ven así:

             option 1     option 2
2003-10-30 -0.002014099 -0.002014099
2003-10-31 -0.002018163 -0.002018163
2003-11-03 -0.029322548 -0.022605170
2003-11-04 -0.032291667 -0.032128514
2003-11-05  0.019375673  0.017634855

A continuación, exporte sus datos a un archivo CSV.

Nota: antes de ejecutar el código asegúrese de haber instalado el paquete PerformanceAnalytics. Puede hacerlo de la siguiente manera:

install.packages("PerformanceAnalytics")

Hágame saber si tiene alguna pregunta con respecto a lo anterior.

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