Juan Alberto Zapata Jun 18, 2020
options(scipen=999)
pkges<-c("pdfetch","tseries","tidyverse","forecast")
#Instala paquetes(pkges)
lapply(pkges,"library",character.only=T)## Registered S3 method overwritten by 'quantmod':
## method from
## as.zoo.data.frame zoo
## -- Attaching packages -------------------------------------------------------- tidyverse 1.3.0 --
## v ggplot2 3.3.0 v purrr 0.3.4
## v tibble 3.0.1 v dplyr 0.8.5
## v tidyr 1.1.0 v stringr 1.4.0
## v readr 1.3.1 v forcats 0.5.0
## -- Conflicts ----------------------------------------------------------- tidyverse_conflicts() --
## x dplyr::filter() masks stats::filter()
## x dplyr::lag() masks stats::lag()
## [[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"
NASDAQdata <- pdfetch_YAHOO("^IXIC",from = as.Date("2019-01-01"),
to = as.Date("2020-01-01"), interval = '1d')
tsNASDAQ <- ts(NASDAQdata$`^IXIC.close`,start = c(2019,1),frequency=356.25)Retornos *(Continuo)
Media (mu)
Varianza (s2)
Desviacion estandar (s)
Value at Risk - Montecarlo Para cada alpha realice las siguiente simulacion: Realice 10000 simulaciones de un movimiento browniano geometrico (GBM) con media mu y varianza s2 (Calculados a partir de los retornos continuos de sus datos) Calcule el VaR de cada simulacion y guarde su resultado en un vector de datos. Grafique la distribucion de los VaR simulados. Calcule el promedio, y su intervalo de confianza con los percentiles 0.025 y 0.975 de los datos simulados.
set.seed(100000)
VAR.mc1 <- numeric()
for (i in 1:10000) {
changes <- rnorm(length(l_NASDAQ),mean=1+mu,sd=s)
sim.ts <- cumprod(c(as.numeric(tsNASDAQ[1]),changes))
sim.R <- diff(log(sim.ts))
sim.q1 <- quantile(sim.R,0.01,na.rm = T)
sim.VAR <- exp(sim.q1)-1
VAR.mc1[i] <- sim.VAR
}
mean(VAR.mc1)## [1] -0.02114884
## [1] 0.002085875
## 1%
## -2149.453
## 2.5%
## -0.02550757
## 97.5%
## -0.01736752
set.seed(100000)
VAR.mc2 <- numeric()
for (i in 1:10000) {
changes2 <- rnorm(length(l_NASDAQ),mean=1+mu,sd=s)
sim.ts2 <- cumprod(c(as.numeric(tsNASDAQ[1]),changes2))
sim.R <- diff(log(sim.ts2))
sim.q2 <- quantile(sim.R,0.05,na.rm = T)
sim.VAR2 <- exp(sim.q2)-1
VAR.mc2[i] <- sim.VAR2
}
mean(VAR.mc2)## [1] -0.01490407
## [1] 0.001279091
## 5%
## -1623.044
## 2.5%
## -0.01747957
## 97.5%
## -0.012496
set.seed(100000)
VAR.mc3 <- numeric()
for (i in 1:10000) {
changes <- rnorm(length(l_NASDAQ),mean=1+mu,sd=s)
sim.ts <- cumprod(c(as.numeric(tsNASDAQ[1]),changes))
sim.R <- diff(log(sim.ts))
sim.q3 <- quantile(sim.R,0.1,na.rm = T)
sim.VAR3 <- exp(sim.q3)-1
VAR.mc3[i] <- sim.VAR3
}
mean(VAR.mc3)## [1] -0.01139559
## [1] 0.00105652
## 10%
## -1288.076
## 2.5%
## -0.01347667
## 97.5%
## -0.009372769
id.VaR <- data.frame(
Nomb.VaR= c("VAR1a","VAR2a","VAR3a"),
ALPHA = c(0.01,0.05,0.1),
cuantil_2.5 = c(QuaVar1_2.5,QuaVar2_2.5,QuaVar3_2.5),
cuantil_97.5 = c(QuaVar1_97.5,QuaVar2_97.5,QuaVar3_97.5),
VaR = c(VAR1a,VAR2a,VAR3a),
stringsAsFactors = FALSE
)## Nomb.VaR ALPHA cuantil_2.5 cuantil_97.5 VaR
## 1% VAR1a 0.01 -0.02550757 -0.017367515 -2149.453
## 5% VAR2a 0.05 -0.01747957 -0.012495996 -1623.044
## 10% VAR3a 0.10 -0.01347667 -0.009372769 -1288.076
El resultado del análisis monte carlo con un tamaño de muestra de 100,000.00 repite 10000 veces con el propósito de tomar una estimación de la desviación estándar, con un 99% de valor en riesgo (VAR1a) significa hay un 1 % de probabilidad de que el precio actual podría perder $ 2149.453. El valor en riesgo del cuantil 2.5%, con una confianza de 97.5% es de -0.02550757 estimando una perdida de 2.55% del tamaño de la muestra. El valor en riesgo del cuantil 97.5%, con una confianza de 2.5% es de -0.017367515 estimando una perdida de 1.73% del tamaño de la muestra.
Con un 95% de valor en riesgo (VAR2a) significa hay un 5 % de probabilidad de que el precio actual podría perder $ 1623.044. El valor en riesgo del cuantil 2.5%, con una confianza de 97.5% es de -0.01747957 estimando una perdida de 1.75% del tamaño de la muestra. El valor en riesgo del cuantil 97.5%, con una confianza de 2.5% es de -0.012495996 estimando una perdida de 1.25% del tamaño de la muestra.
Con un 95% de valor en riesgo (VAR3a) significa hay un 5 % de probabilidad de que el precio actual podría perder $ 1288.076 El valor en riesgo del cuantil 2.5%, con una confianza de 97.5% es de -0.01347667 estimando una perdida de 1.35% del tamaño de la muestra. El valor en riesgo del cuantil 97.5%, con una confianza de 2.5% es de -0.009372769 estimando una perdida de 0.94% del tamaño de la muestra.