public class HullWhiteModelWithConstantCoeff extends AbstractProcessModel implements LIBORModel
HullWhiteModel.
For details and documentation please see HullWhiteModel for real applications.
| Constructor and Description |
|---|
HullWhiteModelWithConstantCoeff(TimeDiscretization liborPeriodDiscretization,
AnalyticModel analyticModel,
ForwardCurve forwardRateCurve,
DiscountCurve discountCurve,
double meanReversion,
double volatility,
Map<String,?> properties)
Creates a Hull-White model which implements
LIBORMarketModel. |
| Modifier and Type | Method and Description |
|---|---|
RandomVariable |
applyStateSpaceTransform(int componentIndex,
RandomVariable randomVariable)
Applies the state space transform fi to the given state random variable
such that Yi → fi(Yi) =: Xi.
|
RandomVariable |
applyStateSpaceTransformInverse(int componentIndex,
RandomVariable randomVariable) |
AnalyticModel |
getAnalyticModel()
Return the associated analytic model, a collection of market date object like discount curve, forward curve
and volatility surfaces.
|
LIBORMarketModel |
getCloneWithModifiedData(Map<String,Object> dataModified)
Create a new object implementing LIBORModel, using the new data.
|
DiscountCurve |
getDiscountCurve()
Return the discount curve associated the forwards.
|
RandomVariable[] |
getDrift(int timeIndex,
RandomVariable[] realizationAtTimeIndex,
RandomVariable[] realizationPredictor)
This method has to be implemented to return the drift, i.e.
|
RandomVariable[] |
getFactorLoading(int timeIndex,
int componentIndex,
RandomVariable[] realizationAtTimeIndex)
This method has to be implemented to return the factor loadings, i.e.
|
ForwardCurve |
getForwardRateCurve()
Return the initial forward rate curve.
|
RandomVariable[] |
getInitialState()
Returns the initial value of the state variable of the process Y, not to be
confused with the initial value of the model X (which is the state space transform
applied to this state value.
|
double |
getIntegratedBondSquaredVolatility(double time,
double maturity) |
RandomVariable |
getLIBOR(double time,
double periodStart,
double periodEnd)
Returns the time \( t \) forward rate on the models forward curve.
|
RandomVariable |
getLIBOR(int timeIndex,
int liborIndex)
Return the forward rate at a given timeIndex and for a given liborIndex.
|
double |
getLiborPeriod(int timeIndex)
The period start corresponding to a given forward rate discretization index.
|
TimeDiscretization |
getLiborPeriodDiscretization()
The tenor time discretization of the forward rate curve.
|
int |
getLiborPeriodIndex(double time)
Same as java.util.Arrays.binarySearch(liborPeriodDiscretization,time).
|
Map<String,RandomVariable> |
getModelParameters()
Returns a map of independent model parameters of this model.
|
int |
getNumberOfComponents()
Returns the number of components
|
int |
getNumberOfLibors()
Get the number of LIBORs in the LIBOR discretization.
|
RandomVariable |
getNumeraire(double time)
Return the numeraire at a given time index.
|
RandomVariable |
getRandomVariableForConstant(double value)
Return a random variable initialized with a constant using the models random variable factory.
|
double |
getShortRateConditionalVariance(double time,
double maturity)
Calculates the variance \( \mathop{Var}(r(t) \vert r(s) ) \), that is
\(
\int_{s}^{t} \sigma^{2}(\tau) \exp(-2 \cdot a \cdot (t-\tau)) \ \mathrm{d}\tau
\) where \( a \) is the meanReversion and \( \sigma \) is the short rate instantaneous volatility.
|
getInitialValue, getMonteCarloWeights, getNumberOfFactors, getProcess, getProcessValue, getReferenceDate, getTime, getTimeDiscretization, getTimeIndex, setProcessclone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitgetForwardDiscountBondgetNumberOfFactors, getProcess, getReferenceDate, getTimeDiscretization, setProcesspublic HullWhiteModelWithConstantCoeff(TimeDiscretization liborPeriodDiscretization, AnalyticModel analyticModel, ForwardCurve forwardRateCurve, DiscountCurve discountCurve, double meanReversion, double volatility, Map<String,?> properties)
LIBORMarketModel.liborPeriodDiscretization - The forward rate discretization to be used in the getLIBOR method.analyticModel - The analytic model to be used (currently not used, may be null).forwardRateCurve - The forward curve to be used (currently not used, - the model uses disocuntCurve only.discountCurve - The disocuntCurve (currently also used to determine the forward curve).meanReversion - The mean reversion speed parameter a.volatility - The short rate volatility \( \sigma \).properties - A map specifying model properties (currently not used, may be null).public int getNumberOfComponents()
ProcessModelgetNumberOfComponents in interface ProcessModelpublic RandomVariable applyStateSpaceTransform(int componentIndex, RandomVariable randomVariable)
ProcessModelapplyStateSpaceTransform in interface ProcessModelcomponentIndex - The component index i.randomVariable - The state random variable Yi.public RandomVariable applyStateSpaceTransformInverse(int componentIndex, RandomVariable randomVariable)
applyStateSpaceTransformInverse in interface ProcessModelpublic RandomVariable[] getInitialState()
ProcessModelgetInitialState in interface ProcessModelpublic RandomVariable getNumeraire(double time) throws CalculationException
ProcessModelgetNumeraire in interface ProcessModeltime - The time t for which the numeraire N(t) should be returned.RandomVariableFromDoubleArrayCalculationException - Thrown if the valuation fails, specific cause may be available via the cause() method.public RandomVariable[] getDrift(int timeIndex, RandomVariable[] realizationAtTimeIndex, RandomVariable[] realizationPredictor)
ProcessModelgetDrift in interface ProcessModeltimeIndex - The time index (related to the model times discretization).realizationAtTimeIndex - The given realization at timeIndexrealizationPredictor - The given realization at timeIndex+1 or null if no predictor is available.public RandomVariable getRandomVariableForConstant(double value)
ProcessModelgetRandomVariableForConstant in interface ProcessModelvalue - The constant value.public RandomVariable[] getFactorLoading(int timeIndex, int componentIndex, RandomVariable[] realizationAtTimeIndex)
ProcessModelgetFactorLoading in interface ProcessModeltimeIndex - The time index (related to the model times discretization).componentIndex - The index j of the driven component.realizationAtTimeIndex - The realization of X at the time corresponding to timeIndex (in order to implement local and stochastic volatlity models).public RandomVariable getLIBOR(double time, double periodStart, double periodEnd) throws CalculationException
TermStructureModelgetLIBOR in interface TermStructureModeltime - The evaluation time.periodStart - The period start of the forward rate.periodEnd - The period end of the forward rate.CalculationException - Thrown if model fails to calculate the random variable.public RandomVariable getLIBOR(int timeIndex, int liborIndex) throws CalculationException
LIBORModelgetLIBOR in interface LIBORModeltimeIndex - The time index (associated with ProcessModel.getTimeDiscretization().liborIndex - The forward rate index (associated with LIBORModel.getLiborPeriodDiscretization().CalculationException - Thrown if calculation failed.public TimeDiscretization getLiborPeriodDiscretization()
LIBORModelgetLiborPeriodDiscretization in interface LIBORModelpublic int getNumberOfLibors()
LIBORModelgetNumberOfLibors in interface LIBORModelpublic double getLiborPeriod(int timeIndex)
LIBORModelgetLiborPeriod in interface LIBORModeltimeIndex - The index corresponding to a given time (interpretation is start of period)public int getLiborPeriodIndex(double time)
LIBORModelgetLiborPeriodIndex in interface LIBORModeltime - The period start.public AnalyticModel getAnalyticModel()
TermStructureModelgetAnalyticModel in interface TermStructureModelpublic DiscountCurve getDiscountCurve()
TermStructureModelgetDiscountCurve in interface TermStructureModelpublic ForwardCurve getForwardRateCurve()
TermStructureModelgetForwardRateCurve in interface TermStructureModelpublic LIBORMarketModel getCloneWithModifiedData(Map<String,Object> dataModified)
LIBORModelgetCloneWithModifiedData in interface LIBORModelgetCloneWithModifiedData in interface TermStructureModelgetCloneWithModifiedData in interface ProcessModeldataModified - A map with values to be used in constructions (keys are identical to parameter names of the constructors).public double getShortRateConditionalVariance(double time,
double maturity)
time - The parameter s in \( \int_{s}^{t} \sigma^{2}(\tau) \exp(-2 \cdot a \cdot (t-\tau)) \ \mathrm{d}\tau \)maturity - The parameter t in \( \int_{s}^{t} \sigma^{2}(\tau) \exp(-2 \cdot a \cdot (t-\tau)) \ \mathrm{d}\tau \)public double getIntegratedBondSquaredVolatility(double time,
double maturity)
public Map<String,RandomVariable> getModelParameters()
IndependentModelParameterProvidergetModelParameters in interface IndependentModelParameterProviderCopyright © 2019. All rights reserved.