Mercados Financieros

Proyecto Final

Explica brevemente porqué en la práctica, suelen usarse log-retornos

En primer lugar, log-normalidad: si asumimos que los precios se distribuyen log-normalmente, entonces log( 1 + r i ) se distribuye normalmente, lo cual es muy útil ya que muchos teoremas presuponen normalidad. En la realidad veremos que nuestra gran lucha será frente a la modelización de la kurtosis, ya que la suposición no es del todo cierta.

En segundo lugar, la igualdad aproximada a los retornos anteriores cuando los rendimientos son muy pequeños, que es lo común cuando los trades son para una duración muy pequeña.

En tercer lugar, y la característica más importante es que son aditivos en el tiempo. Si recordamos un poco de estadística, sabemos que el producto de variables normalmente distribuidas no es una variable normal. Sin embargo la suma de variables normales no correlacionadas, sí que vuelve a ser una variable normal. De esta forma se reduce gratamente la complejidad algorítmica, ya que se podría aplicar el teorema central del límite.

En cuarto y último lugar, la estabilidad numérica; la adición de pequeñas cantidades es numéricamente fuerte, mientras que la multiplicación de números pequeños está sujeta a desbordamiento aritmético.

Ventajas y desventajas de usar log-retornos vs tasas de rendimiento.

Ventajas: En el cálculo de la volatilidad, los rendimientos que debemos usar son los logarítmicos. Esto se debe a que son los únicos que son sumables en el tiempo y la volatilidad no deja de ser un “sumatorio”. La asunción de una distribución t-student de retornos logarítmicos no tiene sentido, ya que en ese mismo instante estarías presuponiendo que para una acción dada en algún día, su valor esperado fuera infinito, lo cual de momento es impensable. Este caso es muy extremo, pero cuando se quieren modelar colas más gruesas, conviene emplear rendimientos aritméticos, con el fin de evitar situaciones irreales.

Desventajas: Durante la práctica, suele usarse log-retornos, ya que muchos de los modelos de evaluación del riesgo se basan en la distribución normal de las series de datos. Pero el problema es que este tipo de distribución puede no ser adecuada para representar la rentabilidad simple.Además de que permite sumar la rentabilidad de los distintos periodos para obtener la rentabilidad total.

Empresas cotizadas en la Bolsa Mexicana de Valores

Las 10 empresas que se escogieron para este proyecto estan ordénadas de la más a la menos recomendable para invertir.

Los datos de los rendimientos y la volatilidad de las empresas fueron sacados con un basicStats() (la realización se muestra más adelante), la siguiente tabla se realizó con la finalidad de poder analizar cual empresa es más recomendable para invertir. Hay que tener en cuenta que los datos se acomodaron de la siguiente manera:

  • Rendimientos: De mayor a menor (ya que entre mayor sea el rendimiento, mayor son las ganancias)

  • Volatilidad = De menor a mayor (ya que entre menor volatilidad tenga, nuestro riesgo es menor)

num <- c(1,2,3,4,5,6,7,8,9,10)
acciones <- c("AeoroMéx","América M","Cemex","BIMBO","Televisa","elektra","Banorte","Carso","Kimbera","Walmart")
Rendimientos <- c(-0.12,-0.0211,-0.1358,-0.0491,-0.0995,0.1473,0.0027,0.0248,0.0387,0.0383)
Volatilidad <- c(1.8675,1.4827,2.0548,1.6472,2.515,1.7416,2.1147,2.1168,1.6732,1.5552)

Rendimiento_Promedio <- data.frame(acciones,Rendimientos)
Volatilidad_acciones <- data.frame(acciones,Volatilidad)

mayor_rendimiento =arrange(Rendimiento_Promedio,desc(Rendimientos))
menor_volat =arrange(Volatilidad_acciones,Volatilidad)

data.frame(num,mayor_rendimiento,menor_volat)

Análisis :

  • La empresa que más me conviene invertir es elektra ya que los rendientos que obtiene es mucho mayor que las otras y el riesgo no es muy diferente a las 4 primeras
  • La siguiente sería Walmart, aunque KIMBERA reciba más rendimientos es muy poca la diferencia, además que Walmart es la segunda empresa con menos riesgo mientras que KIMBERA es la cuarta
  • La siguente es KIMBERA por lo explicado en el anterior punto
  • La siguiente estaría entre Grupo Carson y BANORTE, ya que son las únicas que quedan con rendimientos positivos y la volatilidad no difieren mucho en las últimas 5 empresas, pero me iría por Grupo Carson ya que los rendimientos son muchos mayores
  • La siguiente es BANORTE por lo explicado en el anterior punto
  • Al analizar la tabla, las últimas 5 empresas sería: América Móvil, BIMBO, Aeroméxico, CEMEX y Televisa

Empresa número 1

logo de elecktra

Grupo Elektra es la compañía de servicios financieros y de comercio especializado líder en Latinoamérica y es el mayor proveedor de préstamos no bancarios de corto plazo en Estados Unidos.

Actualmente opera cerca de 7,000 puntos de contacto a través de sus tiendas Elektra, Salinas y Rocha, Banco Azteca y sucursales de Purpose Financial; de éstos, más de 5,000 se encuentran en seis países latinoamericanos: México, Guatemala, Honduras, Perú y Panamá, y más de 1,500 sucursales en Estados Unidos.

Para más información dar click en el logo de elektra

elektra = get.hist.quote(instrument = "ELEKTRA.MX", start = "2018-01-20",end="2020-01-20", quote="Close", compression="d")
## 'getSymbols' currently uses auto.assign=TRUE by default, but will
## use auto.assign=FALSE in 0.5-0. You will still be able to use
## 'loadSymbols' to automatically load data. getOption("getSymbols.env")
## and getOption("getSymbols.auto.assign") will still be checked for
## alternate defaults.
## 
## This message is shown once per session and may be disabled by setting 
## options("getSymbols.warning4.0"=FALSE). See ?getSymbols for details.
## time series starts 2018-01-22
## time series ends   2020-01-17
plot(elektra, col="yellow3", xlab="Fecha", ylab="Precio de Cierre"); title(main="Acciones de Grupo Elektra") 

Retorno_elektra<- (Return.calculate(elektra, method = "log"))*100 #Se multilica por cien para que este conforme al porcentaje 

Tabla_Ret_elektra <-data.frame(Retorno_elektra)
head(Tabla_Ret_elektra,500)
plot(Retorno_elektra, main=" ", col="yellow3", xlab="Fecha", ylab="Rendimientos")
title(main="Rendimientos de las Acciones de Elecktra")

basicStats(Retorno_elektra)

Como se puede observar en la tabla:

  • Varianza = 3.03302
  • Rendimiento promedio = 0.1473
  • Volatilidad/Desv.Estándar = 1.7416

Empresa número 2

logo de Walmart

Walmart de México y Centroamérica es una empresa dedicada al sector comercio. Operan en seis países: Costa Rica, El Salvador, Guatemala, Honduras, México y Nicaragua.

Tienen una amplia variedad de formatos, que incluyen tiendas de descuento (Bodega Aurrera Express, Despensas Familiares y Palí), supermercados (Superama, Supertiendas Paiz, La Despensa de Don Juan, La Unión y Más x Menos), bodegas (Bodega Aurrera, Mi Bodega Aurrera y Maxi Bodega), hipermercados (Walmart, Hiper Paiz e Hipermás) y clubes de precio con membresías (Sam’s Club y ClubCo).

Para más información dar click en el logo de Walmart

Walmart = get.hist.quote(instrument = "WALMEX.MX", start = "2018-01-20",end="2020-01-20", quote="Close", compression="d")
## time series starts 2018-01-22
## time series ends   2020-01-17
plot(Walmart, col="yellow2", xlab="Fecha", ylab="Precio de Cierre"); title(main="Acciones de Walmart")

Retorno_Walmart<- (Return.calculate(Walmart, method = "log"))*100 #Se multilica por cien para que este conforme al porcentaje 

Tabla_Ret_Walmart <-data.frame(Retorno_Walmart)
head(Tabla_Ret_Walmart,500)
plot(Retorno_Walmart, main=" ", col="yellow2", xlab="Fecha", ylab="Rendimientos")
title(main="Rendimientos de Walmart")

basicStats(Retorno_Walmart)

Como se puede observar en la tabla:

  • Varianza = 2.418796
  • Rendimiento promedio = 0.0383
  • Volatilidad/Desv.Estándar = 1.5552

Empresa número 3

logo de KIMBERA

Kimberly-Clark es una empresa mexicana dedicada a la fabricación, distribución y comercialización de Productos de limpieza, cuidado e higiene personal.

Somos una empresa mexicana que opera de manera ininterrumpida desde hace más de 50 años y que ha jugado un papel importante en nuestro país como fuente generadora de empleo. Con ocho plantas productivas, empleamos a más de 8 mil colaboradores directos y más de 10 mil indirectos, impulsando un gran número de cadenas productivas que beneficia a miles de familias mexicanas.

Para más información dar click en el logo de Kimberly-Clark

KIMBERA = get.hist.quote(instrument = "KIMBERA.MX", start = "2018-01-20",end="2020-01-20", quote="Close", compression="d")
## time series starts 2018-01-22
## time series ends   2020-01-17
plot(KIMBERA, col="pink2", xlab="Fecha", ylab="Precio de Cierre"); title(main="Acciones de KIMBERA") 

Retorno_KIMBERA<- (Return.calculate(KIMBERA, method = "log"))*100 #Se multilica por cien para que este conforme al porcentaje 

Tabla_Ret_KIMBERA <-data.frame(Retorno_KIMBERA)
head(Tabla_Ret_KIMBERA,500)
plot(Retorno_KIMBERA, main=" ", col="pink2", xlab="Fecha", ylab="Rendimientos")
title(main="Rendimientos de KIMBERA")

basicStats(Retorno_KIMBERA)

Como se puede observar en la tabla:

  • Varianza = 2.799650
  • Rendimiento promedio = 0.0387
  • Volatilidad/Desv.Estándar = 1.6732

Empresa número 4

logo de Carso

El Grupo Carso es uno de los conglomerados más grandes e importantes de México y de América Latina.

Controla y opera gran variedad de empresas en el ramo comercial, comunicacional, industrial y de consumo. Es controlado por el multimillonario mexicano Carlos Slim.

Para más información dar click en el logo de Carso

Carso = get.hist.quote(instrument = "GCARSOA1.MX", start = "2018-01-20",end="2020-01-20", quote="Close", compression="d")
## time series starts 2018-01-22
## time series ends   2020-01-17
plot(Carso, col="darkgrey", xlab="Fecha", ylab="Precio de Cierre"); title(main="Acciones de Grupo Carso") 

Retorno_Carso<- (Return.calculate(Carso, method = "log"))*100 #Se multilica por cien para que este conforme al porcentaje 

Tabla_Ret_Carso <-data.frame(Retorno_Carso)
head(Tabla_Ret_Carso,500)
plot(Retorno_Carso, main=" ", col="darkgrey", xlab="Fecha", ylab="Rendimientos")
title(main="Rendimientos de Grupo Carso")

basicStats(Retorno_Carso)

Como se puede observar en la tabla:

  • Varianza = 4.480735
  • Rendimiento promedio = 0.0248
  • Volatilidad/Desv.Estándar = 2.1168

Empresa número 5

logo de BANORTE

Grupo Financiero Banorte, es una institución financiera líder en México y con la mejor diversificación de negocio. Opera bajo un modelo de banca universal, ofreciendo además, una amplia variedad de productos y servicios a través de su casa de bolsa, las compañías de pensiones y seguros, afore, fondos de inversión, así como las empresas de arrendamiento y factoraje y la almacenadora.

Banorte ya es el segundo grupo financiero más grande de México, es el proveedor número uno de créditos a gobiernos y el segundo banco más importante en créditos hipotecarios. Por su parte, la administradora de fondos para el retiro Afore XXI Banorte, es la más grande del país en recursos administrados.

Para más información dar click en el logo de BANORTE

Banorte = get.hist.quote(instrument = "GFNORTEO.MX", start = "2018-01-20",end="2020-01-20", quote="Close", compression="d")
## time series starts 2018-01-22
## time series ends   2020-01-17
plot(Banorte, col="darkblue", xlab="Fecha", ylab="Precio de Cierre"); title(main="Acciones del Grupo Financiero Banorte") 

Retorno_Banorte<- (Return.calculate(Banorte, method = "log"))*100 #Se multilica por cien para que este conforme al porcentaje 

Tabla_Ret_Banorte <-data.frame(Retorno_Banorte)
head(Tabla_Ret_Banorte,500)
plot(Retorno_Banorte, main=" ", col="darkblue", xlab="Fecha", ylab="Rendimientos")
title(main="Rendimientos de las Acciones de BANORTE")

basicStats(Retorno_Banorte)

Como se puede observar en la tabla:

  • Varianza = 4.471817
  • Rendimiento promedio = 0.0027
  • Volatilidad/Desv.Estándar = 2.1147

Empresa número 6

logo de AMXL

América Móvil es una empresa mexicana de telecomunicaciones con presencia en 18 países de América. Tiene más de 262 millones de clientes y actualmente es la cuarta compañía de telecomunicaciones más grande e importante del mundo.

En julio de 2010 superó a Telefónica, su principal accionista es el empresario mexicano de origen libanés Carlos Slim Helú.

Para más información dar click en el logo de AMXL

Ame_Movil = get.hist.quote(instrument = "AMXL.MX", start = "2018-01-20",end="2020-01-20", quote="Close", compression="d")
## time series starts 2018-01-22
## time series ends   2020-01-17
plot(Ame_Movil, col="aquamarine3", xlab="Fecha", ylab="Precio de Cierre"); title(main="Acciones de América Móvil") 

Retorno_Movil<- (Return.calculate(Ame_Movil, method = "log"))*100 #Se multilica por cien para que este conforme al porcentaje 

Tabla_Ret_Movil <-data.frame(Retorno_Movil)
head(Tabla_Ret_Movil,500)
plot(Retorno_Movil, main=" ", col="aquamarine3", xlab="Fecha", ylab="Rendimientos")
title(main="Rendimientos de las Acciones de de América Móvil")

basicStats(Retorno_Movil)

Como se puede observar en la tabla:

  • Varianza = 2.198341
  • Rendimiento promedio = -0.0211
  • Volatilidad/Desv.Estándar = 1.4827

Empresa número 7

logo de BIMBO

Grupo Bimbo, S.A.B. de C.V. (conocida como Bimbo) es una empresa multinacional mexicana que tiene presencia en 33 países de América, Europa, Asia y África, cuenta con un volumen de ventas anuales de 15 mil millones de dólares.

Opera más de 100 marcas y más de 13 mil productos, entre los que destacan: Bimbo, Tía Rosa, Ricolino, Entenmann´s, Pullman, Rainbo, Nutella, Marinela, Oroweat, Sara Lee, Thomas, Arnold y Barcel, por mencionar algunas.

Para más información dar click en el logo de BIMBO

BIMBO = get.hist.quote(instrument = "BIMBOA.MX", start = "2018-01-20",end="2020-01-20", quote="Close", compression="d")
## time series starts 2018-01-22
## time series ends   2020-01-17
plot(BIMBO, col="red3", xlab="Fecha", ylab="Precio de Cierre"); title(main="Acciones de BIMBO") 

Retorno_BIMBO<- (Return.calculate(BIMBO, method = "log"))*100 #Se multilica por cien para que este conforme al porcentaje 

Tabla_Ret_BIMBO <-data.frame(Retorno_BIMBO)
head(Tabla_Ret_BIMBO,500)
plot(Retorno_BIMBO, main=" ", col="red3", xlab="Fecha", ylab="Rendimientos")
title(main="Rendimientos de las Acciones de BIMBO")

basicStats(Retorno_BIMBO)

Como se puede observar en la tabla:

  • Varianza = 2.713191
  • Rendimiento promedio = -0.0491
  • Volatilidad/Desv.Estándar = 1.6472

Empresa número 8

logo de Aeroméxico

Aeroméxico (Aerovías de México S.A. de C.V.), es la aerolínea nacional de México, tienes sus oficinas en la Colonia Cuauhtémoc en Ciudad de México, ofrece vuelos dentro de México como vuelos internacionales. Viaja a toda América y el Caribe, Europa y Asia.

Domina el 79.8% de los vuelos internacionales, nuevamente es entre las aerolíneas Mexicanas, la más grande, seguida en segundo lugar por Volaris.

Aeroméxico y subsidiarias operan un total de más de 500 vuelos diarios con 70 destinos en cuatro continentes y una flota de 103 aviones en total.

Para más información dar click en el logo de AEROMEX

con=url("https://finance.yahoo.com")
Aero_Mex = get.hist.quote(instrument = "AEROMEX.MX", start = "2018-01-20",end="2020-01-20", quote="Close", compression="d") 
## time series starts 2018-01-22
## time series ends   2020-01-17
plot(Aero_Mex, col="darkmagenta", xlab="Fecha", ylab="Precio de Cierre"); title(main="Acciones de Aeroméxico") 

Retorno_AeroMex<- (Return.calculate(Aero_Mex, method = "log"))*100 #Se multilica por cien para que este conforme al porcentaje 

Tabla_Ret_Aero<-data.frame(Retorno_AeroMex)
head(Tabla_Ret_Aero,500)
plot(Retorno_AeroMex, main=" ", col="darkmagenta", xlab="Fecha", ylab="Rendimientos")
title(main="Rendimientos de las Acciones de Aeroméxico")

basicStats(Retorno_AeroMex)

Como se puede observar en la tabla:

  • Varianza = 3.487653
  • Rendimiento promedio = -0.12
  • Volatilidad/Desv.Estándar = 1.8675

Empresa número 9

logo de CEMEXCPO

CEMEX es una compañía global de materiales para la industria de la construcción que ofrece productos de alta calidad y servicios confiables a clientes y comunidades en más de 50 países.

CEMEX tiene una notable trayectoria de beneficiar a quienes sirve a través de soluciones de construcción innovadoras, mejoras en eficiencia y esfuerzos para promover un futuro sostenible.

Para más información dar click en el logo de CEMEX

Cemex = get.hist.quote(instrument = "CEMEXCPO.MX", start = "2018-01-20",end="2020-01-20", quote="Close", compression="d")
## time series starts 2018-01-22
## time series ends   2020-01-17
plot(Cemex, col="blue", xlab="Fecha", ylab="Precio de Cierre"); title(main="Acciones de CEMEX") 

Retorno_Cemex<- (Return.calculate(Cemex, method = "log"))*100 #Se multilica por cien para que este conforme al porcentaje 

Tabla_Ret_Cemex <-data.frame(Retorno_Cemex)
head(Tabla_Ret_Cemex,500)
plot(Retorno_Cemex, main=" ", col="blue", xlab="Fecha", ylab="Rendimientos")
title(main="Rendimientos de las Acciones de CEMEX")

basicStats(Retorno_Cemex)

Como se puede observar en la tabla:

  • Varianza = 4.222147
  • Rendimiento promedio = -0.1358
  • Volatilidad/Desv.Estándar = 2.0548

Empresa número 10

logo de TELEVISA

Televisa es una empresa de medios líder en la producción de contenido audiovisual en español, un importante operador de Cable en México y un sistema líder de televisión de paga vía satélite en México.

Televisa distribuye el contenido que produce a través de varios canales de televisión abierta en México y en diversos países a través de sus marcas de canales de televisión de paga y canales de televisión, operadores de cable y servicios adicionales por internet.

Para más información dar click en el logo de Televisa

Televisa = get.hist.quote(instrument = "TLEVISACPO.MX", start = "2018-01-20",end="2020-01-20", quote="Close", compression="d")
## time series starts 2018-01-22
## time series ends   2020-01-17
plot(Televisa, col="orange", xlab="Fecha", ylab="Precio de Cierre"); title(main="Acciones de Grupo Televisa") 

Se puede observar una caida en el precio de las acciones desde mitad del 2018

Retorno_Televisa<- (Return.calculate(Televisa, method = "log"))*100 #Se multilica por cien para que este conforme al porcentaje 

Tabla_Ret_Televisa <-data.frame(Retorno_Televisa)
head(Tabla_Ret_Televisa,500)
plot(Retorno_Televisa, main=" ", col="orange", xlab="Fecha", ylab="Rendimientos")
title(main="Rendimientos de las Acciones de Televisa")

basicStats(Retorno_Televisa)

Como se puede observar en la tabla:

  • Varianza = 4.208635
  • Rendimiento promedio = -0.0995
  • Volatilidad/Desv.Estándar = 2.0515

Precios de las 10 empresas

Empresas <- merge(elektra,Walmart,KIMBERA,Carso,Banorte,Ame_Movil,BIMBO,Aero_Mex,Cemex,Televisa, all = FALSE) 
names(Empresas)
##  [1] "Close.elektra"   "Close.Walmart"   "Close.KIMBERA"   "Close.Carso"    
##  [5] "Close.Banorte"   "Close.Ame_Movil" "Close.BIMBO"     "Close.Aero_Mex" 
##  [9] "Close.Cemex"     "Close.Televisa"
names(Empresas)<-c("Elek","WMT","KIMB", "Carso", "BNort","AMXL","Bimbo","AMex","Cemex", "Telv")
plot(Empresas, main=" ", col=rainbow(10), xlab="Fecha")
title(main="Precios de las 10 empresas")

###Estas graficas estan ordenadas de de la más a la menos recomendable para invertir, podemos apreciar que entre las 5 mejores tienen una tendencia creciente mientras que las 5 peores ek precio de sus acciones son decrecientes

Rendimientos de las 10 empresas

Retorno_Empresas<- (diff(log(Empresas)))*100

Tabla_Ret_Empresas <-data.frame(Retorno_Empresas)
head(Tabla_Ret_Empresas,1000)
plot(Retorno_Empresas, main=" ", col=rainbow(10), xlab="Fecha")
title(main="Rendimientos de las 10 empresas")

Tabla de la varianza, volatilidad y rendimiento

RendimientoPromedio =c(mean(Retorno_Empresas$"Elek"),mean(Retorno_Empresas$"WMT"),mean(Retorno_Empresas$"KIMB"),mean(Retorno_Empresas$"Carso"),mean(Retorno_Empresas$"BNort"),mean(Retorno_Empresas$"AMXL"),mean(Retorno_Empresas$"Bimbo"),mean(Retorno_Empresas$"AMex"),mean(Retorno_Empresas$"Cemex"),mean(Retorno_Empresas$"Telv"))

Volatilidad = c(sd(Retorno_Empresas$"Elek"),sd(Retorno_Empresas$"WMT"),sd(Retorno_Empresas$"KIMB"),sd(Retorno_Empresas$"Carso"),sd(Retorno_Empresas$"BNort"),sd(Retorno_Empresas$"AMXL"),sd(Retorno_Empresas$"Bimbo"),sd(Retorno_Empresas$"AMex"),sd(Retorno_Empresas$"Cemex"),sd(Retorno_Empresas$"Telv"))



Varianza = c(var(Retorno_Empresas$"Elek"),var(Retorno_Empresas$"WMT"),var(Retorno_Empresas$"KIMB"),var(Retorno_Empresas$"Carso"),var(Retorno_Empresas$"BNort"),var(Retorno_Empresas$"AMXL"),var(Retorno_Empresas$"Bimbo"),var(Retorno_Empresas$"AMex"),var(Retorno_Empresas$"Cemex"),var(Retorno_Empresas$"Telv"))

Tabla_Empresas = data.frame (rbind(Varianza,Volatilidad,RendimientoPromedio))
colnames(Tabla_Empresas)<- c("Elektra","Walmart", "KIMBERA", "Carson", "Banorte", "Ame_Mov", "Bimbo","AeroMex","CEMEX","Televisa")

Tabla_Empresas

Matriz de varianzas-covarianzas

Cov <- cov(Retorno_Empresas)
data.frame(Cov)

Tabla de Correlación

correlacion <- cor(Retorno_Empresas) 
data.frame(correlacion)
Mtz_Corr <- function(correlationMatrix, title)
{

  heatmap.2(x = correlationMatrix,    
            cellnote = correlationMatrix,   
            main = title,           
            symm = TRUE,            
            dendrogram="none",      
            Rowv = FALSE,           
            trace="none",           
            density.info="none",        
            notecol="black")          
}

corr1 <- round(cor(Retorno_Empresas), 2)
Mtz_Corr(corr1,"Matriz: Correlaciones")

+ Mientras más claro sea el color existe mayor correlación

¿Qué incentivos a diversificar tenemos dependiendo de la correlación?

  • Si el portafolio tiene una correlación perfectamente positiva: No hay incentivos a la diversificación, la varianza de la cartera será igual a la rentabilidad.

  • Si el portafolio tiene una correlación perfectamente negativa: Hay incentivos a la diversificación, ya que seleccionando bien los activos pueden incluso hasta anular el riesgo de una cartera. Este tipo de ejemplo es muy difícil de aplicar en la práctica.

  • Si el portafolio tiene una correlación nula: Hay incentivos a la diversificación, ya que los activos seleccionados tienen rendimientos completamente independientes. Por tanto, no se debería invertir todo el capital en el activo de menor riesgo, ya que hay combinaciones entre los dos títulos que pueden ofrecer mayores rendimientos para el mismo riesgo.

Portafolios de inversión de las 5 mejores empresas

Portafolio de mínima varianza global

Matriz de varianzas-covarianzas

Matriz_5 = Cov[,-c(6,7,8,9,10)]
Matriz_5 = Matriz_5[-c(6,7,8,9,10),]

data.frame(Matriz_5)
Elek = c(3.0330197,0.3460658,0.4317683,0.7304878,0.3461307,1)
WMT = c(0.3460658,2.4187958,0.5648367,0.5914580,1.0643090,1)
KIMB = c(0.4317683,0.5648367,2.7996501,1.0904559,0.7921869,1)
Carso1 = c(0.7304878,0.5914580,1.0904559,4.4807351,1.0685696,1)
BNort = c(0.3461307,1.0643090,0.7921869,1.0685696,4.4718171,1)
v1 = c(1,1,1,1,1,0)

C = data.frame(Elek,WMT,KIMB,Carso1,BNort,v1)
C
b = c(0,0,0,0,0,1)
b
## [1] 0 0 0 0 0 1
C_inversa = solve(C) #inversa de la matriz C
data.frame(C_inversa)
w = (C_inversa %*% b) # Multiplicación de matrices.

w_empresa = c("Peso Elecktra","Peso Walmart", "Peso KIMBERA","Peso Carson","Peso Banorte","Lambda")

data.frame(w_empresa,w)
x=0.27125845+0.30921697+0.23844412+0.08614219+0.09493828 #Solo para comprobar que la suma de los Pesos de las empresas es igual a 1
x 
## [1] 1

Calculo del rendimiento y varianza del portafolio de mínima varianza global

Rendimientos_transpuesto = rbind(c(Tabla_Empresas$Elektra[3],Tabla_Empresas$Walmart[3],Tabla_Empresas$KIMBERA[3], Tabla_Empresas$Carson[3],Tabla_Empresas$Banorte[3]))

w1 = w[-c(6),] # w- Lambda

Rendimiento = (Rendimientos_transpuesto %*% w1) # Multiplicación de matrices.
data.frame(Rendimiento)
w_transp = t(w1)

Matriz_52 = Cov[,-c(6,7,8,9,10)]
Matriz_52= Matriz_52[-c(6,7,8,9,10),] #Matriz de varianzas-covarianzas de las 5 mejores empresas

w_transp_Var_cov = w_transp %*% Matriz_52 # w_transp * Var-cov

Varianza_1 = (w_transp_Var_cov %*% w1)

Volatilidad_1 = sqrt(1.128481) #raíz de la varianza

data.frame(Varianza_1, Volatilidad_1)

Frontera Eficiente

#Rendimientos de las 5 empresas
Rendi_5empresas<-(diff(log(Empresas[,c("Elek","WMT","KIMB", "Carso", "BNort")])))*100
#se multiplica por 100 para que sea el porcentaje de Rendimiento

# Portafolio
Portafolio = portfolioSpec() 

#setSolver(Portafolio) = "solveRshortExact"
setNFrontierPoints(Portafolio) <- 20 #genera 20 puntos de la frontera eficiente,

Frontera_Efi <- portfolioFrontier(as.timeSeries(Rendi_5empresas),spec=Portafolio)
Frontera_Efi
## 
## Title:
##  MV Portfolio Frontier 
##  Estimator:         covEstimator 
##  Solver:            solveRquadprog 
##  Optimize:          minRisk 
##  Constraints:       LongOnly 
##  Portfolio Points:  5 of 20 
## 
## Portfolio Weights:
##      Elek    WMT   KIMB  Carso  BNort
## 1  0.0000 0.0000 0.0000 0.0000 1.0000
## 5  0.0292 0.3574 0.2818 0.1523 0.1793
## 10 0.3335 0.2968 0.2273 0.0691 0.0732
## 15 0.6505 0.2035 0.1461 0.0000 0.0000
## 20 1.0000 0.0000 0.0000 0.0000 0.0000
## 
## Covariance Risk Budgets:
##      Elek    WMT   KIMB  Carso  BNort
## 1  0.0000 0.0000 0.0000 0.0000 1.0000
## 5  0.0109 0.3474 0.2733 0.1592 0.2091
## 10 0.3759 0.2805 0.2150 0.0638 0.0649
## 15 0.8302 0.0986 0.0712 0.0000 0.0000
## 20 1.0000 0.0000 0.0000 0.0000 0.0000
## 
## Target Returns and Risks:
##      mean    Cov   CVaR    VaR
## 1  0.0027 2.1147 5.3665 3.1704
## 5  0.0331 1.1630 2.7247 1.9039
## 10 0.0712 1.0693 2.3226 1.6819
## 15 0.1093 1.2847 2.8060 1.8674
## 20 0.1473 1.7416 3.8032 2.6746
## 
## Description:
##  Sat Jan 23 17:32:55 2021 by user:

Diagrama de media varianzal

frontierPlot(Frontera_Efi, frontier = c("both", "lower", "upper"),col = c("blue", "black"))  #Traza frontera eficiente,

minvariancePoints(Frontera_Efi,pch=19,col="red")# Portafolio de mínima varianza

Como se puede observar, los puntos azules son los portafolios que estan en la frontera eficiente, mientras que los negros son los portafolios que estan en la frontera ineficiente y el círculo rojo el portafolio con la mínima varianza global

Pesos de los portafolios

weightsPlot(Frontera_Efi)

efPortfolio <- efficientPortfolio(as.timeSeries(Rendi_5empresas),Portafolio)
efPortfolio
## 
## Title:
##  MV Efficient Portfolio 
##  Estimator:         covEstimator 
##  Solver:            solveRquadprog 
##  Optimize:          minRisk 
##  Constraints:       LongOnly 
## 
## Portfolio Weights:
##   Elek    WMT   KIMB  Carso  BNort 
## 0.2713 0.3092 0.2384 0.0861 0.0949 
## 
## Covariance Risk Budgets:
##   Elek    WMT   KIMB  Carso  BNort 
## 0.2713 0.3092 0.2384 0.0861 0.0949 
## 
## Target Returns and Risks:
##   mean    Cov   CVaR    VaR 
## 0.0634 1.0623 2.3437 1.6918 
## 
## Description:
##  Sat Jan 23 17:32:56 2021 by user:
w2 = c(0.2713,0.3092,0.2384,0.0861,0.0949)
w_empresa = w_empresa[-c(6)]
data.frame(w_empresa,w2)
Varianza_2 = (1.6918  )
Volatilidad_2 = sqrt(1.6918 ) #raíz de la varianza

data.frame(Varianza_2, Volatilidad_2)

Portafolio óptimo considerando un activo libre de riesgo.

El activo libre de riesgo que consideraremos es :

BBVA BONOS SOSTENIBLE ISR, FI

Fondo de Inversión Socialmente Responsable. La gestión toma como referencia la rentabilidad del índice ICE BofAML 1-10 Yr Euro Large Cap Corp. Dicha referencia se tomará únicamente a efectos meramente informativos o comparativos. Se invierte, directa o indirectamente el 100% de la exposición total en renta fija. Entre el 50% - 100% será en renta fija privada y el resto en renta fija pública (incluyendo depósitos e instrumentos del mercado monetario cotizados o no, líquidos), incluyendo bonos verdes públicos/privados (deuda destinada exclusivamente a financiar proyectos verdes con beneficio medioambiental). Se dará preferencia a emisores/mercados de países OCDE y títulos emitidos en euros, aunque podrá invertirse en emisores/mercados de paises emergentes. La duración media de la cartera estará entre 2 - 8 años. La exposición a riesgo divisa será de un máximo del 5% de la exposición total.

Primero lo calculamos como el ejemplo del excel y después con un tangencyPortfolio

Act_libre_riesgo = 0.00015 #Continua diaria

Rendimiento_5 = c(0.147325,0.03825496,0.03867667,0.02484329,0.002684459)

Prima_de_riesgo = (Rendimiento_5)-(Act_libre_riesgo)

#Matriz de var-cov lo llame con el nombre Matriz_52
Matriz52_inversa = solve(Matriz_52) #inversa de la matriz var-cov

V = (Matriz52_inversa %*% Prima_de_riesgo) # Multiplicación de matrices.
V
##               [,1]
## Elek   0.047902402
## WMT    0.010820045
## KIMB   0.007506437
## Carso -0.004107247
## BNort -0.006064543
Suma_V= colSums(V) #Suma de V

w3 = c((0.044332836/Suma_V),(0.006750972/Suma_V),(0.004368683/Suma_V),(-0.005240816/Suma_V),(-0.007313862/Suma_V))
w3
## [1]  0.79085150  0.12043029  0.07793274 -0.09349068 -0.13047166
data.frame(V,w3)

Podemos ver que los pesos para las empresas Carso y Banorte son negativos lo cual es la razón por la que no ocupariamos los activos para nuestra distribución de la Cartera Inversion considerando un activo libre de riesgo

Rendimiento_3 = (Rendimientos_transpuesto %*% w3)
data.frame(Rendimiento_3)
w3_transp = rbind(w3)

Mult_w_mv = (w3_transp %*% Matriz_52) #w3_transpuesta*Var-Cov

Varianza_3 = (Mult_w_mv %*% w3) 

Volatilidad_3 =sqrt(3.35028) #raíz de la varianza 

data.frame(Varianza_3,Volatilidad_3)
Portafolio2<-portfolioSpec()

setRiskFreeRate(Portafolio2)<- 0.00015#Tasa libre de riesgo

tgPortafolio <-tangencyPortfolio(as.timeSeries(Rendi_5empresas),Portafolio2)
tgPortafolio #El portafolio tangente se elabora a partir del índice o razón de Sharpe, el cual calcula el exceso de rentabilidad sobre la tasa de interés libre de riesgo logrado por el portafolio por unidad de volatilidad o riesgo propio del portafolio. 
## 
## Title:
##  MV Tangency Portfolio 
##  Estimator:         covEstimator 
##  Solver:            solveRquadprog 
##  Optimize:          minRisk 
##  Constraints:       LongOnly 
## 
## Portfolio Weights:
##   Elek    WMT   KIMB  Carso  BNort 
## 0.7854 0.1320 0.0826 0.0000 0.0000 
## 
## Covariance Risk Budgets:
##   Elek    WMT   KIMB  Carso  BNort 
## 0.9337 0.0406 0.0257 0.0000 0.0000 
## 
## Target Returns and Risks:
##   mean    Cov   CVaR    VaR 
## 0.1240 1.4395 3.1641 2.0233 
## 
## Description:
##  Sat Jan 23 17:32:56 2021 by user:
weightsPie(tgPortafolio)
mtext(text ="Distribución de la Cartera de Inversión considerando un activo
libre de riesgo")

Se puede observar que en la distribución de la cartera de inversión considerando un activo libre de riesgo, solo estaría compuesto de 3 de nuestras 5 empresas a diferencia de la cartera de inversion sin considerar un activo libre de riesgo la cual estaría compuesto de las 5 empresas.

También podemos observar que para la cartera libre de riesgo la participacion de Elektra en el portafolio ocuparia el mayor porcentaje a diferencia de la segunda que sería Walmart

weightsPie(efPortfolio,)
mtext(text = "Distribución de la Cartera de Inversión sin considerar un activo
libre de riesgo")

Por último agregaremos las tablas con los resultados de la varianza y volatilidad de los portafolios calculados anteriormente

data.frame(Varianza_1,Volatilidad_1)#Portafolio de min-var
data.frame(Varianza_2,Volatilidad_2)# Portafolio óptimo no considerando un activo libre de riesgo
data.frame(Varianza_3,Volatilidad_3)#Portafolio óptimo considerando un activo libre de riesgo

Integrantes:

  • Espinosa Colin Paulina
  • Toledo Serna Odilia Karime