TreeLattice with different discounting and forwarding curves

classic Classic list List threaded Threaded
4 messages Options
Reply | Threaded
Open this post in threaded view
|

TreeLattice with different discounting and forwarding curves

sarpkacar
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
Reply | Threaded
Open this post in threaded view
|

Re: TreeLattice with different discounting and forwarding curves

Luigi Ballabio
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
Reply | Threaded
Open this post in threaded view
|

Re: TreeLattice with different discounting and forwarding curves

sarpkacar
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:
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




------------------------------------------------------------------------------
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
Reply | Threaded
Open this post in threaded view
|

Re: TreeLattice with different discounting and forwarding curves

Luigi Ballabio
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