28#include <ql/exercise.hpp>
58 const std::string&
correlationCurve =
"", std::string calendarStr = std::string(),
108 QuantLib::Exercise::Type
exerciseType = QuantLib::Exercise::Type::European,
109 std::string calendarStr = std::string(), QuantLib::Natural
priority = 0)
136 QuantLib::Exercise::Type
exerciseType = QuantLib::Exercise::Type::European,
137 std::string calendarStr = std::string(), QuantLib::Natural
priority = 0);
142 QuantLib::Exercise::Type
exerciseType = QuantLib::Exercise::Type::European,
143 std::string calendarStr = std::string(), QuantLib::Natural
priority = 0);
147 const std::string&
quote()
const;
167 QuantLib::Exercise::Type
exerciseType = QuantLib::Exercise::Type::European,
175 QuantLib::Exercise::Type
exerciseType = QuantLib::Exercise::Type::European,
181 const std::vector<std::string>&
quotes()
const;
207 QuantLib::Exercise::Type
exerciseType = QuantLib::Exercise::Type::European,
208 std::string calendarStr = std::string(), QuantLib::Natural
priority = 0);
215 QuantLib::Exercise::Type
exerciseType = QuantLib::Exercise::Type::European,
216 std::string calendarStr = std::string(), QuantLib::Natural
priority = 0);
231 virtual std::vector<std::pair<std::string, std::string>>
quotes()
const = 0;
257 QuantLib::Exercise::Type
exerciseType = QuantLib::Exercise::Type::European,
258 std::string calendarStr = std::string(), QuantLib::Natural
priority = 0);
266 QuantLib::Exercise::Type
exerciseType = QuantLib::Exercise::Type::European,
267 std::string calendarStr = std::string(), QuantLib::Natural
priority = 0);
271 const std::vector<std::string>&
strikes()
const;
272 const std::vector<std::string>&
expiries()
const;
277 std::vector<std::pair<std::string, std::string>>
quotes()
const override;
298 QuantLib::Exercise::Type
exerciseType = QuantLib::Exercise::Type::European,
299 std::string calendarStr = std::string(), QuantLib::Natural
priority = 0);
309 QuantLib::Exercise::Type
exerciseType = QuantLib::Exercise::Type::European,
310 std::string calendarStr = std::string(), QuantLib::Natural
priority = 0);
315 const std::string&
atmType()
const;
316 const std::vector<std::string>&
putDeltas()
const;
317 const std::vector<std::string>&
callDeltas()
const;
318 const std::vector<std::string>&
expiries()
const;
325 std::vector<std::pair<std::string, std::string>>
quotes()
const override;
351 QuantLib::Exercise::Type
exerciseType = QuantLib::Exercise::Type::European,
352 std::string calendarStr = std::string(), QuantLib::Natural
priority = 0);
361 QuantLib::Exercise::Type
exerciseType = QuantLib::Exercise::Type::European,
362 std::string calendarStr = std::string(), QuantLib::Natural
priority = 0);
368 const std::vector<std::string>&
expiries()
const;
374 std::vector<std::pair<std::string, std::string>>
quotes()
const override;
397 QuantLib::Exercise::Type
exerciseType = QuantLib::Exercise::Type::European,
398 std::string calendarStr = std::string(), QuantLib::Natural
priority = 0);
406 QuantLib::Real
beta = 0.0,
const std::string&
maxTenor =
"",
408 QuantLib::Exercise::Type
exerciseType = QuantLib::Exercise::Type::European,
409 std::string calendarStr = std::string(), QuantLib::Natural
priority = 0);
417 QuantLib::Real
beta()
const;
418 const std::string&
maxTenor()
const;
423 std::vector<std::pair<std::string, std::string>>
quotes()
const override;
void fromXML(ore::data::XMLNode *node) override
CDSProxyVolatilityConfig(const std::string &cdsVolatilityCurve)
std::string cdsVolatilityCurve_
ore::data::XMLNode * toXML(ore::data::XMLDocument &doc) const override
const std::string & cdsVolatilityCurve() const
CDSProxyVolatilityConfig()
void fromXML(ore::data::XMLNode *node) override
ore::data::XMLNode * toXML(ore::data::XMLDocument &doc) const override
ConstantVolatilityConfig(const std::string "e, MarketDatum::QuoteType quoteType=MarketDatum::QuoteType::RATE_LNVOL, QuantLib::Exercise::Type exerciseType=QuantLib::Exercise::Type::European, std::string calendarStr=std::string(), QuantLib::Natural priority=0)
Explicit constructor.
ConstantVolatilityConfig(MarketDatum::QuoteType quoteType=MarketDatum::QuoteType::RATE_LNVOL, QuantLib::Exercise::Type exerciseType=QuantLib::Exercise::Type::European, std::string calendarStr=std::string(), QuantLib::Natural priority=0)
Default constructor.
const std::string & quote() const
QuoteType
Supported market quote types.
const std::string & correlationCurve() const
std::string proxyVolatilityCurve_
const std::string & fxVolatilityCurve() const
std::string correlationCurve_
void fromXML(ore::data::XMLNode *node) override
const std::string & proxyVolatilityCurve() const
ProxyVolatilityConfig(const std::string &proxyVolatilityCurve, const std::string &fxVolatilityCurve="", const std::string &correlationCurve="", std::string calendarStr=std::string(), QuantLib::Natural priority=0)
ore::data::XMLNode * toXML(ore::data::XMLDocument &doc) const override
std::string fxVolatilityCurve_
const MarketDatum::QuoteType & quoteType() const
MarketDatum::QuoteType quoteType_
QuoteBasedVolatilityConfig(MarketDatum::QuoteType quoteType=MarketDatum::QuoteType::RATE_LNVOL, QuantLib::Exercise::Type exerciseType=QuantLib::Exercise::Type::European, std::string calendarStr=std::string(), QuantLib::Natural priority=0)
Default constructor.
void fromBaseNode(ore::data::XMLNode *node)
void toBaseNode(ore::data::XMLDocument &doc, ore::data::XMLNode *node) const
QuantLib::Exercise::Type exerciseType_
const QuantLib::Exercise::Type & exerciseType() const
std::vector< std::pair< std::string, std::string > > quotes() const override
const std::string & basePriceCurveId() const
VolatilityApoFutureSurfaceConfig(const std::vector< std::string > &moneynessLevels, const std::string &baseVolatilityId, const std::string &basePriceCurveId, const std::string &baseConventionsId, const std::string &timeInterpolation, const std::string &strikeInterpolation, bool extrapolation, const std::string &timeExtrapolation, const std::string &strikeExtrapolation, QuantLib::Real beta=0.0, const std::string &maxTenor="", MarketDatum::QuoteType quoteType=MarketDatum::QuoteType::RATE_LNVOL, QuantLib::Exercise::Type exerciseType=QuantLib::Exercise::Type::European, std::string calendarStr=std::string(), QuantLib::Natural priority=0)
Explicit constructor.
void fromXML(ore::data::XMLNode *node) override
const std::string & baseVolatilityId() const
std::string basePriceCurveId_
ore::data::XMLNode * toXML(ore::data::XMLDocument &doc) const override
const std::string & baseConventionsId() const
VolatilityApoFutureSurfaceConfig(MarketDatum::QuoteType quoteType=MarketDatum::QuoteType::RATE_LNVOL, QuantLib::Exercise::Type exerciseType=QuantLib::Exercise::Type::European, std::string calendarStr=std::string(), QuantLib::Natural priority=0)
Default constructor.
std::string baseConventionsId_
const std::string & maxTenor() const
std::string baseVolatilityId_
QuantLib::Real beta() const
const std::vector< std::string > & moneynessLevels() const
std::vector< std::string > moneynessLevels_
VolatilityConfigBuilder()
const std::vector< QuantLib::ext::shared_ptr< VolatilityConfig > > & volatilityConfig()
void fromXML(XMLNode *node) override
std::vector< QuantLib::ext::shared_ptr< VolatilityConfig > > volatilityConfig_
XMLNode * toXML(ore::data::XMLDocument &doc) const override
void loadVolatiltyConfigs(XMLNode *node)
QuantLib::Natural priority() const
QuantLib::Natural priority_
Calendar calendar() const
void fromXMLNode(ore::data::XMLNode *node)
void toXMLNode(XMLDocument &doc, XMLNode *node) const
const std::string & interpolation() const
bool enforceMontoneVariance_
void fromXML(ore::data::XMLNode *node) override
std::vector< std::string > quotes_
const std::string & extrapolation() const
VolatilityCurveConfig(MarketDatum::QuoteType quoteType=MarketDatum::QuoteType::RATE_LNVOL, QuantLib::Exercise::Type exerciseType=QuantLib::Exercise::Type::European, bool enforceMontoneVariance=true, std::string calendarStr=std::string(), QuantLib::Natural priority=0)
Default constructor.
std::string interpolation_
VolatilityCurveConfig(const std::vector< std::string > "es, const std::string &interpolation, const std::string &extrapolation, MarketDatum::QuoteType quoteType=MarketDatum::QuoteType::RATE_LNVOL, QuantLib::Exercise::Type exerciseType=QuantLib::Exercise::Type::European, bool enforceMontoneVariance=true, std::string calendarStr=std::string(), QuantLib::Natural priority=0)
Explicit constructor.
ore::data::XMLNode * toXML(ore::data::XMLDocument &doc) const override
const std::vector< std::string > & quotes() const
std::string extrapolation_
bool enforceMontoneVariance() const
const std::string & deltaType() const
std::vector< std::pair< std::string, std::string > > quotes() const override
bool futurePriceCorrection() const
const std::vector< std::string > & putDeltas() const
std::string atmDeltaType_
const std::vector< std::string > & callDeltas() const
void fromXML(ore::data::XMLNode *node) override
bool futurePriceCorrection_
const std::vector< std::string > & expiries() const
const std::string & atmDeltaType() const
ore::data::XMLNode * toXML(ore::data::XMLDocument &doc) const override
std::vector< std::string > expiries_
VolatilityDeltaSurfaceConfig(MarketDatum::QuoteType quoteType=MarketDatum::QuoteType::RATE_LNVOL, QuantLib::Exercise::Type exerciseType=QuantLib::Exercise::Type::European, std::string calendarStr=std::string(), QuantLib::Natural priority=0)
Default constructor.
std::vector< std::string > putDeltas_
const std::string & atmType() const
std::vector< std::string > callDeltas_
VolatilityDeltaSurfaceConfig(const std::string &deltaType, const std::string &atmType, const std::vector< std::string > &putDeltas, const std::vector< std::string > &callDeltas, const std::vector< std::string > &expiries, const std::string &timeInterpolation, const std::string &strikeInterpolation, bool extrapolation, const std::string &timeExtrapolation, const std::string &strikeExtrapolation, const std::string &atmDeltaType="", bool futurePriceCorrection=true, MarketDatum::QuoteType quoteType=MarketDatum::QuoteType::RATE_LNVOL, QuantLib::Exercise::Type exerciseType=QuantLib::Exercise::Type::European, std::string calendarStr=std::string(), QuantLib::Natural priority=0)
Explicit constructor.
std::string moneynessType_
std::vector< std::pair< std::string, std::string > > quotes() const override
bool futurePriceCorrection() const
VolatilityMoneynessSurfaceConfig(MarketDatum::QuoteType quoteType=MarketDatum::QuoteType::RATE_LNVOL, QuantLib::Exercise::Type exerciseType=QuantLib::Exercise::Type::European, std::string calendarStr=std::string(), QuantLib::Natural priority=0)
Default constructor.
const std::string & moneynessType() const
void fromXML(ore::data::XMLNode *node) override
bool futurePriceCorrection_
const std::vector< std::string > & expiries() const
ore::data::XMLNode * toXML(ore::data::XMLDocument &doc) const override
std::vector< std::string > expiries_
VolatilityMoneynessSurfaceConfig(const std::string &moneynessType, const std::vector< std::string > &moneynessLevels, const std::vector< std::string > &expiries, const std::string &timeInterpolation, const std::string &strikeInterpolation, bool extrapolation, const std::string &timeExtrapolation, const std::string &strikeExtrapolation, bool futurePriceCorrection=true, MarketDatum::QuoteType quoteType=MarketDatum::QuoteType::RATE_LNVOL, QuantLib::Exercise::Type exerciseType=QuantLib::Exercise::Type::European, std::string calendarStr=std::string(), QuantLib::Natural priority=0)
Explicit constructor.
const std::vector< std::string > & moneynessLevels() const
std::vector< std::string > moneynessLevels_
std::vector< std::pair< std::string, std::string > > quotes() const override
std::vector< std::string > strikes_
void fromXML(ore::data::XMLNode *node) override
VolatilityStrikeSurfaceConfig(const std::vector< std::string > &strikes, const std::vector< std::string > &expiries, const std::string &timeInterpolation, const std::string &strikeInterpolation, bool extrapolation, const std::string &timeExtrapolation, const std::string &strikeExtrapolation, MarketDatum::QuoteType quoteType=MarketDatum::QuoteType::RATE_LNVOL, QuantLib::Exercise::Type exerciseType=QuantLib::Exercise::Type::European, std::string calendarStr=std::string(), QuantLib::Natural priority=0)
Explicit constructor.
const std::vector< std::string > & expiries() const
const std::vector< std::string > & strikes() const
ore::data::XMLNode * toXML(ore::data::XMLDocument &doc) const override
std::vector< std::string > expiries_
VolatilityStrikeSurfaceConfig(MarketDatum::QuoteType quoteType=MarketDatum::QuoteType::RATE_LNVOL, QuantLib::Exercise::Type exerciseType=QuantLib::Exercise::Type::European, std::string calendarStr=std::string(), QuantLib::Natural priority=0)
Default constructor.
const std::string & timeInterpolation() const
virtual std::vector< std::pair< std::string, std::string > > quotes() const =0
VolatilitySurfaceConfig(const std::string &timeInterpolation, const std::string &strikeInterpolation, bool extrapolation, const std::string &timeExtrapolation, const std::string &strikeExtrapolation, MarketDatum::QuoteType quoteType=MarketDatum::QuoteType::RATE_LNVOL, QuantLib::Exercise::Type exerciseType=QuantLib::Exercise::Type::European, std::string calendarStr=std::string(), QuantLib::Natural priority=0)
Explicit constructor.
void addNodes(ore::data::XMLDocument &doc, ore::data::XMLNode *node) const
bool extrapolation() const
VolatilitySurfaceConfig(MarketDatum::QuoteType quoteType=MarketDatum::QuoteType::RATE_LNVOL, QuantLib::Exercise::Type exerciseType=QuantLib::Exercise::Type::European, std::string calendarStr=std::string(), QuantLib::Natural priority=0)
Default constructor.
std::string timeExtrapolation_
std::string timeInterpolation_
const std::string & strikeInterpolation() const
const std::string & strikeExtrapolation() const
void fromNode(ore::data::XMLNode *node)
std::string strikeInterpolation_
const std::string & timeExtrapolation() const
std::string strikeExtrapolation_
Small XML Document wrapper class.
Base class for all serializable classes.
Market data representation.
bool operator<(const Dividend &d1, const Dividend &d2)
Serializable Credit Default Swap.