Learn R Programming

Sim.DiffProc (version 4.9)

HWV: Hull-White/Vasicek, Ornstein-Uhlenbeck process

Description

The (S3) generic function for simulation of Hull-White/Vasicek or gaussian diffusion models, and Ornstein-Uhlenbeck process.

Usage

HWV(N, ...)
OU(N, ...)

# S3 method for default HWV(N = 100, M = 1, x0 = 2, t0 = 0, T = 1, Dt = NULL, mu = 4, theta = 1, sigma = 0.1, ...) # S3 method for default OU(N =100,M=1,x0=2,t0=0,T=1,Dt = NULL,mu=4,sigma=0.2, ...)

Value

X

an visible ts object.

Arguments

N

number of simulation steps.

M

number of trajectories.

x0

initial value of the process at time \(t_{0}\).

t0

initial time.

T

final time.

Dt

time step of the simulation (discretization). If it is missing a default \(\Delta t = \frac{T-t_{0}}{N}\).

mu

parameter of the HWV and OU; see details.

theta

parameter of the HWV; see details.

sigma

the volatility of the HWV and OU.

...

potentially further arguments for (non-default) methods.

Author

A.C. Guidoum, K. Boukhetala.

Details

The function HWV returns a trajectory of the Hull-White/Vasicek process starting at \(x_{0}\) at time \(t_{0}\); i.e., the diffusion process solution of stochastic differential equation: $$dX_{t}= \mu ( \theta -X_{t}) dt + \sigma dW_{t}$$

The function OU returns a trajectory of the Ornstein-Uhlenbeck starting at \(x_{0}\) at time \(t_{0}\); i.e., the diffusion process solution of stochastic differential equation: $$dX_{t}= -\mu X_{t} dt + \sigma dW_{t}$$

Constraints: \(\mu , \sigma >0\).

Please note that the process is stationary only if \(\mu >0\).

References

Vasicek, O. (1977). An Equilibrium Characterization of the Term Structure. Journal of Financial Economics, 5, 177--188.

See Also

rcOU and rsOU for conditional and stationary law of Vasicek process are available in "sde".

Examples

Run this code
## Hull-White/Vasicek Models
## dX(t) = 4 * (2.5 - X(t)) * dt + 1 *dW(t), X0=10
set.seed(1234)

X <- HWV(N=1000,M=10,mu = 4, theta = 2.5,sigma = 1,x0=10)
plot(X,plot.type="single")
lines(as.vector(time(X)),rowMeans(X),col="red")

## Ornstein-Uhlenbeck Process
## dX(t) = -4 * X(t) * dt + 1 *dW(t) , X0=2
set.seed(1234)

X <- OU(N=1000,M=10,mu = 4,sigma = 1,x0=10)
plot(X,plot.type="single")
lines(as.vector(time(X)),rowMeans(X),col="red")

Run the code above in your browser using DataLab