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 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, QuantLib::ext::optional< bool > foreignIncludeSpread=QuantLib::ext::nullopt, QuantLib::ext::optional< Period > foreignLookback=QuantLib::ext::nullopt, QuantLib::ext::optional< Size > foreignFixingDays=QuantLib::ext::nullopt, QuantLib::ext::optional< Size > foreignRateCutoff=QuantLib::ext::nullopt, QuantLib::ext::optional< bool > foreignIsAveraged=QuantLib::ext::nullopt, QuantLib::ext::optional< bool > domesticIncludeSpread=QuantLib::ext::nullopt, QuantLib::ext::optional< Period > domesticLookback=QuantLib::ext::nullopt, QuantLib::ext::optional< Size > domesticFixingDays=QuantLib::ext::nullopt, QuantLib::ext::optional< Size > domesticRateCutoff=QuantLib::ext::nullopt, QuantLib::ext::optional< bool > domesticIsAveraged=QuantLib::ext::nullopt, 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 | |
| void | setupExpired () const override |
| CrossCcySwap (Size legs) | |
| 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, | ||
| QuantLib::ext::optional< bool > | foreignIncludeSpread = QuantLib::ext::nullopt, | ||
| QuantLib::ext::optional< Period > | foreignLookback = QuantLib::ext::nullopt, | ||
| QuantLib::ext::optional< Size > | foreignFixingDays = QuantLib::ext::nullopt, | ||
| QuantLib::ext::optional< Size > | foreignRateCutoff = QuantLib::ext::nullopt, | ||
| QuantLib::ext::optional< bool > | foreignIsAveraged = QuantLib::ext::nullopt, | ||
| QuantLib::ext::optional< bool > | domesticIncludeSpread = QuantLib::ext::nullopt, | ||
| QuantLib::ext::optional< Period > | domesticLookback = QuantLib::ext::nullopt, | ||
| QuantLib::ext::optional< Size > | domesticFixingDays = QuantLib::ext::nullopt, | ||
| QuantLib::ext::optional< Size > | domesticRateCutoff = QuantLib::ext::nullopt, | ||
| QuantLib::ext::optional< bool > | domesticIsAveraged = QuantLib::ext::nullopt, | ||
| const bool | telescopicValueDates = false, | ||
| bool | fairSpreadLegIsForeign = true ) |
First leg holds the pay currency cashflows and the second leg holds the receive currency cashflows.