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
Vector de rendimientos.#
rendimientos = diff(log(precios))
\(\mu:\) Rendimiento esperado de la TRM.#
rendimiento_esperado = mean(rendimientos)
rendimiento_esperado
\(\sigma:\)Volatilidad de la TRM.#
volatilidad = sd(rendimientos)
volatilidad
Gráficos#
Precio de la TRM#
plot(precios, col = "darkblue", lwd = 2, main = "Precios")
Rendimientos de la TRM#
plot(rendimientos, col = "darkblue", lwd = 2, main = "Rendimientos")
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)
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
VaR individuales (sin promedios) [$].#
VaR_sin_promedios = s*volatilidad*qnorm(NC)*sqrt(t)
VaR_sin_promedios
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
VaR individuales (con promedios) [$].#
VaR_con_promedios = s*abs(rendimiento_esperado*t+qnorm(1-NC,sd=volatilidad*sqrt(t)))
VaR_con_promedios
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)
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)
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")