Serving the Quantitative Finance Community

 
User avatar
shunvwu
Topic Author
Posts: 0
Joined: December 12th, 2010, 7:34 am

Pricing callable bond by Hull white

April 1st, 2011, 10:18 am

I'm currently using MC to simulate the short rate based on Hull white, then pricing the callable bond in backward direction. Supposing the callable date t and bond maturity date T, until which date should I simulate the short rate? One way is to simulate the short rate until T, then the bond price is discounted back to t by simulated short rate; the second way is to only simulate the short rate until t, then the bond price is discounted by P(t,T)=A(t,T)*exp(-B(t,T)*r(t)). Could anybody help to answer me which one is correct?Another question is the calculation of bond coupon. If the coupon is based on floating rate, like LIBOR 3M, will the coupon be calculated with forward libor 3m obtained by today's term structure or simulated 3m forward rate obtained by simulated short rate?I myself prefer to the second way, because for single callable date European option, there is analytic formula in John Hull's book in which the volatility is considered up to t but not T. But I'm not quite sure about that. Is there any recommended paper? Thanks a lot!
Last edited by shunvwu on March 31st, 2011, 10:00 pm, edited 1 time in total.
 
User avatar
shunvwu
Topic Author
Posts: 0
Joined: December 12th, 2010, 7:34 am

Pricing callable bond by Hull white

April 5th, 2011, 8:07 am

Hi, could somebody help to answer my questions ? They really confused me for a long time.
 
User avatar
crmorcom
Posts: 0
Joined: April 9th, 2008, 4:09 pm

Pricing callable bond by Hull white

April 5th, 2011, 1:38 pm

QuoteOriginally posted by: shunvwuI'm currently using MC to simulate the short rate based on Hull white, then pricing the callable bond in backward direction. Supposing the callable date t and bond maturity date T, until which date should I simulate the short rate? One way is to simulate the short rate until T, then the bond price is discounted back to t by simulated short rate; the second way is to only simulate the short rate until t, then the bond price is discounted by P(t,T)=A(t,T)*exp(-B(t,T)*r(t)). Could anybody help to answer me which one is correct?Not sure quite why you are using MC: a tree would be much more efficient for this kind of thing. Particularly since most callable bonds are american/bermudan.In theory, either method will work, since you know the ZC prices analytically at t. But you need to be careful. The ZC price is the expectation of the discounting so you can't use the simulated r on just one path if you are going to T - you need to know the expectation conditional on r_t. In MC this is an expensive calculation to do directly, so you'll want to use the formula you gave above.QuoteAnother question is the calculation of bond coupon. If the coupon is based on floating rate, like LIBOR 3M, will the coupon be calculated with forward libor 3m obtained by today's term structure or simulated 3m forward rate obtained by simulated short rate?You need to set the coupons based on the values they have in the simulated path. But, as above, you want the conditional expectation of the LIBOR rate, not the actual values which are realized along the single path.
 
User avatar
shunvwu
Topic Author
Posts: 0
Joined: December 12th, 2010, 7:34 am

Pricing callable bond by Hull white

April 6th, 2011, 1:14 pm

Hi crmorcom,Thanks a lot for your replying. If I simulate the short rate until T, following is the way I want to implement(supposing there are two paths only):1. Simulate two paths' short rate until T, which are r01->r11->r21->...->rt1->r(t+1)1->...->r(T-1)1 and r02->r12->r22->...->rt2->r(t+1)2->...->r(T-1)2 (r01=r02=today's short rate);2. At time T, Bond_T1=100, Bond_T2=100; 3. At time T-1, Bond_(T-1)1=Bond_T1*exp(-(r(T-1)1)*deltat),Bond_(T-1)2=Bond_T2*exp(-(r(T-1)2)*deltat)(or Bond_(T-1)1=Bond_T1*P(T-1,T)_1, Bond_(T-1)2=Bond_T1*P(T-1,T)_2, which one is right?);4. Repeat step 3 until time t, optionprice_t1=max(Bond_t1-strike,0),optionprice_t2=max(Bond_t2-strike,0);5. At time t-1, optionprice_(t-1)1=optionprice_t1*exp(-(r(t-1)1)*deltat),optionprice_(t-1)2=optionprice_t2*exp(-(r(t-1)2)*deltat) (or optionprice_(t-1)1=optionprice_t1*P(t-1,t)_1, optionprice_(t-1)2=optionprice_t2*P(t-1,t)_2);6. repeat step 5 until time 0(today), final optionprice=0.5*optionprice_01+0.5*optionprice_02.Does this process belong to that you mentioned "use the simulated r on just one path" or that having consider "the expectation conditional on r_t"? Please kindly correct me if there is anything wrong in my implementation. Thanks a lot.
Last edited by shunvwu on April 5th, 2011, 10:00 pm, edited 1 time in total.
 
User avatar
shunvwu
Topic Author
Posts: 0
Joined: December 12th, 2010, 7:34 am

Pricing callable bond by Hull white

April 8th, 2011, 5:38 am

Is the hull white tree difficult to build by matlab, when the volatility is not consistent?
Last edited by shunvwu on April 7th, 2011, 10:00 pm, edited 1 time in total.