# simByEuler

Simulate `RVM`

, `roughbergomi`

, or
`roughheston`

sample paths by Euler approximation

*Since R2023b*

## Description

`[`

simulates `Paths`

,`Times`

,`Z`

] = simByEuler(`MDL`

,`NPeriods`

)`NTrials`

sample paths of `NVars`

correlated state variables driven by `NBrowns`

Brownian motion
sources of risk over `NPeriods`

consecutive observation periods.
`simByEuler`

uses a `rvm`

, `roughbergomi`

, or `roughheston`

object to
simulate a rough volatility model with a Brownian semistationary process (BSS)
without drift.

`[`

specifies options using one or more name-value arguments in addition to the input
arguments in the previous syntax.`Paths`

,`Times`

,`Z`

] = simByEuler(___,`Name=Value`

)

You can perform quasi-Monte Carlo simulations using the name-value arguments for
`MonteCarloMethod`

, `QuasiSequence`

, and
`BrownianMotionMethod`

. For more information, see Quasi-Monte Carlo Simulation.

## Examples

## Input Arguments

## Output Arguments

## More About

## Algorithms

This function simulates any vector-valued SDE of the form

$$d{X}_{t}=F(t,{X}_{t})dt+G(t,{X}_{t})d{W}_{t}$$

where:

*X*is an*NVars*-by-`1`

state vector of process variables (for example, short rates or equity prices) to simulate.*W*is an*NBrowns*-by-`1`

Brownian motion vector.*F*is an*NVars*-by-`1`

vector-valued drift-rate function.*G*is an*NVars*-by-*NBrowns*matrix-valued diffusion-rate function.

`simByEuler`

simulates `NTrials`

sample
paths of `NVars`

correlated state variables driven by
`NBrowns`

Brownian motion sources of risk over
`NPeriods`

consecutive observation periods, using the Euler
approach to approximate continuous-time stochastic processes.

This simulation engine provides a discrete-time approximation of the underlying generalized continuous-time process. The simulation is derived directly from the stochastic differential equation of motion. Thus, the discrete-time process approaches the true continuous-time process only as

`DeltaTime`

approaches zero.The input argument

`Z`

allows you to directly specify the noise-generation process. This process takes precedence over the`Correlation`

parameter of the`sde`

object and the value of the`Antithetic`

input flag. If you do not specify a value for`Z`

,`simByEuler`

generates correlated Gaussian variates, with or without antithetic sampling as requested.The end-of-period

`Processes`

argument allows you to terminate a given trial early. At the end of each time step,`simByEuler`

tests the state vector*X*for an all-_{t}`NaN`

condition. Thus, to signal an early termination of a given trial, all elements of the state vector*X*must be_{t}`NaN`

. This test enables a user-defined`Processes`

function to signal early termination of a trial, and offers significant performance benefits in some situations (for example, pricing down-and-out barrier options).

## References

[1] Barndorff-Nielsen, O.E. and
Schmiegel, J. “Brownian Semistationary Processes and Volatility/Intermittency.”
*Advanced Financial Modeling*, Walter de Gruyter, Germany,
2009, pp. 1–26.

## Version History

**Introduced in R2023b**

## See Also

`simByHybrid`

| `rvm`

| `roughbergomi`

| `roughheston`

### Topics

- Implementing Multidimensional Equity Market Models, Implementation 5: Using the simByEuler Method
- Simulating Equity Prices
- Simulating Interest Rates
- Stratified Sampling
- Price American Basket Options Using Standard Monte Carlo and Quasi-Monte Carlo Simulation
- Base SDE Models
- Drift and Diffusion Models
- Linear Drift Models
- Parametric Models
- SDEs
- SDE Models
- SDE Class Hierarchy
- Quasi-Monte Carlo Simulation
- Performance Considerations