|
From: Peter C. <pca...@gm...> - 2020-10-25 17:47:26
|
I think this is expected, according to Brigo Mercurio Formula (3.37) for the mean of the short rate at t (conditional on F_s with s = 0, i.e. the unconditional mean) is r(0) exp(-at) + alpha(t) - alpha(0) exp(-at) = alpha(t) = f(0,t) + sigma^2 / (2 a^2) ( 1 - exp(- at) ) ^2 because alpha(0) = r(0) and so the first and last summand cancel out. Plugging in sigma = 0.1 and a = 0.1 that means that E( r( 30 ) ) = 0.05 + 0.4514... = 0.5014.... This is all including the term responsible for the fit to the initial flat curve at 5%. And by the way, I don't think you can disable this part of the drift in HullWhiteProcess. Also, I think sigma = 0.1 is an extremely high value, maybe on purpose for the sake of the example? On Sun, 25 Oct 2020 at 17:44, Philippe Hatstadt <phi...@ex...> wrote: > > Actually, I have a follow-up question on the drift issue. > I was experimenting with the Hull-White implementation from the QuantLib Cookbook, and interestingly, in Chapter 15, they build a flat curve with a forward rate of 5%, via: > spot_curve = ql.FlatForward(todays_date, ql.QuoteHandle(ql.SimpleQuote(forward_rate)), day_count) > > The HW parameters are sigma=10% and a=10%, and the HW engine is built via: > > hw_process = ql.HullWhiteProcess(spot_curve_handle, a, sigma) > > They then proceed to generate paths of the short term rate, and they demonstrate that the simulated rate converges to the theoretical expected forward rate f(0,t<T) but the graph of such expected forward is not flat at 5%, instead it is monotonously increasing from 5% to as high as 50% after 30 years. So it very much looks like the paths of rates that they show are not drift adjusted otherwise the expected path should be flat at 5%. > So I'm unsure what is going on? Is there an optional argument in the hw_process call to do the drift adjustment or not? > > Philippe Hatstadt > > > On Sun, Oct 25, 2020 at 9:09 AM Peter Caspers <pca...@gm...> wrote: >> >> Hi Philippe, >> >> the Jamshidian engine uses a) discount bond prices conditional on the >> state of the model (i.e. the short rate in the case of the Hull-White >> model) and b) zero bond option prices in the model to come up with a >> model swaption price. It retrieves this information via the >> discountBond() and discountBondOption() methods in the >> OneFactorAffineModel interface. The methods account for the adjustment >> term theta(t) in the Hull-White model SDE already, there is nothing >> that the engine needs to do in addition to that. I don't know if that >> answers your question? >> >> The HullWhiteProcess also takes into account the adjustment to the >> initial curve already. To see that you can look into the >> implementation of HullWhiteProcess::drift() >> >> https://github.com/lballabio/QuantLib/blob/master/ql/processes/hullwhiteprocess.cpp#L38 >> >> which coincides with e.g. Brigo Mercurio, Interest Rate Models, Theory >> and Practice, Formulas (3.33) and (3.34) observing that in this >> context >> >> https://github.com/lballabio/QuantLib/blob/master/ql/processes/ornsteinuhlenbeckprocess.hpp#L90 >> >> level_ is zero, speed_ is the Hull-White mean reversion parameter and >> x stands for the short rate at time t. >> >> Does that make sense? >> >> Thanks, >> Peter >> >> >> On Sun, 25 Oct 2020 at 12:47, philippe hatstadt via QuantLib-users >> <qua...@li...> wrote: >> > >> > Is there any information about how the Jamshidian engine does the drift adjustment to match the initial curve for the Hull White model? >> > If I want to use the QL HW Process in a MC model, I assume II have to do the drift adjustment myself, or is there existing QL functionality to do that? >> > >> > Regards >> > >> > Philippe Hatstadt >> > +1-203-252-0408 >> > https://www.linkedin.com/in/philippe-hatstadt >> > >> > >> > >> > _______________________________________________ >> > QuantLib-users mailing list >> > Qua...@li... >> > https://lists.sourceforge.net/lists/listinfo/quantlib-users >> >> >> _______________________________________________ >> QuantLib-users mailing list >> Qua...@li... >> https://lists.sourceforge.net/lists/listinfo/quantlib-users > > > > > Brokerage services offered through Exos Securities LLC, member of SIPC / FINRA. For important disclosures, click here. |