QuantLib: a free/open-source library for quantitative finance
fully annotated source code - version 1.34
|
#include <gaussian1dmodel.hpp>
Classes | |
struct | CachedSwapKey |
struct | CachedSwapKeyHasher |
Public Member Functions | |
ext::shared_ptr< StochasticProcess1D > | stateProcess () 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 &) | |
Observable & | operator= (const Observable &) |
Observable (Observable &&)=delete | |
Observable & | operator= (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 &) | |
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 () |
Static Public Member Functions | |
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 Member Functions | |
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< VanillaSwap > | underlyingSwap (const ext::shared_ptr< SwapIndex > &index, const Date &expiry, const Period &tenor) const |
Protected Member Functions inherited from LazyObject | |
virtual void | calculate () const |
Protected Attributes | |
ext::shared_ptr< StochasticProcess1D > | stateProcess_ |
Date | evaluationDate_ |
bool | enforcesTodaysHistoricFixings_ |
Protected Attributes inherited from LazyObject | |
bool | calculated_ = false |
bool | frozen_ = false |
bool | alwaysForward_ |
Private Attributes | |
std::unordered_map< CachedSwapKey, ext::shared_ptr< VanillaSwap >, CachedSwapKeyHasher > | swapCache_ |
Additional Inherited Members | |
Public Types inherited from Observer | |
typedef set_type::iterator | iterator |
One factor interest rate model interface class The only methods that must be implemented by subclasses are the numeraire and zerobond methods for an input array of state variable values. The variable $y$ is understood to be the standardized (zero mean, unit variance) version of the model's original state variable $x$.
NTL support may be enabled by defining GAUSS1D_ENABLE_NTL in this file. For details on NTL see http://www.shoup.net/ntl/
Definition at line 72 of file gaussian1dmodel.hpp.
|
protected |
ext::shared_ptr< StochasticProcess1D > stateProcess | ( | ) | const |
Definition at line 224 of file gaussian1dmodel.hpp.
Real numeraire | ( | Time | t, |
Real | y = 0.0 , |
||
const Handle< YieldTermStructure > & | yts = Handle<YieldTermStructure>() |
||
) | const |
Definition at line 231 of file gaussian1dmodel.hpp.
Real zerobond | ( | Time | T, |
Time | t = 0.0 , |
||
Real | y = 0.0 , |
||
const Handle< YieldTermStructure > & | yts = Handle<YieldTermStructure>() |
||
) | const |
Definition at line 238 of file gaussian1dmodel.hpp.
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 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 |
Definition at line 53 of file gaussian1dmodel.cpp.
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 |
Definition at line 113 of file gaussian1dmodel.cpp.
Computes the integral
\[ {2\pi}^{-0.5} \int_{a}^{b} p(x) \exp{-0.5*x*x} \mathrm{d}x \]
with
\[ p(x) = ax^4+bx^3+cx^2+dx+e \]
.
Definition at line 207 of file gaussian1dmodel.cpp.
|
static |
Computes the integral
\[ {2\pi}^{-0.5} \int_{a}^{b} p(x) \exp{-0.5*x*x} \mathrm{d}x \]
with
\[ p(x) = a(x-h)^4+b(x-h)^3+c(x-h)^2+d(x-h)+e \]
.
Definition at line 240 of file gaussian1dmodel.cpp.
Generates a grid of values for the standardized state variable $y$ at time $T$ conditional on $y(t)=y$, covering yStdDevs standard deviations consisting of 2*gridPoints+1 points
Definition at line 249 of file gaussian1dmodel.cpp.
|
protectedpure virtual |
|
overrideprotectedvirtual |
This method must implement any calculations which must be (re)done in order to calculate the desired results.
Implements LazyObject.
Reimplemented in Gsr, and MarkovFunctional.
Definition at line 191 of file gaussian1dmodel.hpp.
|
protected |
|
protected |
|
mutableprivate |
Definition at line 177 of file gaussian1dmodel.hpp.
|
protected |
Definition at line 219 of file gaussian1dmodel.hpp.
|
mutableprotected |
Definition at line 220 of file gaussian1dmodel.hpp.
|
mutableprotected |
Definition at line 221 of file gaussian1dmodel.hpp.