24#ifndef quantext_optionletstripper2_hpp
25#define quantext_optionletstripper2_hpp
27#include <ql/termstructures/volatility/capfloor/capfloortermvolcurve.hpp>
45 OptionletStripper2(
const QuantLib::ext::shared_ptr<QuantExt::OptionletStripper>& optionletStripper,
46 const Handle<QuantLib::CapFloorTermVolCurve>& atmCapFloorTermVolCurve,
47 const Handle<YieldTermStructure>& discount = Handle<YieldTermStructure>(),
48 const VolatilityType type = ShiftedLognormal,
const Real
displacement = 0.0);
60 vector<Volatility>
spreadsVolImplied(
const Handle<YieldTermStructure>& discount)
const;
65 const QuantLib::ext::shared_ptr<QuantLib::CapFloor>&, Real targetValue,
66 const Handle<YieldTermStructure>& discount);
71 QuantLib::ext::shared_ptr<QuantLib::CapFloor>
cap_;
76 const QuantLib::ext::shared_ptr<QuantExt::OptionletStripper>
stripper_;
83 mutable vector<QuantLib::ext::shared_ptr<QuantLib::CapFloor> >
caps_;
Real operator()(Volatility spreadVol) const
const Handle< YieldTermStructure > discount_
QuantLib::ext::shared_ptr< SimpleQuote > spreadQuote_
QuantLib::ext::shared_ptr< QuantLib::CapFloor > cap_
void performCalculations() const override
const Real inputDisplacement_
vector< Real > atmCapFloorPrices() const
const Handle< QuantLib::CapFloorTermVolCurve > atmCapFloorTermVolCurve_
vector< Volatility > spreadsVolImplied(const Handle< YieldTermStructure > &discount) const
vector< Rate > atmCapFloorStrikes_
const QuantLib::ext::shared_ptr< QuantExt::OptionletStripper > stripper_
vector< Rate > atmCapFloorStrikes() const
vector< Volatility > spreadsVolImplied_
vector< QuantLib::ext::shared_ptr< QuantLib::CapFloor > > caps_
const VolatilityType inputVolatilityType_
vector< Real > atmCapFloorPrices_
vector< Volatility > spreadsVol() const
Real displacement() const override
Optionlet (caplet/floorlet) volatility strippers.