27#ifndef quantlib_coupon_pricer_hpp
28#define quantlib_coupon_pricer_hpp
41 class FloatingRateCoupon;
182 const ext::shared_ptr<FloatingRateCouponPricer>&);
186 const std::vector<ext::shared_ptr<FloatingRateCouponPricer> >&);
191 const ext::shared_ptr<FloatingRateCouponPricer>&,
192 const ext::shared_ptr<FloatingRateCouponPricer>&);
196 const ext::shared_ptr<FloatingRateCouponPricer>&,
197 const ext::shared_ptr<FloatingRateCouponPricer>&,
198 const ext::shared_ptr<FloatingRateCouponPricer>&);
202 const ext::shared_ptr<FloatingRateCouponPricer>&,
203 const ext::shared_ptr<FloatingRateCouponPricer>&,
204 const ext::shared_ptr<FloatingRateCouponPricer>&,
205 const ext::shared_ptr<FloatingRateCouponPricer>&);
Base class for cash flows.
Real capletPrice(Rate effectiveCap) const override
Rate floorletRate(Rate effectiveFloor) const override
const Handle< Quote > correlation_
BlackIborCouponPricer(const Handle< OptionletVolatilityStructure > &v=Handle< OptionletVolatilityStructure >(), const TimingAdjustment timingAdjustment=Black76, Handle< Quote > correlation=Handle< Quote >(ext::shared_ptr< Quote >(new SimpleQuote(1.0))), const ext::optional< bool > useIndexedCoupon=ext::nullopt)
void initialize(const FloatingRateCoupon &coupon) override
virtual Rate adjustedFixing(Rate fixing=Null< Rate >()) const
Real optionletPrice(Option::Type optionType, Real effStrike) const
const TimingAdjustment timingAdjustment_
Real optionletRate(Option::Type optionType, Real effStrike) const
Rate swapletRate() const override
Real floorletPrice(Rate effectiveFloor) const override
Real swapletPrice() const override
Rate capletRate(Rate effectiveCap) const override
base pricer for vanilla CMS coupons
Handle< SwaptionVolatilityStructure > swaptionVol_
void setSwaptionVolatility(const Handle< SwaptionVolatilityStructure > &v=Handle< SwaptionVolatilityStructure >())
CmsCouponPricer(Handle< SwaptionVolatilityStructure > v=Handle< SwaptionVolatilityStructure >())
Handle< SwaptionVolatilityStructure > swaptionVolatility() const
base floating-rate coupon class
generic pricer for floating-rate coupons
virtual Real capletPrice(Rate effectiveCap) const =0
virtual Real floorletPrice(Rate effectiveFloor) const =0
virtual Rate capletRate(Rate effectiveCap) const =0
virtual Rate floorletRate(Rate effectiveFloor) const =0
virtual Real swapletPrice() const =0
virtual Rate swapletRate() const =0
virtual void initialize(const FloatingRateCoupon &coupon)=0
~FloatingRateCouponPricer() override=default
Shared handle to an observable.
Coupon paying a Libor-type index
base pricer for capped/floored Ibor coupons
void initializeCachedData(const IborCoupon &coupon) const
void initialize(const FloatingRateCoupon &coupon) override
Handle< OptionletVolatilityStructure > capletVolatility() const
Handle< OptionletVolatilityStructure > capletVol_
const IborCoupon * coupon_
Time spanningTimeIndexMaturity_
bool useIndexedCoupon() const
void setCapletVolatility(const Handle< OptionletVolatilityStructure > &v=Handle< OptionletVolatilityStructure >())
ext::shared_ptr< IborIndex > index_
virtual void setMeanReversion(const Handle< Quote > &)=0
virtual ~MeanRevertingPricer()=default
virtual Real meanReversion() const =0
template class providing a null value for a given type.
Object that notifies its changes to a set of observers.
Object that gets notified when a given observable changes.
Size unregisterWith(const ext::shared_ptr< Observable > &)
std::pair< iterator, bool > registerWith(const ext::shared_ptr< Observable > &)
market element returning a stored value
#define QL_REQUIRE(condition, message)
throw an error if the given pre-condition is not verified
Real Time
continuous quantity with 1-year units
Real Spread
spreads on interest rates
base class for Inter-Bank-Offered-Rate indexes
const boost::none_t & nullopt
void setCouponPricers(const Leg &leg, const std::vector< ext::shared_ptr< FloatingRateCouponPricer > > &pricers)
void setCouponPricer(const Leg &leg, const ext::shared_ptr< FloatingRateCouponPricer > &pricer)
std::vector< ext::shared_ptr< CashFlow > > Leg
Sequence of cash-flows.
Maps optional to either the boost or std implementation.
optionlet (caplet/floorlet) volatility structure
ext::shared_ptr< BlackVolTermStructure > v
Swaption volatility structure.