QuantLib: a free/open-source library for quantitative finance
Reference manual - version 1.40
Loading...
Searching...
No Matches
OptionletStripper1 Class Reference

#include <ql/termstructures/volatility/optionlet/optionletstripper1.hpp>

Inheritance diagram for OptionletStripper1:

Public Member Functions

 OptionletStripper1 (const ext::shared_ptr< CapFloorTermVolSurface > &, const ext::shared_ptr< IborIndex > &index, Rate switchStrikes=Null< Rate >(), Real accuracy=1.0e-6, Natural maxIter=100, const Handle< YieldTermStructure > &discount={}, VolatilityType type=ShiftedLognormal, Real displacement=0.0, bool dontThrow=false, ext::optional< Period > optionletFrequency=ext::nullopt)
const MatrixcapFloorPrices () const
const MatrixcapletVols () const
const MatrixcapFloorVolatilities () const
const MatrixoptionletPrices () const
Rate switchStrike () const
const std::vector< Rate > & optionletStrikes (Size i) const override
const std::vector< Volatility > & optionletVolatilities (Size i) const override
const std::vector< Date > & optionletFixingDates () const override
const std::vector< Time > & optionletFixingTimes () const override
Size optionletMaturities () const override
const std::vector< Rate > & atmOptionletRates () const override
DayCounter dayCounter () const override
Calendar calendar () const override
Natural settlementDays () const override
BusinessDayConvention businessDayConvention () const override
const std::vector< Period > & optionletFixingTenors () const
const std::vector< Date > & optionletPaymentDates () const
const std::vector< Time > & optionletAccrualPeriods () const
ext::shared_ptr< CapFloorTermVolSurfacetermVolSurface () const
ext::shared_ptr< IborIndexiborIndex () const
Real displacement () const override
VolatilityType volatilityType () const override
ext::optional< PeriodoptionletFrequency () const
Public Member Functions inherited from LazyObject
void update () override
bool isCalculated () const
void forwardFirstNotificationOnly ()
void alwaysForwardNotifications ()
void recalculate ()
void freeze ()
void unfreeze ()
Public Member Functions inherited from Observable
 Observable (const Observable &)
Observableoperator= (const Observable &)
 Observable (Observable &&)=delete
Observableoperator= (Observable &&)=delete
void notifyObservers ()
Public Member Functions inherited from Observer
 Observer (const Observer &)
Observeroperator= (const 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 deepUpdate ()

LazyObject interface

void performCalculations () const override

Additional Inherited Members

Public Types inherited from Observer
typedef set_type::iterator iterator
 OptionletStripper (const ext::shared_ptr< CapFloorTermVolSurface > &, ext::shared_ptr< IborIndex > iborIndex_, Handle< YieldTermStructure > discount={}, VolatilityType type=ShiftedLognormal, Real displacement=0.0, ext::optional< Period > optionletFrequency=ext::nullopt)
virtual void calculate () const
ext::shared_ptr< CapFloorTermVolSurfacetermVolSurface_
ext::shared_ptr< IborIndexiborIndex_
Handle< YieldTermStructurediscount_
Size nStrikes_
Size nOptionletTenors_
std::vector< std::vector< Rate > > optionletStrikes_
std::vector< std::vector< Volatility > > optionletVolatilities_
std::vector< TimeoptionletTimes_
std::vector< DateoptionletDates_
std::vector< PeriodoptionletTenors_
std::vector< RateatmOptionletRate_
std::vector< DateoptionletPaymentDates_
std::vector< TimeoptionletAccrualPeriods_
std::vector< PeriodcapFloorLengths_
const VolatilityType volatilityType_
const Real displacement_
ext::optional< PeriodoptionletFrequency_
bool calculated_ = false
bool frozen_ = false
bool alwaysForward_

Detailed Description

Helper class to strip optionlet (i.e. caplet/floorlet) volatilities (a.k.a. forward-forward volatilities) from the (cap/floor) term volatilities of a CapFloorTermVolSurface.

Member Function Documentation

◆ performCalculations()

void performCalculations ( ) const
overridevirtual

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

Implements LazyObject.