Retorno de un activo financiero

El retorno es la variación relativa que se produce en cualquier tipo de activo y en particular, en un activo financiero durante un período de tiempo determinado. Un inversionista puede ganar, perder o mantener su capital cuando compra un activo durante un período de tiempo definido. El retorno permite medir cual es el grado de variación del activo en relación a un valor inicial. Es decir, el retorno mide en qué grado se ha producido una ganancia o una pérdida durante el período de tiempo que se mantuvo el activo.

La forma de calcular el retorno está compuesta por dos operaciones:

  • Primero se calcula la variación absoluta del activo en un período de tiempo. Es decir, se calcula la diferencia entre el precio final y el precio inicial, $\Delta_P=P_f-P_i$.
  • Luego se divide la variación absoluta entre el precio inicial, $\frac{\Delta_P}{P_i}$.

Entonces el retorno es:

La razón entre la variación absoluta y el precio inicial está midiendo el tamaño de la variación absoluta en relación al precio inicial. Es por ello que el retorno mide la variación relativa al precio inicial en el período de tiempo en el cual se produjo la variación absoluta.”

En el caso de las acciones de la Bolsa, además de la variación absoluta se deben considerar los dividendos que ha recibido el accionista y la fórmula cambia ligeramente:

donde $D$ corresponde a los dividendos recibidos en el período de tiempo de la inversión.

Si multiplicamos el retorno por $100$ obtenemos el porcentaje de variación.

Veamos el siguiente ejemplo, un inversionista compró la acción de Apple el 29 de noviembre del 2012 a un precio de $84.194$ dólares. El día 19 de diciembre de 2016, decide vender la acción a un precio de $116.84$ dólares. Vamos a evaluar el retorno que obtuvo el inversionista en su posición sin considerar los dividendos.

Considerando los dividendos pagados por Apple durante el período indicado, por cada acción de Apple pagaron $54.54$ dólares en dividendos.

Dividendos pagados por Apple

Si volvemos a sacar la cuenta considerando los dividendos, nos podemos dar cuenta que el retorno está más influenciado por los dividendos pagados y no por la variación del precio durante dicho período.

Ahora vamos a resolver el mismo problema, utilizando R.

Para obtener la información del precio de la acción, lo primero que debemos hacer es guardar en una variable (que llamaremos data) la información que se encuentra alojada en el archivo 4tech.csv. Este archivo contiene la información del precio de las acciones de Facebook, Amazon, Apple y Google desde el 4 de junio de 2012 hasta el 1 de junio de 2017. Luego guardaremos en las variables AAPL_i y AAPL_f los precios de las fechas de inicio y fin del período de inversión.

#Carga de datos desde el csv data<-read.csv("http://synergy.vision/assets/corpus/rmd/data/4tech.csv") #Creación de los objetos AAPL_i y AAPL_f con los valores del precio de cada acción en la fecha específica AAPL_i <- as.numeric(subset(data, Date == "11/29/2012", select = AAPL)) AAPL_f <- as.numeric(subset(data, Date == "12/19/2016", select = AAPL)) #Dividendos div <- 54.54 #Primero vamos a calcular la variación absoluta del activo durante el período de inversión. Las variables AAPL_i y AAPL_f guardan los precios de inicio y final respectivamente, y se encuentran guardadas en el ambiente de trabajo: var_precio <- #Seguidamente calcularemos el retorno de la inversión retorno <- #Por último, calculemos el porcentaje de variación de la inversión retorno_porc <- retorno_porc #Ahora agreguemos los dividendos al cálculo (se encuentran cargados en la variable "div" en el ambiente de trabajo) var_precio_div <- retorno_div <- retorno_div_porc <- retorno_div_porc # Primero vamos a calcular la variación absoluta del activo durante el período de inversión: var_precio <- AAPL_f - AAPL_i # Seguidamente calcularemos el retorno de la inversión retorno <- var_precio / AAPL_i # Por último, calculemos el porcentaje de variación de la inversión retorno_porc <- retorno * 100 retorno_porc # Ahora agregemos los dividendos al cálculo (se encuentran cargados en la variable "div" en el ambiente de trabajo) var_precio_div <- AAPL_f - AAPL_i + div retorno_div <- var_precio_div / AAPL_i retorno_div_porc <- retorno_div * 100 retorno_div_porc test_object("var_precio", incorrect_msg = "Debe calcular la variación absoluta del activo") test_object("retorno", incorrect_msg = "Asegúrese de calcular la variación absoluta del activo y dividirla entre el valor inicial") test_object("retorno_porc", incorrect_msg = "Recuerde multiplicar el retorno por 100 para obtener la variación porcentual") success_msg("Muy bien!") test_object("retorno_div_porc", incorrect_msg = "Recuerde multiplicar el retorno por 100 para obtener la variación porcentual") success_msg("Muy bien!")
Para obtener la variación absoluta debe calcular la diferencia entre el precio final y el precio inicial.

Como podemos observar, el inversionista obtuvo, durante el período de inversión, un retorno del 38,53%. Y en el caso en que consideramos los dividendos, vemos que el retorno fue de un 103,3%. Obteniendo un mayor retorno por concepto de dividendos que por variación de precio.

Veamos ahora como fue el comportamiento de las acciones de Apple y Facebook desde el 4 de junio de 2012 hasta el 1 de junio de 2017, a través del gráfico del precio de las acciones.

Lo primero que haremos será cambiar el formato de las fechas del dataframe “data”, ya que el formato que posee es de mes/día/año y lo necesitaremos con un formato de año-mes-día para poder graficarlo de forma correcta.

#Cambio de formato de la variable Date
data$Date <- format(as.Date(data$Date, format = "%m/%d/%Y"), "%Y-%m-%d")

#Validación de la clase
class(data$Date)

#Vista de los datos
head(data)

Una vez modificado el formato, ahora necesitaremos convertir la clase de la variable Date ya que al cambiar el formato, la clase pasó a ser de character. Para poder graficar el comportamiento del precio con respecto al tiempo, debemos convertir la variable Date en un objeto de clase date.

#Conversión de la clase de la variable Date a tipo "Date"
data$Date <- as.Date(data$Date, format = "%Y-%m-%d")

#Validación de la clase
class(data$Date)

#Vista de los datos
head(data)

Ahora, ya habiendo realizado los cambios pertinentes, procederemos a graficar el comportamiento del precio de las acciones de Apple y Facebook.

#Gráficos de los precios de Apple y Facebook
plot(data$Date, data$AAPL, type="l", pch=19, cex=0.01, col="black", main = "Apple", xlab = "Fecha", ylab = "Precio")
plot(data$Date, data$FB, type="l", pch=19, cex=0.01, col="blue", main = "Facebook", xlab = "Fecha", ylab = "Precio")

Apple y Facebook

Ambas acciones han tenido un crecimiento sostenido desde el año $2012$ hasta el $2017$. Sin embargo, el crecimiento de Facebook ha sido mucho mayor que el alcanzado por la acción de Apple. La acción de Apple tuvo mayores oscilaciones que la acción de Facebook.

Una vez visualizados los comportamientos de los precios de las acciones de Apple y Facebook con respecto al tiempo, ahora calcularemos los retornos de las mismas. En primera instancia, convertiremos el dataframe data en un objeto de series de tiempo que llamaremos prices.

#Nuevo data frame solamente con valores de Apple y Facebook
data_new <- data.frame("Date" = data$Date, "AAPL" = data$AAPL, "FB" = data$FB) 

#Conversión del dataframe en un objeto de series de tiempo
prices<-as.timeSeries(data_new)

Luego calcularemos los retornos de ambas acciones y crearemos los vectores FB y AAPL que contienen los retornos de cada una de las acciones.

#Cálculo de retornos
returns<-timeSeries::returns(prices, method="discrete")

#Creación del vector de retornos de FB
FB<-as.vector(returns[,"FB"])

#Creación del vector de retornos de AAPL
AAPL<-as.vector(returns[,"AAPL"])

Seguidamente graficaremos los retornos de cada acción.

#Gráficos de retornos de Apple y Facebook
plot(AAPL, main = "Retornos de Apple", type="l", col= "black")
plot(FB, main = "Retornos de Facebook", type="l", col= "blue")

Retornos

Como podemos observar ambos retornos, visualmente, se comportan aproximadamente como una distribución normal. Esto nos puede dar una aproximación de la ocurrencia de retornos atípicos de cada acción. A simple vista se puede determinar que la acción de Facebook presenta ocurrencia de valores atípicos con un mayor sesgo hacia lo positivo que a lo negativo, además de mostrar una concentración de los retornos alrededor de cero $0$, pero acotados en su mayoría entre $-0.1$ y $0.1$. Esto permite obtener una primera aproximación del riesgo de la acción, en cuanto a su volatilidad.

Por su parte, Apple, presenta una mayor presencia de valores atípicos, tanto negativos como positivos, sin embargo, la concentración de los retornos se mantiene entre $-0.05$ y $0.05$. Lo que nos indica que la acción muestra unas variaciones porcentuales diarias, menores a la acción de Facebook.

Por último graficamos de manera conjunta los retornos de ambas acciones.

plot(FB,AAPL,type="p", pch=19, cex=0.01, col="black")
rug(FB, ticksize = 0.01, side = 3)
rug(AAPL, ticksize = 0.01, side = 4)

Retornos de Apple y Facebook

Como podemos observar los retornos se agrupan alrededor del cero. Sin embargo, Facebook muestra retornos atípicos mucho mayores a los que presenta Apple.

Los comandos en R se pueden descargar para que puedan experimentar.

Copyright © 2014-2018 Synergy Vision. Los artículos del Corpus se comparten bajo los términos de la licencia Creative Commons con Reconocimiento, Propósito no comercial, Compartir contenido similar, 4.0 Internacional (CC BY-NC-SA 4.0).

Citar el artículo.