Tutkitaan aikasarjaa SP500 osakeindeksin päivittäisistä päätoskursseista ajalta 1950-01-03 -- 2014-08-19.
Lue data R:ään ja muuta hintojen aikasarja tuottojen aikasarjaksi.
file<-"http://cc.oulu.fi/~jklemela/marketrisk/sp500.csv" data<-read.csv(file=file) sp500<-data[,7] sp500<-sp500[length(sp500):1] plot(sp500,type="l") pituus<-length(sp500) tuotto<-log(sp500[2:pituus])-log(sp500[1:(pituus-1)]) plot(tuotto,type="l")
Oletetaan, että portfolio koostuu 10 kappaleesta SP500 indeksiosuutta. Oletetaan, että eletään päivää 2014-08-28, jolloin yhden indeksiosuuden arvo on 1996.74 USD. Laske portfoliolle VaR ja ES yhden päivän horisontilla kun alpha = 0.95 ja alpha=0.99, käyttäen empiiristä kvantiilia.
St<-sp500[length(sp500)] losses<--10*St*tuotto alpha<-0.95 n<-length(losses) m<-ceiling(n*(1-alpha)) VaR<-sort(losses,decreasing=TRUE)[m] oikea.hanta<-sort(losses,decreasing=TRUE)[1:m] ES<-mean(oikea.hanta) VaR ES #[1] 289.3378 #[1] 452.0056 alpha<-0.99 n<-length(losses) m<-ceiling(n*(1-alpha)) VaR<-sort(losses,decreasing=TRUE)[m] oikea.hanta<-sort(losses,decreasing=TRUE)[1:m] ES<-mean(oikea.hanta) VaR ES #[1] 521.0938 #[1] 779.0864
Estimoi VaR ja ES edellisen tehtävän portfoliolle käyttäen oletusta, että tuotot ovat normaalisti jakautuneita.
St<-sp500[length(sp500)] losses<--10*St*tuotto mu<-mean(losses) sigma<-sd(losses) alpha<-0.95 VaR2<-mu+sigma*qnorm(alpha) ES2<-mu+sigma*dnorm(qnorm(alpha))/(1-alpha) VaR2 ES2 #[1] 313.7045 #[1] 394.8905 alpha<-0.99 VaR2<-mu+sigma*qnorm(alpha) ES2<-mu+sigma*dnorm(qnorm(alpha))/(1-alpha) VaR2 ES2 #[1] 446.1122 #[1] 511.9506
p1<-0.95^2 p2<-2*0.95*0.05 alpha<-seq(0,1,0.001) q<-matrix(0,length(alpha),1) for (i in 1:length(alpha)){ if (alpha[i]<=p1) q[i]<-(2-2*p1-p2)/(1-alpha[i]) else if (alpha[i]>=p1+p2) q[i]<-2 else q[i]<-(2-alpha[i]-p1-p2)/(1-alpha[i]) } plot(alpha,q,type="l") alpha<-seq(0,1,0.001) q2<-matrix(0,length(alpha),1) for (i in 1:length(alpha)){ if (alpha[i]<=0.95) q2[i]<-0.1/(1-alpha[i]) else q2[i]<-2 } plot(alpha,q2,type="l") matplot(alpha,q,type="l") # q(L1)+q(L2) matplot(alpha,q2,add=TRUE,col="red",type="l") # q(L1+L2)