bates
Description
The bates
function creates a bates
object, which represents a Bates model.
The Bates model is a bivariate composite model that derives from the heston
object. The Bates model is composed of two coupled and dissimilar
univariate models, each driven by a single Brownian motion source of risk and a single
compound Poisson process representing the arrivals of important events over
NPeriods
consecutive observation periods. The Bates model
approximates continuous-time Bates stochastic volatility processes.
The first univariate model is a GBM
model with a stochastic
volatility function and a stochastic jump process, and usually corresponds to a price
process whose variance rate is governed by the second univariate model. The second model
is a Cox-Ingersoll-Ross (CIR
) square root diffusion model that
describes the evolution of the variance rate of the coupled GBM
price
process.
Bates models are bivariate composite models. Each Bates model consists of two coupled univariate models:
A geometric Brownian motion (
gbm
) model with a stochastic volatility function and jumps.This model usually corresponds to a price process whose volatility (variance rate) is governed by the second univariate model.
A Cox-Ingersoll-Ross (
cir
) square root diffusion model.This model describes the evolution of the variance rate of the coupled Bates price process.
Creation
Syntax
Description
create a Bates
= bates(Return
,Speed
,Level
,Volatility
,JumpFreq
,JumpMean
,JumpVol
)bates
object with the default options.
Since Bates models are bivariate models composed of coupled univariate models, all required inputs correspond to scalar parameters. Specify the required inputs as one of two types:
MATLAB® array. Specify an array to indicate a static (non-time-varying) parametric specification. This array fully captures all implementation details, which are clearly associated with a parametric form.
MATLAB function. Specify a function to provide indirect support for virtually any static, dynamic, linear, or nonlinear model. This parameter is supported by an interface because all implementation details are hidden and fully encapsulated by the function.
Note
You can specify combinations of array and function input
parameters as needed. Moreover, a parameter is identified as a
deterministic function of time if the function accepts a scalar time
t
as its only input argument. Otherwise, a
parameter is assumed to be a function of time t
and state
Xt
and is invoked with both input arguments.
sets Properties using name-value pair arguments in
addition to the input arguments in the preceding syntax. Enclose each
property name in quotes.Bates
= bates(___,Name,Value
)
The bates
object has the following Properties:
StartTime
— Initial observation timeStartState
— Initial state at timeStartTime
Correlation
— Access function for theCorrelation
input argumentDrift
— Composite drift-rate functionDiffusion
— Composite diffusion-rate functionSimulation
— A simulation function or method
Input Arguments
Properties
Object Functions
simByEuler | Simulate Bates sample paths by Euler
approximation |
simByQuadExp | Simulate Bates , Heston , and
CIR sample paths by quadratic-exponential discretization
scheme |
simulate | Simulate multivariate stochastic differential equations (SDEs) for
SDE , BM , GBM ,
CEV , CIR , HWV ,
Heston , SDEDDO , SDELD ,
SDEMRD , Merton , or Bates
models |
simByTransition | Simulate Bates sample paths with transition
density |
simByMilstein | Simulate Bates process sample paths by Milstein
approximation |
simByMilstein2 | Simulate Bates process sample paths by second order
Milstein approximation |
Examples
More About
Algorithms
The Bates model (Bates 1996) is an extension of the Heston model and adds not only stochastic volatility, but also the jump diffusion parameters as in Merton (1976) were also added to model sudden asset price movements.
Under the risk-neutral measure the model is expressed as follows
Here:
ᵞ is the continuous risk-free rate.
q is the continuous dividend yield.
J is the random percentage jump size conditional on the jump occurring, where
(1+J) has a lognormal distribution:
Here:
μj is the mean of J(μj > -1).
ƛp is the annual frequency (intensity) of the Poisson process Pt (ƛp ≥ 0).
υ is the initial variance of the underlying asset (υ0 > 0).
θ is the long-term variance level (θ > 0).
κ is the mean reversion speed for the variance (κ > 0).
συ is the volatility of volatility (συ > 0).
p is the correlation between the Wiener processes Wt and Wtυ (-1 ≤ p ≤ 1).
The "Feller condition" ensures positive variance: (2κθ > συ2).
The stochastic volatility along with the jump help better model the asymmetric leptokurtic features, the volatility smile, and the large random fluctuations such as crashes and rallies.
References
[1] Aït-Sahalia, Yacine. “Testing Continuous-Time Models of the Spot Interest Rate.” Review of Financial Studies 9, no. 2 ( Apr. 1996): 385–426.
[2] Aït-Sahalia, Yacine. “Transition Densities for Interest Rate and Other Nonlinear Diffusions.” The Journal of Finance 54, no. 4 (Aug. 1999): 1361–95.
[3] Glasserman, Paul. Monte Carlo Methods in Financial Engineering. New York: Springer-Verlag, 2004.
[4] Hull, John C. Options, Futures and Other Derivatives. 7th ed, Prentice Hall, 2009.
[5] Johnson, Norman Lloyd, Samuel Kotz, and Narayanaswamy Balakrishnan. Continuous Univariate Distributions. 2nd ed. Wiley Series in Probability and Mathematical Statistics. New York: Wiley, 1995.
[6] Shreve, Steven E. Stochastic Calculus for Finance. New York: Springer-Verlag, 2004.
Version History
Introduced in R2020aSee Also
simByEuler
| merton
| simulate
Topics
- 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