Serving the Quantitative Finance Community

 
User avatar
odonnelj
Topic Author
Posts: 1
Joined: January 10th, 2008, 11:17 am

Discounting in the Libor Market Model

April 18th, 2011, 11:16 am

Hi,I am trying to implement the Milstein discretization scheme for generating forward rates using Monte Carlo Simultion in the Libor Market Model to price Swaptions. I am using the implementation shown by Brigo and Mercurio in their book Interest Rate Models - Theory and Practise (pg 264). To proof check this I am trying to come back to the values shown by Rebonato in his paper with Peter Jaeckel "Linking Caplet and Swaption Volatilities in a BGM/J Frameowrk: Approximate Solutions". I have taken a Swaption with a 2 year option and swap which matures in 20.5 years and am using the parametric equation suggested for the instantaneous volatility (k(j)[(a+b*(t(j)-t))*exp(-c(t(j)-t)+d] with the calibration values as shown in the paper. The paper gives the above Swaption a MC value of 4.241%, while I am getting a value of around 3.75% in my simulation. I know that a difference discretization method may have been used in the paper but a difference of 0.5% seems very high to me considering I am using the same inputs and am coming back to the papers Swaption price when I implement the approximation method described in the paper to calculate the Black vol and hence use this in Blacks equation to price the Swaption.At a high level would people expect me to be coming back to the paper value for the swaption doing what I have done above?I have gone through my code and am happy that there are no obvious errors in it. The only part I am slightly suspect about is how I apply the various discount factors when I price the swaption at the end of the simulation. I am using the equation for the Swaption price Brigo shows on pg 264 of his book:Swaption price = P(0,T(a))*E(a)[max[0,(S(a,b)-K)]*sum(from a+1 to b)[tenor*P(T(a),T(b)]], where a = option expiry, b = the swap maturity, k = the strike rate, P(0,T(a)) = the discount factor from the option expiry to today and S(a,b) the calculated swap rate.To derive my discount factors (P(T(a),T(b)'s from eqn above) to calculate the swaption at the option expiry I have used my simulated forward rates as at the option expiry and calculated the discount factors using a factor of 1 for the option expiry date. After applying these factors to max[0,(S(a,b)-K)], the swaption then needed to be discounted back to today (P(0,T(a))), so to do this I discounted using the relevent discount factor from the initial yield curve. Is this correct or should I be calculating the discount factor for this from the simulated reset forward rates between today and the option expiry date?If I ignore the final discount (P(0,T(a))) my value comes back close to the paper value for the swaption, this could be coincidence I know but it does lead me to believe I am doing something wrong with the discounting somewhere.Apologies if the above is slightly longwinded I wanted to try and put everything useful in, if anyone had any thoughts at all it would be greatly appreciated.Thanks,John
 
User avatar
kimosabe
Posts: 4
Joined: November 25th, 2003, 12:24 pm

Discounting in the Libor Market Model

April 19th, 2011, 6:38 pm

You should be discounting with the stochastic discount along each path, not factoring out P(0,T(a)). Of course LMM doesn't give you this, but you seem to know how to approximate it.
 
User avatar
odonnelj
Topic Author
Posts: 1
Joined: January 10th, 2008, 11:17 am

Discounting in the Libor Market Model

April 20th, 2011, 7:52 am

Thanks for your reply Kimosabe, from looking around the web I had seen other people do it that way. So instead of discounting to the option expiry date and then discounting from there again to time 0, I should be calculating the instrinsic option price at each period (ie swap rate - k) and then discounting these directly to time 0? I assume the forward rates I should be using for the periods from time 0 to the option expiry date are the rest rates for those periods I would have calculated when simulating my forward rates out to the option expiry date?I think another issue with my model is that as a first crack at it I have taken delta t to be the same as my forwards tenor, ie 6 months. From what I have read, as I am just using a basic discretization methodology and not a more sophisticated technique like the predictor corrector technique, for a delta of this size errors will be introduced.John
 
User avatar
kimosabe
Posts: 4
Joined: November 25th, 2003, 12:24 pm

Discounting in the Libor Market Model

April 20th, 2011, 2:41 pm

Here is a short write-up on the LMM. Here is another on Fixed Income Notation. E.g., the price at time s of a zero coupon bond with effective date t and termination u is denoted D(s;t, u). I needed mathematical notation that corresponds exactly to market quotes.You are right that your discretization (sp?) is too coarse. Also, be sure you are calculating E[max{F_t - k, 0}D_t], where F_t is the swap par coupon at time t and D_t is the stochastic discount. Note D_t is inside the expectation.
 
User avatar
odonnelj
Topic Author
Posts: 1
Joined: January 10th, 2008, 11:17 am

Discounting in the Libor Market Model

May 9th, 2011, 7:13 am

Thanks again for your help Kimosabe, I'll take your remarks into account whenever I get a chance to modify my model.John