Logo
Reference manual - version qle_version
SabrParametricVolatility Class Referencefinal
Inheritance diagram for SabrParametricVolatility:

Classes

struct  CalibrationResult

Public Types

enum class  ModelVariant {
  Hagan2002Lognormal = 0 , Hagan2002Normal = 1 , Hagan2002NormalZeroBeta = 2 , Antonov2015FreeBoundaryNormal = 3 ,
  KienitzLawsonSwaynePde = 4 , FlochKennedy = 5
}
Public Types inherited from ParametricVolatility
enum class  MarketModelType { Black76 }
enum class  MarketQuoteType { Price , NormalVolatility , ShiftedLognormalVolatility }
enum class  ParameterCalibration { Fixed , Calibrated , Implied }

Public Member Functions

 SabrParametricVolatility (const ModelVariant modelVariant, const std::vector< MarketSmile > marketSmiles, const MarketModelType marketModelType, const MarketQuoteType inputMarketQuoteType, const QuantLib::Handle< QuantLib::YieldTermStructure > discountCurve, const std::map< std::pair< QuantLib::Real, QuantLib::Real >, std::vector< std::pair< Real, ParameterCalibration > > > modelParameters={}, const std::map< QuantLib::Real, QuantLib::Real > &modelShift={}, const QuantLib::Size maxCalibrationAttempts=10, const QuantLib::Real exitEarlyErrorThreshold=0.005, const QuantLib::Real maxAcceptableError=0.05)
QuantLib::Real evaluate (const QuantLib::Real timeToExpiry, const QuantLib::Real underlyingLength, const QuantLib::Real strike, const QuantLib::Real forward, const MarketQuoteType outputMarketQuoteType, const QuantLib::Real outputLognormalShift=QuantLib::Null< QuantLib::Real >(), const QuantLib::ext::optional< QuantLib::Option::Type > outputOptionType=QuantLib::ext::nullopt) const override
const std::vector< Real > & timeToEpiries () const
const std::vector< Real > & underlyingLenghts () const
const QuantLib::Matrix & alpha () const
const QuantLib::Matrix & beta () const
const QuantLib::Matrix & nu () const
const QuantLib::Matrix & rho () const
const QuantLib::Matrix & lognormalShift () const
const QuantLib::Matrix & numberOfCalibrationAttempts () const
const QuantLib::Matrix & calibrationError () const
const QuantLib::Matrix & isInterpolated () const
const std::vector< CalibrationResult > & calibrationResults () const
Public Member Functions inherited from ParametricVolatility
 ParametricVolatility (const std::vector< MarketSmile > marketSmiles, const MarketModelType marketModelType, const MarketQuoteType inputMarketQuoteType, const QuantLib::Handle< QuantLib::YieldTermStructure > discountCurve)
Real convert (const Real inputQuote, const MarketQuoteType inputMarketQuoteType, const QuantLib::Real inputLognormalShift, const QuantLib::ext::optional< QuantLib::Option::Type > inputOptionType, const QuantLib::Real timeToExpiry, const QuantLib::Real strike, const QuantLib::Real forward, const MarketQuoteType outputMarketQuoteType, const QuantLib::Real outputLognormalShift, const QuantLib::ext::optional< QuantLib::Option::Type > outputOptionType=QuantLib::ext::nullopt) const

Additional Inherited Members

Protected Attributes inherited from ParametricVolatility
std::vector< MarketSmilemarketSmiles_
MarketModelType marketModelType_
MarketQuoteType inputMarketQuoteType_
QuantLib::Handle< QuantLib::YieldTermStructure > discountCurve_

Constructor & Destructor Documentation

◆ SabrParametricVolatility()

SabrParametricVolatility ( const ModelVariant modelVariant,
const std::vector< MarketSmile > marketSmiles,
const MarketModelType marketModelType,
const MarketQuoteType inputMarketQuoteType,
const QuantLib::Handle< QuantLib::YieldTermStructure > discountCurve,
const std::map< std::pair< QuantLib::Real, QuantLib::Real >, std::vector< std::pair< Real, ParameterCalibration > > > modelParameters = {},
const std::map< QuantLib::Real, QuantLib::Real > & modelShift = {},
const QuantLib::Size maxCalibrationAttempts = 10,
const QuantLib::Real exitEarlyErrorThreshold = 0.005,
const QuantLib::Real maxAcceptableError = 0.05 )
  • modelParameters are given by (tte, underlyingLen) as a vector of parameter values and whether the values are fixed
  • modelShift is optional and defines the lognormal shift used within the model (if applicable), if not given, it is set to the input market smiles shift

Member Function Documentation

◆ evaluate()

QuantLib::Real evaluate ( const QuantLib::Real timeToExpiry,
const QuantLib::Real underlyingLength,
const QuantLib::Real strike,
const QuantLib::Real forward,
const MarketQuoteType outputMarketQuoteType,
const QuantLib::Real outputLognormalShift = QuantLib::Null< QuantLib::Real >(),
const QuantLib::ext::optional< QuantLib::Option::Type > outputOptionType = QuantLib::ext::nullopt ) const
overridevirtual

Implements ParametricVolatility.