LocalVolCurve Class Reference

Local volatility curve derived from a Black curve. More...

`#include <ql/termstructures/volatility/equityfx/localvolcurve.hpp>`

Inheritance diagram for LocalVolCurve:
[legend]

## Public Member Functions

| LocalVolCurve (const Handle< BlackVarianceCurve > &curve)
TermStructure interface
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
DayCounter | dayCounter () const
| the day counter used for date/time conversion
Date | maxDate () const
| the latest date for which the curve can return values
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 &)
Public Member Functions inherited from LocalVolTermStructure
| LocalVolTermStructure (BusinessDayConvention bdc=Following, const DayCounter &dc=DayCounter())
| default constructor More...
| LocalVolTermStructure (const Date &referenceDate, const Calendar &cal=Calendar(), BusinessDayConvention bdc=Following, const DayCounter &dc=DayCounter())
| initialize with a fixed reference date
| LocalVolTermStructure (Natural settlementDays, const Calendar &, BusinessDayConvention bdc=Following, const DayCounter &dc=DayCounter())
| calculate the reference date based on the global evaluation date
Volatility | localVol (const Date &d, Real underlyingLevel, bool extrapolate=false) const
Volatility | localVol (Time t, Real underlyingLevel, bool extrapolate=false) const
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
virtual Time | maxTime () const
| the latest time for which the curve can return values
virtual Natural | settlementDays () const
| the settlementDays used for reference date calculation
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

Volatility | localVolImpl (Time, Real) const
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 TermStructure
bool | moving_
bool | updated_
Calendar | calendar_

## Detailed Description

Local volatility curve derived from a Black curve.

## Member Function Documentation

## localVolImpl()

Volatility localVolImpl | ( | Time | t,
|  | Real | dummy
| ) |  | const

protected virtual

The relation

\[ \int_0^T \sigma_L^2(t)dt = \sigma_B^2 T \]

holds, where \( \sigma_L(t) \) is the local volatility at time \( t \) and \( \sigma_B(T) \) is the Black volatility for maturity \( T \). From the above, the formula

\[ \sigma_L(t) = \sqrt{\frac{\mathrm{d}}{\mathrm{d}t}\sigma_B^2(t)t} \]

can be deduced which is here implemented.

Implements LocalVolTermStructure.