Logo
Reference manual - version qle_version
FlexiSwap Class Reference

Flexi-Swap with global notional bounds. More...

#include <qle/instruments/flexiswap.hpp>

Inheritance diagram for FlexiSwap:

Classes

class  arguments
 Arguments for Flexi-Swap More...
class  results
 Results for Flexi-Swap More...
class  engine
 Base class for Flexi-Swap engines. More...

Public Member Functions

 FlexiSwap (const VanillaSwap::Type type, const std::vector< Real > &fixedNominal, const std::vector< Real > &floatingNominal, const Schedule &fixedSchedule, const std::vector< Real > &fixedRate, const DayCounter &fixedDayCount, const Schedule &floatingSchedule, const QuantLib::ext::shared_ptr< IborIndex > &iborIndex, const std::vector< Real > &gearing, const std::vector< Real > &spread, const std::vector< Real > &cappedRate, const std::vector< Real > &flooredRate, const DayCounter &floatingDayCount, const std::vector< Real > &lowerNotionalBound, const QuantLib::Position::Type optionPosition, const std::vector< bool > &notionalCanBeDecreased=std::vector< bool >(), QuantLib::ext::optional< BusinessDayConvention > paymentConvention=QuantLib::ext::nullopt)

Inspectors

VanillaSwap::Type type () const
const std::vector< Real > & fixedNominal () const
const std::vector< Real > & floatingNominal () const
const Schedule & fixedSchedule () const
const std::vector< Real > & fixedRate () const
const DayCounter & fixedDayCount () const
const Schedule & floatingSchedule () const
const QuantLib::ext::shared_ptr< IborIndex > & iborIndex () const
const std::vector< Real > & gearing () const
const std::vector< Real > & spread () const
const std::vector< Real > & cappedRate () const
const std::vector< Real > & flooredRate () const
const DayCounter & floatingDayCount () const
const std::vector< Real > & lowerNotionalBound () const
const QuantLib::Position::Type optionPosition () const
const std::vector< bool > & notionalCanBeDecreased () const
BusinessDayConvention paymentConvention () const
const Leg & fixedLeg () const
const Leg & floatingLeg () const
Real underlyingValue () const

Detailed Description

Flexi-Swap with global notional bounds.

The given non-standard swap defines the upper bound for the notionals, which must be non-increasing and consistent across the legs. Furthermore it is assumed that that floating leg's frequency divides the fixed leg's frequency. The notional in the Flexi-Swap can be adjusted on each fixing date corresponding to a whole fixed leg period to any value between the given lower bound and the original amount. The vector of lower bounds must therefore have the same size as the fixed leg vector in the non-standard swap. For periods with a fixing date on or before the evaluation date, is is assumed that the non-standard swap's notional is the relevant one, i.e. the lower bound is ignored for such periods.

notionalCanBeDecreased marks fixed rate periods in which the notional can actually be decreased; defaults to true,true,...,true if not given, i.e. the notional can be decreased in each period.