|
From: SK A <ska...@go...> - 2011-08-21 19:17:42
|
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 |