Taller N° 2: VaR método Delta-Normal o varianzas-covarianzas

Importar datos.

datos = read.csv("TRM.csv", sep = ";", dec = ",", header = T)

Vector de precios.

precios = datos[,-1]
precios = ts(precios)

\(S_0:\)Precio actual de la TRM.

s = tail(precios,1)
s = as.numeric(s)
s
3401.56

Vector de rendimientos.

rendimientos = diff(log(precios))

\(\mu:\) Rendimiento esperado de la TRM.

rendimiento_esperado = mean(rendimientos)
rendimiento_esperado
0.000297788962306605

\(\sigma:\)Volatilidad de la TRM.

volatilidad = sd(rendimientos)
volatilidad
0.00613174656540523

Gráficos

Precio de la TRM

plot(precios, col = "darkblue", lwd = 2, main = "Precios")
../../../_images/output_16_02.png

Rendimientos de la TRM

plot(rendimientos, col = "darkblue", lwd = 2, main = "Rendimientos")
../../../_images/output_18_04.png

Histograma y distribución normal.

La distribución normal se dibuja con una frecuencia diaria.

hist(rendimientos, breaks = 40, col= "gray", border = "gray", xlab = "Rendimientos", ylab = "Frecuencia", main = "TRM", freq = F)
curve(dnorm(x, mean = 0, sd = volatilidad), add = T, lwd = 4)
../../../_images/output_21_04.png

VaR (sin promedios)

NC = 0.99
t = 10

VaR individuales (sin promedios) [%].

VaR_sin_promedios_porcentaje = volatilidad*qnorm(NC)*sqrt(t)
VaR_sin_promedios_porcentaje
0.0451085487092495

VaR individuales (sin promedios) [$].

VaR_sin_promedios = s*volatilidad*qnorm(NC)*sqrt(t)
VaR_sin_promedios
153.439434947435

VaR (con promedios)

NC = 0.99
t = 10

VaR individuales (con promedios) [%].

VaR_con_promedios_porcentaje = abs(rendimiento_esperado*t+qnorm(1-NC,sd=volatilidad*sqrt(t)))
VaR_con_promedios_porcentaje
0.0421306590861834

VaR individuales (con promedios) [$].

VaR_con_promedios = s*abs(rendimiento_esperado*t+qnorm(1-NC,sd=volatilidad*sqrt(t)))
VaR_con_promedios
143.309964721198

Histograma, distribución normal y VaR (sin promedios) de la TRM.

La distribución normal se dibuja con una frecuencia de 10 días.

hist(rendimientos, breaks = 40, col= "gray", border = "white", xlab = "Rendimientos", ylab = "Frecuencia", main = "TRM", freq = F, xlim = c(-0.055, 0.055))
curve(dnorm(x, mean = 0, sd = volatilidad*sqrt(t)), add = T, lwd = 3)
abline(v = - VaR_sin_promedios_porcentaje, col = "darkblue", lwd = 3)
../../../_images/output_36_02.png

Histograma, distribución normal y VaR (con promedios) de la TRM.

La distribución normal se dibuja con una frecuencia de 10 días.

hist(rendimientos, breaks = 40, col= "gray", border = "white", xlab = "Rendimientos", ylab = "Frecuencia", main = "TRM", freq = F, xlim = c(-0.055, 0.055))
curve(dnorm(x, mean = rendimiento_esperado*t, sd = volatilidad*sqrt(t)), add = T, lwd = 3)
abline(v = - VaR_con_promedios_porcentaje, col = "darkgreen", lwd = 3)
../../../_images/output_39_05.png

Comparación VaR

La distribuciones normal se dibujan con una frecuencia de 10 días.

hist(rendimientos, breaks = 40, col= "gray", border = "white", xlab = "Rendimientos", ylab = "Frecuencia", main = "TRM", freq = F, xlim = c(-0.055, 0.055))
curve(dnorm(x, mean = 0, sd = volatilidad*sqrt(t)), add = T, lwd = 3, col = "darkred")
curve(dnorm(x, mean = rendimiento_esperado*t, sd = volatilidad*sqrt(t)), add = T, lwd = 3)
abline(v = - VaR_sin_promedios_porcentaje, col = "darkblue", lwd = 3)
abline(v = - VaR_con_promedios_porcentaje, col = "darkgreen", lwd = 3)
legend("topright", c("VaR sin promedios", "VaR con promedios", "Normal media cero", "Normal"), lty = c(1,1,1,1), lwd = 3, col = c("darkblue", "darkgreen", "darkred", "black"), bty = "n")
../../../_images/output_42_06.png