|
QuantLib: a free/open-source library for quantitative finance
fully annotated source code - version 1.38
|
#include <sabrinterpolatedsmilesection.hpp>
Inheritance diagram for SabrInterpolatedSmileSection:
Collaboration diagram for SabrInterpolatedSmileSection:Public Member Functions | |
Constructors | |
| SabrInterpolatedSmileSection (const Date &optionDate, Handle< Quote > forward, const std::vector< Rate > &strikes, bool hasFloatingStrikes, Handle< Quote > atmVolatility, const std::vector< Handle< Quote > > &volHandles, Real alpha, Real beta, Real nu, Real rho, bool isAlphaFixed=false, bool isBetaFixed=false, bool isNuFixed=false, bool isRhoFixed=false, bool vegaWeighted=true, ext::shared_ptr< EndCriteria > endCriteria=ext::shared_ptr< EndCriteria >(), ext::shared_ptr< OptimizationMethod > method=ext::shared_ptr< OptimizationMethod >(), const DayCounter &dc=Actual365Fixed(), Real shift=0.0) | |
| all market data are quotes More... | |
| SabrInterpolatedSmileSection (const Date &optionDate, const Rate &forward, const std::vector< Rate > &strikes, bool hasFloatingStrikes, const Volatility &atmVolatility, const std::vector< Volatility > &vols, Real alpha, Real beta, Real nu, Real rho, bool isAlphaFixed=false, bool isBetaFixed=false, bool isNuFixed=false, bool isRhoFixed=false, bool vegaWeighted=true, ext::shared_ptr< EndCriteria > endCriteria=ext::shared_ptr< EndCriteria >(), ext::shared_ptr< OptimizationMethod > method=ext::shared_ptr< OptimizationMethod >(), const DayCounter &dc=Actual365Fixed(), Real shift=0.0) | |
| no quotes More... | |
LazyObject interface | |
| void | performCalculations () const override |
| void | update () override |
SmileSection interface | |
| Real | minStrike () const override |
| Real | maxStrike () const override |
| Real | atmLevel () const override |
| Real | varianceImpl (Rate strike) const override |
| Volatility | volatilityImpl (Rate strike) const override |
Public Member Functions inherited from SmileSection | |
| SmileSection (const Date &d, DayCounter dc=DayCounter(), const Date &referenceDate=Date(), VolatilityType type=ShiftedLognormal, Rate shift=0.0) | |
| SmileSection (Time exerciseTime, DayCounter dc=DayCounter(), VolatilityType type=ShiftedLognormal, Rate shift=0.0) | |
| SmileSection ()=default | |
| ~SmileSection () override=default | |
| void | update () override |
| virtual Real | minStrike () const =0 |
| virtual Real | maxStrike () const =0 |
| Real | variance (Rate strike) const |
| Volatility | volatility (Rate strike) const |
| virtual Real | atmLevel () const =0 |
| virtual const Date & | exerciseDate () const |
| virtual VolatilityType | volatilityType () const |
| virtual Rate | shift () const |
| virtual const Date & | referenceDate () const |
| virtual Time | exerciseTime () const |
| virtual const DayCounter & | dayCounter () const |
| virtual Real | optionPrice (Rate strike, Option::Type type=Option::Call, Real discount=1.0) const |
| virtual Real | digitalOptionPrice (Rate strike, Option::Type type=Option::Call, Real discount=1.0, Real gap=1.0e-5) const |
| virtual Real | vega (Rate strike, Real discount=1.0) const |
| virtual Real | density (Rate strike, Real discount=1.0, Real gap=1.0E-4) const |
| Volatility | volatility (Rate strike, VolatilityType type, Real shift=0.0) const |
Public Member Functions inherited from Observable | |
| Observable ()=default | |
| Observable (const Observable &) | |
| Observable & | operator= (const Observable &) |
| Observable (Observable &&)=delete | |
| Observable & | operator= (Observable &&)=delete |
| virtual | ~Observable ()=default |
| void | notifyObservers () |
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 LazyObject | |
| LazyObject () | |
| ~LazyObject () override=default | |
| bool | isCalculated () const |
| void | forwardFirstNotificationOnly () |
| void | alwaysForwardNotifications () |
| void | recalculate () |
| void | freeze () |
| void | unfreeze () |
Inspectors | |
| ext::shared_ptr< SABRInterpolation > | sabrInterpolation_ |
| const Handle< Quote > | forward_ |
| Market data. More... | |
| const Handle< Quote > | atmVolatility_ |
| std::vector< Handle< Quote > > | volHandles_ |
| std::vector< Rate > | strikes_ |
| std::vector< Rate > | actualStrikes_ |
| Only strikes corresponding to valid market data. More... | |
| bool | hasFloatingStrikes_ |
| Real | forwardValue_ |
| std::vector< Volatility > | vols_ |
| Real | alpha_ |
| Sabr parameters. More... | |
| Real | beta_ |
| Real | nu_ |
| Real | rho_ |
| bool | isAlphaFixed_ |
| Sabr interpolation settings. More... | |
| bool | isBetaFixed_ |
| bool | isNuFixed_ |
| bool | isRhoFixed_ |
| bool | vegaWeighted_ |
| const ext::shared_ptr< EndCriteria > | endCriteria_ |
| const ext::shared_ptr< OptimizationMethod > | method_ |
| Date | evaluationDate_ |
| Real | alpha () const |
| Real | beta () const |
| Real | nu () const |
| Real | rho () const |
| Real | rmsError () const |
| Real | maxError () const |
| EndCriteria::Type | endCriteria () const |
| void | createInterpolation () const |
| Creates the mutable SABRInterpolation. More... | |
Additional Inherited Members | |
Public Types inherited from Observer | |
| typedef set_type::iterator | iterator |
Protected Member Functions inherited from SmileSection | |
| virtual void | initializeExerciseTime () const |
| virtual Real | varianceImpl (Rate strike) const |
| virtual Volatility | volatilityImpl (Rate strike) const =0 |
Protected Member Functions inherited from LazyObject | |
| virtual void | calculate () const |
Protected Attributes inherited from LazyObject | |
| bool | calculated_ = false |
| bool | frozen_ = false |
| bool | alwaysForward_ |
Definition at line 38 of file sabrinterpolatedsmilesection.hpp.
| SabrInterpolatedSmileSection | ( | const Date & | optionDate, |
| Handle< Quote > | forward, | ||
| const std::vector< Rate > & | strikes, | ||
| bool | hasFloatingStrikes, | ||
| Handle< Quote > | atmVolatility, | ||
| const std::vector< Handle< Quote > > & | volHandles, | ||
| Real | alpha, | ||
| Real | beta, | ||
| Real | nu, | ||
| Real | rho, | ||
| bool | isAlphaFixed = false, |
||
| bool | isBetaFixed = false, |
||
| bool | isNuFixed = false, |
||
| bool | isRhoFixed = false, |
||
| bool | vegaWeighted = true, |
||
| ext::shared_ptr< EndCriteria > | endCriteria = ext::shared_ptr<EndCriteria>(), |
||
| ext::shared_ptr< OptimizationMethod > | method = ext::shared_ptr<OptimizationMethod>(), |
||
| const DayCounter & | dc = Actual365Fixed(), |
||
| Real | shift = 0.0 |
||
| ) |
all market data are quotes
Definition at line 29 of file sabrinterpolatedsmilesection.cpp.
Here is the call graph for this function:| SabrInterpolatedSmileSection | ( | const Date & | optionDate, |
| const Rate & | forward, | ||
| const std::vector< Rate > & | strikes, | ||
| bool | hasFloatingStrikes, | ||
| const Volatility & | atmVolatility, | ||
| const std::vector< Volatility > & | vols, | ||
| Real | alpha, | ||
| Real | beta, | ||
| Real | nu, | ||
| Real | rho, | ||
| bool | isAlphaFixed = false, |
||
| bool | isBetaFixed = false, |
||
| bool | isNuFixed = false, |
||
| bool | isRhoFixed = false, |
||
| bool | vegaWeighted = true, |
||
| ext::shared_ptr< EndCriteria > | endCriteria = ext::shared_ptr<EndCriteria>(), |
||
| ext::shared_ptr< OptimizationMethod > | method = ext::shared_ptr<OptimizationMethod>(), |
||
| const DayCounter & | dc = Actual365Fixed(), |
||
| Real | shift = 0.0 |
||
| ) |
no quotes
Definition at line 63 of file sabrinterpolatedsmilesection.cpp.
|
overridevirtual |
This method must implement any calculations which must be (re)done in order to calculate the desired results.
Implements LazyObject.
Definition at line 107 of file sabrinterpolatedsmilesection.cpp.
Here is the call graph for this function:
|
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 LazyObject.
Definition at line 138 of file sabrinterpolatedsmilesection.hpp.
Here is the call graph for this function:
|
overridevirtual |
Implements SmileSection.
Definition at line 183 of file sabrinterpolatedsmilesection.hpp.
Here is the call graph for this function:
|
overridevirtual |
Implements SmileSection.
Definition at line 189 of file sabrinterpolatedsmilesection.hpp.
Here is the call graph for this function:
|
overridevirtual |
Implements SmileSection.
Definition at line 194 of file sabrinterpolatedsmilesection.hpp.
Here is the call graph for this function:Reimplemented from SmileSection.
Definition at line 129 of file sabrinterpolatedsmilesection.cpp.
Here is the call graph for this function:Implements SmileSection.
Definition at line 143 of file sabrinterpolatedsmilesection.hpp.
Here is the call graph for this function:| Real alpha | ( | ) | const |
Definition at line 148 of file sabrinterpolatedsmilesection.hpp.
Here is the call graph for this function:| Real beta | ( | ) | const |
Definition at line 153 of file sabrinterpolatedsmilesection.hpp.
Here is the call graph for this function:| Real nu | ( | ) | const |
Definition at line 158 of file sabrinterpolatedsmilesection.hpp.
Here is the call graph for this function:| Real rho | ( | ) | const |
Definition at line 163 of file sabrinterpolatedsmilesection.hpp.
Here is the call graph for this function:| Real rmsError | ( | ) | const |
Definition at line 168 of file sabrinterpolatedsmilesection.hpp.
Here is the call graph for this function:| Real maxError | ( | ) | const |
Definition at line 173 of file sabrinterpolatedsmilesection.hpp.
Here is the call graph for this function:| EndCriteria::Type endCriteria | ( | ) | const |
Definition at line 178 of file sabrinterpolatedsmilesection.hpp.
Here is the call graph for this function:
|
protected |
Creates the mutable SABRInterpolation.
Definition at line 97 of file sabrinterpolatedsmilesection.cpp.
Here is the call graph for this function:
Here is the caller graph for this function:
|
mutableprotected |
Definition at line 114 of file sabrinterpolatedsmilesection.hpp.
Market data.
Definition at line 117 of file sabrinterpolatedsmilesection.hpp.
Definition at line 118 of file sabrinterpolatedsmilesection.hpp.
Definition at line 119 of file sabrinterpolatedsmilesection.hpp.
|
mutableprotected |
Definition at line 120 of file sabrinterpolatedsmilesection.hpp.
|
mutableprotected |
Only strikes corresponding to valid market data.
Definition at line 122 of file sabrinterpolatedsmilesection.hpp.
|
protected |
Definition at line 123 of file sabrinterpolatedsmilesection.hpp.
|
mutableprotected |
Definition at line 125 of file sabrinterpolatedsmilesection.hpp.
|
mutableprotected |
Definition at line 126 of file sabrinterpolatedsmilesection.hpp.
|
protected |
Sabr parameters.
Definition at line 128 of file sabrinterpolatedsmilesection.hpp.
|
protected |
Definition at line 128 of file sabrinterpolatedsmilesection.hpp.
|
protected |
Definition at line 128 of file sabrinterpolatedsmilesection.hpp.
|
protected |
Definition at line 128 of file sabrinterpolatedsmilesection.hpp.
|
protected |
Sabr interpolation settings.
Definition at line 130 of file sabrinterpolatedsmilesection.hpp.
|
protected |
Definition at line 130 of file sabrinterpolatedsmilesection.hpp.
|
protected |
Definition at line 130 of file sabrinterpolatedsmilesection.hpp.
|
protected |
Definition at line 130 of file sabrinterpolatedsmilesection.hpp.
|
protected |
Definition at line 131 of file sabrinterpolatedsmilesection.hpp.
|
protected |
Definition at line 132 of file sabrinterpolatedsmilesection.hpp.
|
protected |
Definition at line 133 of file sabrinterpolatedsmilesection.hpp.
|
mutableprotected |
Definition at line 135 of file sabrinterpolatedsmilesection.hpp.