The Brownian Motion (`BM`

) model derives directly
from the linear drift (`SDELD`

) class:

$$d{X}_{t}=\mu (t)dt+V(t)d{W}_{t}$$

Create a univariate Brownian motion (`BM`

)
object to represent the model:

$$d{X}_{t}=0.3d{W}_{t}.$$

```
obj = bm(0, 0.3) % (A = Mu, Sigma)
```

obj = Class BM: Brownian Motion ---------------------------------------- Dimensions: State = 1, Brownian = 1 ---------------------------------------- StartTime: 0 StartState: 0 Correlation: 1 Drift: drift rate function F(t,X(t)) Diffusion: diffusion rate function G(t,X(t)) Simulation: simulation method/function simByEuler Mu: 0 Sigma: 0.3

`BM`

objects display the parameter `A`

as
the more familiar `Mu`

.

The `BM`

class also provides an overloaded
Euler simulation method that improves run-time performance in certain
common situations. This specialized method is invoked automatically
only if *all* the following conditions are met:

The expected drift, or trend, rate

`Mu`

is a column vector.The volatility rate,

`Sigma`

, is a matrix.No end-of-period adjustments and/or processes are made.

If specified, the random noise process

`Z`

is a three-dimensional array.If

`Z`

is unspecified, the assumed Gaussian correlation structure is a double matrix.

The Constant Elasticity of Variance (`CEV`

)
model also derives directly from the linear drift (`SDELD`

)
class:

$$d{X}_{t}=\mu (t){X}_{t}dt+D(t,{X}_{t}^{\alpha (t)})V(t)d{W}_{t}$$

The `CEV`

class constrains *A* to
an `NVARS`

-by-1 vector of zeros. *D* is
a diagonal matrix whose elements are the corresponding element of
the state vector *X*, raised to an exponent *α*(*t*).

Create a univariate `CEV`

object to represent
the model:

$$d{X}_{t}=0.25{X}_{t}+0.3{X}_{t}^{\frac{1}{2}}d{W}_{t}.$$

```
obj = cev(0.25, 0.5, 0.3) % (B = Return, Alpha, Sigma)
```

obj = Class CEV: Constant Elasticity of Variance ------------------------------------------ Dimensions: State = 1, Brownian = 1 ------------------------------------------ StartTime: 0 StartState: 1 Correlation: 1 Drift: drift rate function F(t,X(t)) Diffusion: diffusion rate function G(t,X(t)) Simulation: simulation method/function simByEuler Return: 0.25 Alpha: 0.5 Sigma: 0.3

`CEV`

and `GBM`

objects display
the parameter `B`

as the more familiar `Return`

.

The Geometric Brownian Motion (`GBM`

) model
derives directly from the `CEV`

model:

$$d{X}_{t}=\mu (t){X}_{t}dt+D(t,{X}_{t})V(t)d{W}_{t}$$

Compared to `CEV`

, `GBM`

constrains
all elements of the *alpha* exponent vector to one
such that *D* is now a diagonal matrix with the state
vector *X* along the main diagonal.

The `GBM`

class also provides two simulation
methods that can be used by separable models:

An overloaded Euler simulation method that improves run-time performance in certain common situations. This specialized method is invoked automatically only if

*all*the following conditions are true:The expected rate of return (

`Return`

) is a diagonal matrix.The volatility rate (

`Sigma`

) is a matrix.No end-of-period adjustments/processes are made.

If specified, the random noise process

`Z`

is a three-dimensional array.If

`Z`

is unspecified, the assumed Gaussian correlation structure is a double matrix.

An approximate analytic solution (

`simBySolution`

) obtained by applying a Euler approach to the transformed (using Ito's formula) logarithmic process. In general, this is*not*the exact solution to this`GBM`

model, as the probability distributions of the simulated and true state vectors are identical*only*for piecewise constant parameters. If the model parameters are piecewise constant over each observation period, the state vector*X*is lognormally distributed and the simulated process is exact for the observation times at which_{t}*X*is sampled._{t}

Create a univariate `GBM`

object to represent
the model:

$$d{X}_{t}=0.25{X}_{t}dt+0.3{X}_{t}d{W}_{t}$$

```
obj = gbm(0.25, 0.3) % (B = Return, Sigma)
```

obj = Class GBM: Generalized Geometric Brownian Motion ------------------------------------------------ Dimensions: State = 1, Brownian = 1 ------------------------------------------------ StartTime: 0 StartState: 1 Correlation: 1 Drift: drift rate function F(t,X(t)) Diffusion: diffusion rate function G(t,X(t)) Simulation: simulation method/function simByEuler Return: 0.25 Sigma: 0.3

The `SDEMRD`

class derives directly from the `SDEDDO`

class.
It provides an interface in which the drift-rate function is expressed
in mean-reverting drift form:

$$d{X}_{t}=S(t)[L(t)-{X}_{t}]dt+D(t,{X}_{t}^{\alpha (t)})V(t)d{W}_{t}$$

`SDEMRD`

objects provide a parametric alternative
to the linear drift form by reparameterizing the general linear drift
such that:

$$A(t)=S(t)L(t),B(t)=-S(t)$$

Create an `SDEMRD`

object `obj`

with
a square root exponent to represent the model:

$$d{X}_{t}=0.2(0.1-{X}_{t})dt+0.05{X}_{t}^{\frac{1}{2}}d{W}_{t}.$$

```
obj = sdemrd(0.2, 0.1, 0.5, 0.05)
% (Speed, Level, Alpha, Sigma)
```

obj = Class SDEMRD: SDE with Mean-Reverting Drift ------------------------------------------- Dimensions: State = 1, Brownian = 1 ------------------------------------------- StartTime: 0 StartState: 1 Correlation: 1 Drift: drift rate function F(t,X(t)) Diffusion: diffusion rate function G(t,X(t)) Simulation: simulation method/function simByEuler Alpha: 0.5 Sigma: 0.05 Level: 0.1 Speed: 0.2

`SDEMRD`

objects display the familiar `Speed`

and `Level`

parameters
instead of `A`

and `B`

.

The Cox-Ingersoll-Ross (`CIR`

) short rate class
derives directly from SDE with mean-reverting drift (`SDEMRD`

):

$$d{X}_{t}=S(t)[L(t)-{X}_{t}]dt+D(t,{X}_{t}^{\frac{1}{2}})V(t)d{W}_{t}$$

where *D* is a diagonal matrix whose elements
are the square root of the corresponding element of the state vector.

Create a `CIR`

object to represent the same
model as in Example: SDEMRD Models:

```
obj = cir(0.2, 0.1, 0.05) % (Speed, Level, Sigma)
```

obj = Class CIR: Cox-Ingersoll-Ross ---------------------------------------- Dimensions: State = 1, Brownian = 1 ---------------------------------------- StartTime: 0 StartState: 1 Correlation: 1 Drift: drift rate function F(t,X(t)) Diffusion: diffusion rate function G(t,X(t)) Simulation: simulation method/function simByEuler Sigma: 0.05 Level: 0.1 Speed: 0.2

Although the last two objects are of different classes, they
represent the same mathematical model. They differ in that you create
the `CIR`

object by specifying only three input arguments.
This distinction is reinforced by the fact that the `Alpha`

parameter
does not display – it is defined to be `1/2`

.

The Hull-White/Vasicek(`HWV`

) short rate class
derives directly from SDE with mean-reverting drift (that is, `SDEMRD`

):

$$d{X}_{t}=S(t)[L(t)-{X}_{t}]dt+V(t)d{W}_{t}$$

Using the same parameters as in the previous example, create
an `HWV`

object to represent the model:

$$d{X}_{t}=0.2(0.1-{X}_{t})dt+0.05d{W}_{t}.$$

```
obj = hwv(0.2, 0.1, 0.05) % (Speed, Level, Sigma)
```

obj = Class HWV: Hull-White/Vasicek ---------------------------------------- Dimensions: State = 1, Brownian = 1 ---------------------------------------- StartTime: 0 StartState: 1 Correlation: 1 Drift: drift rate function F(t,X(t)) Diffusion: diffusion rate function G(t,X(t)) Simulation: simulation method/function simByEuler Sigma: 0.05 Level: 0.1 Speed: 0.2

`CIR`

and `HWV`

constructors
share the same interface and display methods. The only distinction
is that `CIR`

and `HWV`

models constrain `Alpha`

exponents
to `1/2`

and `0`

, respectively.
Furthermore, the `HWV`

class also provides an additional
method that simulates approximate analytic solutions (`simBySolution`

) of separable models. This
method simulates the state vector *X _{t}* using
an approximation of the closed-form solution of diagonal drift

`HWV`

models.
Each element of the state vector `NBROWNS`

correlated Gaussian
random draws added to a deterministic time-variable drift. When evaluating expressions, all model parameters are assumed
piecewise constant over each simulation period. In general, this is *not* the
exact solution to this `HWV`

model, because the probability
distributions of the simulated and true state vectors are identical *only* for
piecewise constant parameters. If *S(t,X _{t})*,

Many references differentiate between Vasicek models and Hull-White
models. Where such distinctions are made, Vasicek parameters are constrained
to be constants, while Hull-White parameters vary deterministically
with time. Think of Vasicek models in this context as constant-coefficient
Hull-White models and equivalently, Hull-White models as time-varying
Vasicek models. However, from an architectural perspective, the distinction
between static and dynamic parameters is trivial. Since both models
share the same general parametric specification as previously described,
a single `HWV`

class encompasses the models.

The Heston (`heston`

) class derives directly
from SDE from Drift and Diffusion (SDEDDO). Each Heston model is a
bivariate composite model, consisting of two coupled univariate models:

$$d{X}_{1t}=B(t){X}_{1t}dt+\sqrt{{X}_{2t}}{X}_{1t}d{W}_{1t}$$ | (17-5) |

$$d{X}_{2t}=S(t)[L(t)-{X}_{2t}]dt+V(t)\sqrt{{X}_{2t}}d{W}_{2t}$$ | (17-6) |

Equation 17-5 is typically associated with a price
process. Equation 17-6 represents
the evolution of the price process' variance. Models of type `heston`

are
typically used to price equity options.

Create a `heston`

object to represent the model:

$$\begin{array}{l}d{X}_{1t}=0.1{X}_{1t}dt+\sqrt{{X}_{2t}}{X}_{1t}d{W}_{1t}\\ d{X}_{2t}=0.2[0.1-{X}_{2t}]dt+0.05\sqrt{{X}_{2t}}d{W}_{2t}\end{array}$$

obj = heston (0.1, 0.2, 0.1, 0.05)

obj = Class HESTON: Heston Bivariate Stochastic Volatility ---------------------------------------------------- Dimensions: State = 2, Brownian = 2 ---------------------------------------------------- StartTime: 0 StartState: 1 (2x1 double array) Correlation: 2x2 diagonal double array Drift: drift rate function F(t,X(t)) Diffusion: diffusion rate function G(t,X(t)) Simulation: simulation method/function simByEuler Return: 0.1 Speed: 0.2 Level: 0.1 Volatility: 0.05

`bm`

| `cev`

| `cir`

| `diffusion`

| `drift`

| `gbm`

| `heston`

| `hwv`

| `interpolate`

| `sde`

| `sdeddo`

| `sdeld`

| `sdemrd`

| `simByEuler`

| `simBySolution`

| `simulate`

| `ts2func`

Was this topic helpful?