Se analiza la serie diaria TRM desde 1991-11-27, hasta 2017-02-15
Datos_TRM<-read.csv(file = "TRM.csv", header = TRUE)
head(Datos_TRM)
## Fecha TRM
## 1 27/11/1991 693.32
## 2 28/11/1991 693.99
## 3 29/11/1991 694.70
## 4 30/11/1991 694.70
## 5 01/12/1991 643.42
## 6 02/12/1991 643.42
class(Datos_TRM[,"Fecha"])
## [1] "factor"
#Convertir a formato de fecha la columna "Fecha"
Datos_TRM[,"Fecha"]<-as.Date(Datos_TRM[,"Fecha"],format = "%d/%m/%Y")
class(Datos_TRM[,"Fecha"])
## [1] "Date"
plot(Datos_TRM[,"Fecha"],Datos_TRM[,"TRM"], type = "l", main = "Serie Historica TRM")
plot(Datos_TRM[-1,"Fecha"],diff(log(Datos_TRM[,"TRM"])), type = "l", main = "Serie Historica rendimientos diarios TRM")
hist(Datos_TRM[,"TRM"], breaks = 30, col = "gray", main = "histograma de precios", freq = FALSE)
Rtos_TRM<-diff(log(Datos_TRM[,"TRM"]))
hist(Rtos_TRM, breaks = 50, col = "gray", main = "histograma de rendimientos", freq = FALSE, xlim = c(-0.02,0.02))
max(Datos_TRM[,"TRM"])
## [1] 3434.89
min(Datos_TRM[,"TRM"])
## [1] 620.62
print("media de la TRM")
## [1] "media de la TRM"
mean(Datos_TRM[,"TRM"])
## [1] 1882.481
print("desviación estandar de la TRM")
## [1] "desviación estandar de la TRM"
sd(Datos_TRM[,"TRM"])
## [1] 680.0618
#install.packages("moments")
library(moments)
## Warning: package 'moments' was built under R version 3.2.3
print("Sesgo")
## [1] "Sesgo"
skewness(Datos_TRM[,"TRM"])
## [1] -0.2084888
print("curtosis")
## [1] "curtosis"
kurtosis(Datos_TRM[,"TRM"])
## [1] 2.185359
#Percentiles
quantile(Datos_TRM[,"TRM"],c(0.01,0.05,0.1,0.5,0.75,0.90,0.95,0.99))
## 1% 5% 10% 50% 75% 90% 95% 99%
## 642.000 758.732 821.040 1934.440 2324.690 2819.466 2939.920 3172.030
max(Rtos_TRM)
## [1] 0.05107289
min(Rtos_TRM)
## [1] -0.0766824
print("media Rendimientos de la TRM")
## [1] "media Rendimientos de la TRM"
mean(Rtos_TRM)
## [1] 0.00015412
print("desviación estandar rendimientos de la TRM")
## [1] "desviación estandar rendimientos de la TRM"
sd(Rtos_TRM)
## [1] 0.005079765
skewness(Rtos_TRM)
## [1] -0.272372
print("curtosis")
## [1] "curtosis"
kurtosis(Rtos_TRM)
## [1] 22.42398
quantile(Rtos_TRM,c(0.01,0.05,0.1,0.5,0.75,0.90,0.95,0.99))
## 1% 5% 10% 50% 75%
## -0.014878032 -0.007021664 -0.004160333 0.000000000 0.001048556
## 90% 95% 99%
## 0.004722974 0.007923559 0.016527393
quantile(Rtos_TRM, c(0.05,0.95))
## 5% 95%
## -0.007021664 0.007923559
breaks<-c(min(Rtos_TRM)-0.0000001,-0.01)
corte<-cut(Rtos_TRM,breaks)
tabla<-table(corte)
print(tabla)
## corte
## (-0.0767,-0.01]
## 233
probabilidad<-tabla/length(Rtos_TRM)
print(probabilidad)
## corte
## (-0.0767,-0.01]
## 0.0252931
¿Que tipo de distribución teorica siguen los rendimientos diarios de la TRM? ¿Es valido el supuesto de normalidad para los rendimientos diarios de la TRM?
En este casoPara la estimación de los parámetros de la distribución normal, Utilice el promedio aritmetico de los rendimientos de la TRM como estimador del valor esperado y la desvicación estandar historica de los rendimientos como estimador de la desviación
hist(Rtos_TRM, breaks = 50, col = "gray", main = "histograma de rendimientos", freq = FALSE, xlim = c(-0.02,0.02))
curve(dnorm(x,mean=mean(Rtos_TRM),sd=sd(Rtos_TRM)),-0.02,0.02,add = T,col="blue")
qqnorm(Rtos_TRM)
qqline(Rtos_TRM)
cuantiles<-c(0.01,0.025,0.05,0.1,0.25,0.40,0.45,0.5,0.75,0.9,0.95,0.975,0.99)
qnorm(cuantiles,mean = mean(Rtos_TRM),sd=sd(Rtos_TRM))
## [1] -0.0116631796 -0.0098020357 -0.0082013493 -0.0063558603 -0.0032721292
## [6] -0.0011328237 -0.0004842101 0.0001541200 0.0035803691 0.0066641002
## [11] 0.0085095892 0.0101102756 0.0119714195
quantile(Rtos_TRM, cuantiles)
## 1% 2.5% 5% 10% 25%
## -0.0148780323 -0.0100404569 -0.0070216642 -0.0041603327 -0.0008228632
## 40% 45% 50% 75% 90%
## 0.0000000000 0.0000000000 0.0000000000 0.0010485558 0.0047229741
## 95% 97.5% 99%
## 0.0079235590 0.0112320248 0.0165273927
qnorm(c(0.05,0.95),mean = mean(Rtos_TRM),sd=sd(Rtos_TRM))
## [1] -0.008201349 0.008509589
pnorm(-0.01,mean =mean(Rtos_TRM),sd=sd(Rtos_TRM))
## [1] 0.02280769
Suponga Que los rendimientos diarios de la TRM siguen una distribución normal y que la media es estimada como el promedio de los rendimientos diarios observados de la TRM y que la desviación estandar es estimada como la volatilidad historica de los rendimientos diarios
Numero_iteraciones=10000
TRM_SIMULADA=matrix(,3,Numero_iteraciones)
TRM_Inicial=Datos_TRM[length(Datos_TRM[,"TRM"]), "TRM"]
TRM_SIMULADA[1,]=TRM_Inicial
for(j in 1:Numero_iteraciones){
for(i in 2:3){
TRM_SIMULADA[i,j]=TRM_Inicial*exp(rnorm(1,mean = mean(Rtos_TRM),sd=sd(Rtos_TRM)))
}
}
matplot(TRM_SIMULADA,type = "l", col = "gray", main="TRM SIMULADA")
hist(TRM_SIMULADA[2,],15, main = "HISTOGRAMA SIMULACIÓN TRM 16 DE FEBRERO DE 2017", col ="gray")
hist(TRM_SIMULADA[3,],15, main = "HISTOGRAMA SIMULACIÓN TRM 16 DE FEBRERO DE 2017", col ="gray")
Responda las siguientes preguntas asignando probabildad basada en frecuencia y bajo el supuesto de que los rendimientos siguen una distribución normal
sabiendo que el valor de la TRM para el 15 de febrero es de 2867.64, estime un intervalo de confianza del 95% para el valor en pesos de una importación de 500.000 USD
¿cual es la probabilidad de ganar hasta un 5% en un dia?
*¿Si usted invierte 10.000.000 COP cual es la probabilidad de obtener perdidas entre -500.000 Y 500.000 COP en un dia?
Simulacón de montecarlo
Usted toma una posición corta en 10 contratos de futuros de la TRM que vencen en septiembre de 2017 y que tienen un precio actual de 2900 COP por cada USD. Sabiendo que cada contrato es de 50.000 USD y que usted deposita 150.000.000 de COP en la cuenta de margen, realice una simulación de montecarlo con 10.000 iteraciones bajo el supuesto de que los rendimientos continuos mensuales del futuro, siguen una distribución normal con media de 1% y desviación estandar del 3%, para determinar:
Un intervalo de predicción del 90% del valor de la cuenta de margen para dentro de un mes.
Si el margén minimo es de 130.000.000 COP ¿cual es la probabilidad de ser llamado al margen?