25#ifndef quantlib_makefixedbmaswap_hpp
26#define quantlib_makefixedbmaswap_hpp
28#include <ql/cashflows/averagebmacoupon.hpp>
29#include <ql/instruments/swap.hpp>
42 const Schedule& fixedSchedule, Rate
fixedRate,
const DayCounter& fixedDayCount,
44 const Schedule& bmaSchedule,
const QuantLib::ext::shared_ptr<BMAIndex>& bmaIndex,
45 const DayCounter& bmaDayCount);
67 void fetchResults(
const PricingEngine::results*)
const override;
80 void reset()
override;
88 MakeFixedBMASwap(
const Period& swapTenor,
const QuantLib::ext::shared_ptr<BMAIndex>& bmaIndex,
89 Rate fixedRate = Null<Rate>(),
const Period& forwardStart = 0 * Days);
92 operator QuantLib::ext::shared_ptr<FixedBMASwap>()
const;
141 QuantLib::ext::shared_ptr<PricingEngine>
engine_;
swap paying a fixed rate against BMA coupons
Type type() const
"payer" or "receiver" refer to the BMA leg
const Leg & bmaLeg() const
const Leg & fixedLeg() const
void fetchResults(const PricingEngine::results *) const override
MakeFixedBMASwap & withFixedLegNextToLastDate(const Date &d)
BusinessDayConvention fixedConvention_
MakeFixedBMASwap & withFixedLegTenor(const Period &t)
MakeFixedBMASwap & withPricingEngine(const QuantLib::ext::shared_ptr< PricingEngine > &engine)
Date fixedNextToLastDate_
MakeFixedBMASwap & withFixedLegRule(DateGeneration::Rule r)
DayCounter fixedDayCount_
MakeFixedBMASwap & withTerminationDate(const Date &)
MakeFixedBMASwap & withType(FixedBMASwap::Type type)
MakeFixedBMASwap & withFixedLegFirstDate(const Date &d)
MakeFixedBMASwap & withFixedLegDayCount(const DayCounter &dc)
MakeFixedBMASwap & withDiscountingTermStructure(const Handle< YieldTermStructure > &discountCurve)
DateGeneration::Rule bmaRule_
MakeFixedBMASwap & withFixedLegTerminationDateConvention(BusinessDayConvention bdc)
QuantLib::ext::shared_ptr< PricingEngine > engine_
BusinessDayConvention bmaTerminationDateConvention_
MakeFixedBMASwap & withSettlementDays(Natural settlementDays)
DateGeneration::Rule fixedRule_
MakeFixedBMASwap & withFixedLegConvention(BusinessDayConvention bdc)
MakeFixedBMASwap & withEffectiveDate(const Date &)
MakeFixedBMASwap & withNominal(Real n)
MakeFixedBMASwap & withFixedLegEndOfMonth(bool flag=true)
MakeFixedBMASwap & withBMALegTenor(const Period &tenor)
BusinessDayConvention fixedTerminationDateConvention_
QuantLib::ext::shared_ptr< BMAIndex > bmaIndex_
BusinessDayConvention bmaConvention_
MakeFixedBMASwap & receiveFixed(bool flag=true)
MakeFixedBMASwap & withFixedLegCalendar(const Calendar &cal)