30#include <ql/termstructures/volatility/optionlet/optionletvolatilitystructure.hpp>
31#include <ql/termstructures/volatility/optionlet/strippedoptionlet.hpp>
52 QuantLib::Handle<QuantLib::YieldTermStructure> discountCurve,
const QuantLib::ext::shared_ptr<IborIndex> sourceIndex,
53 const QuantLib::ext::shared_ptr<IborIndex> targetIndex,
54 const std::map<std::string, std::pair<QuantLib::ext::shared_ptr<ore::data::CapFloorVolCurve>,
55 std::pair<std::string, QuantLib::Period>>>& requiredCapFloorVolCurves,
70 QuantLib::ext::shared_ptr<QuantLib::OptionletVolatilityStructure>
capletVol_;
75 QuantLib::ext::shared_ptr<QuantLib::IborIndex> iborIndex,
76 QuantLib::Handle<QuantLib::YieldTermStructure> discountCurve, QuantLib::Real shift);
80 QuantLib::ext::shared_ptr<QuantLib::IborIndex> iborIndex,
81 QuantLib::Handle<QuantLib::YieldTermStructure> discountCurve, QuantLib::Real shift);
85 QuantLib::ext::shared_ptr<QuantLib::IborIndex> iborIndex,
86 QuantLib::Handle<QuantLib::YieldTermStructure> discountCurve, QuantLib::Real shift);
90 QuantLib::ext::shared_ptr<QuantLib::IborIndex> iborIndex,
91 QuantLib::Handle<QuantLib::YieldTermStructure> discountCurve, QuantLib::Real shift);
94 QuantLib::ext::shared_ptr<QuantExt::CapFloorTermVolSurface>
98 QuantLib::ext::shared_ptr<QuantExt::CapFloorTermVolCurve>
104 const QuantLib::ext::shared_ptr<IborIndex>& targetIndex,
105 const std::map<std::string, std::pair<QuantLib::ext::shared_ptr<ore::data::CapFloorVolCurve>,
106 std::pair<std::string, QuantLib::Period>>>& requiredCapFloorVolCurves);
115 QuantLib::ext::shared_ptr<QuantLib::StrippedOptionlet>
116 transform(
const QuantLib::Date& asof, std::vector<QuantLib::Date> dates,
117 const std::vector<QuantLib::Volatility>& volatilities, QuantLib::Natural settleDays,
119 QuantLib::ext::shared_ptr<QuantLib::IborIndex> iborIndex,
const QuantLib::DayCounter& dc,
120 QuantLib::VolatilityType type, QuantLib::Real displacement)
const;
124 QuantLib::ext::shared_ptr<QuantLib::IborIndex> iborIndex,
const vector<Period>& configTenors);
128 const QuantLib::ext::shared_ptr<CapFloorVolatilityCurveConfig> config,
129 const QuantLib::ext::shared_ptr<IborIndex>& iborIndex);
Real shiftQuote(const QuantLib::Date &asof, CapFloorVolatilityCurveConfig &config, const Loader &loader) const
Get a shift quote value from the configured quotes.
CapFloorVolCurve(const QuantLib::Date &asof, const CapFloorVolatilityCurveSpec &spec, const Loader &loader, const CurveConfigurations &curveConfigs, QuantLib::ext::shared_ptr< QuantLib::IborIndex > iborIndex, QuantLib::Handle< QuantLib::YieldTermStructure > discountCurve, const QuantLib::ext::shared_ptr< IborIndex > sourceIndex, const QuantLib::ext::shared_ptr< IborIndex > targetIndex, const std::map< std::string, std::pair< QuantLib::ext::shared_ptr< ore::data::CapFloorVolCurve >, std::pair< std::string, QuantLib::Period > > > &requiredCapFloorVolCurves, const bool buildCalibrationInfo)
Detailed constructor.
QuantLib::ext::shared_ptr< IrVolCalibrationInfo > calibrationInfo_
QuantLib::ext::shared_ptr< QuantLib::StrippedOptionlet > transform(const QuantExt::OptionletStripper &os) const
Transform QuantExt::OptionletStripper to QuantLib::StrippedOptionlet.
QuantLib::ext::shared_ptr< QuantExt::CapFloorTermVolSurface > capSurface(const QuantLib::Date &asof, CapFloorVolatilityCurveConfig &config, const Loader &loader) const
Build a cap floor term volatility surface.
CapFloorVolCurve()
Default constructor.
void buildCalibrationInfo(const Date &asof, const CurveConfigurations &curveConfigs, const QuantLib::ext::shared_ptr< CapFloorVolatilityCurveConfig > config, const QuantLib::ext::shared_ptr< IborIndex > &iborIndex)
Build calibration info.
QuantLib::ext::shared_ptr< IrVolCalibrationInfo > calibrationInfo() const
QuantLib::ext::shared_ptr< QuantExt::CapFloorTermVolCurve > atmCurve(const QuantLib::Date &asof, CapFloorVolatilityCurveConfig &config, const Loader &loader) const
Build an ATM cap floor term volatility curve.
QuantLib::ext::shared_ptr< QuantLib::StrippedOptionlet > transform(const QuantLib::Date &asof, std::vector< QuantLib::Date > dates, const std::vector< QuantLib::Volatility > &volatilities, QuantLib::Natural settleDays, const QuantLib::Calendar &cal, QuantLib::BusinessDayConvention bdc, QuantLib::ext::shared_ptr< QuantLib::IborIndex > iborIndex, const QuantLib::DayCounter &dc, QuantLib::VolatilityType type, QuantLib::Real displacement) const
Create a stripped optionlet curve from ATM optionlet dates and optionlet vols.
void termOptSurface(const QuantLib::Date &asof, CapFloorVolatilityCurveConfig &config, const Loader &loader, QuantLib::ext::shared_ptr< QuantLib::IborIndex > iborIndex, QuantLib::Handle< QuantLib::YieldTermStructure > discountCurve, QuantLib::Real shift)
Build optionlet surface from term vol.
CapFloorVolatilityCurveSpec spec_
void optOptSurface(const QuantLib::Date &asof, CapFloorVolatilityCurveConfig &config, const Loader &loader, QuantLib::ext::shared_ptr< QuantLib::IborIndex > iborIndex, QuantLib::Handle< QuantLib::YieldTermStructure > discountCurve, QuantLib::Real shift)
Build optionlet surface from optionlet vol.
const CapFloorVolatilityCurveSpec & spec() const
The cap floor curve specification.
void termAtmOptCurve(const QuantLib::Date &asof, CapFloorVolatilityCurveConfig &config, const Loader &loader, QuantLib::ext::shared_ptr< QuantLib::IborIndex > iborIndex, QuantLib::Handle< QuantLib::YieldTermStructure > discountCurve, QuantLib::Real shift)
Build ATM optionlet curve from term vol.
void optAtmOptCurve(const QuantLib::Date &asof, CapFloorVolatilityCurveConfig &config, const Loader &loader, QuantLib::ext::shared_ptr< QuantLib::IborIndex > iborIndex, QuantLib::Handle< QuantLib::YieldTermStructure > discountCurve, QuantLib::Real shift)
Build ATM optionlet curve from optionlet vol.
QuantLib::ext::shared_ptr< QuantLib::OptionletVolatilityStructure > capletVol_
const QuantLib::ext::shared_ptr< QuantLib::OptionletVolatilityStructure > & capletVolStructure() const
The result of building the optionlet structure that has been configured.
vector< Date > populateFixingDates(const QuantLib::Date &asof, CapFloorVolatilityCurveConfig &config, QuantLib::ext::shared_ptr< QuantLib::IborIndex > iborIndex, const vector< Period > &configTenors)
Generate fixing days from end date for optionlet vol.
void buildProxyCurve(const CapFloorVolatilityCurveConfig &config, const QuantLib::ext::shared_ptr< IborIndex > &sourceIndex, const QuantLib::ext::shared_ptr< IborIndex > &targetIndex, const std::map< std::string, std::pair< QuantLib::ext::shared_ptr< ore::data::CapFloorVolCurve >, std::pair< std::string, QuantLib::Period > > > &requiredCapFloorVolCurves)
Build proxy curve.
Cap/Floor Volatility curve description.
Container class for all Curve Configurations.
Market data loader base class.
Curve configuration repository.
Curve requirements specification.
Market Datum Loader Interface.
Serializable Credit Default Swap.
vector< string > curveConfigs
a container holding information on calibration results during the t0 market build