25#ifndef quantext_tenor_basis_swap_hpp
26#define quantext_tenor_basis_swap_hpp
28#include <ql/indexes/iborindex.hpp>
29#include <ql/instruments/swap.hpp>
48 DateGeneration::Rule rule = DateGeneration::Backward,
bool includeSpread =
false,
51 const bool telescopicValueDates =
false);
57 const bool telescopicValueDates =
false);
62 const bool telescopicValueDates =
false);
71 const QuantLib::ext::shared_ptr<IborIndex>&
payIndex()
const;
76 const QuantLib::ext::shared_ptr<IborIndex>&
recIndex()
const;
96 void fetchResults(
const PricingEngine::results*)
const override;
132 void reset()
override;
140 QL_REQUIRE(
nominals_.size() == 1,
"varying nominals");
std::vector< Spread > fairSpread
Single currency tenor basis swap.
QuantLib::ext::shared_ptr< IborIndex > payIndex_
const QuantLib::ext::shared_ptr< IborIndex > & recIndex() const
bool telescopicValueDates_
QuantLib::ext::shared_ptr< IborIndex > recIndex_
const Leg & payLeg() const
Rate fairPayLegSpread() const
const Period & payFrequency() const
bool includeSpread() const
const Period & recFrequency() const
const Schedule & recSchedule() const
std::vector< Spread > fairSpread_
Calendar recIndexCalendar_
Spread fairRecLegSpread() const
QuantExt::SubPeriodsCoupon1::Type type() const
const Schedule & paySchedule() const
const std::vector< Real > & nominals() const
const Leg & recLeg() const
const QuantLib::ext::shared_ptr< IborIndex > & payIndex() const
void setupExpired() const override
void fetchResults(const PricingEngine::results *) const override
Calendar payIndexCalendar_
QuantExt::SubPeriodsCoupon1::Type type_
std::vector< Real > nominals_
Coupon with a number of sub-periods.