24#ifndef quantlib_lineartsr_pricer_hpp
25#define quantlib_lineartsr_pricer_hpp
37 class YieldTermStructure;
95 const Real lowerRateBound,
96 const Real upperRateBound) {
115 const Real lowerRateBound,
116 const Real upperRateBound) {
135 const Real lowerRateBound,
136 const Real upperRateBound) {
166 ext::shared_ptr<Integrator> integrator = ext::shared_ptr<Integrator>());
208 const Real targetPrice)
221 Real referenceStrike)
const;
223 Real referenceStrike)
const;
241 ext::shared_ptr<FixedVsFloatingSwap>
swap_;
base pricer for vanilla CMS coupons
base floating-rate coupon class
Shared handle to an observable.
PriceHelper(const SmileSection *section, const Option::Type type, const Real targetPrice)
const SmileSection * section_
Real operator()(Real strike) const
VegaRatioHelper(const SmileSection *section, const Real targetVega)
const SmileSection * section_
Real operator()(Real strike) const
const CmsCoupon * coupon_
Real couponDiscountRatio_
void setMeanReversion(const Handle< Quote > &meanReversion) override
Real capletPrice(Rate effectiveCap) const override
Rate floorletRate(Rate effectiveFloor) const override
Handle< YieldTermStructure > discountCurve_
Real singularTerms(Option::Type type, Real strike) const
Real strikeFromPrice(Real price, Option::Type optionType, Real referenceStrike) const
Handle< Quote > meanReversion_
ext::shared_ptr< SmileSection > smileSection_
void initialize(const FloatingRateCoupon &coupon) override
ext::shared_ptr< Integrator > integrator_
DayCounter volDayCounter_
ext::shared_ptr< SwapIndex > swapIndex_
static const Real defaultLowerBound
Real strikeFromVegaRatio(Real ratio, Option::Type optionType, Real referenceStrike) const
static const Real defaultUpperBound
ext::shared_ptr< FixedVsFloatingSwap > swap_
Handle< YieldTermStructure > couponDiscountCurve_
Real GsrG(const Date &d) const
Real discountCurvePaymentDiscount_
Rate swapletRate() const override
Real floorletPrice(Rate effectiveFloor) const override
Real meanReversion() const override
Handle< YieldTermStructure > forwardCurve_
Real swapletPrice() const override
Real optionletPrice(Option::Type optionType, Real strike) const
Rate capletRate(Rate effectiveCap) const override
Size unregisterWith(const ext::shared_ptr< Observable > &)
std::pair< iterator, bool > registerWith(const ext::shared_ptr< Observable > &)
interest rate volatility smile section
virtual Real vega(Rate strike, Real discount=1.0) const
virtual Real optionPrice(Rate strike, Option::Type type=Option::Call, Real discount=1.0) const
Fixed-rate vs floating-rate swap.
Integrators base class definition.
Payoffs for various options.
Smile section base class.
Settings & withVegaRatio(const Real vegaRatio=0.01)
Settings & withPriceThreshold(const Real priceThreshold=1.0E-8)
Settings & withBSStdDevs(const Real stdDevs=3.0)
Settings & withPriceThreshold(const Real priceThreshold, const Real lowerRateBound, const Real upperRateBound)
Settings & withRateBound(const Real lowerRateBound=defaultLowerBound, const Real upperRateBound=defaultUpperBound)
Settings & withVegaRatio(const Real vegaRatio, const Real lowerRateBound, const Real upperRateBound)
Settings & withBSStdDevs(const Real stdDevs, const Real lowerRateBound, const Real upperRateBound)