Serving the Quantitative Finance Community

 
User avatar
calculator
Topic Author
Posts: 0
Joined: October 31st, 2002, 10:00 am

BGM implementation

November 1st, 2002, 9:30 am

Starting from the article of Hull : "Forward Rate Volatilities, Swap Rate Volatilities, and the Implementation of the LIBOR Market Model" I want to implement a BGM model (firstly one factor with skew).I've got the following questions :Do you recommand me other articles for the basics of BGM/LMM ?Starting from the vector of the Fi(t) can I rebuild a curve at this time t (compouding the rates) ?Is there an automatic convexity adjustment for an in arrears when we dscount following each path ? (I suppose it is like for a tree) ?In a one factor model without skew, the volatility are the forward forward volatility (forward volatility deduced from the caplet's volatility). When I use the skew (parameter alpha) can I still use thbis volatility and only calibrating for the alpha or must I calibrate both together ?This topics are certainly evident for a lot of you but thanks for your answers.C.
 
User avatar
tubul
Posts: 5
Joined: August 16th, 2002, 4:56 am

BGM implementation

November 1st, 2002, 12:01 pm

You may like to check the following websites: www.rebonato.com, www.damianobrigo.it and the research done by Antoon Pelsser and carol Alexander. All of them have done quite a bit of research on the LMM/BGM but all of it is directed towards implementing multi-factor models. The in-thing now is drawing up a parametric form for the correlation matrix and also looking for ways to reduce the dimensionality. Modelling with the skew is obviously more complicated and u can search for papers in Google under "Libor Market Model CEV". Some authors include Andersen & Andreasen (their paper is on SSRN), Kian-Guan Lim & Qin Xiao etc.Regards,Tubul
 
User avatar
calculator
Topic Author
Posts: 0
Joined: October 31st, 2002, 10:00 am

BGM implementation

November 2nd, 2002, 11:13 am

Thank you for your answer Tubul.I will check the references you give me.The final goal is of course to develop a multi-factor model but I want to start with a single factor to study the dynamics.C.
 
User avatar
pj
Posts: 11
Joined: September 26th, 2001, 3:31 pm

BGM implementation

November 4th, 2002, 6:19 am

Calculator,reducing the number of factors buys you virtually no simplification of the implementation, but gives rise to very undesirable limitations in your correlation structure. In fact, all forward rates will have perfect instantaneous correlation. Since the two main points of interest in market models are the ability to choose both the correlation and the volatility structure at will, you are basically throwing away half of the benefit for practically no gain. What's more, since you will probably wish to use a term structure of instantaneous volatility that is not just piecewise constant, and since you are likely to carry out Monte Carlo simulations over a time-discretisation of significant step size in order to achieve some speed, you need to construct correlated Wiener paths from the integrated covariances between forward rates. Since even for perfect instantaneous correlation (as you would have it in a single factor model) but non-flat instantaneous volatility, the integrated covariance matrix is almost certainly of full rank, you need to carry out a spectral or Cholesky decomposition anyway. In other words, using a perfect correlation structure makes absolutely no sense and does not give you any noticeable simplification. Libor market models are, in that respect, very different from instantaneous forward rate or short rate HJM models. Bear in mind that you have to compute the drift for all of the forward rates regardless of the number of factors: the Markov embedding dimension is always the number of the remaining discrete forward rates. And as for your question with respect to discounting: for Market models, it is much better and easier to always think in terms of the Harrison-Pliska theorem. The fair value is given by the expectation of the ratio of your contract payoff divided by the value of the chosen numeraire asset at the time of payoff, multiplied by today's value of the numeraire: V = E[ pv(t)/N(t) ] * N(0). The choice of numeraire determines your drift, and also effectively the equivalent of what you called discounting. The term "discounting" is generally not helpful here since the numeraire could be, in the case of a swap rate market model, the pv of an annuity.The references given by tubul are very good. There is naturally always more one could mention, and there are always more books one could buy, but the given list is definitely a good start that will keep you busy for a little while.Regards,pj
 
User avatar
philthegreek
Posts: 0
Joined: August 6th, 2002, 6:14 am

BGM implementation

November 6th, 2002, 9:12 am

Has anyone implemented BGM taking into account smile effect of the swaption market?
 
User avatar
mj
Posts: 12
Joined: December 20th, 2001, 12:32 pm

BGM implementation

November 6th, 2002, 10:28 am

re smiles and BGMhave a look at our stochastic vol BGM paper on rebonato.comMJ
 
User avatar
trc
Posts: 4
Joined: April 4th, 2002, 2:28 pm

BGM implementation

November 8th, 2002, 4:03 pm

I concur with pj.Reducing the number of factors makes the implementation slightly more complicated since you have to diagonalize the covariation matrixand kill eigenvalues. I tried this in hopes of speedup and found out that virtually no speedup was observed unless the number of factors was reduced to twoor one. I certainly don't understand this and it is counterintuitive. I don't think that there is a programming mistake since all relevant matrices were computed and cached before the actual path computation. Since speedup is the only reason why you would want to do it - it's not worth it.MJ,What sort of path throughput do you get in a stochastic BGM model?I never tried this since it involves Cholesky factorizations at every step along every path.That ought to slow down the computation very much.For a determinsitic volatlility - constant correlation model I am getting 10000 full paths in about one minute in dimension 60.
 
User avatar
mj
Posts: 12
Joined: December 20th, 2001, 12:32 pm

BGM implementation

November 8th, 2002, 6:25 pm

trc re timings for deterministic vol bgm with varying factors for a similar case2 factors 10 sec3 factors 11 sec10 factors 16 sec60 factors 50 secswhat is the complexity of your drift computation algorithm? it should be of order number of factors times number of ratesrather than number of rates squared.Re stochastic vol BGM it all depends on what you try to price. For simpler cases it can be tractable. MJ
 
User avatar
trc
Posts: 4
Joined: April 4th, 2002, 2:28 pm

BGM implementation

November 8th, 2002, 9:50 pm

mj,It was number of factors times number of rates.I'll check this again to see why I am not getting this nice increase in speed.To drop from 50 seconds to 16 seconds is significant.I have a question: the Libor Market Model seems to be suitable for risk management of treasuries.Is there already some work on this?The issue would be the calibration to bond option prices.We would need good analytic approximations for these prices.Has anyone ever tried to calibrate to caplets and swaptions and then examined how well the resulting model works on bond options. This would extend the range of applications of this model considerably. PhilTheGreek,Here is a completely trivial method of inducing a smile in the Black-Scholes formula.No stochastic volatility involved.I do not know how well this calibrates to actually observed option prices but the method easily applies to caplet and swaption prices. The "method" merely adds atransaction cost to the Black-Scholes price which is proportional to the time to expiry. MISCELLANEOUS PROBLEMS:I tried to upload something here but I searched in vain for the upload option.Please get the intended download "TrivialSmile.zip" from my website http://martingale.berlios.de/Martingale.html.By chance I discovered that I have some private messages.I tried to reply but clicking on "reply" nothing at all happened.I'll keep trying and please accept my apologies in advance.
Last edited by trc on November 8th, 2002, 11:00 pm, edited 1 time in total.
 
User avatar
Amin
Posts: 3169
Joined: July 14th, 2002, 3:00 am

BGM implementation

November 16th, 2002, 7:47 pm

There is an implementation of LIBOR Market Model for Bermudan swaptions downloadable on my website. The program is written in matlab and can take arbitrary number of factors as input. So you do not have to worry about the number of factors. Also you can specify a CEV constant for skew. The address is http://www.geocities.com/anan2999/ There you can also find a wealth of information about LIBOR Market model.Also the answer to your last question is that when you change cev constant, you also have to change vol and recalibrate in extended market model. Hope this helps.-----------Amin
You think life is a secret, Life is only love of flying, It has seen many ups and downs, But it likes travel more than the destination. Allama Iqbal
 
User avatar
trc
Posts: 4
Joined: April 4th, 2002, 2:28 pm

BGM implementation

December 2nd, 2002, 10:23 am

mj,I was in error about my drift term. It is quadratic not linear in n -- regardless of the number of factors --it is an unsophisticated implementation.This explains the limited gains which I see when reducing the number of factors.
 
User avatar
calculator
Topic Author
Posts: 0
Joined: October 31st, 2002, 10:00 am

BGM implementation

December 5th, 2002, 8:16 pm

Thanks tubul, pj, philthegreek, mj, trc and amin for the discussion.In fact I start with a one factor model because it is more tractable analytically. Everybody agrees abotu the fact that BGM is interesting only with several factor. That's my final goal of course.pj, I am not sure I understand why I must use a correlation matrix for a single factor model (without skew). Like explain in Hull I deduce the BGM volatility from the volatility of the caplets :V1^2*t1 = s0^2*d0V2^2*t2 = s1^2*d0 + s0^2*d1...Then additional questions (certainly evident for the most of you):Let's consider a process on a 6m rate :t=0 F(0)= ( F0(0) F1(0) F2(0) F3(0) ...)t=6m F(1)= ( F1(1) F2(1) F3(1) ...)t=1y F(2)= ( F2(2) F3(2) ...)To calculate the 1y rate in 6m, can you calculate the following :(1+F1(1)*6m)*(1+F1(2)*6m)=(1+F1(1y)*1y)Does the following equality hold ? F(6m,1y)*discount factor(18m) = E( F1(1y) * DF(F0(0)) * DF(F1(1))* DF(F1(2)) )Thanks.C
 
User avatar
ljcao
Posts: 0
Joined: September 10th, 2005, 11:52 am

BGM implementation

November 26th, 2005, 11:09 am

Hi, Amin: I cann't access the website http://www.geocities.com/anan2999/ Is it correct or not?Thanks.LJ