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 QuantLib::ext::shared_ptr< IborIndex > &foreignIndex, Spread foreignSpread, const Currency &domesticCurrency, const Schedule &domesticSchedule, const QuantLib::ext::shared_ptr< IborIndex > &domesticIndex, Spread domesticSpread, const QuantLib::ext::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 QuantLib::ext::shared_ptr< IborIndex > & | foreignIndex () const |
| Spread | foreignSpread () const |
| const Currency & | domesticCurrency () const |
| const Schedule & | domesticSchedule () const |
| const QuantLib::ext::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 QuantLib::ext::shared_ptr< IborIndex > & | foreignIndex, | ||
| Spread | foreignSpread, | ||
| const Currency & | domesticCurrency, | ||
| const Schedule & | domesticSchedule, | ||
| const QuantLib::ext::shared_ptr< IborIndex > & | domesticIndex, | ||
| Spread | domesticSpread, | ||
| const QuantLib::ext::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.