Evolución del IBEX 35 en 2016: Descarga, Análisis y más gráficos con R

Índice de Contenidos

En este post analizaremos la evolución del IBEX 35 en lo corrido de este año; para ello, comenzaremos descargando los precios de cierre ajustado (AdjClose) desde Yahoo Finance con get.hist.quote del paquete tseries, precios diarios desde 01 de enero hasta el 08 de abril de este año, lo cual se realiza con compression que por defecto descarga datos diarios (“d”), si se desean semanales en su lugar habría que escribir “w” o mensuales “m”.

Descarga de datos con el paquete tseries

library(tseries)
IBEX35<- get.hist.quote(instrument = "^IBEX", start=as.Date("2016-01-01"), end=as.Date("2016-04-08"), 
                        quote = "AdjClose", provider = "yahoo", compression = "d", retclass = "zoo")
 

Ahora miramos la estructura de nuestros datos; las primeras cinco y las últimas cinco observaciones con head y tail respectivamente:

head(IBEX35,5)
##            AdjClose
## 2016-01-04   9313.2
## 2016-01-05   9335.2
## 2016-01-06   9197.4
## 2016-01-07   9059.3
## 2016-01-08   8909.2
tail(IBEX35,5)
##            AdjClose
## 2016-04-04   8597.5
## 2016-04-05   8387.7
## 2016-04-06   8398.6
## 2016-04-07   8292.9
## 2016-04-08   8427.6

Y podemos ver que descargó los datos desde el 04 de enero de 2016 (primer día bursátil para este año según el calendario) hasta el 08 de abril.

Gráficos y cálculo de rentabilidad con el paquete PerformanceAnalytics

Ahora graficaremos la evolución de nuestro índice con chart.TimeSeries de la librería PerformanceAnalytics:

library(PerformanceAnalytics)
chart.TimeSeries(IBEX35, col="darkgreen", legend.loc = "bottomright", main="Evolucion del IBEX 35") 

plot of chunk unnamed-chunk-3

Para calcular la rentabilidad (rendimiento continuo) y graficarla (en lí­neas y barras):

Rent <- CalculateReturns(IBEX35, method = "log")

chart.TimeSeries(Rent, col="darkgreen", main="Rentabilidad diaria del IBEX 35")

plot of chunk unnamed-chunk-4

chart.Bar(Rent, col="darkgreen", main = "Rentabilidad diaria del IBEX 35")

plot of chunk unnamed-chunk-4

Para calcular el rendimiento promedio diario:

RetornoIBEX35<-diff(log(IBEX35))
RendimientoProm = mean(RetornoIBEX35)

RendimientoProm*100
## [1] -0.1491355

Como vemos, el rendimiento promedio diario es de -0,149%.

Si queremos ver en un gráfico el valor de una inversión de 1 Euro (wealth.index = TRUE) realizada al inicio del año:

chart.CumReturns(CalculateReturns(IBEX35, method = "discrete"),col="darkgreen",
                 wealth.index = TRUE, main="Inversion de 1 Euro")

plot of chunk unnamed-chunk-6

Y como podemos comprobar dicha inversión no ha sido una brillante idea!!!

Gráficos con ggplot2 y lattice

Así mismo, podemos generar nuestros gráficos con ggplot2 y lattice (usando en este caso un tema inspirado The Economist), pero antes tenemos que convertir nuestros datos en un data.frame:

IBEX <- get.hist.quote(instrument = "^IBEX", start=as.Date("2016-01-01"), end=as.Date("2016-04-08"), 
                        quote = "AdjClose", provider = "yahoo", compression = "d", retclass = "zoo")
 
IBEX.df <- data.frame(
  index(IBEX),
  coredata(IBEX),
  stringsAsFactors=FALSE
)

colnames( IBEX.df ) <- c( "date", "IBEX" )

library(ggplot2)

ggplot( IBEX.df, aes(date) ) + 
  geom_line( aes( y = IBEX ) ) +
  labs( title = "Evolucion IBEX 35 en 2016 (ggplot2::ggplot))")

plot of chunk unnamed-chunk-7

library(latticeExtra)

asTheEconomist(
  xyplot(
    IBEX,
    scales = list( y = list( rot = 0 ) ),
    main = "IBEX 35 (lattice::xyplot.xts)"  
  )
)

plot of chunk unnamed-chunk-7

Con R, se pueden descargar datos económicos y financieros de distintas fuentes, puedes ver ejemplos en la entrada sobre paquetes para descargar datos económicos y financieros con R o más aplicaciones de R para finanzas en la página de finanzas cuantitativas.

Facebook
Twitter
LinkedIn

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Picture of Conney Marulanda López
Conney Marulanda López
Analista de Mercado. Certificada en el examen de Asesor Financiero de la CNMV por la Universidad Carlos III de Madrid. Apasionada por los mercados financieros, el emprendimiento y las nuevas tecnologías.
Artículos relacionados
Actualizado octubre 5, 2025

Valor en Riesgo (VaR) con R

Actualizado agosto 7, 2019

Análisis y optimización de portafolios con R (II)

Actualizado agosto 6, 2019

Análisis y optimización de portafolios con R (I)

Suscríbete y accede a contenido exclusivo, análisis semanales y oportunidades reales.
Sin spam. Sin humo. Solo lo que te interesa para que tomes mejores decisiones financieras. Te puedes borrar cuando quieras. Tu privacidad es sagrada.

Responsable: Conney Marulanda López. Finalidad de la recogida y tratamiento de los datos personales: 
Gestionar la solicitud que realizas en este formulario de contacto. 
Legitimación: Consentimiento. 
Destinatarios: Los datos personales serán tratados a través de los servidores de esta web, gestionados por un hosting español: Raiola Networks. No se cederá ni comunicará a ningún tercero tus datos, excepto en los casos legalmente previstos o cuando la prestación de un servicio implique la necesidad de una relación contractual con un Encargado de Tratamiento. 
Derechos: Podrás ejercer tus derechos de acceso, rectificación, limitación y suprimir los datos en info@finanzaszone.com así como el derecho a presentar una reclamación ante una autoridad de control.
Información adicional: En Política de privacidad de finanzaszone.com, encontrarás información adicional sobre la recopilación y el uso de su información personal, incluida información sobre acceso, conservación, rectificación, eliminación, seguridad, y otros temas.