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
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")
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")
El estudio de las series de rendimientos ha mostrado algunas propiedades, también conocidas como hechos estilizados. Estos son:
La rentabilidad presenta exceso de curtosis
Se presentan periodos de baja y alta volatilidad, denominados clusters de volatilidad. Si la volatilidad es baja (alta) en un periodo, tiende a seguir siendo baja (alta) para el periodo siguiente.
De forma ocasional pueden presentarse valores de alta volatilidad en periodos concretos, denominados saltos de precios discontinuos.
En el largo plazo, los periodos de baja o alta volatilidad tienden a ser seguidos por periodos en los cuales la volatilidad es más moderada.
Algunas series de rendimientos comparten co-movimientos con otras series.
En algunas series de rendimientos se presenta una tendencia creciente o decreciente.
Algunas series tienden a reaccionar en forma diferente a un gran incremento del precio o a un gran descenso en los precios; la volatilidad se comporta de manera diferente según los movimientos en los precios.
Algunas series tienden a disminuir la volatilidad cuando los rendimientos aumentan y a aumentar cuando los rendimientos disminuyen (efecto Leverage).
Estas propiedades de las series tienen un importante papel en los modelos de 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.
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.