SwaptionVolatilityMatrix Class Reference

At-the-money swaption-volatility matrix. More...

#include <ql/termstructures/volatility/swaption/swaptionvolmatrix.hpp>

Inherits SwaptionVolatilityDiscrete, and noncopyable.

Public Member Functions

 SwaptionVolatilityMatrix (const Calendar &calendar, BusinessDayConvention bdc, const std::vector< Period > &optionTenors, const std::vector< Period > &swapTenors, const std::vector< std::vector< Handle< Quote > > > &vols, const DayCounter &dayCounter)
 floating reference date, floating market data
 
 SwaptionVolatilityMatrix (const Date &referenceDate, const Calendar &calendar, BusinessDayConvention bdc, const std::vector< Period > &optionTenors, const std::vector< Period > &swapTenors, const std::vector< std::vector< Handle< Quote > > > &vols, const DayCounter &dayCounter)
 fixed reference date, floating market data
 
 SwaptionVolatilityMatrix (const Calendar &calendar, BusinessDayConvention bdc, const std::vector< Period > &optionTenors, const std::vector< Period > &swapTenors, const Matrix &volatilities, const DayCounter &dayCounter)
 floating reference date, fixed market data
 
 SwaptionVolatilityMatrix (const Date &referenceDate, const Calendar &calendar, BusinessDayConvention bdc, const std::vector< Period > &optionTenors, const std::vector< Period > &swapTenors, const Matrix &volatilities, const DayCounter &dayCounter)
 fixed reference date, fixed market data
 
 SwaptionVolatilityMatrix (const Date &referenceDate, const std::vector< Date > &optionDates, const std::vector< Period > &swapTenors, const Matrix &volatilities, const DayCounter &dayCounter)
 
LazyObject interface
void performCalculations () const
 
TermStructure interface
Date maxDate () const
 the latest date for which the curve can return values
 
VolatilityTermStructure interface
Rate minStrike () const
 the minimum strike for which the term structure can return vols
 
Rate maxStrike () const
 the maximum strike for which the term structure can return vols
 
SwaptionVolatilityStructure interface
const PeriodmaxSwapTenor () const
 the largest length for which the term structure can return vols
 
Other inspectors
std::pair< Size, Sizelocate (const Date &optionDate, const Period &swapTenor) const
 returns the lower indexes of surrounding volatility matrix corners
 
std::pair< Size, Sizelocate (Time optionTime, Time swapLength) const
 returns the lower indexes of surrounding volatility matrix corners
 
- Public Member Functions inherited from SwaptionVolatilityDiscrete
 SwaptionVolatilityDiscrete (const std::vector< Period > &optionTenors, const std::vector< Period > &swapTenors, Natural settlementDays, const Calendar &cal, BusinessDayConvention bdc, const DayCounter &dc)
 
 SwaptionVolatilityDiscrete (const std::vector< Period > &optionTenors, const std::vector< Period > &swapTenors, const Date &referenceDate, const Calendar &cal, BusinessDayConvention bdc, const DayCounter &dc)
 
 SwaptionVolatilityDiscrete (const std::vector< Date > &optionDates, const std::vector< Period > &swapTenors, const Date &referenceDate, const Calendar &cal, BusinessDayConvention bdc, const DayCounter &dc)
 
const std::vector< Period > & optionTenors () const
 
const std::vector< Date > & optionDates () const
 
const std::vector< Time > & optionTimes () const
 
const std::vector< Period > & swapTenors () const
 
const std::vector< Time > & swapLengths () const
 
void update ()
 
void performCalculations () const
 
- Public Member Functions inherited from SwaptionVolatilityStructure
Time swapLength (const Period &swapTenor) const
 implements the conversion between swap tenor and swap (time) length
 
Time swapLength (const Date &start, const Date &end) const
 implements the conversion between swap dates and swap (time) length
 
 SwaptionVolatilityStructure (const Calendar &calendar, BusinessDayConvention bdc, const DayCounter &dc=DayCounter())
 
 SwaptionVolatilityStructure (BusinessDayConvention bdc, const DayCounter &dc=DayCounter())
 
 SwaptionVolatilityStructure (const Date &referenceDate, const Calendar &calendar, BusinessDayConvention bdc, const DayCounter &dc=DayCounter())
 initialize with a fixed reference date
 
 SwaptionVolatilityStructure (Natural settlementDays, const Calendar &, BusinessDayConvention bdc, const DayCounter &dc=DayCounter())
 calculate the reference date based on the global evaluation date
 
Volatility volatility (const Period &optionTenor, const Period &swapTenor, Rate strike, bool extrapolate=false) const
 returns the volatility for a given option tenor and swap tenor
 
Volatility volatility (const Date &optionDate, const Period &swapTenor, Rate strike, bool extrapolate=false) const
 returns the volatility for a given option date and swap tenor
 
Volatility volatility (Time optionTime, const Period &swapTenor, Rate strike, bool extrapolate=false) const
 returns the volatility for a given option time and swap tenor
 
Volatility volatility (const Period &optionTenor, Time swapLength, Rate strike, bool extrapolate=false) const
 returns the volatility for a given option tenor and swap length
 
Volatility volatility (const Date &optionDate, Time swapLength, Rate strike, bool extrapolate=false) const
 returns the volatility for a given option date and swap length
 
Volatility volatility (Time optionTime, Time swapLength, Rate strike, bool extrapolate=false) const
 returns the volatility for a given option time and swap length
 
Real blackVariance (const Period &optionTenor, const Period &swapTenor, Rate strike, bool extrapolate=false) const
 returns the Black variance for a given option tenor and swap tenor
 
Real blackVariance (const Date &optionDate, const Period &swapTenor, Rate strike, bool extrapolate=false) const
 returns the Black variance for a given option date and swap tenor
 
Real blackVariance (Time optionTime, const Period &swapTenor, Rate strike, bool extrapolate=false) const
 returns the Black variance for a given option time and swap tenor
 
Real blackVariance (const Period &optionTenor, Time swapLength, Rate strike, bool extrapolate=false) const
 returns the Black variance for a given option tenor and swap length
 
Real blackVariance (const Date &optionDate, Time swapLength, Rate strike, bool extrapolate=false) const
 returns the Black variance for a given option date and swap length
 
Real blackVariance (Time optionTime, Time swapLength, Rate strike, bool extrapolate=false) const
 returns the Black variance for a given option time and swap length
 
boost::shared_ptr< SmileSectionsmileSection (const Period &optionTenor, const Period &swapTenor, bool extr=false) const
 returns the smile for a given option tenor and swap tenor
 
boost::shared_ptr< SmileSectionsmileSection (const Date &optionDate, const Period &swapTenor, bool extr=false) const
 returns the smile for a given option date and swap tenor
 
boost::shared_ptr< SmileSectionsmileSection (Time optionTime, const Period &swapTenor, bool extr=false) const
 returns the smile for a given option time and swap tenor
 
boost::shared_ptr< SmileSectionsmileSection (const Period &optionTenor, Time swapLength, bool extr=false) const
 returns the smile for a given option tenor and swap length
 
boost::shared_ptr< SmileSectionsmileSection (const Date &optionDate, Time swapLength, bool extr=false) const
 returns the smile for a given option date and swap length
 
boost::shared_ptr< SmileSectionsmileSection (Time optionTime, Time swapLength, bool extr=false) const
 returns the smile for a given option time and swap length
 
Time maxSwapLength () const
 the largest swapLength for which the term structure can return vols
 
- 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 (const Calendar &cal, BusinessDayConvention bdc, const DayCounter &dc=DayCounter())
 
 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
 
 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
 
virtual DayCounter dayCounter () const
 the day counter used for date/time conversion
 
Time timeFromReference (const Date &date) const
 date/time conversion
 
virtual Time maxTime () const
 the latest time for which the curve can return values
 
virtual const DatereferenceDate () const
 the date at which discount = 1.0 and/or variance = 0.0
 
virtual Calendar calendar () const
 the calendar used for reference and/or option date calculation
 
virtual Natural settlementDays () const
 the settlementDays used for reference date calculation
 
void update ()
 
- Public Member Functions inherited from Observer
 Observer (const Observer &)
 
Observeroperator= (const Observer &)
 
std::pair< std::set
< boost::shared_ptr
< Observable > >::iterator,
bool > 
registerWith (const boost::shared_ptr< Observable > &)
 
Size unregisterWith (const boost::shared_ptr< Observable > &)
 
void unregisterWithAll ()
 
- Public Member Functions inherited from Observable
 Observable (const Observable &)
 
Observableoperator= (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
 
- Public Member Functions inherited from LazyObject
void update ()
 
void recalculate ()
 
void freeze ()
 
void unfreeze ()
 

Protected Member Functions

boost::shared_ptr< SmileSectionsmileSectionImpl (Time, Time) const
 
Volatility volatilityImpl (Time optionTime, Time swapLength, Rate strike) const
 

Additional Inherited Members

- Protected Attributes inherited from SwaptionVolatilityDiscrete
Size nOptionTenors_
 
std::vector< PeriodoptionTenors_
 
std::vector< DateoptionDates_
 
std::vector< TimeoptionTimes_
 
std::vector< RealoptionDatesAsReal_
 
Interpolation optionInterpolator_
 
Size nSwapTenors_
 
std::vector< PeriodswapTenors_
 
std::vector< TimeswapLengths_
 
Date evaluationDate_
 

Detailed Description

At-the-money swaption-volatility matrix.

This class provides the at-the-money volatility for a given swaption by interpolating a volatility matrix whose elements are the market volatilities of a set of swaption with given option date and swapLength.

The volatility matrix M must be defined so that:

  • the number of rows equals the number of option dates;
  • the number of columns equals the number of swap tenors;
  • M[i][j] contains the volatility corresponding to the i-th option and j-th tenor.

Member Function Documentation

void performCalculations ( ) const
virtual

This method must implement any calculations which must be (re)done in order to calculate the desired results.

Implements LazyObject.