1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
|
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)
}
|