This is an R Markdown document. Markdown is a simple formatting syntax for authoring HTML, PDF, and MS Word documents. For more details on using R Markdown see http://rmarkdown.rstudio.com.
When you click the Knit button a document will be generated that includes both content as well as the output of any embedded R code chunks within the document. You can embed an R code chunk like this:
summary(cars)
## speed dist
## Min. : 4.0 Min. : 2.00
## 1st Qu.:12.0 1st Qu.: 26.00
## Median :15.0 Median : 36.00
## Mean :15.4 Mean : 42.98
## 3rd Qu.:19.0 3rd Qu.: 56.00
## Max. :25.0 Max. :120.00
You can also embed plots, for example:
Note that the echo = FALSE parameter was added to the code chunk to prevent printing of the R code that generated the plot.
Instalando archivos
## [[1]]
## [1] "pdfetch" "stats" "graphics" "grDevices" "utils" "datasets"
## [7] "methods" "base"
##
## [[2]]
## [1] "tseries" "pdfetch" "stats" "graphics" "grDevices" "utils"
## [7] "datasets" "methods" "base"
##
## [[3]]
## [1] "forcats" "stringr" "dplyr" "purrr" "readr" "tidyr"
## [7] "tibble" "ggplot2" "tidyverse" "tseries" "pdfetch" "stats"
## [13] "graphics" "grDevices" "utils" "datasets" "methods" "base"
##
## [[4]]
## [1] "forecast" "forcats" "stringr" "dplyr" "purrr" "readr"
## [7] "tidyr" "tibble" "ggplot2" "tidyverse" "tseries" "pdfetch"
## [13] "stats" "graphics" "grDevices" "utils" "datasets" "methods"
## [19] "base"
Importar los datos de los precios desde con fecha de inicio “2019-01-01” y fecha de fin “2020-01-01”
Se explicara los cálculos realizados en R, para activos financieros individuales, en este caso, será para la acción de FARO Technologies, Inc.cuyo nemotécnico es FARO.
FARO desarrolla tecnología de medición en 3D. La empresa desarrolla y comercializa dispositivos (brazo de medición, láser tracker, escáner láser) y software de obtención de imágenes y medición asistidas por ordenador. La tecnología de FARO permite una medición en 3D de alta precisión, obtención de imágenes y comparación de piezas y estructuras compuestas dentro de los procesos de producción y control de calidad.
En este trabajo se analizara los retornos de la empresa FARO durante el periodo 2029-01-01 al 2020-01-01 para ello se utilizaran gráficas y test que permitiran obtener los resultados del desarollo de sus retornos.
Para poder importar los datos que se encuentran en Yahoo Finance primero se debe de instalar paquetes con el comando packages, estos permitiran las descarga de los datos en R
Luego se debe de cargar las librerias con el comando library para poder ejecutar los packages
FAROdata <- pdfetch_YAHOO("FARO",from = as.Date("2019-01-01"),to = as.Date("2020-01-01"), interval = '1d') #DATOS DE FARO
tsFAROdata <- ts(FAROdata$`FARO.close`,start = c(2019,1),frequency=365.25)
plot(tsFAROdata)
La gráfica muestra durante el periodo 01-01-19 al 01-01-20 los precios de FARO son volátiles. Se presenta mayor volatilidad durante el periodo 2019.2 y el periodo 2019.5.
Cálculos de los retornos
Para el cálculo de los retornos de los precios de FORO se debe de crear una serie de tiempo. Esta serie de tiempo se crea con un objeto Time-Series, este indica al software que se tomaron muestras equidistantes en el tiempo.
CONTINUOS
ret_cont_FARO<-diff(log(tsFAROdata))
mu<-mean(ret_cont_FARO)
s2<-var(ret_cont_FARO)
s<-sd(ret_cont_FARO)
plot(ret_cont_FARO)
Retornos continuos
Se tiene como resultado:
Media= 0.0007951787721
Varianza= 0.000605 Desviación estandar= 0.0246009923
Los resultados de la media, varianza y desviación estandar casi se hacen cero, esto signifca que los retornos durante el periodo 01-01-2019 a 01-01-2020. Durante el periodo 2019-2 se ve mayor disersión en los retornos.
Movimiento Geométrico Browniano
La empresa FARO durante el periodo 01-01-2019 al 01-01-2020 tiene un precio inicial de 40.10 dólares. Para la realización del proceso se realizaron 10000 simulaciones.
t<-365
tseq<- 1:t
mu<-mean(ret_cont_FARO)
s<-sd(ret_cont_FARO)
P0<- 40.10
nsim<- 10000
dt<-1/t
m<- matrix(ncol = nsim, nrow = t)
for (i in 1:nsim) {
m[1,i] <- P0
for (h in 2:t) {
e <- rnorm(1)
m[h, i]<- m[(h-1),i]*exp((mu-(s^2)/2)*dt+s*e*sqrt(dt))
}
}
gbm_df <- as.data.frame(m) %>%
mutate(ix = 1:nrow(m)) %>%
pivot_longer(-ix, names_to = 'sim', values_to = 'Precio')
gbm_df %>%
ggplot(aes(x=ix, y=Precio, color=sim)) +
geom_line() +
theme(legend.position = 'none')
Var de Montercarlo
Se realizo 10000 simulaciones de un proceso browniano con media µ y varianza σ2 (A partir de los retornos continuos de la pregunta. Se Calculo el VaR de cada simulación Grafique la distribuci´on de los VaR simulados. Calcule el promedio, y su intervalo de confianza con los percentiles 0.025 y 0.975 de los datos simulados.
Se tiene un Alpha de 0.01 con un nivel de confianza de 99%
VAR.99 <- numeric(length = nsim)
for (i in 1:nsim) {
sim.ts <- m[,i]
sim.R <- diff(log(sim.ts))
sim.q <- quantile(sim.R,0.01,na.rm = TRUE)
sim.VAR <- exp(sim.q)-1
VAR.99[i] <- sim.VAR
}
mean(VAR.99)
## [1] -0.002922828
sd(VAR.99)
## [1] 0.0002295468
plot(density(VAR.99))
quantile(VAR.99,0.025)
## 2.5%
## -0.003409445
quantile(VAR.99,0.975)
## 97.5%
## -0.002497755
mean.monetario.99<-c(mean(VAR.99)*100000)
sd.monetario.99<-c(sd(VAR.99)*100000)
mean.monetario.99
## [1] -292.2828
sd.monetario.99
## [1] 22.95468
quantil_monet_99_2.5<-c(quantile(VAR.99,0.025)*100000)
quantil_monet_99_97.5<-c(quantile(VAR.99,0.975)*100000)
t<-365
tseq<- 1:t
mu<-mean(ret_cont_FARO)
s<-sd(ret_cont_FARO)
P0<- 40.10
nsim<- 10000
dt<-1/t
m<- matrix(ncol = nsim, nrow = t)
for (i in 1:nsim) {
m[1,i] <- P0
for (h in 2:t) {
e <- rnorm(1)
m[h, i]<- m[(h-1),i]*exp((mu-(s^2)/2)*dt+s*e*sqrt(dt))
}
}
gbm_df <- as.data.frame(m) %>%
mutate(ix = 1:nrow(m)) %>%
pivot_longer(-ix, names_to = 'sim', values_to = 'Precio')
gbm_df %>%
ggplot(aes(x=ix, y=Precio, color=sim)) +
geom_line() +
theme(legend.position = 'none')
Al 99% de confianza se obtine son los siguientes resultados:
Media: -292.25 Desviación estandar: 23.30 Quantil 0.025: -340 Quantil 0.975: -249
A un 99% de confianza se espera como máximo perder 292.25 dólares, la empresa FARO espero como máximo perder 292.25 dólares.La empresa FARO tubo una desviación estandar de 23.30, significa se estimo una pérdida de 23.30 de 292.25 a una ganancia de 23.30 de 292.25 dólares. Los quantiles 0.025 y 0.975 se tubo como máxima pérdida esperada entre 249 dólares y 340 dólares.
Se tiene un Alpha de 0.01 con un nivel de confianza de 99%
α1 = 0.01 A un nivel de confianza de 99% entre el periodo 2029-01-01 a 2020-01-01 , el monto mínimo que se perderia por las acciones de FARO sería de -292.25
VAR.95 <- numeric(length = nsim)
for (i in 1:nsim) {
sim.ts <- m[,i]
sim.R <- diff(log(sim.ts))
sim.q <- quantile(sim.R,0.05,na.rm = TRUE)
sim.VAR <- exp(sim.q)-1
VAR.95[i] <- sim.VAR
}
mean(VAR.95)
## [1] -0.002097733
sd(VAR.95)
## [1] 0.0001407978
plot(density(VAR.95))
quantile(VAR.95,0.025)
## 2.5%
## -0.002380811
quantile(VAR.95,0.975)
## 97.5%
## -0.001829522
mean.monetario.95<-c(mean(VAR.95)*100000)
sd.monetario.95<-c(sd(VAR.95)*100000)
mean.monetario.95
## [1] -209.7733
sd.monetario.95
## [1] 14.07978
quantil_monet_95_2.5<-c(quantile(VAR.95,0.025)*100000)
quantil_monet_95_97.5<-c(quantile(VAR.95,0.975)*100000)
t<-365
tseq<- 1:t
mu<-mean(ret_cont_FARO)
s<-sd(ret_cont_FARO)
P0<- 40.10
nsim<- 10000
dt<-1/t
m<- matrix(ncol = nsim, nrow = t)
for (i in 1:nsim) {
m[1,i] <- P0
for (h in 2:t) {
e <- rnorm(1)
m[h, i]<- m[(h-1),i]*exp((mu-(s^2)/2)*dt+s*e*sqrt(dt))
}
}
gbm_df <- as.data.frame(m) %>%
mutate(ix = 1:nrow(m)) %>%
pivot_longer(-ix, names_to = 'sim', values_to = 'Precio')
gbm_df %>%
ggplot(aes(x=ix, y=Precio, color=sim)) +
geom_line() +
theme(legend.position = 'none')
Al 90% de confianza se obtine son los siguientes resultados:
Media: -209.789 Desviación estandar: 14.1643 Quantil 0.025: -238 Quantil 0.975: -182
A un 95% de confianza se espera como máximo perder 209.789 dólares, La empresa FARO espero como máximo perder 292.25 dólares.La empresa FARO tubo una desviación estandar de 14.1643, significa se estimo una pérdida de 14.1643 de 209.789 a una ganancia de 14.1643 de 209.789 dólares. Los quantiles 0.025 y 0.975 se tubo como máxima pérdida esperada entre 238 dólares y 182 dólares.
α2 = 0.05 A un nivel de confianza de 95% entre el periodo 2029-01-01 a 2020-01-01 , el monto mínimo que se perderia por las acciones de FARO sería de -209.789
Se tiene un Alpha de 0.1 con un nivel de confianza de 90%
VAR.90 <- numeric(length = nsim)
for (i in 1:nsim) {
sim.ts <- m[,i]
sim.R <- diff(log(sim.ts))
sim.q <- quantile(sim.R,0.1,na.rm = TRUE)
sim.VAR <- exp(sim.q)-1
VAR.90[i] <- sim.VAR
}
mean(VAR.90)
## [1] -0.001640377
sd(VAR.90)
## [1] 0.0001143362
plot(density(VAR.90))
quantile(VAR.90,0.025)
## 2.5%
## -0.00186924
quantile(VAR.90,0.975)
## 97.5%
## -0.001418001
mean.monetario.90<-c(mean(VAR.90)*100000)
sd.monetario.90<-c(sd(VAR.90)*100000)
mean.monetario.90
## [1] -164.0377
sd.monetario.90
## [1] 11.43362
quantil_monet_90_2.5<-c(quantile(VAR.90,0.025)*100000)
quantil_monet_90_97.5<-c(quantile(VAR.90,0.975)*100000)
t<-365
tseq<- 1:t
mu<-mean(ret_cont_FARO)
s<-sd(ret_cont_FARO)
P0<- 40.10
nsim<- 10000
dt<-1/t
m<- matrix(ncol = nsim, nrow = t)
for (i in 1:nsim) {
m[1,i] <- P0
for (h in 2:t) {
e <- rnorm(1)
m[h, i]<- m[(h-1),i]*exp((mu-(s^2)/2)*dt+s*e*sqrt(dt))
}
}
gbm_df <- as.data.frame(m) %>%
mutate(ix = 1:nrow(m)) %>%
pivot_longer(-ix, names_to = 'sim', values_to = 'Precio')
gbm_df %>%
ggplot(aes(x=ix, y=Precio, color=sim)) +
geom_line() +
theme(legend.position = 'none')
Al 99% de confianza se obtine son los siguientes resultados:
Media: -163.883 Desviación estandar: 11.4438 Quantil 0.025: -187 Quantil 0.975: -142
A un 90% de confianza se espera como máximo perder 163.883 dólares, la empresa FARO espero como máximo perder 163.883 dólares.La empresa FARO tubo una desviación estandar de 11.4438, significa se estimo una pérdida de 11.4438 de 163.883 a una ganancia de 11.44 de 163.883 dólares. Los quantiles 0.025 y 0.975 se tubo como máxima pérdida esperada entre 187 dólares y 142 dólares.
α3 = 0.1 A un nivel de confianza de 90% entre el periodo 2029-01-01 a 2020-01-01 , el monto mínimo que se perderia por las acciones de FARO sería de -163.883