23#ifndef quantext_cpicouponpricer_hpp
24#define quantext_cpicouponpricer_hpp
26#include <ql/cashflows/cpicouponpricer.hpp>
27#include <ql/cashflows/inflationcouponpricer.hpp>
28#include <ql/option.hpp>
29#include <ql/termstructures/volatility/inflation/cpivolatilitystructure.hpp>
30#include <ql/termstructures/yield/flatforward.hpp>
31#include <ql/time/daycounters/actual365fixed.hpp>
32#include <ql/time/schedule.hpp>
41 InflationCashFlowPricer(
const Handle<QuantLib::CPIVolatilitySurface>& vol = Handle<QuantLib::CPIVolatilitySurface>(),
42 const Handle<YieldTermStructure>& yts = Handle<YieldTermStructure>());
54 virtual void update()
override { notifyObservers(); }
57 Handle<QuantLib::CPIVolatilitySurface>
vol_;
58 Handle<YieldTermStructure>
yts_;
59 QuantLib::ext::shared_ptr<PricingEngine>
engine_;
65 BlackCPICashFlowPricer(
const Handle<QuantLib::CPIVolatilitySurface>& vol = Handle<QuantLib::CPIVolatilitySurface>(),
66 const Handle<YieldTermStructure>& yts = Handle<YieldTermStructure>(),
67 const bool useLastFixing =
false);
74 const Handle<QuantLib::CPIVolatilitySurface>& vol = Handle<QuantLib::CPIVolatilitySurface>(),
75 const Handle<YieldTermStructure>& yts = Handle<YieldTermStructure>(),
76 const bool useLastFixing =
false);
82 const Handle<YieldTermStructure>& yts = Handle<YieldTermStructure>());
84 Handle<YieldTermStructure>
yieldCurve() {
return nominalTermStructure(); }
85 Handle<QuantLib::CPIVolatilitySurface>
volatility() {
return capletVolatility(); }
91 QuantLib::ext::shared_ptr<PricingEngine>
engine_;
97 BlackCPICouponPricer(
const Handle<QuantLib::CPIVolatilitySurface>& vol = Handle<QuantLib::CPIVolatilitySurface>(),
98 const Handle<YieldTermStructure>& yts = Handle<YieldTermStructure>(),
99 const bool useLastFixing =
false);
105 const Handle<QuantLib::CPIVolatilitySurface>& vol = Handle<QuantLib::CPIVolatilitySurface>(),
106 const Handle<YieldTermStructure>& yts = Handle<YieldTermStructure>(),
107 const bool useLastFixing =
false);
Bachelier CPI CashFlow Pricer.
Black CPI CashFlow Pricer.
QuantLib::ext::shared_ptr< PricingEngine > engine()
Handle< YieldTermStructure > yieldCurve()
QuantLib::ext::shared_ptr< PricingEngine > engine_
Handle< QuantLib::CPIVolatilitySurface > volatility()
Base class for CPI CashFLow and Coupon pricers.
Handle< YieldTermStructure > yts_
QuantLib::ext::shared_ptr< PricingEngine > engine()
Handle< YieldTermStructure > yieldCurve()
Handle< QuantLib::CPIVolatilitySurface > vol_
QuantLib::ext::shared_ptr< PricingEngine > engine_
Handle< QuantLib::CPIVolatilitySurface > volatility()
Inspectors.
virtual ~InflationCashFlowPricer()
virtual void update() override
CPI leg builder extending QuantLib's to handle caps and floors.