QuantLib: a free/open-source library for quantitative finance
Fully annotated sources - version 1.32
Loading...
Searching...
No Matches
Classes | Public Member Functions | Protected Member Functions | Private Member Functions | Private Attributes | List of all members
MarkovFunctional Class Reference

#include <ql/models/shortrate/onefactormodels/markovfunctional.hpp>

+ Inheritance diagram for MarkovFunctional:
+ Collaboration diagram for MarkovFunctional:

Classes

struct  CalibrationPoint
 
class  CustomSmileFactory
 
class  CustomSmileSection
 
struct  ModelOutputs
 
struct  ModelSettings
 
class  ZeroHelper
 

Public Member Functions

 MarkovFunctional (const Handle< YieldTermStructure > &termStructure, Real reversion, std::vector< Date > volstepdates, std::vector< Real > volatilities, const Handle< SwaptionVolatilityStructure > &swaptionVol, const std::vector< Date > &swaptionExpiries, const std::vector< Period > &swaptionTenors, const ext::shared_ptr< SwapIndex > &swapIndexBase, MarkovFunctional::ModelSettings modelSettings=ModelSettings())
 
 MarkovFunctional (const Handle< YieldTermStructure > &termStructure, Real reversion, std::vector< Date > volstepdates, std::vector< Real > volatilities, const Handle< OptionletVolatilityStructure > &capletVol, const std::vector< Date > &capletExpiries, ext::shared_ptr< IborIndex > iborIndex, MarkovFunctional::ModelSettings modelSettings=ModelSettings())
 
const ModelSettingsmodelSettings () const
 
const ModelOutputsmodelOutputs () const
 
const DatenumeraireDate () const
 
const TimenumeraireTime () const
 
const Arrayvolatility () const
 
void calibrate (const std::vector< ext::shared_ptr< CalibrationHelper > > &helpers, OptimizationMethod &method, const EndCriteria &endCriteria, const Constraint &constraint=Constraint(), const std::vector< Real > &weights=std::vector< Real >(), const std::vector< bool > &fixParameters=std::vector< bool >()) override
 Calibrate to a set of market instruments (usually caps/swaptions) More...
 
void calibrate (const std::vector< ext::shared_ptr< BlackCalibrationHelper > > &helpers, OptimizationMethod &method, const EndCriteria &endCriteria, const Constraint &constraint=Constraint(), const std::vector< Real > &weights=std::vector< Real >(), const std::vector< bool > &fixParameters=std::vector< bool >())
 
void update () override
 
std::vector< std::pair< Size, Size > > arbitrageIndices () const
 
void forceArbitrageIndices (const std::vector< std::pair< Size, Size > > &indices)
 
- Public Member Functions inherited from Gaussian1dModel
ext::shared_ptr< StochasticProcess1DstateProcess () const
 
Real numeraire (Time t, Real y=0.0, const Handle< YieldTermStructure > &yts=Handle< YieldTermStructure >()) const
 
Real zerobond (Time T, Time t=0.0, Real y=0.0, const Handle< YieldTermStructure > &yts=Handle< YieldTermStructure >()) const
 
Real numeraire (const Date &referenceDate, Real y=0.0, const Handle< YieldTermStructure > &yts=Handle< YieldTermStructure >()) const
 
Real zerobond (const Date &maturity, const Date &referenceDate=Null< Date >(), Real y=0.0, const Handle< YieldTermStructure > &yts=Handle< YieldTermStructure >()) const
 
Real zerobondOption (const Option::Type &type, const Date &expiry, const Date &valueDate, const Date &maturity, Rate strike, const Date &referenceDate=Null< Date >(), Real y=0.0, const Handle< YieldTermStructure > &yts=Handle< YieldTermStructure >(), Real yStdDevs=7.0, Size yGridPoints=64, bool extrapolatePayoff=true, bool flatPayoffExtrapolation=false) const
 
Real forwardRate (const Date &fixing, const Date &referenceDate=Null< Date >(), Real y=0.0, const ext::shared_ptr< IborIndex > &iborIdx=ext::shared_ptr< IborIndex >()) const
 
Real swapRate (const Date &fixing, const Period &tenor, const Date &referenceDate=Null< Date >(), Real y=0.0, const ext::shared_ptr< SwapIndex > &swapIdx=ext::shared_ptr< SwapIndex >()) const
 
Real swapAnnuity (const Date &fixing, const Period &tenor, const Date &referenceDate=Null< Date >(), Real y=0.0, const ext::shared_ptr< SwapIndex > &swapIdx=ext::shared_ptr< SwapIndex >()) const
 
Array yGrid (Real yStdDevs, int gridPoints, Real T=1.0, Real t=0, Real y=0) const
 
- Public Member Functions inherited from TermStructureConsistentModel
 TermStructureConsistentModel (Handle< YieldTermStructure > termStructure)
 
const Handle< YieldTermStructure > & termStructure () const
 
- Public Member Functions inherited from Observable
 Observable ()
 
 Observable (const Observable &)
 
Observableoperator= (const Observable &)
 
 Observable (Observable &&)=delete
 
Observableoperator= (Observable &&)=delete
 
virtual ~Observable ()=default
 
void notifyObservers ()
 
- 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 ()
 
- Public Member Functions inherited from Observer
 Observer ()=default
 
 Observer (const Observer &)
 
Observeroperator= (const Observer &)
 
virtual ~Observer ()
 
std::pair< iterator, boolregisterWith (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 CalibratedModel
 CalibratedModel (Size nArguments)
 
void update () override
 
virtual void calibrate (const std::vector< ext::shared_ptr< CalibrationHelper > > &, OptimizationMethod &method, const EndCriteria &endCriteria, const Constraint &constraint=Constraint(), const std::vector< Real > &weights=std::vector< Real >(), const std::vector< bool > &fixParameters=std::vector< bool >())
 Calibrate to a set of market instruments (usually caps/swaptions) More...
 
Real value (const Array &params, const std::vector< ext::shared_ptr< CalibrationHelper > > &)
 
const ext::shared_ptr< Constraint > & constraint () const
 
EndCriteria::Type endCriteria () const
 Returns end criteria result. More...
 
const ArrayproblemValues () const
 Returns the problem values. More...
 
Array params () const
 Returns array of arguments on which calibration is done. More...
 
virtual void setParams (const Array &params)
 
Integer functionEvaluation () const
 

Protected Member Functions

Real numeraireImpl (Time t, Real y, const Handle< YieldTermStructure > &yts) const override
 
Real zerobondImpl (Time T, Time t, Real y, const Handle< YieldTermStructure > &yts) const override
 
void generateArguments () override
 
void performCalculations () const override
 
std::vector< boolFixedFirstVolatility () const
 
- Protected Member Functions inherited from Gaussian1dModel
 Gaussian1dModel (const Handle< YieldTermStructure > &yieldTermStructure)
 
virtual Real numeraireImpl (Time t, Real y, const Handle< YieldTermStructure > &yts) const =0
 
virtual Real zerobondImpl (Time T, Time t, Real y, const Handle< YieldTermStructure > &yts) const =0
 
void performCalculations () const override
 
void generateArguments ()
 
ext::shared_ptr< VanillaSwapunderlyingSwap (const ext::shared_ptr< SwapIndex > &index, const Date &expiry, const Period &tenor) const
 
- Protected Member Functions inherited from LazyObject
virtual void calculate () const
 
virtual void generateArguments ()
 

Private Member Functions

void initialize ()
 
void updateTimes () const
 
void updateTimes1 () const
 
void updateTimes2 () const
 
void updateSmiles () const
 
void updateNumeraireTabulation () const
 
void makeSwaptionCalibrationPoint (const Date &expiry, const Period &tenor)
 
void makeCapletCalibrationPoint (const Date &expiry)
 
Real marketSwapRate (const Date &expiry, const CalibrationPoint &p, Real digitalPrice, Real guess=0.03, Real shift=0.0) const
 
Real marketDigitalPrice (const Date &expiry, const CalibrationPoint &p, const Option::Type &type, Real strike) const
 
Array deflatedZerobondArray (Time T, Time t, const Array &y) const
 
Array numeraireArray (Time t, const Array &y) const
 
Array zerobondArray (Time T, Time t, const Array &y) const
 
Real deflatedZerobond (Time T, Time t=0.0, Real y=0.0) const
 
Real forwardRateInternal (const Date &fixing, const Date &referenceDate=Null< Date >(), Real y=0.0, bool zeroFixingDays=false, ext::shared_ptr< IborIndex > iborIdx=ext::shared_ptr< IborIndex >()) const
 
Real swapRateInternal (const Date &fixing, const Period &tenor, const Date &referenceDate=Null< Date >(), Real y=0.0, bool zeroFixingDays=false, ext::shared_ptr< SwapIndex > swapIdx=ext::shared_ptr< SwapIndex >()) const
 
Real swapAnnuityInternal (const Date &fixing, const Period &tenor, const Date &referenceDate=Null< Date >(), Real y=0.0, bool zeroFixingDays=false, ext::shared_ptr< SwapIndex > swapIdx=ext::shared_ptr< SwapIndex >()) const
 
Real capletPriceInternal (const Option::Type &type, const Date &expiry, Rate strike, const Date &referenceDate=Null< Date >(), Real y=0.0, bool zeroFixingDays=false, ext::shared_ptr< IborIndex > iborIdx=ext::shared_ptr< IborIndex >()) const
 
Real swaptionPriceInternal (const Option::Type &type, const Date &expiry, const Period &tenor, Rate strike, const Date &referenceDate=Null< Date >(), Real y=0.0, bool zeroFixingDays=false, const ext::shared_ptr< SwapIndex > &swapIdx=ext::shared_ptr< SwapIndex >()) const
 

Private Attributes

ModelSettings modelSettings_
 
ModelOutputs modelOutputs_
 
const bool capletCalibrated_
 
ext::shared_ptr< MatrixdiscreteNumeraire_
 
std::vector< ext::shared_ptr< Interpolation > > numeraire_
 
Parameter reversion_
 
Parametersigma_
 
std::vector< Datevolstepdates_
 
std::vector< Timevolsteptimes_
 
Array volsteptimesArray_
 
std::vector< Realvolatilities_
 
Date numeraireDate_
 
Time numeraireTime_
 
Handle< SwaptionVolatilityStructureswaptionVol_
 
Handle< OptionletVolatilityStructurecapletVol_
 
std::vector< DateswaptionExpiries_
 
std::vector< DatecapletExpiries_
 
std::vector< PeriodswaptionTenors_
 
ext::shared_ptr< SwapIndexswapIndexBase_
 
ext::shared_ptr< IborIndexiborIndex_
 
std::map< Date, CalibrationPointcalibrationPoints_
 
std::vector< Realtimes_
 
Array y_
 
Array normalIntegralX_
 
Array normalIntegralW_
 
std::vector< std::pair< Size, Size > > arbitrageIndices_
 
std::vector< std::pair< Size, Size > > forcedArbitrageIndices_
 

Additional Inherited Members

- Public Types inherited from Observer
typedef set_type::iterator iterator
 
- Static Public Member Functions inherited from Gaussian1dModel
static Real gaussianPolynomialIntegral (Real a, Real b, Real c, Real d, Real e, Real x0, Real x1)
 
static Real gaussianShiftedPolynomialIntegral (Real a, Real b, Real c, Real d, Real e, Real h, Real x0, Real x1)
 
- Protected Attributes inherited from Gaussian1dModel
ext::shared_ptr< StochasticProcess1DstateProcess_
 
Date evaluationDate_
 
bool enforcesTodaysHistoricFixings_
 
- Protected Attributes inherited from LazyObject
bool calculated_ = false
 
bool frozen_ = false
 
bool alwaysForward_
 
- Protected Attributes inherited from CalibratedModel
std::vector< Parameterarguments_
 
ext::shared_ptr< Constraintconstraint_
 
EndCriteria::Type shortRateEndCriteria_ = EndCriteria::None
 
Array problemValues_
 
Integer functionEvaluation_
 

Detailed Description

One factor Markov Functional model class. Some documentation is available here http://ssrn.com/abstract_id=2183721 http://quantlib.org/slides/qlws13/caspers.pdf

The model requires a suitable input smile which means it should be arbitrage free, smooth (at least implying a C^1 call price function) and with a call price function not decreasing too slow in strike direction.

A method for arbitrage free extra- and interpolation due to Kahale is provided and may be used to improve an input smile. Alternatively a SABR smile with arbitrage free wings can be fitted to the input smile to provide an appropriate input smile.

If you use the Kahale or SABR method for smile pretreatment then this implies zero density for underlying rates below minus the displacement parameter. This means that in this case the market yield term structure must imply underlying atm forward rates greater than minus displacement.

If you do not use a smile pretreatment you should ensure that the input smileSection is arbitrage free and that the input smileSection covers the strikes from lowerRateBound to upperRateBound.

During calibration a monocurve setup is assumed with the given yield term structure determining the rates throughout, no matter what curves are linked to the indices in the volatility term structures. The yield term structure should therefore be the main risk curve, i.e. the forwarding curve for the respective swaption or cap underlyings.

The model uses a simplified formula for the npv of a swaps floating leg namely $P(t,T_0)-P(t,T_1)$ with $T_0$ being the start date of the leg and $T_1$ being the last payment date, which is an approximation to the true npv.

The model calibrates to slightly modified market options in the sense that the start date is set equal to the fixing date, i.e. there is no delay. The model diagnostic outputs refer to this modified instrument. In general the actual market instrument including the delay is still matched very well though the calibration is done on a slightly different instrument.

AdjustYts and AdjustDigitals are experimental options. Specifying AdjustYts may have a negative impact on the volatility smile match, so it should be used with special care. For long term calibration it seems an interesting option though.

A bad fit to the initial yield term structure may be due to a non suitable input smile or accumulating numerical errors in very long term calibrations. The former point is adressed by smile pretreatment options. The latter point may be tackled by higher values for the numerical parameters possibly together with NTL high precision computing.

When using a shifted lognormal smile input the lower rate bound is adjusted by the shift so that a lower bound of 0.0 always corresponds to the lower bound of the shifted distribution.

If a custom smile is used, this will take full responsibility of inverting digital prices to market rates, so digitalGap, marketRateAccuracy, lowerRateBound, upperRateBound are irrelavant and the smile moneyness checkpoints are only used for the debug model output in this setup.

Definition at line 99 of file markovfunctional.hpp.

Constructor & Destructor Documentation

◆ MarkovFunctional() [1/2]

MarkovFunctional ( const Handle< YieldTermStructure > &  termStructure,
Real  reversion,
std::vector< Date volstepdates,
std::vector< Real volatilities,
const Handle< SwaptionVolatilityStructure > &  swaptionVol,
const std::vector< Date > &  swaptionExpiries,
const std::vector< Period > &  swaptionTenors,
const ext::shared_ptr< SwapIndex > &  swapIndexBase,
MarkovFunctional::ModelSettings  modelSettings = ModelSettings() 
)

Definition at line 34 of file markovfunctional.cpp.

+ Here is the call graph for this function:

◆ MarkovFunctional() [2/2]

MarkovFunctional ( const Handle< YieldTermStructure > &  termStructure,
Real  reversion,
std::vector< Date volstepdates,
std::vector< Real volatilities,
const Handle< OptionletVolatilityStructure > &  capletVol,
const std::vector< Date > &  capletExpiries,
ext::shared_ptr< IborIndex iborIndex,
MarkovFunctional::ModelSettings  modelSettings = ModelSettings() 
)

Definition at line 65 of file markovfunctional.cpp.

+ Here is the call graph for this function:

Member Function Documentation

◆ modelSettings()

const ModelSettings & modelSettings ( ) const

Definition at line 325 of file markovfunctional.hpp.

◆ modelOutputs()

const MarkovFunctional::ModelOutputs & modelOutputs ( ) const

Definition at line 608 of file markovfunctional.cpp.

+ Here is the call graph for this function:

◆ numeraireDate()

const Date & numeraireDate ( ) const

Definition at line 328 of file markovfunctional.hpp.

◆ numeraireTime()

const Time & numeraireTime ( ) const

Definition at line 329 of file markovfunctional.hpp.

+ Here is the caller graph for this function:

◆ volatility()

const Array & volatility ( ) const

Definition at line 331 of file markovfunctional.hpp.

+ Here is the call graph for this function:

◆ calibrate() [1/2]

void calibrate ( const std::vector< ext::shared_ptr< CalibrationHelper > > &  instruments,
OptimizationMethod method,
const EndCriteria endCriteria,
const Constraint constraint = Constraint(),
const std::vector< Real > &  weights = std::vector<Real>(),
const std::vector< bool > &  fixParameters = std::vector<bool>() 
)
overridevirtual

Calibrate to a set of market instruments (usually caps/swaptions)

An additional constraint can be passed which must be satisfied in addition to the constraints of the model.

Reimplemented from CalibratedModel.

Definition at line 333 of file markovfunctional.hpp.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ calibrate() [2/2]

void calibrate ( const std::vector< ext::shared_ptr< BlackCalibrationHelper > > &  helpers,
OptimizationMethod method,
const EndCriteria endCriteria,
const Constraint constraint = Constraint(),
const std::vector< Real > &  weights = std::vector<Real>(),
const std::vector< bool > &  fixParameters = std::vector<bool>() 
)

Definition at line 345 of file markovfunctional.hpp.

+ Here is the call graph for this function:

◆ update()

void update ( )
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.

Reimplemented from CalibratedModel.

Definition at line 359 of file markovfunctional.hpp.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ arbitrageIndices()

std::vector< std::pair< Size, Size > > arbitrageIndices ( ) const

Definition at line 362 of file markovfunctional.hpp.

+ Here is the call graph for this function:

◆ forceArbitrageIndices()

void forceArbitrageIndices ( const std::vector< std::pair< Size, Size > > &  indices)

Definition at line 369 of file markovfunctional.hpp.

+ Here is the call graph for this function:

◆ numeraireImpl()

Real numeraireImpl ( Time  t,
Real  y,
const Handle< YieldTermStructure > &  yts 
) const
overrideprotectedvirtual

Implements Gaussian1dModel.

Definition at line 774 of file markovfunctional.cpp.

+ Here is the call graph for this function:

◆ zerobondImpl()

Real zerobondImpl ( Time  T,
Time  t,
Real  y,
const Handle< YieldTermStructure > &  yts 
) const
overrideprotectedvirtual

Implements Gaussian1dModel.

Definition at line 792 of file markovfunctional.cpp.

+ Here is the call graph for this function:

◆ generateArguments()

void generateArguments ( )
overrideprotectedvirtual

Reimplemented from CalibratedModel.

Definition at line 380 of file markovfunctional.hpp.

+ Here is the call graph for this function:

◆ performCalculations()

void performCalculations ( ) const
overrideprotectedvirtual

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

Reimplemented from Gaussian1dModel.

Definition at line 389 of file markovfunctional.hpp.

+ Here is the call graph for this function:

◆ FixedFirstVolatility()

std::vector< bool > FixedFirstVolatility ( ) const
protected

Definition at line 396 of file markovfunctional.hpp.

+ Here is the caller graph for this function:

◆ initialize()

void initialize ( )
private

Definition at line 132 of file markovfunctional.cpp.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ updateTimes()

void updateTimes ( ) const
private

Definition at line 88 of file markovfunctional.cpp.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ updateTimes1()

void updateTimes1 ( ) const
private

Definition at line 94 of file markovfunctional.cpp.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ updateTimes2()

void updateTimes2 ( ) const
private

Definition at line 112 of file markovfunctional.cpp.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ updateSmiles()

void updateSmiles ( ) const
private

Definition at line 284 of file markovfunctional.cpp.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ updateNumeraireTabulation()

void updateNumeraireTabulation ( ) const
private

Definition at line 439 of file markovfunctional.cpp.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ makeSwaptionCalibrationPoint()

void makeSwaptionCalibrationPoint ( const Date expiry,
const Period tenor 
)
private

Definition at line 234 of file markovfunctional.cpp.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ makeCapletCalibrationPoint()

void makeCapletCalibrationPoint ( const Date expiry)
private

Definition at line 261 of file markovfunctional.cpp.

+ Here is the caller graph for this function:

◆ marketSwapRate()

Real marketSwapRate ( const Date expiry,
const CalibrationPoint p,
Real  digitalPrice,
Real  guess = 0.03,
Real  shift = 0.0 
) const
private

Definition at line 812 of file markovfunctional.cpp.

+ Here is the caller graph for this function:

◆ marketDigitalPrice()

Real marketDigitalPrice ( const Date expiry,
const CalibrationPoint p,
const Option::Type type,
Real  strike 
) const
private

Definition at line 828 of file markovfunctional.cpp.

+ Here is the caller graph for this function:

◆ deflatedZerobondArray()

Array deflatedZerobondArray ( Time  T,
Time  t,
const Array y 
) const
private

Definition at line 746 of file markovfunctional.cpp.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ numeraireArray()

Array numeraireArray ( Time  t,
const Array y 
) const
private

Definition at line 702 of file markovfunctional.cpp.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ zerobondArray()

Array zerobondArray ( Time  T,
Time  t,
const Array y 
) const
private

Definition at line 741 of file markovfunctional.cpp.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ deflatedZerobond()

Real deflatedZerobond ( Time  T,
Time  t = 0.0,
Real  y = 0.0 
) const
private

Definition at line 805 of file markovfunctional.cpp.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ forwardRateInternal()

Real forwardRateInternal ( const Date fixing,
const Date referenceDate = Null<Date>(),
Real  y = 0.0,
bool  zeroFixingDays = false,
ext::shared_ptr< IborIndex iborIdx = ext::shared_ptr<IborIndex>() 
) const
private

Definition at line 942 of file markovfunctional.cpp.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ swapRateInternal()

Real swapRateInternal ( const Date fixing,
const Period tenor,
const Date referenceDate = Null<Date>(),
Real  y = 0.0,
bool  zeroFixingDays = false,
ext::shared_ptr< SwapIndex swapIdx = ext::shared_ptr<SwapIndex>() 
) const
private

Definition at line 965 of file markovfunctional.cpp.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ swapAnnuityInternal()

Real swapAnnuityInternal ( const Date fixing,
const Period tenor,
const Date referenceDate = Null<Date>(),
Real  y = 0.0,
bool  zeroFixingDays = false,
ext::shared_ptr< SwapIndex swapIdx = ext::shared_ptr<SwapIndex>() 
) const
private

Definition at line 991 of file markovfunctional.cpp.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ capletPriceInternal()

Real capletPriceInternal ( const Option::Type type,
const Date expiry,
Rate  strike,
const Date referenceDate = Null<Date>(),
Real  y = 0.0,
bool  zeroFixingDays = false,
ext::shared_ptr< IborIndex iborIdx = ext::shared_ptr<IborIndex>() 
) const
private

Definition at line 1090 of file markovfunctional.cpp.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ swaptionPriceInternal()

Real swaptionPriceInternal ( const Option::Type type,
const Date expiry,
const Period tenor,
Rate  strike,
const Date referenceDate = Null<Date>(),
Real  y = 0.0,
bool  zeroFixingDays = false,
const ext::shared_ptr< SwapIndex > &  swapIdx = ext::shared_ptr<SwapIndex>() 
) const
private

Definition at line 1019 of file markovfunctional.cpp.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

Member Data Documentation

◆ modelSettings_

ModelSettings modelSettings_
private

Definition at line 497 of file markovfunctional.hpp.

◆ modelOutputs_

ModelOutputs modelOutputs_
mutableprivate

Definition at line 498 of file markovfunctional.hpp.

◆ capletCalibrated_

const bool capletCalibrated_
private

Definition at line 500 of file markovfunctional.hpp.

◆ discreteNumeraire_

ext::shared_ptr<Matrix> discreteNumeraire_
private

Definition at line 502 of file markovfunctional.hpp.

◆ numeraire_

std::vector<ext::shared_ptr<Interpolation> > numeraire_
private

Definition at line 505 of file markovfunctional.hpp.

◆ reversion_

Parameter reversion_
private

Definition at line 507 of file markovfunctional.hpp.

◆ sigma_

Parameter& sigma_
private

Definition at line 508 of file markovfunctional.hpp.

◆ volstepdates_

std::vector<Date> volstepdates_
private

Definition at line 510 of file markovfunctional.hpp.

◆ volsteptimes_

std::vector<Time> volsteptimes_
mutableprivate

Definition at line 511 of file markovfunctional.hpp.

◆ volsteptimesArray_

Array volsteptimesArray_
mutableprivate

Definition at line 512 of file markovfunctional.hpp.

◆ volatilities_

std::vector<Real> volatilities_
private

Definition at line 514 of file markovfunctional.hpp.

◆ numeraireDate_

Date numeraireDate_
private

Definition at line 516 of file markovfunctional.hpp.

◆ numeraireTime_

Time numeraireTime_
mutableprivate

Definition at line 517 of file markovfunctional.hpp.

◆ swaptionVol_

Handle<SwaptionVolatilityStructure> swaptionVol_
private

Definition at line 519 of file markovfunctional.hpp.

◆ capletVol_

Handle<OptionletVolatilityStructure> capletVol_
private

Definition at line 520 of file markovfunctional.hpp.

◆ swaptionExpiries_

std::vector<Date> swaptionExpiries_
private

Definition at line 522 of file markovfunctional.hpp.

◆ capletExpiries_

std::vector<Date> capletExpiries_
private

Definition at line 522 of file markovfunctional.hpp.

◆ swaptionTenors_

std::vector<Period> swaptionTenors_
private

Definition at line 523 of file markovfunctional.hpp.

◆ swapIndexBase_

ext::shared_ptr<SwapIndex> swapIndexBase_
private

Definition at line 524 of file markovfunctional.hpp.

◆ iborIndex_

ext::shared_ptr<IborIndex> iborIndex_
private

Definition at line 525 of file markovfunctional.hpp.

◆ calibrationPoints_

std::map<Date, CalibrationPoint> calibrationPoints_
mutableprivate

Definition at line 527 of file markovfunctional.hpp.

◆ times_

std::vector<Real> times_
mutableprivate

Definition at line 528 of file markovfunctional.hpp.

◆ y_

Array y_
private

Definition at line 529 of file markovfunctional.hpp.

◆ normalIntegralX_

Array normalIntegralX_
private

Definition at line 531 of file markovfunctional.hpp.

◆ normalIntegralW_

Array normalIntegralW_
private

Definition at line 532 of file markovfunctional.hpp.

◆ arbitrageIndices_

std::vector<std::pair<Size,Size> > arbitrageIndices_
mutableprivate

Definition at line 534 of file markovfunctional.hpp.

◆ forcedArbitrageIndices_

std::vector<std::pair<Size,Size> > forcedArbitrageIndices_
private

Definition at line 535 of file markovfunctional.hpp.