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

Currency Interest Rate Swap More...

#include <qle/instruments/currencyswap.hpp>

+ Inheritance diagram for CurrencySwap:

Classes

class  arguments
 
class  engine
 
class  results
 

Public Member Functions

LazyObject interface
void alwaysForwardNotifications () override
 
Observable interface
void deepUpdate () override
 
Additional interface
Date startDate () const
 
Date maturityDate () const
 
Real legBPS (Size j) const
 
Real legNPV (Size j) const
 
Real inCcyLegBPS (Size j) const
 
Real inCcyLegNPV (Size j) const
 
DiscountFactor startDiscounts (Size j) const
 
DiscountFactor endDiscounts (Size j) const
 
DiscountFactor npvDateDiscount () const
 
const Leg & leg (Size j) const
 
const Currency & legCurrency (Size j) const
 
std::vector< Leg > legs ()
 
std::vector< Currency > currencies ()
 

Instrument interface

std::vector< Leg > legs_
 
std::vector< Real > payer_
 
std::vector< Currency > currency_
 
bool isPhysicallySettled_
 
bool isResettable_
 
std::vector< Real > legNPV_
 
std::vector< Real > inCcyLegNPV_
 
std::vector< Real > legBPS_
 
std::vector< Real > inCcyLegBPS_
 
std::vector< DiscountFactor > startDiscounts_
 
std::vector< DiscountFactor > endDiscounts_
 
DiscountFactor npvDateDiscount_
 
bool isExpired () const override
 
void setupArguments (PricingEngine::arguments *) const override
 
void fetchResults (const PricingEngine::results *) const override
 
void setupExpired () const override
 

Constructors

 CurrencySwap (const std::vector< Leg > &legs, const std::vector< bool > &payer, const std::vector< Currency > &currency, const bool isPhysicallySettled=true, const bool isResettable=false)
 
 CurrencySwap (Size legs)
 

Detailed Description

Currency Interest Rate Swap

This instrument generalizes the QuantLib Swap instrument in that it allows multiple legs with different currencies (one per leg)

Constructor & Destructor Documentation

◆ CurrencySwap() [1/2]

CurrencySwap ( const std::vector< Leg > &  legs,
const std::vector< bool > &  payer,
const std::vector< Currency > &  currency,
const bool  isPhysicallySettled = true,
const bool  isResettable = false 
)

Multi leg constructor.

◆ CurrencySwap() [2/2]

CurrencySwap ( Size  legs)
protected

This constructor can be used by derived classes that will build their legs themselves.