Swap Class Reference

Interest rate swap. More...

#include <ql/instruments/swap.hpp>

Inheritance diagram for Swap:

List of all members.

Public Member Functions

Additional interface
Date startDate () const
Date maturityDate () const
Real legBPS (Size j) const
Real legNPV (Size j) const
DiscountFactor startDiscounts (Size j) const
DiscountFactor endDiscounts (Size j) const
DiscountFactor npvDateDiscount () const
const Leg & leg (Size j) const

Protected Attributes

std::vector< Leg > legs_
std::vector< Realpayer_
std::vector< ReallegNPV_
std::vector< ReallegBPS_
std::vector< DiscountFactorstartDiscounts_
std::vector< DiscountFactorendDiscounts_
DiscountFactor npvDateDiscount_

Constructors

 Swap (const Leg &firstLeg, const Leg &secondLeg)
 Swap (const std::vector< Leg > &legs, const std::vector< bool > &payer)
 Swap (Size legs)

Instrument interface

bool isExpired () const
 returns whether the instrument might have value greater than zero.
void setupArguments (PricingEngine::arguments *) const
void fetchResults (const PricingEngine::results *) const
void setupExpired () const

Detailed Description

Interest rate swap.

The cash flows belonging to the first leg are paid; the ones belonging to the second leg are received.


Constructor & Destructor Documentation

Swap ( const Leg &  firstLeg,
const Leg &  secondLeg 
)

The cash flows belonging to the first leg are paid; the ones belonging to the second leg are received.

Swap ( const std::vector< Leg > &  legs,
const std::vector< bool > &  payer 
)

Multi leg constructor.

Swap ( Size  legs) [protected]

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


Member Function Documentation

void setupArguments ( PricingEngine::arguments *  ) const [virtual]

When a derived argument structure is defined for an instrument, this method should be overridden to fill it. This is mandatory in case a pricing engine is used.

Reimplemented from Instrument.

Reimplemented in CPISwap, ZeroCouponInflationSwap, VanillaSwap, YearOnYearInflationSwap, and AssetSwap.

void fetchResults ( const PricingEngine::results *  r) const [virtual]

When a derived result structure is defined for an instrument, this method should be overridden to read from it. This is mandatory in case a pricing engine is used.

Reimplemented from Instrument.

Reimplemented in CPISwap, ZeroCouponInflationSwap, VanillaSwap, YearOnYearInflationSwap, and AssetSwap.

void setupExpired ( ) const [protected, virtual]

This method must leave the instrument in a consistent state when the expiration condition is met.

Reimplemented from Instrument.