25#include <ql/cashflow.hpp>
26#include <ql/instruments/swap.hpp>
27#include <ql/instruments/vanillaswap.hpp>
28#include <ql/position.hpp>
29#include <ql/pricingengine.hpp>
32using QuantLib::BusinessDayConvention;
34using QuantLib::DayCounter;
35using QuantLib::IborIndex;
38using QuantLib::Schedule;
41using QuantLib::VanillaSwap;
65 const QuantLib::ext::shared_ptr<IborIndex>&
iborIndex,
const std::vector<Real>&
gearing,
96 const Leg&
fixedLeg()
const {
return legs_[0]; }
122 void fetchResults(
const QuantLib::PricingEngine::results*)
const override;
162 void reset()
override;
166class FlexiSwap::engine :
public QuantLib::GenericEngine<FlexiSwap::arguments, FlexiSwap::results> {};
std::vector< Real > cappedRate
std::vector< Date > floatingResetDates
QuantLib::ext::shared_ptr< IborIndex > iborIndex
std::vector< Real > floatingGearings
std::vector< Real > floatingSpreads
std::vector< Date > floatingFixingDates
std::vector< Real > flooredRate
std::vector< Date > fixedPayDates
std::vector< Real > fixedNominal
std::vector< Date > fixedResetDates
std::vector< Real > floatingNominal
QuantLib::Position::Type optionPosition
void validate() const override
std::vector< Real > floatingCoupons
std::vector< bool > notionalCanBeDecreased
std::vector< Real > lowerNotionalBound
std::vector< Real > fixedRate
std::vector< Time > floatingAccrualTimes
std::vector< Real > fixedCoupons
std::vector< Date > floatingPayDates
Base class for Flexi-Swap engines.
Flexi-Swap with global notional bounds.
void fetchResults(const QuantLib::PricingEngine::results *) const override
const std::vector< bool > & notionalCanBeDecreased() const
const std::vector< Real > & fixedNominal() const
const std::vector< Real > fixedRate_
const std::vector< Real > & flooredRate() const
const DayCounter & fixedDayCount() const
const std::vector< Real > & gearing() const
BusinessDayConvention paymentConvention() const
const Schedule & fixedSchedule() const
const Schedule fixedSchedule_
const std::vector< Real > lowerNotionalBound_
const Leg & floatingLeg() const
Real underlyingValue() const
const std::vector< Real > & lowerNotionalBound() const
const std::vector< Real > cappedRate_
const std::vector< Real > fixedNominal_
const Schedule & floatingSchedule() const
VanillaSwap::Type type() const
const QuantLib::ext::shared_ptr< IborIndex > & iborIndex() const
const std::vector< Real > & fixedRate() const
const QuantLib::Position::Type optionPosition_
const DayCounter fixedDayCount_
const std::vector< bool > notionalCanBeDecreased_
const std::vector< Real > flooredRate_
const Schedule floatingSchedule_
const std::vector< Real > & spread() const
const DayCounter & floatingDayCount() const
BusinessDayConvention paymentConvention_
const VanillaSwap::Type type_
const Leg & fixedLeg() const
void setupExpired() const override
const std::vector< Real > gearing_
void setupArguments(QuantLib::PricingEngine::arguments *) const override
const DayCounter floatingDayCount_
const std::vector< Real > & cappedRate() const
const std::vector< Real > floatingNominal_
const QuantLib::Position::Type optionPosition() const
const QuantLib::ext::shared_ptr< IborIndex > iborIndex_
const std::vector< Real > spread_
const std::vector< Real > & floatingNominal() const