Hi all,
I am planning to implement a lattice in QuantLib that can cope with different discounting and forwarding curves. The aim is to price interest rate derivatives, e.g. Bermudan swaptions with Eonia discounting. I follow the approach of Chris Kenyon (from QuantLib team), published in the article http://papers.ssrn.com/sol3/papers.cfm?abstract_id=1558429 .
I checked the implementation of Lattice, TreeLattice, TreeLattice2D, .etc...
I think that the curicial point is to separate the rollback method on the payoffs (i.e. DiscretizedSwap and DiscretizedSwaption objects) and on the DiscretizedBond object. In the first one discounting will be done with Eonia and in the second one with Euribor (in order to calculate the Euribor forwards).
My plan is to implement a new class in numericalmethod.hpp, called TwoCurveTreeLattice that has two rollback and respectivley two partialRollback methods, calling two different stepback methods with corresponding discountings
virtual void rollbackwithForwardingCurve(DiscretizedAsset&,Time to) const = 0;
void rollbackwithDiscountingCurve(DiscretizedAsset&,Time to) const = 0; virtual void partialRollbackwithForwardingCurve(DiscretizedAsset&,Time to) const = 0; virtual void partialRollbackwithDiscountingCurve(DiscretizedAsset&,Time to) const = 0;I would appreciate any suggestions and/or feedbacks on this implementation approach. Best Regards, Sarp Kaya ------------------------------------------------------------------------------ Get a FREE DOWNLOAD! and learn more about uberSVN rich system, user administration capabilities and model configuration. Take the hassle out of deploying and managing Subversion and the tools developers use with it. http://p.sf.net/sfu/wandisco-d2d-2 _______________________________________________ QuantLib-dev mailing list [hidden email] https://lists.sourceforge.net/lists/listinfo/quantlib-dev |
On Sun, 2011-08-21 at 21:17 +0200, SK A wrote:
> I am planning to implement a lattice in QuantLib that can cope with > different discounting and forwarding curves. [...] I think that the > curicial point is to separate the rollback method on the payoffs (i.e. > DiscretizedSwap and DiscretizedSwaption objects) and on the > DiscretizedBond object. In the first one discounting will be done > with Eonia and in the second one with Euribor (in order to calculate > the Euribor forwards). > > My plan is to implement a new class in numericalmethod.hpp, called > TwoCurveTreeLattice that has two rollback and respectivley two > partialRollback methods, calling two different stepback methods with > corresponding discountings It could become a mess very quickly. How about passing two lattices to the DiscretizedSwaption instead? The swaption would roll itself and the DiscretizedSwap on the Eonia lattice, and the DiscretizedBond on the Euribor lattice. You'll have to take care that the two lattices have the same nodes, of course, so you'll have to use a model where they don't depend on the underlying curve; but that's a problem you'd have with the two-curve lattice too. This way, you wouldn't have to modify the Lattice class. Luigi -- Quote me as saying I was misquoted. -- Groucho Marx ------------------------------------------------------------------------------ BlackBerry® DevCon Americas, Oct. 18-20, San Francisco, CA Learn about the latest advances in developing for the BlackBerry® mobile platform with sessions, labs & more. See new tools and technologies. Register for BlackBerry® DevCon today! http://p.sf.net/sfu/rim-devcon-copy1 _______________________________________________ QuantLib-dev mailing list [hidden email] https://lists.sourceforge.net/lists/listinfo/quantlib-dev |
Hi Luigi,
Thanks for your comments.
I didn't exactly understand one point. What do you mean by: "You'll have to take care that the two lattices have
the same nodes, of course, so you'll have to use a model where they don't depend on the underlying curve..." By following your suggestion, we can not take into account the correlation between two curves, right? This is exactly what I want to have. That's why I constructed two trinomial trees and combined them as in G2++ tree implementation. On this grid I want to have the freedom to forward and discount with different curves. Does it make sense?
Regards,
Sarp Kaya
On Tue, Sep 13, 2011 at 4:24 PM, Luigi Ballabio <[hidden email]> wrote:
------------------------------------------------------------------------------ All the data continuously generated in your IT infrastructure contains a definitive record of customers, application performance, security threats, fraudulent activity and more. Splunk takes this data and makes sense of it. Business sense. IT sense. Common sense. http://p.sf.net/sfu/splunk-d2dcopy1 _______________________________________________ QuantLib-dev mailing list [hidden email] https://lists.sourceforge.net/lists/listinfo/quantlib-dev |
On Tue, 2011-09-20 at 10:54 +0200, SK A wrote:
> By following your suggestion, we can not take into account the > correlation between two curves, right? This is exactly what I want to > have. That's why I constructed two trinomial trees and combined them > as in G2++ tree implementation. On this grid I want to have the > freedom to forward and discount with different curves. Does it make > sense? Yes, it does. My mistake: I didn't get that you wanted to combine the two trees, not keep them separate. Luigi -- When all else fails, pour a pint of Guinness in the gas tank, advance the spark 20 degrees, cry "God Save the Queen!", and pull the starter knob. -- MG "Series MGA" Workshop Manual ------------------------------------------------------------------------------ All the data continuously generated in your IT infrastructure contains a definitive record of customers, application performance, security threats, fraudulent activity and more. Splunk takes this data and makes sense of it. Business sense. IT sense. Common sense. http://p.sf.net/sfu/splunk-d2dcopy1 _______________________________________________ QuantLib-dev mailing list [hidden email] https://lists.sourceforge.net/lists/listinfo/quantlib-dev |
Free forum by Nabble | Edit this page |