Logo
Reference manual - version qle_version
Classes | Public Member Functions | List of all members
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  engine
 Base class for Flexi-Swap engines. More...
 
class  results
 Results for Flexi-Swap 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 >(), boost::optional< BusinessDayConvention > paymentConvention=boost::none)
 

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.