LognormalCmsSpreadPricer Class Reference

CMS spread - coupon pricer. More...

`#include <ql/experimental/coupons/lognormalcmsspreadpricer.hpp>`

Inheritance diagram for LognormalCmsSpreadPricer:
[legend]

## Public Member Functions

| LognormalCmsSpreadPricer (const ext::shared_ptr< CmsCouponPricer > &cmsPricer, const Handle< Quote > &correlation, const Handle< YieldTermStructure > &couponDiscountCurve=Handle< YieldTermStructure >(), Size IntegrationPoints=16, const boost::optional< VolatilityType > &volatilityType=boost::none, Real shift1=Null< Real >(), Real shift2=Null< Real >())
virtual Real | swapletPrice () const
virtual Rate | swapletRate () const
virtual Real | capletPrice (Rate effectiveCap) const
virtual Rate | capletRate (Rate effectiveCap) const
virtual Real | floorletPrice (Rate effectiveFloor) const
virtual Rate | floorletRate (Rate effectiveFloor) const
Public Member Functions inherited from CmsSpreadCouponPricer
| CmsSpreadCouponPricer (const Handle< Quote > &correlation=Handle< Quote >())
Handle< Quote > | correlation () const
void | setCorrelation (const Handle< Quote > &correlation=Handle< Quote >())
Public Member Functions inherited from FloatingRateCouponPricer
void | update ()
Public Member Functions inherited from Observer
| Observer (const Observer &)
Observer & | operator= (const Observer &)
std::pair< iterator, bool > | registerWith (const ext::shared_ptr< Observable > &)
void | registerWithObservables (const ext::shared_ptr< Observer > &)
Size | unregisterWith (const ext::shared_ptr< Observable > &)
void | unregisterWithAll ()
virtual void | deepUpdate ()
Public Member Functions inherited from Observable
| Observable (const Observable &)
Observable & | operator= (const Observable &)
void | notifyObservers ()

## Friends

class | integrand_f

## Additional Inherited Members

Public Types inherited from Observer
typedef boost::unordered_set< ext::shared_ptr< Observable > > | set_type
typedef set_type::iterator | iterator

## Detailed Description

CMS spread - coupon pricer.

The swap rate adjustments are computed using the given volatility structures for the underlyings in every case (w.r.t. volatility type and shift).

For the bivariate spread model, the volatility type and the shifts can be inherited (default), or explicitly specified. In the latter case the type, and (if lognormal) the shifts must be given (or are defaulted to zero, if not given).

References:

Brigo, Mercurio: Interst Rate Models - Theory and Practice, 2nd Edition, Springer, 2006, chapter 13.6.2

http://ssrn.com/abstract=2686998