VaR Simulación Histórica - Método no paramétrico#
No asume que las rentabilidades siguen una distribución normal por lo que es posible reflejar la distribución de rentabilidades.
En vez de utilizar la información histórica para calcular volatilidades y covarianzas de los activos, con este método se utilizan las pérdidas y ganancias que se habría experimentado durante un período de tiempo determinado.
Se analiza cuáles habrían sido las rentabilidades hipotéticas en el pasado si se hubiera tenido el activo o el portafolio actual. Con las pérdidas experimentadas en el pasado se puede concluir sobre el riesgo esperado a partir de este momento.
Con las pérdidas y ganancias hipotéticas para cada día del período de observación, se genera la distribución esperada (distribución empírica) y se toman los percentiles de la distribución de rentabilidades como medida directa del VaR. Esta distribución no se basa en la hipótesis de normalidad.
Lo ocurrido en el período de la muestra de rentabilidades observadas recoge toda la información suficiente para estimar el riesgo futuro.
Recomendación: mínimo datos de un año.
Se parte del supuesto de que en el futuro los mercados se comportarán de forma parecida al pasado.
Se puede considerar período de inestabilidad en los mercados.
Los resultados del análisis pueden variar considerablemente dependiendo de la elección de la longitud de la muestra y la frecuencia de observaciones utilizadas.
No es posible extrapolar los resultados del análisis a otros horizontes temporales. Es necesario volver a calcular los percentiles de la distribución de rentabilidades y llevar a cabo el análisis de nuevo para diferentes plazos.
Importar datos#
datos = read.csv("Tres acciones.csv", sep = ";", header = T)
head(datos)
tail(datos)
Fecha | ECO | PFBCOLOM | ISA | |
---|---|---|---|---|
<fct> | <int> | <int> | <int> | |
1 | 11/01/2008 | 1995 | 16800 | 7000 |
2 | 14/01/2008 | 1960 | 16380 | 6810 |
3 | 15/01/2008 | 1905 | 15880 | 6890 |
4 | 16/01/2008 | 1860 | 15980 | 6710 |
5 | 17/01/2008 | 1755 | 15900 | 6590 |
6 | 18/01/2008 | 1725 | 15340 | 6320 |
Fecha | ECO | PFBCOLOM | ISA | |
---|---|---|---|---|
<fct> | <int> | <int> | <int> | |
2811 | 22/07/2019 | 3030 | 41260 | 19000 |
2812 | 23/07/2019 | 3015 | 42020 | 19160 |
2813 | 24/07/2019 | 3000 | 41280 | 19300 |
2814 | 25/07/2019 | 3000 | 41300 | 19800 |
2815 | 26/07/2019 | 2980 | 41160 | 19200 |
2816 | 29/07/2019 | 2980 | 41300 | 18960 |
Matriz de precios#
precios=datos[,-1]
precios = ts(precios)
Nombres de las acciones#
nombres = colnames(precios)
nombres
- 'ECO'
- 'PFBCOLOM'
- 'ISA'
Matriz de rendimientos#
rendimientos = diff(log(precios))
Cantidad de acciones#
acciones = ncol(precios)
acciones
Cantidad de rendimientos#
numero_rendimientos = nrow(rendimientos)
numero_rendimientos
VaR simulación historica#
VaR diario con un nivel de confianza del 95% NC = 0.95
####
Proporciones de inversión. proporciones=c(0.25, 0.4, 0.35)
ECO: 25%
PFBCOLOM: 40%
ISA: 35%
NC = 0.95
proporciones = c(0.25, 0.4, 0.35)
valor_portafolio = 100000000
valor_mercado_acciones = proporciones*valor_portafolio
Con un nivel de confianza del 95%, se debe esoger el rendimiento que se encuentra en el 5% de los rendimientos más bajos.
Se usa la función quantile()
para hallar el percentil del 95%.
VaR_individuales_SH_percentil = vector()
for(i in 1:acciones){
VaR_individuales_SH_percentil[i] = abs(quantile(rendimientos[,i], 1 - NC)*valor_mercado_acciones[i])
}
VaR_individuales_SH_percentil
- 725237.852255347
- 979379.265539478
- 862800.178664044
Rendimientos del portafolio de inversión.#
rendimientos_portafolio = vector()
for(i in 1:numero_rendimientos){
rendimientos_portafolio[i] = sum(rendimientos[i,]*proporciones)
}
VaR portafolio de inversión#
VaR_portafolio_SH_percentil = abs(quantile(rendimientos_portafolio, 1 - NC)*valor_portafolio)
VaR_portafolio_SH_percentil