Taller VaR Simulación Histórica y CVaR#
Utilizar el archivo Datos primer examen 01-2020.csv para resolver el taller.
Importar datos#
datos = read.csv("Datos primer examen 01-2020.csv", sep = ";", header = T)
head(datos)
tail(datos)
Fecha | ECO | ISA | NUTRESA | PFBCOLOM | |
---|---|---|---|---|---|
<fct> | <int> | <int> | <dbl> | <dbl> | |
1 | 31/01/2010 | 2415 | 12280 | 19977.2 | 20825.2 |
2 | 07/02/2010 | 2480 | 12540 | 20535.4 | 21024.5 |
3 | 14/02/2010 | 2495 | 12740 | 20635.1 | 21921.3 |
4 | 21/02/2010 | 2560 | 12880 | 20455.6 | 22140.5 |
5 | 28/02/2010 | 2625 | 12700 | 20834.5 | 21941.2 |
6 | 07/03/2010 | 2680 | 12600 | 20734.8 | 21961.1 |
Fecha | ECO | ISA | NUTRESA | PFBCOLOM | |
---|---|---|---|---|---|
<fct> | <int> | <int> | <dbl> | <dbl> | |
517 | 22/12/2019 | 3340 | 19380 | 25100 | 45800 |
518 | 29/12/2019 | 3380 | 20300 | 25280 | 45180 |
519 | 05/01/2020 | 3400 | 19660 | 25140 | 44380 |
520 | 12/01/2020 | 3385 | 19520 | 25180 | 45880 |
521 | 19/01/2020 | 3290 | 19380 | 25220 | 45800 |
522 | 26/01/2020 | 3180 | 18800 | 24760 | 44700 |
Matriz de precios#
precios=datos[,-1]
precios = ts(precios)
Nombres de las acciones#
nombres = colnames(precios)
nombres
- 'ECO'
- 'ISA'
- 'NUTRESA'
- 'PFBCOLOM'
Matriz de rendimientos#
rendimientos = diff(log(precios))
Cantidad de acciones#
acciones = ncol(precios)
acciones
Cantidad de rendimientos#
numero_rendimientos = nrow(rendimientos)
numero_rendimientos
Portafolio de inversión#
El portafolio de inversión está valorado en mil millones de pesos.
Se tiene invertido la misma proporción en cada acción.
proporciones = c(0.25, 0.25, 0.25, 0.25)
valor_portafolio = 1000000000
valor_mercado_acciones = proporciones*valor_portafolio
valor_mercado_acciones
- 2.5e+08
- 2.5e+08
- 2.5e+08
- 2.5e+08
VaR Simulación Histórica y CVaR en términos porcentuales#
Nivel de confianza del 99% NC = 0.99
Horizonte de tiempo: semanal t = 1
. En este método no se puede
escalar el tiempo, es decir, si la frecuencia de los rendimientos es
semanal, el VaR y CVaR quedan semanales. Para otros horizontes de tiempo
se debe utilizar otra base de datos con frecuencia en el tiempo
distinta. Por tanto, no se utiliza en el código t = 1
.
NC = 0.99
VaR individuales#
VaR_individuales_SH_percentil = vector()
for(i in 1:acciones){
VaR_individuales_SH_percentil[i] = abs(quantile(rendimientos[,i],1 - NC))
}
VaR_individuales_SH_percentil
- 0.100017529037464
- 0.0747062638979077
- 0.0623792449456534
- 0.0746798926612424
CVaR individuales#
CVaR = vector()
for(i in 1:acciones){
CVaR[i] = abs(mean(tail(sort(rendimientos[,i], decreasing = T), floor(nrow(rendimientos)*(1-NC)))))
}
CVaR
- 0.131734096471733
- 0.104054311101083
- 0.0763919471659559
- 0.0898571003585143
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))
VaR_portafolio_SH_percentil
CVaR portafolio de inversión#
CVaR_portafolio = abs(mean(tail(sort(rendimientos_portafolio, decreasing = T), floor(nrow(rendimientos)*(1 - NC)))))
CVaR_portafolio
Preguntas#
1. Con un nivel de confianza del 99%, ¿cuál es el VaR semanal de la acción de ECO?#
NC = 0.99
VaR_individuales_SH_percentil = vector()
for(i in 1:acciones){
VaR_individuales_SH_percentil[i] = abs(quantile(rendimientos[,i], 1 - NC))
}
VaR_individuales_SH_percentil[1]
VaR_individuales_SH_percentil[1]*valor_mercado_acciones[1]
Respuesta en términos porcentuales: 10,00%
Respuesta en términos monetarios: $25.004.382
2. Con un nivel de confianza del 95%, ¿cuál es el VaR semanal de la acción de ECO?#
NC = 0.95
VaR_individuales_SH_percentil = vector()
for(i in 1:acciones){
VaR_individuales_SH_percentil[i] = abs(quantile(rendimientos[,i], 1 - NC))
}
VaR_individuales_SH_percentil[1]
VaR_individuales_SH_percentil[1]*valor_mercado_acciones[1]
Respuesta en términos porcentuales: 6,36%
Respuesta en términos monetarios: $15.906.424
3. Con un nivel de confianza del 99%, ¿cuál es el VaR semanal de la acción de Nutresa?#
NC = 0.99
VaR_individuales_SH_percentil = vector()
for(i in 1:acciones){
VaR_individuales_SH_percentil[i] = abs(quantile(rendimientos[,i], 1 - NC))
}
VaR_individuales_SH_percentil[3]
VaR_individuales_SH_percentil[3]*valor_mercado_acciones[1]
Respuesta en términos porcentuales: 6,24%
Respuesta en términos monetarios: $15.594.811
4. Con un nivel de confianza del 95%, ¿cuál es el VaR semanal de la acción de Nutresa?#
NC = 0.95
VaR_individuales_SH_percentil = vector()
for(i in 1:acciones){
VaR_individuales_SH_percentil[i] = abs(quantile(rendimientos[,i], 1 - NC))
}
VaR_individuales_SH_percentil[3]
VaR_individuales_SH_percentil[3]*valor_mercado_acciones[1]
Respuesta en términos porcentuales: 3,71%
Respuesta en términos monetarios: $9.267.565
5. Con un nivel de confianza del 99%, ¿cuál es el CVaR semanal de la acción de ISA?#
NC = 0.99
CVaR = vector()
for(i in 1:acciones){
CVaR[i] = abs(mean(tail(sort(rendimientos[,i], decreasing = T), floor(nrow(rendimientos)*(1 - NC)))))
}
CVaR[2]
CVaR[2]*valor_mercado_acciones[2]
Respuesta en términos porcentuales: 10,41%
Respuesta en términos monetarios: $26.013.578
6. Con un nivel de confianza del 95%, ¿cuál es el CVaR semanal de la acción de ISA?#
NC = 0.95
CVaR = vector()
for(i in 1:acciones){
CVaR[i] = abs(mean(tail(sort(rendimientos[,i], decreasing = T), floor(nrow(rendimientos)*(1 - NC)))))
}
CVaR[2]
CVaR[2]*valor_mercado_acciones[2]
Respuesta en términos porcentuales: 7,01%
Respuesta en términos monetarios: $17.525.122
7. Con un nivel de confianza del 99%, ¿cuál es el VaR semanal del portafolio de inversión?#
NC = 0.99
VaR_portafolio_SH_percentil = abs(quantile(rendimientos_portafolio, 1 - NC))
VaR_portafolio_SH_percentil
VaR_portafolio_SH_percentil*valor_portafolio
Respuesta en términos porcentuales: 5,70%
Respuesta en términos monetarios: $57.009.746
8. Con un nivel de confianza del 95%, ¿cuál es el VaR semanal del portafolio de inversión?#
NC = 0.95
VaR_portafolio_SH_percentil = abs(quantile(rendimientos_portafolio, 1 - NC))
VaR_portafolio_SH_percentil
VaR_portafolio_SH_percentil*valor_portafolio
Respuesta en términos porcentuales: 3,46%
Respuesta en términos monetarios: $34.649.092
9. Con un nivel de confianza del 99%, ¿cuál es el CVaR semanal del portafolio de inversión?#
NC = 0.99
CVaR_portafolio = abs(mean(tail(sort(rendimientos_portafolio,decreasing = T), floor(nrow(rendimientos)*(1 - NC)))))
CVaR_portafolio
CVaR_portafolio*valor_portafolio
Respuesta en términos porcentuales: 7,00%
Respuesta en términos monetarios: $70.026.566
10. Con un nivel de confianza del 99%, ¿cuál es el Beneficio por Diversificación semanal del portafolio de inversión?#
NC = 0.99
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_portafolio_SH_percentil = abs(quantile(rendimientos_portafolio, 1 - NC))*valor_portafolio
BD = sum(VaR_individuales_SH_percentil) - VaR_portafolio_SH_percentil
BD
Respuesta: $20.935.986
11. Con un nivel de confianza del 95%, ¿cuál es el Beneficio por Diversificación semanal del portafolio de inversión?#
NC = 0.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_portafolio_SH_percentil = abs(quantile(rendimientos_portafolio, 1 - NC))*valor_portafolio
BD = sum(VaR_individuales_SH_percentil) - VaR_portafolio_SH_percentil
BD
Respuesta: $15.479.651