Flexi-Swap with global notional bounds. More...
#include <qle/instruments/flexiswap.hpp>
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 > ¬ionalCanBeDecreased=std::vector< bool >(), boost::optional< BusinessDayConvention > paymentConvention=boost::none) | |
Inspectors | |
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_ |
BusinessDayConvention | paymentConvention_ |
Real | underlyingValue_ |
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 |
void | setupArguments (QuantLib::PricingEngine::arguments *) const override |
void | setupExpired () const override |
void | fetchResults (const QuantLib::PricingEngine::results *) const override |
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.
Definition at line 57 of file flexiswap.hpp.
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 |
||
) |
Definition at line 31 of file flexiswap.cpp.
VanillaSwap::Type type | ( | ) | const |
Definition at line 74 of file flexiswap.hpp.
const std::vector< Real > & fixedNominal | ( | ) | const |
const std::vector< Real > & floatingNominal | ( | ) | const |
const Schedule & fixedSchedule | ( | ) | const |
const std::vector< Real > & fixedRate | ( | ) | const |
Definition at line 79 of file flexiswap.hpp.
const DayCounter & fixedDayCount | ( | ) | const |
Definition at line 80 of file flexiswap.hpp.
const Schedule & floatingSchedule | ( | ) | const |
Definition at line 82 of file flexiswap.hpp.
const QuantLib::ext::shared_ptr< IborIndex > & iborIndex | ( | ) | const |
const std::vector< Real > & gearing | ( | ) | const |
Definition at line 84 of file flexiswap.hpp.
const std::vector< Real > & spread | ( | ) | const |
Definition at line 85 of file flexiswap.hpp.
const std::vector< Real > & cappedRate | ( | ) | const |
Definition at line 86 of file flexiswap.hpp.
const std::vector< Real > & flooredRate | ( | ) | const |
Definition at line 87 of file flexiswap.hpp.
const DayCounter & floatingDayCount | ( | ) | const |
Definition at line 88 of file flexiswap.hpp.
const std::vector< Real > & lowerNotionalBound | ( | ) | const |
Definition at line 90 of file flexiswap.hpp.
const QuantLib::Position::Type optionPosition | ( | ) | const |
Definition at line 91 of file flexiswap.hpp.
const std::vector< bool > & notionalCanBeDecreased | ( | ) | const |
BusinessDayConvention paymentConvention | ( | ) | const |
const Leg & fixedLeg | ( | ) | const |
Definition at line 96 of file flexiswap.hpp.
const Leg & floatingLeg | ( | ) | const |
Definition at line 97 of file flexiswap.hpp.
Real underlyingValue | ( | ) | const |
Definition at line 195 of file flexiswap.cpp.
|
overrideprivate |
Definition at line 134 of file flexiswap.cpp.
|
overrideprivate |
Definition at line 201 of file flexiswap.cpp.
|
overrideprivate |
Definition at line 206 of file flexiswap.cpp.
|
private |
Definition at line 103 of file flexiswap.hpp.
|
private |
Definition at line 104 of file flexiswap.hpp.
|
private |
Definition at line 104 of file flexiswap.hpp.
|
private |
Definition at line 105 of file flexiswap.hpp.
|
private |
Definition at line 106 of file flexiswap.hpp.
|
private |
Definition at line 107 of file flexiswap.hpp.
|
private |
Definition at line 108 of file flexiswap.hpp.
|
private |
Definition at line 109 of file flexiswap.hpp.
|
private |
Definition at line 110 of file flexiswap.hpp.
|
private |
Definition at line 111 of file flexiswap.hpp.
|
private |
Definition at line 112 of file flexiswap.hpp.
|
private |
Definition at line 113 of file flexiswap.hpp.
|
private |
Definition at line 114 of file flexiswap.hpp.
|
private |
Definition at line 115 of file flexiswap.hpp.
|
private |
Definition at line 116 of file flexiswap.hpp.
|
private |
Definition at line 117 of file flexiswap.hpp.
|
private |
Definition at line 118 of file flexiswap.hpp.
|
mutableprivate |
Definition at line 124 of file flexiswap.hpp.