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;
58 const std::vector<Real>&
gearing,
const std::vector<Real>&
spread,
84 const Leg&
fixedLeg()
const {
return legs_[0]; }
109 void fetchResults(
const QuantLib::PricingEngine::results*)
const override;
147 void reset()
override;
152 :
public QuantLib::GenericEngine<BalanceGuaranteedSwap::arguments, BalanceGuaranteedSwap::results> {};
Arguments for Balance Guaranteed Swap
std::vector< std::vector< Real > > trancheNominals
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< Date > trancheNominalDates
std::vector< Real > flooredRate
std::vector< Date > fixedPayDates
QuantLib::Frequency trancheNominalFrequency
std::vector< Date > fixedResetDates
void validate() const override
std::vector< Real > floatingCoupons
std::vector< Real > fixedRate
std::vector< Time > floatingAccrualTimes
std::vector< Real > fixedCoupons
std::vector< Date > floatingPayDates
Base class for Balance Guaranteed Swap engines.
Results for Balance Guaranteed Swap
void fetchResults(const QuantLib::PricingEngine::results *) const override
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 nominalSchedule_
const Size referencedTranche_
const Schedule & fixedSchedule() const
const std::vector< std::vector< Real > > trancheNominals_
const Schedule fixedSchedule_
const Leg & floatingLeg() const
const std::vector< Real > cappedRate_
const Schedule & floatingSchedule() const
VanillaSwap::Type type() const
const QuantLib::ext::shared_ptr< IborIndex > & iborIndex() const
const Size referencedTranche() const
const std::vector< Real > & fixedRate() const
const DayCounter fixedDayCount_
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 Schedule & nominalSchedule() const
const QuantLib::ext::shared_ptr< IborIndex > iborIndex_
const std::vector< std::vector< Real > > & trancheNominal() const
const std::vector< Real > spread_