24#ifndef quantlib_nonstandard_swap_hpp
25#define quantlib_nonstandard_swap_hpp
57 bool intermediateCapitalExchange =
false,
58 bool finalCapitalExchange =
false,
69 std::vector<Spread>
spread,
71 bool intermediateCapitalExchange =
false,
72 bool finalCapitalExchange =
false,
81 const std::vector<Real> &
fixedRate()
const;
85 const ext::shared_ptr<IborIndex> &
iborIndex()
const;
88 const std::vector<Spread>&
spreads()
const;
89 const std::vector<Real>&
gearings()
const;
156 void reset()
override;
161 NonstandardSwap::results> {};
191 inline const ext::shared_ptr<IborIndex> &
198 "spread is a vector, use spreads inspector instead");
204 "gearing is a vector, use gearings inspector instead");
template base class for option pricing engines
Arguments for nonstandard swap calculation
std::vector< Date > floatingResetDates
std::vector< Spread > floatingSpreads
std::vector< Real > floatingGearings
ext::shared_ptr< IborIndex > iborIndex
std::vector< Date > floatingFixingDates
std::vector< Date > fixedPayDates
std::vector< bool > floatingIsRedemptionFlow
std::vector< Real > fixedNominal
std::vector< Date > fixedResetDates
std::vector< bool > fixedIsRedemptionFlow
std::vector< Real > floatingNominal
void validate() const override
std::vector< Real > floatingCoupons
std::vector< Real > fixedRate
std::vector< Time > floatingAccrualTimes
std::vector< Real > fixedCoupons
std::vector< Date > floatingPayDates
Results from nonstandard swap calculation
std::vector< Real > gearing_
const std::vector< Real > & fixedNominal() const
DayCounter floatingDayCount_
std::vector< Real > fixedRate_
const DayCounter & fixedDayCount() const
Schedule floatingSchedule_
BusinessDayConvention paymentConvention() const
std::vector< Real > fixedNominal_
const Schedule & fixedSchedule() const
DayCounter fixedDayCount_
const Leg & floatingLeg() const
std::vector< Real > floatingNominal_
const Schedule & floatingSchedule() const
ext::shared_ptr< IborIndex > iborIndex_
bool singleSpreadAndGearing_
const bool finalCapitalExchange_
const std::vector< Real > & fixedRate() const
const std::vector< Real > & gearings() const
const bool intermediateCapitalExchange_
std::vector< Spread > spread_
const ext::shared_ptr< IborIndex > & iborIndex() const
const std::vector< Spread > & spreads() const
const DayCounter & floatingDayCount() const
void setupArguments(PricingEngine::arguments *args) const override
BusinessDayConvention paymentConvention_
const Leg & fixedLeg() const
void setupExpired() const override
void fetchResults(const PricingEngine::results *) const override
const std::vector< Real > & floatingNominal() const
#define QL_REQUIRE(condition, message)
throw an error if the given pre-condition is not verified
Fixed-rate vs floating-rate swap.
BusinessDayConvention
Business Day conventions.
Real Spread
spreads on interest rates
const boost::none_t & nullopt
std::vector< ext::shared_ptr< CashFlow > > Leg
Sequence of cash-flows.
Maps optional to either the boost or std implementation.