Logo
Reference manual - version qle_version
Public Types | Public Member Functions | List of all members
SabrParametricVolatility Class Referencefinal
+ Inheritance diagram for SabrParametricVolatility:

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 }
 

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, bool >>> modelParameters={}, 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 boost::optional< QuantLib::Option::Type > outputOptionType=boost::none) 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
 
- 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 boost::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 boost::optional< QuantLib::Option::Type > outputOptionType=boost::none) 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, bool >>>  modelParameters = {},
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