VanillaSwap Class Reference

Plain-vanilla swap: fix vs floating leg. More...

#include <ql/instruments/vanillaswap.hpp>

Inheritance diagram for VanillaSwap:

List of all members.

Classes

class  arguments
 Arguments for simple swap calculation More...
class  results
 Results from simple swap calculation More...

Public Types

enum  Type { Receiver = -1, Payer = 1 }

Public Member Functions

 VanillaSwap (Type type, Real nominal, const Schedule &fixedSchedule, Rate fixedRate, const DayCounter &fixedDayCount, const Schedule &floatSchedule, const boost::shared_ptr< IborIndex > &iborIndex, Spread spread, const DayCounter &floatingDayCount, boost::optional< BusinessDayConvention > paymentConvention=boost::none)
void setupArguments (PricingEngine::arguments *args) const
void fetchResults (const PricingEngine::results *) const
Inspectors
Type type () const
Real nominal () const
const SchedulefixedSchedule () const
Rate fixedRate () const
const DayCounterfixedDayCount () const
const SchedulefloatingSchedule () const
const boost::shared_ptr
< IborIndex > & 
iborIndex () const
Spread spread () const
const DayCounterfloatingDayCount () const
BusinessDayConvention paymentConvention () const
const Leg & fixedLeg () const
const Leg & floatingLeg () const
Results
Real fixedLegBPS () const
Real fixedLegNPV () const
Rate fairRate () const
Real floatingLegBPS () const
Real floatingLegNPV () const
Spread fairSpread () const

Detailed Description

Plain-vanilla swap: fix vs floating leg.

If no payment convention is passed, the convention of the floating-rate schedule is used.

Warning:
if Settings::includeReferenceDateCashFlows() is set to true, payments occurring at the settlement date of the swap might be included in the NPV and therefore affect the fair-rate and fair-spread calculation. This might not be what you want.
Tests:
  • the correctness of the returned value is tested by checking that the price of a swap paying the fair fixed rate is null.
  • the correctness of the returned value is tested by checking that the price of a swap receiving the fair floating-rate spread is null.
  • the correctness of the returned value is tested by checking that the price of a swap decreases with the paid fixed rate.
  • the correctness of the returned value is tested by checking that the price of a swap increases with the received floating-rate spread.
  • the correctness of the returned value is tested by checking it against a known good value.
Examples:
BermudanSwaption.cpp, and swapvaluation.cpp.

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 Swap.

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 Swap.