SabrVolSurface Class Reference

SABR volatility (smile) surface. More...

`#include <ql/experimental/volatility/sabrvolsurface.hpp>`

Inheritance diagram for SabrVolSurface:
[legend]

## Public Member Functions

| SabrVolSurface (const boost::shared_ptr< InterestRateIndex > &, const Handle< BlackAtmVolCurve > &, const std::vector< Period > &optionTenors, const std::vector< Spread > &atmRateSpreads, const std::vector< std::vector< Handle< Quote > > > &volSpreads)
const Handle< BlackAtmVolCurve > & | atmCurve () const
std::vector< Volatility > | volatilitySpreads (const Period &) const
std::vector< Volatility > | volatilitySpreads (const Date &) const
TermStructure interface
DayCounter | dayCounter () const
| the day counter used for date/time conversion
Date | maxDate () const
| the latest date for which the curve can return values
Time | maxTime () const
| the latest time for which the curve can return values
const Date & | referenceDate () const
| the date at which discount = 1.0 and/or variance = 0.0
Calendar | calendar () const
| the calendar used for reference and/or option date calculation
Natural | settlementDays () const
| the settlementDays used for reference date calculation
VolatilityTermStructure interface
Real | minStrike () const
| the minimum strike for which the term structure can return vols
Real | maxStrike () const
| the maximum strike for which the term structure can return vols
Visitability
virtual void | accept (AcyclicVisitor &)
BlackVolSurface interface
boost::shared_ptr< SmileSection > | smileSectionImpl (Time) const
Public Member Functions inherited from InterestRateVolSurface
const boost::shared_ptr< InterestRateIndex > & | index () const
| InterestRateVolSurface (const boost::shared_ptr< InterestRateIndex > &, BusinessDayConvention bdc=Following, const DayCounter &dc=DayCounter())
| InterestRateVolSurface (const boost::shared_ptr< InterestRateIndex > &, const Date &referenceDate, const Calendar &cal=Calendar(), BusinessDayConvention bdc=Following, const DayCounter &dc=DayCounter())
| initialize with a fixed reference date
| InterestRateVolSurface (const boost::shared_ptr< InterestRateIndex > &, Natural settlementDays, const Calendar &, BusinessDayConvention bdc=Following, const DayCounter &dc=DayCounter())
| calculate the reference date based on the global evaluation date
Date | optionDateFromTenor (const Period &) const
| period/date conversion
Public Member Functions inherited from BlackVolSurface
| BlackVolSurface (BusinessDayConvention bdc=Following, const DayCounter &dc=DayCounter())
| default constructor More...
| BlackVolSurface (const Date &referenceDate, const Calendar &cal=Calendar(), BusinessDayConvention bdc=Following, const DayCounter &dc=DayCounter())
| initialize with a fixed reference date
| BlackVolSurface (Natural settlementDays, const Calendar &, BusinessDayConvention bdc=Following, const DayCounter &dc=DayCounter())
| calculate the reference date based on the global evaluation date
boost::shared_ptr< SmileSection > | smileSection (const Period &, bool extrapolate) const
| returns the smile for a given option tenor
boost::shared_ptr< SmileSection > | smileSection (const Date &, bool extrapolate) const
| returns the smile for a given option date
boost::shared_ptr< SmileSection > | smileSection (Time, bool extrapolate) const
| returns the smile for a given option time
Public Member Functions inherited from BlackAtmVolCurve
| BlackAtmVolCurve (BusinessDayConvention bdc=Following, const DayCounter &dc=DayCounter())
| default constructor More...
| BlackAtmVolCurve (const Date &referenceDate, const Calendar &cal=Calendar(), BusinessDayConvention bdc=Following, const DayCounter &dc=DayCounter())
| initialize with a fixed reference date
| BlackAtmVolCurve (Natural settlementDays, const Calendar &, BusinessDayConvention bdc=Following, const DayCounter &dc=DayCounter())
| calculate the reference date based on the global evaluation date
Volatility | atmVol (const Period &optionTenor, bool extrapolate=false) const
| spot at-the-money volatility
Volatility | atmVol (const Date &maturity, bool extrapolate=false) const
| spot at-the-money volatility
Volatility | atmVol (Time maturity, bool extrapolate=false) const
| spot at-the-money volatility
Real | atmVariance (const Period &optionTenor, bool extrapolate=false) const
| spot at-the-money variance
Real | atmVariance (const Date &maturity, bool extrapolate=false) const
| spot at-the-money variance
Real | atmVariance (Time maturity, bool extrapolate=false) const
| spot at-the-money variance
Public Member Functions inherited from VolatilityTermStructure
virtual BusinessDayConvention | businessDayConvention () const
| the business day convention used in tenor to date conversion
Date | optionDateFromTenor (const Period &) const
| period/date conversion
| VolatilityTermStructure (BusinessDayConvention bdc, const DayCounter &dc=DayCounter())
| VolatilityTermStructure (const Date &referenceDate, const Calendar &cal, BusinessDayConvention bdc, const DayCounter &dc=DayCounter())
| initialize with a fixed reference date
| VolatilityTermStructure (Natural settlementDays, const Calendar &cal, BusinessDayConvention bdc, const DayCounter &dc=DayCounter())
| calculate the reference date based on the global evaluation date
Public Member Functions inherited from TermStructure
| TermStructure (const DayCounter &dc=DayCounter())
| default constructor More...
| TermStructure (const Date &referenceDate, const Calendar &calendar=Calendar(), const DayCounter &dc=DayCounter())
| initialize with a fixed reference date
| TermStructure (Natural settlementDays, const Calendar &, const DayCounter &dc=DayCounter())
| calculate the reference date based on the global evaluation date
Time | timeFromReference (const Date &date) const
| date/time conversion
void | update ()
Public Member Functions inherited from Observer
| Observer (const Observer &)
Observer & | operator= (const Observer &)
std::pair< iterator, bool > | registerWith (const boost::shared_ptr< Observable > &)
void | registerWithObservables (const boost::shared_ptr< Observer > &)
Size | unregisterWith (const boost::shared_ptr< Observable > &)
void | unregisterWithAll ()
virtual void | deepUpdate ()
Public Member Functions inherited from Observable
| Observable (const Observable &)
Observable & | operator= (const Observable &)
void | notifyObservers ()
Public Member Functions inherited from Extrapolator
void | enableExtrapolation (bool b=true)
| enable extrapolation in subsequent calls
void | disableExtrapolation (bool b=true)
| disable extrapolation in subsequent calls
bool | allowsExtrapolation () const
| tells whether extrapolation is enabled

## Protected Member Functions

boost::array< Real, 4 > | sabrGuesses (const Date &) const
LazyObject interface
void | performCalculations () const
virtual void | update ()
Protected Member Functions inherited from BlackVolSurface
Real | atmVarianceImpl (Time t) const
| spot at-the-money variance calculation
Volatility | atmVolImpl (Time t) const
| spot at-the-money volatility calculation
Calculations
These methods must be implemented in derived classes to perform the actual volatility calculations. When they are called, range check has already been performed; therefore, they must assume that extrapolation is required.
Protected Member Functions inherited from VolatilityTermStructure
void | checkStrike (Rate strike, bool extrapolate) const
| strike-range check
Protected Member Functions inherited from TermStructure
void | checkRange (const Date &d, bool extrapolate) const
| date-range check
void | checkRange (Time t, bool extrapolate) const
| time-range check

## Additional Inherited Members

Public Types inherited from Observer
typedef std::set< boost::shared_ptr< Observable > > | set_type
typedef set_type::iterator | iterator
Protected Attributes inherited from InterestRateVolSurface
boost::shared_ptr< InterestRateIndex > | index_
Protected Attributes inherited from TermStructure
bool | moving_
bool | updated_
Calendar | calendar_

## Detailed Description

SABR volatility (smile) surface.

blah blah

## Member Function Documentation

## update()

virtual void update | ( |  | ) |

protected virtual

This method must be implemented in derived classes. An instance of Observer does not call this method directly: instead, it will be called by the observables the instance registered with when they need to notify any changes.

Implements Observer.