En el curso seguiremos tomando el paquete tidyquant para traer la serie de precios de la acción de Apple entre los años 2018 y 2019.

Recordermos que con el paquete TTR contiene 42 estudios técnicos, cada uno con sus correspondientes parámetros y componentes para el análisis. Lo interesante de este paquete es que cada función colocará “NA” cuando el indicador aún no pueda ser calculado, de esta manera solo es necesario unir columnas, no se necesita realizar ningún ajuste de fechas para crear el dataset.

library(tidyquant)
library(TTR)
library(ggplot2)
AAPL <- tq_get("AAPL", get="stock.prices", from= "2018-08-01", to= "2021-08-01") 
AAPL <- data.frame(AAPL) 
a<-mean(AAPL$close)
sma20 <- SMA(AAPL[c('close')], n=10) 

fecha20<- as.Date(AAPL$date)
precio<-AAPL$close
data<-data.frame(fecha20,precio,sma20)
ggplot(data = data,
       aes(fecha20,y = precio)) +
  geom_line(color='darkblue')+
  ggtitle('Precio de una acción') +
  xlab('Fecha') + 
  ylab('Precio cierre') 

ahora calculemos el rendimiento del precio de cierre de dicha acción

fecha<-fecha20
n<-length(precio)
rendimiento<-c()
for (i in 1:n) {
  rendimiento[i]<-(precio[i+1]-precio[i])/(precio[i])
}
dataprecio<-data.frame(fecha,rendimiento)
ggplot(data = dataprecio,
       aes(fecha,y = rendimiento)) +
  geom_line(color='darkblue')+
  ggtitle('Rendimiento de una acción') +
  xlab('Fecha') + 
  ylab('Rendimiento del precio de cierre') 

Ahora realicemos un estudio estadístico del rendimiento y de los precios de la acción

Precio de la acción

Análisis estadístico de los precios de la acción

summary(precio)
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##   35.55   51.83   69.86   81.61  118.86  149.15

Notemos que su precio medio es de 81.61 dolares por los tres años de estudio. Adicionalmente que tuvo un precio mínimo de 35.55 esto ocurrió en

ggplot(data = data, aes(x = fecha20, y = precio)) + 
   geom_boxplot( ) +
  geom_jitter(alpha = 0.5, color = "tomato")+
  geom_line(y=mean(precio),color="blue")

podemos obervar que para las fechas que inicio la pandemía tuvo una baja en los precios. Para finales del 2020 paso la media del precio y tuvo una nueva baja cuando inicio otro de los picos fuertes de la pandemía. Para la segunda mitad del año 2020 a la fecha del reporte subio el precio pasando el cuartil 3, es decir pasando los 118.86 dolares por acción.

ggplot(data = data, aes(x=precio) ) +
  geom_histogram(col='black', fill='blue', alpha=0.4)+ 
  ggtitle('Precios de la acción de Apple')+
  geom_vline(xintercept = mean(precio),color = "red")

notese que los datos no aproximan de manera adecuada a una función normal

ggplot(data = data, aes(x=precio) ) +
  ggtitle('Precios de la acción de Apple')+
  geom_density(aes(x = precio), fill = 'steelblue')+
  geom_vline(xintercept = mean(precio),color = "blue")

Rendimiento de la acción

summary(rendimiento)
##      Min.   1st Qu.    Median      Mean   3rd Qu.      Max.      NA's 
## -0.128647 -0.008294  0.001745  0.001662  0.013043  0.119808         1

Notemos que el redimiento medio de la acción es positivo aproximando a un 0,16%, es decir, la mayaría de días genero rendimientos positivos en el tiempo de estudio, además

ggplot(data = data, aes(x = fecha20, y = rendimiento)) + 
   geom_boxplot( ) +
  geom_jitter(alpha = 0.5, color = "tomato")+
  geom_line(y=mean(rendimiento),color="blue")

respecto a los cuartiles, podemos generar unos valores de soporte respecto al rendimento de la acción

a=quantile(na.omit(rendimiento), prob=c(0.25,0.75))
ric=a[2]-a[1]
ggplot(data = data, aes(x = fecha20, y = rendimiento)) + 
   geom_boxplot( ) +
  geom_jitter(alpha = 0.5, color = "tomato")+
  geom_line(y=a[1]-1.5*ric,color="red")+
  geom_line(y=a[2]+1.5*ric,color="red")

Podemos generar algunas alertas en fechas superiores dependiendo como se comporte el rendimiento de la acción. Ahora observemos como se comporta el rendimiento

ggplot(data = data, aes(x=rendimiento) ) +
  geom_histogram(col='black', fill='blue', alpha=0.4)+ 
  ggtitle('Precios de la acción de Apple')+
  geom_vline(xintercept = mean(na.omit(rendimiento)),color = "red")

veamos su distribución de datos

ggplot(data = data, aes(x=rendimiento) ) +
  ggtitle('Rendimiento de la acción de Apple')+
  geom_density(aes(x = rendimiento), fill = 'steelblue')+
  geom_vline(xintercept = mean(na.omit(rendimiento)),color = "red")

Propiedades empíricas de los rendimientos

El estudio de las series de rendimientos ha mostrado algunas propiedades, también conocidas como hechos estilizados. Estos son:

Estas propiedades de las series tienen un importante papel en los modelos de volatilidad.

Volatilidad

En finanzas la volatilidad se mide mediante la desviación estándar de los rendimientos del activo y es el indicador del riesgo de una inversión en un activo financiero. Se dice que un activo con una desviación estándar muy grande muy volátil y, por lo tanto, muy riesgoso; por el contrario, se dice que un activo financiero con una desviación estándar pequeña es poco riesgosa.

fecha<-fecha20
n<-length(precio)
rendimiento<-c()
for (i in 1:n) {
  rendimiento[i]<-(precio[i+1]-precio[i])/(precio[i])
}
dataprecio<-data.frame(fecha,rendimiento)
ggplot(data = dataprecio,
       aes(fecha,y = rendimiento)) +
  geom_line(color='darkblue')+
  ggtitle('Rendimiento de una acción') +
  xlab('Fecha') + 
  ylab('Rendimiento del precio de cierre') 

Una característica muy común en las series de tiempos financieras es la presencia de heteroscedasticidad, es decir la varianza no es constante a través del tiempo. A periodos de baja volatilidad (calma en el mercado) suelen a seguir periodos de alta volatilidad, es decir, gran turbulencia en el mercado.

Puede ser estimada mediante la desviación estándar de los rendimientos históricos

\[\sigma =\sqrt{\frac{\sum_{i=1}^{n}(r_i-\mu)^2}{n}}\]

mu<-mean(na.omit(rendimiento))
sigma1<-sd(na.omit(rendimiento))
sigma1
## [1] 0.02237153

En la práctica financiera se ha recomendado utilizar como estimación de la desviación estándar el promedio del cuadrado de los rendimientos:

\[\sigma=\sqrt{\frac{\sum_{i=1}^{n}r_i^2}{n}}\]

sigma<-sqrt(sum(na.omit(rendimiento)^2)/length(rendimiento))
sigma
## [1] 0.02240349

notesé que el valor calculado al estimado. Para el curso usaremos el estimado.

Actividad

Para las acciones ya trabajadas en el rendimiento

https://rpubs.com/profe_ferro/797086

Realizar acada acción un análisis descriptivo al precio de cierre de cada acción y su rendimiento.