- Joined
- 10/12/11
- Messages
- 28
- Points
- 11
First off, not sure if this thread is posted in the right section. Anyway, here goes.
After reading the report Design of Contingent Capital with a Stock Price Trigger for Mandatory Conversion by Suresh Sundaresan and Zhenyu Wang, I decided to try and construct the binomial-tree they describe on page 16.
I've done my programming in R, and here is how I rationalized:
Okay - so I know, I need a binomial-tree/model with 2500 steps. That should be manageable. For the input I used:
.. but that didn't really give me the right answer :/
NB: I know I'm using the entire lattice (matrix), but that shouldn't matter - as long as I specify that I only need the last column when working my way back.
..And finally we arrive at the big issue: Does anybody have a piece of programming/code, that can "work back" in an lattice/matrix?
Any inputs are very, very welcome. Also if you read the article, and want to share some interesting ideas that popped up in your head (related, tho). I'm also very interested to hear from you if you have alternatives to the binomial-model when the pay-off is path-dependent.
Thank you all in advance,
J
After reading the report Design of Contingent Capital with a Stock Price Trigger for Mandatory Conversion by Suresh Sundaresan and Zhenyu Wang, I decided to try and construct the binomial-tree they describe on page 16.
I've done my programming in R, and here is how I rationalized:
Okay - so I know, I need a binomial-tree/model with 2500 steps. That should be manageable. For the input I used:
Code:
# Sundaresan
# Binomial Tree
A0 <- 100 #Asset value at t=0
vol <- 0.06 #Asset volatility
B0 <- 90.43 #Bond value at t=0
r <- 0.02 #Risk-free rate
CC <- 6 #Par value of CoCo-bonds
steps <- 2500 #Steps in the model (=2500. Usually less when testing)
years <- 5 #TTM for debt
DaysPerYear <- 250 #Trading days in one year
t <- (years*DaysPerYear)/steps #t-step
u <- exp(vol*sqrt(t)) #The multiplicator for an up-movement
d <- exp(-vol*sqrt(t)) #The multiplicator for an down-movement
K <- 2 #Trigger-level (2% of A0 = 2)
m <- CC/K #Conversion ratio
A <- matrix(0,steps, steps)
A[1,1] <- A0 #Making sure the first value (at t=0) is A0
for(i in 2:steps)
{
A[1,i] <- A[1,i-1]*u*(1/(1+r/DaysPerYear))
for(j in 2:i) A[j,i] <- A[j-1,i-1]*d*(1/(1+r/DaysPerYear))
}
B <- A-B0
B[B<0] <- 0
SNoConv <- B-6
SNoConv[SNoConv<0] <- 0
SYesConv <- B/(1+m)
CCYesConv <- m*B/(1+m)
CCNoConv <- CCYesConv
for(j in 1:steps)
{
for(i in 1:steps)
{
if(SNoConv[i,j] <= 2) CCNoConv[i,j] <- m*SYesConv[i,j]
else CCNoConv[i,j] <- 6
}
}
SNoConv[,steps]; SYesConv[,steps]; CCNoConv[,steps]; CCYesConv[,steps]
WB_SNoConv <- matrix(0,steps,steps)
WB_SYesConv <- matrix(0,steps,steps)
WB_CCNoConv <- matrix(0,steps,steps)
WB_CCYesConv <- matrix(0,steps,steps)
WB_SNoConv[,steps] <- SNoConv[,steps]
WB_SYesConv[,steps] <- SYesConv[,steps]
WB_CCNoConv[,steps] <- CCNoConv[,steps]
WB_CCYesConv[,steps] <- CCYesConv[,steps]
for(j in steps:1)
{
for(i in steps:1)
{
WB_SNoConv[i-1,j-1]<- (WB_SNoConv[i,j]+WB_SNoConv[i-1,j])/2 * exp(-(r/(DaysPerYear))*t)
}
}
.. but that didn't really give me the right answer :/
NB: I know I'm using the entire lattice (matrix), but that shouldn't matter - as long as I specify that I only need the last column when working my way back.
..And finally we arrive at the big issue: Does anybody have a piece of programming/code, that can "work back" in an lattice/matrix?
Any inputs are very, very welcome. Also if you read the article, and want to share some interesting ideas that popped up in your head (related, tho). I'm also very interested to hear from you if you have alternatives to the binomial-model when the pay-off is path-dependent.
Thank you all in advance,
J