SSJ
3.3.1
Stochastic Simulation in Java
|
Abstract class used as a parent class for the exponentiation of a Lévy process \(X(t)\):
\[ S(t) = S(0) \exp\left(X(t) + (r - \omega_{RN}) t\right). \]
The interest rate is denoted \(r\) and is referred to as muGeom
in the class below.
More...
Public Member Functions | |
double [] | generatePath () |
Generates a path. | |
double | nextObservation () |
Returns the next observation. More... | |
void | resetStartProcess () |
Resets the step counter of the geometric process and the underlying Lévy process to the start value. | |
void | setObservationTimes (double[] time, int d) |
Sets the observation times on the geometric process and the underlying Lévy process. | |
double | getOmega () |
Returns the risk neutral correction. | |
double | getMuGeom () |
Returns the geometric drift parameter, which is usually the interest rate, \(r\). | |
void | setMuGeom (double muGeom) |
Sets the drift parameter (interest rate) of the geometric term. | |
StochasticProcess | getLevyProcess () |
Returns the Lévy process. | |
void | resetRiskNeutralCorrection (double omegaRN) |
Changes the value of \(\omega_{RN}\). More... | |
RandomStream | getStream () |
Returns the stream from the underlying Lévy process. More... | |
void | setStream (RandomStream stream) |
Resets the stream in the underlying Lévy process. More... | |
Public Member Functions inherited from StochasticProcess | |
void | setObservationTimes (double[] T, int d) |
Sets the observation times of the process to a copy of T , with. More... | |
void | setObservationTimes (double delta, int d) |
Sets equidistant observation times at \(t_j = j\delta\), for. More... | |
double [] | getObservationTimes () |
Returns a reference to the array that contains the observation times. More... | |
int | getNumObservationTimes () |
Returns the number \(d\) of observation times, excluding the time \(t_0\). | |
abstract double [] | generatePath () |
Generates, returns, and saves the sample path \(\{X(t_0), X(t_1), \dots, X(t_d)\}\). More... | |
double [] | generatePath (RandomStream stream) |
Same as generatePath() , but first resets the stream to stream . | |
double [] | getPath () |
Returns a reference to the last generated sample path \(\{X(t_0), ... , X(t_d)\}\). More... | |
void | getSubpath (double[] subpath, int[] pathIndices) |
Returns in subpath the values of the process at a subset of the observation times, specified as the times \(t_j\) whose indices. More... | |
double | getObservation (int j) |
Returns \(X(t_j)\) from the current sample path. More... | |
void | resetStartProcess () |
Resets the observation counter to its initial value \(j=0\), so that the current observation \(X(t_j)\) becomes \(X(t_0)\). More... | |
boolean | hasNextObservation () |
Returns true if \(j<d\), where \(j\) is the number of observations of the current sample path generated since the last call to resetStartProcess. More... | |
double | nextObservation () |
Generates and returns the next observation \(X(t_j)\) of the stochastic process. More... | |
int | getCurrentObservationIndex () |
Returns the value of the index \(j\) corresponding to the time. More... | |
double | getCurrentObservation () |
Returns the value of the last generated observation \(X(t_j)\). | |
double | getX0 () |
Returns the initial value \(X(t_0)\) for this process. | |
void | setX0 (double s0) |
Sets the initial value \(X(t_0)\) for this process to s0 , and reinitializes. | |
abstract void | setStream (RandomStream stream) |
Resets the random stream of the underlying generator to stream . | |
abstract RandomStream | getStream () |
Returns the random stream of the underlying generator. | |
int [] | getArrayMappingCounterToIndex () |
Returns a reference to an array that maps an integer \(k\) to \(i_k\), the index of the observation \(S(t_{i_k})\) corresponding to the \(k\)-th observation to be generated for a sample path of this process. More... | |
Protected Member Functions | |
void | init () |
Protected Member Functions inherited from StochasticProcess | |
void | init () |
Protected Attributes | |
StochasticProcess | levyProcess |
double | omegaRiskNeutralCorrection |
double | muGeom |
double [] | muGeomRNdt |
double [] | muGeomRNdT |
Protected Attributes inherited from StochasticProcess | |
boolean | observationTimesSet = false |
double | x0 = 0.0 |
int | d = -1 |
int | observationIndex = 0 |
int | observationCounter = 0 |
double [] | t |
double [] | path |
int [] | observationIndexFromCounter |
Abstract class used as a parent class for the exponentiation of a Lévy process \(X(t)\):
\[ S(t) = S(0) \exp\left(X(t) + (r - \omega_{RN}) t\right). \]
The interest rate is denoted \(r\) and is referred to as muGeom
in the class below.
The risk neutral correction is given by \(\omega_{RN}\) and takes into account risk aversion in the pricing of assets; its value depends on the specific Lévy process that is used. From Pierre: Maybe we should remove these parameters and make it more general by just putting a linear trend in \(X\).
GeometricNormalInverseGaussianProcess is implemented as a child of this class and so could GeometricVarianceGammaProcess and GeometricBrownianMotion.
<div class="SSJ-bigskip"></div><div class="SSJ-bigskip"></div>
RandomStream getStream | ( | ) |
Returns the stream from the underlying Lévy process.
If the underlying Lévy process has multiple streams, it returns what the getStream()
method of that process was made to return.
double nextObservation | ( | ) |
Returns the next observation.
It will also work on a Lévy process which is sampled using the bridge order, but it will return the observations in the bridge order. If the underlying Lévy process is of the PCA type, this method is not usable.
void resetRiskNeutralCorrection | ( | double | omegaRN | ) |
Changes the value of \(\omega_{RN}\).
There should usually be no need to redefine the risk neutral correction from the value set by the constructor. However it is sometimes not unique, e.g. in
void setStream | ( | RandomStream | stream | ) |
Resets the stream in the underlying Lévy process.
If the underlying Lévy process has multiple streams, it sets the streams on this process in the same way as setStream()
for that process.