Logo
Reference manual - version qle_version
Classes | List of all members
CrossCcyBasisMtMResetSwap Class Reference

Cross currency basis MtM resettable swap. More...

#include <qle/instruments/crossccybasismtmresetswap.hpp>

+ Inheritance diagram for CrossCcyBasisMtMResetSwap:

Classes

class  arguments
 
class  results
 

Public Member Functions

Constructors
 CrossCcyBasisMtMResetSwap (Real foreignNominal, const Currency &foreignCurrency, const Schedule &foreignSchedule, const boost::shared_ptr< IborIndex > &foreignIndex, Spread foreignSpread, const Currency &domesticCurrency, const Schedule &domesticSchedule, const boost::shared_ptr< IborIndex > &domesticIndex, Spread domesticSpread, const boost::shared_ptr< FxIndex > &fxIdx, bool receiveDomestic=true, Size foreignPaymentLag=0, Size recPaymentLag=0, boost::optional< bool > foreignIncludeSpread=boost::none, boost::optional< Period > foreignLookback=boost::none, boost::optional< Size > foreignFixingDays=boost::none, boost::optional< Size > foreignRateCutoff=boost::none, boost::optional< bool > foreignIsAveraged=boost::none, boost::optional< bool > domesticIncludeSpread=boost::none, boost::optional< Period > domesticLookback=boost::none, boost::optional< Size > domesticFixingDays=boost::none, boost::optional< Size > domesticRateCutoff=boost::none, boost::optional< bool > domesticIsAveraged=boost::none, const bool telescopicValueDates=false, bool fairSpreadLegIsForeign=true)
 
Inspectors
Real foreignNominal () const
 
const Currency & foreignCurrency () const
 
const Schedule & foreignSchedule () const
 
const boost::shared_ptr< IborIndex > & foreignIndex () const
 
Spread foreignSpread () const
 
const Currency & domesticCurrency () const
 
const Schedule & domesticSchedule () const
 
const boost::shared_ptr< IborIndex > & domesticIndex () const
 
Spread domesticSpread () const
 
Additional interface
Spread fairForeignSpread () const
 
Spread fairDomesticSpread () const
 
Spread fairSpread () const
 
- Public Member Functions inherited from CrossCcySwap
const Currency & legCurrency (Size j) const
 
Real inCcyLegBPS (Size j) const
 
Real inCcyLegNPV (Size j) const
 
DiscountFactor npvDateDiscounts (Size j) const
 
void setupArguments (PricingEngine::arguments *args) const override
 
void fetchResults (const PricingEngine::results *) const override
 
 CrossCcySwap (const Leg &firstLeg, const Currency &firstLegCcy, const Leg &secondLeg, const Currency &secondLegCcy)
 First leg is paid and the second is received.
 
 CrossCcySwap (const std::vector< Leg > &legs, const std::vector< bool > &payer, const std::vector< Currency > &currencies)
 

Instrument interface

void setupArguments (PricingEngine::arguments *args) const override
 
void fetchResults (const PricingEngine::results *) const override
 
void setupExpired () const override
 

Additional Inherited Members

- Protected Member Functions inherited from CrossCcySwap
void setupExpired () const override
 
 CrossCcySwap (Size legs)
 
- Protected Attributes inherited from CrossCcySwap
std::vector< Currency > currencies_
 

Detailed Description

Cross currency basis MtM resettable swap.

The foreign leg holds the pay currency cashflows and domestic leg holds the receive currency cashflows. The notional resets are applied to the domestic leg.

    \ingroup instruments

Constructor & Destructor Documentation

◆ CrossCcyBasisMtMResetSwap()

CrossCcyBasisMtMResetSwap ( Real  foreignNominal,
const Currency &  foreignCurrency,
const Schedule &  foreignSchedule,
const boost::shared_ptr< IborIndex > &  foreignIndex,
Spread  foreignSpread,
const Currency &  domesticCurrency,
const Schedule &  domesticSchedule,
const boost::shared_ptr< IborIndex > &  domesticIndex,
Spread  domesticSpread,
const boost::shared_ptr< FxIndex > &  fxIdx,
bool  receiveDomestic = true,
Size  foreignPaymentLag = 0,
Size  recPaymentLag = 0,
boost::optional< bool >  foreignIncludeSpread = boost::none,
boost::optional< Period >  foreignLookback = boost::none,
boost::optional< Size >  foreignFixingDays = boost::none,
boost::optional< Size >  foreignRateCutoff = boost::none,
boost::optional< bool >  foreignIsAveraged = boost::none,
boost::optional< bool >  domesticIncludeSpread = boost::none,
boost::optional< Period >  domesticLookback = boost::none,
boost::optional< Size >  domesticFixingDays = boost::none,
boost::optional< Size >  domesticRateCutoff = boost::none,
boost::optional< bool >  domesticIsAveraged = boost::none,
const bool  telescopicValueDates = false,
bool  fairSpreadLegIsForeign = true 
)

First leg holds the pay currency cashflows and the second leg holds the receive currency cashflows.