25#ifndef quantext_sub_periods_swap_hpp
26#define quantext_sub_periods_swap_hpp
28#include <ql/indexes/iborindex.hpp>
29#include <ql/instruments/swap.hpp>
44 const Period& fixedTenor, Rate
fixedRate,
const Calendar& fixedCalendar,
45 const DayCounter& fixedDayCount, BusinessDayConvention fixedConvention,
const Period&
floatPayTenor,
46 const QuantLib::ext::shared_ptr<IborIndex>& iborIndex,
const DayCounter& floatingDayCount,
47 DateGeneration::Rule rule = DateGeneration::Backward,
60 const QuantLib::ext::shared_ptr<IborIndex>&
floatIndex()
const;
121 MakeSubPeriodsSwap(
const Period& swapTenor,
const QuantLib::ext::shared_ptr<IborIndex>& index,
122 Rate fixedRate,
const Period& floatPayTenor,
const Period& forwardStart = 0 * Days);
125 operator QuantLib::ext::shared_ptr<SubPeriodsSwap>()
const;
145 QuantLib::ext::shared_ptr<IborIndex>
index_;
163 QuantLib::ext::shared_ptr<PricingEngine>
engine_;
MakeSubPeriodsSwap & withFixedLegTenor(const Period &t)
MakeSubPeriodsSwap & withNominal(Real n)
MakeSubPeriodsSwap & withSettlementDays(Natural settlementDays)
BusinessDayConvention fixedConvention_
QuantExt::SubPeriodsCoupon1::Type subCouponsType_
DayCounter fixedDayCount_
MakeSubPeriodsSwap & withEffectiveDate(const Date &)
QuantLib::ext::shared_ptr< IborIndex > index_
MakeSubPeriodsSwap & withFixedLegConvention(BusinessDayConvention bdc)
MakeSubPeriodsSwap & withFixedLegRule(DateGeneration::Rule r)
MakeSubPeriodsSwap & withIsPayer(bool p)
QuantLib::ext::shared_ptr< PricingEngine > engine_
DayCounter floatDayCounter_
DateGeneration::Rule fixedRule_
MakeSubPeriodsSwap & withSubCouponsType(const QuantExt::SubPeriodsCoupon1::Type &st)
MakeSubPeriodsSwap & withPricingEngine(const QuantLib::ext::shared_ptr< PricingEngine > &engine)
MakeSubPeriodsSwap & withFixedLegDayCount(const DayCounter &dc)
MakeSubPeriodsSwap & withDiscountingTermStructure(const Handle< YieldTermStructure > &discountCurve)
MakeSubPeriodsSwap & withFixedLegCalendar(const Calendar &cal)
Single currency sub periods swap.
QuantLib::ext::shared_ptr< IborIndex > floatIndex_
const Leg & floatLeg() const
const Schedule & fixedSchedule() const
DayCounter fixedDayCount_
const Schedule & floatSchedule() const
const Period & floatPayTenor() const
DayCounter floatDayCount_
QuantExt::SubPeriodsCoupon1::Type type() const
const QuantLib::ext::shared_ptr< IborIndex > & floatIndex() const
const Leg & fixedLeg() const
QuantExt::SubPeriodsCoupon1::Type type_
Coupon with a number of sub-periods.