Logo
Reference manual - version qle_version
FxBlackVannaVolgaVolatilitySurface Class Reference

Fx Black vanna volga volatility surface. More...

#include <qle/termstructures/fxblackvolsurface.hpp>

Inheritance diagram for FxBlackVannaVolgaVolatilitySurface:

Public Member Functions

 FxBlackVannaVolgaVolatilitySurface (const Date &refDate, const std::vector< Date > &dates, const std::vector< Volatility > &atmVols, const std::vector< Volatility > &rr, const std::vector< Volatility > &bf, const DayCounter &dc, const Calendar &cal, const Handle< Quote > &fx, const Handle< YieldTermStructure > &dom, const Handle< YieldTermStructure > &fore, bool requireMonotoneVariance=true, const bool firstApprox=false, const DeltaVolQuote::AtmType atmType=DeltaVolQuote::AtmType::AtmDeltaNeutral, const DeltaVolQuote::DeltaType deltaType=DeltaVolQuote::DeltaType::Spot, const Real delta=0.25, const Period &switchTenor=0 *Days, const DeltaVolQuote::AtmType longTermAtmType=DeltaVolQuote::AtmType::AtmDeltaNeutral, const DeltaVolQuote::DeltaType longTermDeltaType=DeltaVolQuote::DeltaType::Spot)
Public Member Functions inherited from FxBlackVolatilitySurface
 FxBlackVolatilitySurface (const Date &referenceDate, const std::vector< Date > &dates, const std::vector< Volatility > &atmVols, const std::vector< Volatility > &rr, const std::vector< Volatility > &bf, const DayCounter &dayCounter, const Calendar &cal, const Handle< Quote > &fxSpot, const Handle< YieldTermStructure > &domesticTS, const Handle< YieldTermStructure > &foreignTS, bool requireMonotoneVariance=true, const DeltaVolQuote::AtmType atmType=DeltaVolQuote::AtmType::AtmDeltaNeutral, const DeltaVolQuote::DeltaType deltaType=DeltaVolQuote::DeltaType::Spot, const Real delta=0.25, const Period &switchTenor=0 *Days, const DeltaVolQuote::AtmType longTermAtmType=DeltaVolQuote::AtmType::AtmDeltaNeutral, const DeltaVolQuote::DeltaType longTermDeltaType=DeltaVolQuote::DeltaType::Spot)
DayCounter dayCounter () const override
Date maxDate () const override
Real minStrike () const override
Real maxStrike () const override
virtual void accept (AcyclicVisitor &) override
QuantLib::ext::shared_ptr< FxSmileSectionblackVolSmile (Time t) const
 Return an FxSmile for the time t.

Protected Member Functions

virtual QuantLib::ext::shared_ptr< FxSmileSectionblackVolSmileImpl (Real spot, Real rd, Real rf, Time t, Volatility atm, Volatility rr, Volatility bf) const override
 this must be implemented.
virtual Volatility blackVolImpl (Time t, Real strike) const override

Protected Attributes

bool firstApprox_
std::vector< Time > times_
DayCounter dayCounter_
Handle< QuotefxSpot_
Handle< YieldTermStructure > domesticTS_
Handle< YieldTermStructure > foreignTS_
BlackVarianceCurve atmCurve_
std::vector< Volatility > rr_
std::vector< Volatility > bf_
DeltaVolQuote::AtmType atmType_
DeltaVolQuote::DeltaType deltaType_
Real delta_
Period switchTenor_
DeltaVolQuote::AtmType longTermAtmType_
DeltaVolQuote::DeltaType longTermDeltaType_
Interpolation rrCurve_
Interpolation bfCurve_
Date maxDate_

Detailed Description

Fx Black vanna volga volatility surface.

This class calculates time/strike dependent Black volatilities

Member Function Documentation

◆ blackVolSmileImpl()

virtual QuantLib::ext::shared_ptr< FxSmileSection > blackVolSmileImpl ( Real spot,
Real rd,
Real rf,
Time t,
Volatility atm,
Volatility rr,
Volatility bf ) const
overrideprotectedvirtual

this must be implemented.

Implements FxBlackVolatilitySurface.