24#ifndef quantext_cpi_black_capfloor_engine_hpp
25#define quantext_cpi_black_capfloor_engine_hpp
27#include <ql/instruments/cpicapfloor.hpp>
28#include <ql/termstructures/volatility/inflation/cpivolatilitystructure.hpp>
29#include <ql/termstructures/yieldtermstructure.hpp>
36 CPICapFloorEngine(
const QuantLib::Handle<QuantLib::YieldTermStructure>& discountCurve,
37 const QuantLib::Handle<QuantLib::CPIVolatilitySurface>& surface,
38 const bool ttmFromLastAvailableFixing =
false);
44 void setVolatility(
const QuantLib::Handle<QuantLib::CPIVolatilitySurface>& surface);
47 virtual double optionPriceImpl(QuantLib::Option::Type type,
double forward,
double strike,
double stdDev,
double discount)
const = 0;
56 const QuantLib::Handle<QuantLib::CPIVolatilitySurface>& surface,
57 const bool ttmFromLastAvailableFixing =
false)
63 virtual double optionPriceImpl(QuantLib::Option::Type type,
double strike,
double forward,
double stdDev,
64 double discount)
const override;
virtual double optionPriceImpl(QuantLib::Option::Type type, double strike, double forward, double stdDev, double discount) const override
CPIBlackCapFloorEngine(const QuantLib::Handle< QuantLib::YieldTermStructure > &discountCurve, const QuantLib::Handle< QuantLib::CPIVolatilitySurface > &surface, const bool ttmFromLastAvailableFixing=false)
virtual ~CPIBlackCapFloorEngine()=default
Basse Class for Black / Bachelier CPI cap floor pricing engines.
QuantLib::Handle< QuantLib::CPIVolatilitySurface > volatilitySurface_
virtual double optionPriceImpl(QuantLib::Option::Type type, double forward, double strike, double stdDev, double discount) const =0
virtual void calculate() const override
QuantLib::Handle< QuantLib::YieldTermStructure > discountCurve_
void setVolatility(const QuantLib::Handle< QuantLib::CPIVolatilitySurface > &surface)
virtual ~CPICapFloorEngine()
bool ttmFromLastAvailableFixing_