spreads<-scan(file="clipboard") z1<-rnorm(100) rho<-0.4 l<-c() for(i in 1:10000){ z<-rho*z1+sqrt(1-rho^2)*rnorm(1) u<-pnorm(z) l<-c(l,sum(u)) } l<-c() for(i in 1:10000){ u<-runif(100) l<-c(l,sum(u)/100) } t<-seq(0,5,1/4) f<-function(lambda,t){ 1-exp(-lambda*t) } A<-outer(spreads/(1-0.35),t,f) rho<-0.4 L<-c() z1<-rnorm(100) for(i in 1:10000){ z1<-rnorm(100) z<-sqrt(1-rho^2)*z1+rho*rnorm(1) u<-pnorm(z) L<-rbind(L,colSums(A>u)/100*(1-0.35)) } cdf<-c() for(l in 0:100){ cdf<-c(cdf,sum(L40[,21]<=l/100*(1-0.35))/100000) } d<-seq(-5,5,1) p<-abs(1/10*1/d) p[6]<-0.1 pnormvec<-function(z,d){ f<-function(d,z){ pnorm(z-d) } outer(z,d,"f") } L<-c() Z<-matrix(rnorm(1000000),100,10000) pv1<-c() pv2<-c() pv3<-c() pv4<-c() for(i in 1:10000){ z <- Z[,i] D <- sample(d,1,prob=p) ztilde <- z+D u <- pnormvec(z,d)%*%p L <- rbind(L,colSums(A>as.vector(u))/100*(1-0.35)) pv1<-c(pv1,pl(t,L[i,],r,0,0.08)-0.05*cl(t,L[i,],r,0,0.08)) pv2<-c(pv2,pl(t,L[i,],r,0.08,0.15)-0.05*cl(t,L[i,],r,0.08,0.15)) pv3<-c(pv3,pl(t,L[i,],r,0.15,0.3)-0.05*cl(t,L[i,],r,0.15,0.3)) pv4<-c(pv4,pl(t,L[i,],r,0.3,1)-0.05*cl(t,L[i,],r,0.3,1)) } pv<-100-100*c(mean(pv1/0.08),mean(pv2/0.07),mean(pv3/0.15),mean(pv4/0.7)) u<-c() vecD<-c() for(i in 1:1000000){ D <- sample(d,1,prob=p) #z<-rnorm(1) #u <- c(u,pnormvec(z+D,d)%*%p) vecD<-c(vecD,D) } tranchesize<-function(L, l, u){ if( u==1){ u - l - pmin(L,u-l) -pmin( pmax(L-l,0), u-l) }else{ u - l - pmin( 0, u - l) - pmin( pmax(L-l,0), u-l) } } protectionsize<-function(L, l, u){ pmin( pmax(L-l,0), u-l) } cl<-function(t, L, r, l, u){ dT <- diff(t) e <- tranchesize(L,l,u) e <- (e[-length(e)]+e[-1])/2 return( sum(dT*exp(-r[-1]*t[-1])*e) ) } pl<-function(t, L, r, l, u){ result<-sum(exp(-r[-1]*t[-1])*diff(protectionsize(L,l,u))) return(result) }