SSJ  3.3.1
Stochastic Simulation in Java
Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
GeometricLevyProcess Class Referenceabstract

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...

Inheritance diagram for GeometricLevyProcess:
[legend]
Collaboration diagram for GeometricLevyProcess:
[legend]

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
 

Detailed Description

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>

Member Function Documentation

◆ getStream()

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.

◆ nextObservation()

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.

◆ resetRiskNeutralCorrection()

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

GeometricNormalInverseGaussianProcess [5] .

◆ setStream()

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.


The documentation for this class was generated from the following file: