Cross currency basis MtM resettable swap. More...
#include <qle/instruments/crossccybasismtmresetswap.hpp>
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 > ¤cies) | |
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_ |
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
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.