25#include <ql/instruments/inflationcapfloor.hpp>
26#include <ql/option.hpp>
27#include <ql/termstructures/volatility/inflation/yoyinflationoptionletvolatilitystructure.hpp>
32class YoYInflationIndex;
50 const Handle<QuantLib::YoYOptionletVolatilitySurface>& vol,
51 const Handle<YieldTermStructure>& discountCurve);
53 ext::shared_ptr<QuantLib::YoYInflationIndex>
index()
const {
return index_; }
56 void setVolatility(
const Handle<QuantLib::YoYOptionletVolatilitySurface>& vol);
62 virtual Real
optionletImpl(Option::Type type, Rate strike, Rate forward, Real stdDev, Real d)
const = 0;
63 virtual Real
optionletVegaImpl(Option::Type type, Rate strike, Rate forward, Real stdDev, Real sqrtTime,
66 ext::shared_ptr<QuantLib::YoYInflationIndex>
index_;
75 const Handle<QuantLib::YoYOptionletVolatilitySurface>&,
76 const Handle<YieldTermStructure>& discountCurve);
79 virtual Real
optionletImpl(Option::Type, Real strike, Real forward, Real stdDev, Real d)
const override;
80 virtual Real
optionletVegaImpl(Option::Type type, Rate strike, Rate forward, Real stdDev, Real sqrtTime,
81 Real d)
const override;
88 const Handle<QuantLib::YoYOptionletVolatilitySurface>&,
89 const Handle<YieldTermStructure>& discountCurve);
92 virtual Real
optionletImpl(Option::Type, Real strike, Real forward, Real stdDev, Real d)
const override;
93 virtual Real
optionletVegaImpl(Option::Type type, Rate strike, Rate forward, Real stdDev, Real sqrtTime,
94 Real d)
const override;
101 const Handle<QuantLib::YoYOptionletVolatilitySurface>&,
102 const Handle<YieldTermStructure>& discountCurve);
105 virtual Real
optionletImpl(Option::Type, Real strike, Real forward, Real stdDev, Real d)
const override;
106 virtual Real
optionletVegaImpl(Option::Type type, Rate strike, Rate forward, Real stdDev, Real sqrtTime,
107 Real d)
const override;
Unit Displaced Black-formula inflation cap/floor engine (standalone, i.e. no coupon pricer)
virtual Real optionletImpl(Option::Type, Real strike, Real forward, Real stdDev, Real d) const override
virtual Real optionletVegaImpl(Option::Type type, Rate strike, Rate forward, Real stdDev, Real sqrtTime, Real d) const override
Black-formula inflation cap/floor engine (standalone, i.e. no coupon pricer)
virtual Real optionletImpl(Option::Type, Real strike, Real forward, Real stdDev, Real d) const override
virtual Real optionletVegaImpl(Option::Type type, Rate strike, Rate forward, Real stdDev, Real sqrtTime, Real d) const override
Base YoY inflation cap/floor engine.
virtual Real optionletVegaImpl(Option::Type type, Rate strike, Rate forward, Real stdDev, Real sqrtTime, Real d) const =0
Handle< YieldTermStructure > discountCurve_
void calculate() const override
virtual Real optionletImpl(Option::Type type, Rate strike, Rate forward, Real stdDev, Real d) const =0
descendents only need to implement this
void setVolatility(const Handle< QuantLib::YoYOptionletVolatilitySurface > &vol)
Handle< QuantLib::YoYOptionletVolatilitySurface > volatility() const
ext::shared_ptr< QuantLib::YoYInflationIndex > index() const
ext::shared_ptr< QuantLib::YoYInflationIndex > index_
Handle< QuantLib::YoYOptionletVolatilitySurface > volatility_
Unit Displaced Black-formula inflation cap/floor engine (standalone, i.e. no coupon pricer)
virtual Real optionletImpl(Option::Type, Real strike, Real forward, Real stdDev, Real d) const override
virtual Real optionletVegaImpl(Option::Type type, Rate strike, Rate forward, Real stdDev, Real sqrtTime, Real d) const override