QuantLib: a free/open-source library for quantitative finance
fully annotated source code - version 1.34
|
Piecewise year-on-year inflation volatility term structure. More...
#include <piecewiseyoyoptionletvolatility.hpp>
Public Types | |
typedef Traits | traits_type |
typedef Interpolator | interpolator_type |
Public Types inherited from Observer | |
typedef set_type::iterator | iterator |
Public Member Functions | |
PiecewiseYoYOptionletVolatilityCurve (Natural settlementDays, const Calendar &cal, BusinessDayConvention bdc, const DayCounter &dc, const Period &lag, Frequency frequency, bool indexIsInterpolated, Rate minStrike, Rate maxStrike, Volatility baseYoYVolatility, std::vector< ext::shared_ptr< typename Traits::helper > > instruments, Real accuracy=1.0e-12, const Interpolator &interpolator=Interpolator()) | |
Inflation interface | |
Date | baseDate () const override |
Date | maxDate () const override |
the latest date for which the curve can return values More... | |
Inspectors | |
const std::vector< Time > & | times () const override |
const std::vector< Date > & | dates () const override |
const std::vector< Real > & | data () const override |
std::vector< std::pair< Date, Real > > | nodes () const override |
Public Member Functions inherited from InterpolatedYoYOptionletVolatilityCurve< Interpolator > | |
InterpolatedYoYOptionletVolatilityCurve (Natural settlementDays, const Calendar &, BusinessDayConvention bdc, const DayCounter &dc, const Period &lag, Frequency frequency, bool indexIsInterpolated, const std::vector< Date > &d, const std::vector< Volatility > &v, Rate minStrike, Rate maxStrike, const Interpolator &i=Interpolator()) | |
calculate the reference date based on the global evaluation date More... | |
~InterpolatedYoYOptionletVolatilityCurve () override=default | |
Real | minStrike () const override |
the minimum strike for which the term structure can return vols More... | |
Real | maxStrike () const override |
the maximum strike for which the term structure can return vols More... | |
Date | maxDate () const override |
the latest date for which the curve can return values More... | |
Public Member Functions inherited from YoYOptionletVolatilitySurface | |
YoYOptionletVolatilitySurface (Natural settlementDays, const Calendar &, BusinessDayConvention bdc, const DayCounter &dc, const Period &observationLag, Frequency frequency, bool indexIsInterpolated, VolatilityType volType=ShiftedLognormal, Real displacement=0.0) | |
~YoYOptionletVolatilitySurface () override=default | |
Volatility | volatility (const Date &maturityDate, Rate strike, const Period &obsLag=Period(-1, Days), bool extrapolate=false) const |
Volatility | volatility (const Period &optionTenor, Rate strike, const Period &obsLag=Period(-1, Days), bool extrapolate=false) const |
returns the volatility for a given option tenor and strike rate More... | |
Volatility | volatility (Time time, Rate strike) const |
virtual VolatilityType | volatilityType () const |
Returns the volatility type. More... | |
virtual Real | displacement () const |
Returns the displacement for lognormal volatilities. More... | |
virtual Volatility | totalVariance (const Date &exerciseDate, Rate strike, const Period &obsLag=Period(-1, Days), bool extrapolate=false) const |
Returns the total integrated variance for a given exercise date and strike rate. More... | |
virtual Volatility | totalVariance (const Period &optionTenor, Rate strike, const Period &obsLag=Period(-1, Days), bool extrapolate=false) const |
returns the total integrated variance for a given option tenor and strike rate More... | |
virtual Period | observationLag () const |
virtual Frequency | frequency () const |
virtual bool | indexIsInterpolated () const |
virtual Time | timeFromBase (const Date &date, const Period &obsLag=Period(-1, Days)) const |
base date will be in the past because of observation lag More... | |
virtual Volatility | baseLevel () const |
Public Member Functions inherited from VolatilityTermStructure | |
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 More... | |
VolatilityTermStructure (Natural settlementDays, const Calendar &cal, BusinessDayConvention bdc, const DayCounter &dc=DayCounter()) | |
calculate the reference date based on the global evaluation date More... | |
virtual BusinessDayConvention | businessDayConvention () const |
the business day convention used in tenor to date conversion More... | |
Date | optionDateFromTenor (const Period &) const |
period/date conversion More... | |
Public Member Functions inherited from TermStructure | |
TermStructure (DayCounter dc=DayCounter()) | |
default constructor More... | |
TermStructure (const Date &referenceDate, Calendar calendar=Calendar(), DayCounter dc=DayCounter()) | |
initialize with a fixed reference date More... | |
TermStructure (Natural settlementDays, Calendar, DayCounter dc=DayCounter()) | |
calculate the reference date based on the global evaluation date More... | |
~TermStructure () override=default | |
virtual DayCounter | dayCounter () const |
the day counter used for date/time conversion More... | |
Time | timeFromReference (const Date &date) const |
date/time conversion More... | |
virtual Time | maxTime () const |
the latest time for which the curve can return values More... | |
virtual const Date & | referenceDate () const |
the date at which discount = 1.0 and/or variance = 0.0 More... | |
virtual Calendar | calendar () const |
the calendar used for reference and/or option date calculation More... | |
virtual Natural | settlementDays () const |
the settlementDays used for reference date calculation More... | |
void | update () override |
Public Member Functions inherited from Observer | |
Observer ()=default | |
Observer (const Observer &) | |
Observer & | operator= (const Observer &) |
virtual | ~Observer () |
std::pair< iterator, bool > | registerWith (const ext::shared_ptr< Observable > &) |
void | registerWithObservables (const ext::shared_ptr< Observer > &) |
Size | unregisterWith (const ext::shared_ptr< Observable > &) |
void | unregisterWithAll () |
virtual void | update ()=0 |
virtual void | deepUpdate () |
Public Member Functions inherited from Observable | |
Observable () | |
Observable (const Observable &) | |
Observable & | operator= (const Observable &) |
Observable (Observable &&)=delete | |
Observable & | operator= (Observable &&)=delete |
virtual | ~Observable ()=default |
void | notifyObservers () |
Public Member Functions inherited from Extrapolator | |
Extrapolator ()=default | |
virtual | ~Extrapolator ()=default |
void | enableExtrapolation (bool b=true) |
enable extrapolation in subsequent calls More... | |
void | disableExtrapolation (bool b=true) |
disable extrapolation in subsequent calls More... | |
bool | allowsExtrapolation () const |
tells whether extrapolation is enabled More... | |
Public Member Functions inherited from LazyObject | |
LazyObject () | |
~LazyObject () override=default | |
void | update () override |
bool | isCalculated () const |
void | forwardFirstNotificationOnly () |
void | alwaysForwardNotifications () |
void | recalculate () |
void | freeze () |
void | unfreeze () |
Private Types | |
typedef InterpolatedYoYOptionletVolatilityCurve< Interpolator > | base_curve |
typedef PiecewiseYoYOptionletVolatilityCurve< Interpolator, Bootstrap, Traits > | this_curve |
Observer interface | |
std::vector< ext::shared_ptr< typename Traits::helper > > | instruments_ |
Real | accuracy_ |
Bootstrap< this_curve > | bootstrap_ |
class | Bootstrap< this_curve > |
class | BootstrapError< this_curve > |
void | update () override |
void | performCalculations () const override |
Additional Inherited Members | |
Protected Member Functions inherited from InterpolatedYoYOptionletVolatilityCurve< Interpolator > | |
InterpolatedYoYOptionletVolatilityCurve (Natural settlementDays, const Calendar &, BusinessDayConvention bdc, const DayCounter &dc, const Period &lag, Frequency frequency, bool indexIsInterpolated, Rate minStrike, Rate maxStrike, Volatility baseYoYVolatility, const Interpolator &i=Interpolator()) | |
Volatility | volatilityImpl (Time length, Rate strike) const override |
implements the actual volatility calculation in derived classes More... | |
Protected Member Functions inherited from YoYOptionletVolatilitySurface | |
virtual void | checkRange (const Date &, Rate strike, bool extrapolate) const |
virtual void | checkRange (Time, Rate strike, bool extrapolate) const |
virtual void | setBaseLevel (Volatility v) |
Protected Member Functions inherited from VolatilityTermStructure | |
void | checkStrike (Rate strike, bool extrapolate) const |
strike-range check More... | |
Protected Member Functions inherited from TermStructure | |
void | checkRange (const Date &d, bool extrapolate) const |
date-range check More... | |
void | checkRange (Time t, bool extrapolate) const |
time-range check More... | |
Protected Member Functions inherited from InterpolatedCurve< Interpolator > | |
InterpolatedCurve (std::vector< Time > times, std::vector< Real > data, const Interpolator &i=Interpolator()) | |
InterpolatedCurve (std::vector< Time > times, const Interpolator &i=Interpolator()) | |
InterpolatedCurve (Size n, const Interpolator &i=Interpolator()) | |
InterpolatedCurve (const Interpolator &i=Interpolator()) | |
InterpolatedCurve (const InterpolatedCurve &c) | |
InterpolatedCurve & | operator= (const InterpolatedCurve &c) |
InterpolatedCurve (InterpolatedCurve &&c) noexcept | |
InterpolatedCurve & | operator= (InterpolatedCurve &&c) noexcept |
void | setupTimes (const std::vector< Date > &dates, Date referenceDate, const DayCounter &dayCounter) |
void | setupInterpolation () |
~InterpolatedCurve ()=default | |
Protected Member Functions inherited from LazyObject | |
virtual void | calculate () const |
Protected Attributes inherited from InterpolatedYoYOptionletVolatilityCurve< Interpolator > | |
std::vector< Date > | dates_ |
std::vector< std::pair< Date, Real > > | nodes_ |
Rate | minStrike_ |
Rate | maxStrike_ |
Protected Attributes inherited from YoYOptionletVolatilitySurface | |
Volatility | baseLevel_ |
Period | observationLag_ |
Frequency | frequency_ |
bool | indexIsInterpolated_ |
VolatilityType | volType_ |
Real | displacement_ |
Protected Attributes inherited from TermStructure | |
bool | moving_ = false |
bool | updated_ = true |
Calendar | calendar_ |
Protected Attributes inherited from InterpolatedCurve< Interpolator > | |
std::vector< Time > | times_ |
std::vector< Real > | data_ |
Interpolation | interpolation_ |
Interpolator | interpolator_ |
Date | maxDate_ |
Protected Attributes inherited from LazyObject | |
bool | calculated_ = false |
bool | frozen_ = false |
bool | alwaysForward_ |
Piecewise year-on-year inflation volatility term structure.
We use a flat smile for bootstrapping at constant K. Happily most of the work has already been done in the bootstrapping classes. We only need to add special attention for the start where there is usually no data, only assumptions.
Definition at line 108 of file piecewiseyoyoptionletvolatility.hpp.
|
private |
Definition at line 113 of file piecewiseyoyoptionletvolatility.hpp.
|
private |
Definition at line 116 of file piecewiseyoyoptionletvolatility.hpp.
typedef Traits traits_type |
Definition at line 118 of file piecewiseyoyoptionletvolatility.hpp.
typedef Interpolator interpolator_type |
Definition at line 119 of file piecewiseyoyoptionletvolatility.hpp.
PiecewiseYoYOptionletVolatilityCurve | ( | Natural | settlementDays, |
const Calendar & | cal, | ||
BusinessDayConvention | bdc, | ||
const DayCounter & | dc, | ||
const Period & | lag, | ||
Frequency | frequency, | ||
bool | indexIsInterpolated, | ||
Rate | minStrike, | ||
Rate | maxStrike, | ||
Volatility | baseYoYVolatility, | ||
std::vector< ext::shared_ptr< typename Traits::helper > > | instruments, | ||
Real | accuracy = 1.0e-12 , |
||
const Interpolator & | interpolator = Interpolator() |
||
) |
Definition at line 121 of file piecewiseyoyoptionletvolatility.hpp.
|
overridevirtual |
Reimplemented from YoYOptionletVolatilitySurface.
Definition at line 182 of file piecewiseyoyoptionletvolatility.hpp.
|
overridevirtual |
the latest date for which the curve can return values
Implements TermStructure.
Definition at line 188 of file piecewiseyoyoptionletvolatility.hpp.
|
overridevirtual |
Reimplemented from InterpolatedYoYOptionletVolatilityCurve< Interpolator >.
Definition at line 195 of file piecewiseyoyoptionletvolatility.hpp.
|
overridevirtual |
Reimplemented from InterpolatedYoYOptionletVolatilityCurve< Interpolator >.
Definition at line 202 of file piecewiseyoyoptionletvolatility.hpp.
|
overridevirtual |
Reimplemented from InterpolatedYoYOptionletVolatilityCurve< Interpolator >.
Definition at line 209 of file piecewiseyoyoptionletvolatility.hpp.
Reimplemented from InterpolatedYoYOptionletVolatilityCurve< Interpolator >.
Definition at line 216 of file piecewiseyoyoptionletvolatility.hpp.
|
overridevirtual |
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.
Definition at line 228 of file piecewiseyoyoptionletvolatility.hpp.
|
overrideprivatevirtual |
This method must implement any calculations which must be (re)done in order to calculate the desired results.
Implements LazyObject.
Definition at line 223 of file piecewiseyoyoptionletvolatility.hpp.
|
friend |
Definition at line 171 of file piecewiseyoyoptionletvolatility.hpp.
|
friend |
Definition at line 171 of file piecewiseyoyoptionletvolatility.hpp.
|
private |
Definition at line 170 of file piecewiseyoyoptionletvolatility.hpp.
|
private |
Definition at line 171 of file piecewiseyoyoptionletvolatility.hpp.
|
private |
Definition at line 175 of file piecewiseyoyoptionletvolatility.hpp.