create new Gauss-Markov short-rate process
GaussMarkovProcess(r0, g, h, sigma, t, opts)
algebraic expression; initial value
algebraic expression, procedure, or yield term structure; coefficient in the SDE
algebraic expression, procedure, or yield term structure; the non-negative volatility
(optional) name; time variable
(optional) equation(s) of the form option = value where option is scheme; specify options for the GaussMarkovProcess command
scheme = unbiased or Euler -- This option specifies which discretization scheme should be used for simulating the process. By default the standard Euler scheme is used. When scheme is set to unbiased the transition density will be used to simulate a value X⁡t+dt given X⁡t.
The GaussMarkovProcess command creates a linear Gauss-Markov stochastic process X⁡t, which is governed by the stochastic differential equation (SDE)
The function g⁡t is selected so that the model fits the initial term structure. The functions h⁡t and σ⁡t are volatility parameters that are chosen to fit the market prices of a set of actively traded interest rate options.
This process can be used to model short-term interest rates. This model - introduced by Hull and White (1990) - contains many popular term structure models as special cases.
g⁡t, h⁡t and σ⁡t are constant.
h⁡t=0 and σ⁡t is constant.
h⁡t and σ⁡t are constant.
The parameter r0 defines the initial value of the underlying stochastic process.
The parameters g, h, and sigma can each be either an algebraic expression, a procedure, or a yield term structure. If the process is to be simulated, it must be possible to evaluate these parameters to numeric values.
V := GaussMarkovProcess(0.5, 0.2, -1.0, 0.3):
PathPlot(V(t), t = 0..30, timesteps = 100, replications = 5, color = red..blue, thickness = 3, axes = BOXED, gridlines = true);
T := [2.0, 5.0, 10.0, 30.0];
R := [0.04976, 0.04970, 0.05064, 0.05143];
g := CurveFitting:-Spline(T, R, t, degree = 1);
R := GaussMarkovProcess(0.1, g, -1.0, 0.3, t);
PathPlot(R(t), t = 0..30, timesteps = 100, replications = 5, color = red..blue, thickness = 3, axes = BOXED, gridlines = true);
rates := [0.02, 0.01, 0.04, 0.06, 0.07]:
times := [0.0, 0.5, 1.0, 1.5, 2.0]:
R := ZeroCurve(times, rates);
X := GaussMarkovProcess(0.02, R, 1.0, 0.1);
PathPlot(X(t), t = 0..2, timesteps = 100, replications = 10, axes = BOXED, gridlines = true);
Y := GaussMarkovProcess(0.02, R, 1.0, 0.1, t, scheme = unbiased);
PathPlot(Y(t), t = 0..2, timesteps = 100, replications = 10, axes = BOXED, gridlines = true);
Note that the overhead of computing the transition densities does not depend on the number of replications.
time(SamplePath(Y(t), t = 0..2, timesteps = 100, replications = 10));
time(SamplePath(Y(t), t = 0..2, timesteps = 100, replications = 10^4));
Brigo, D., Mercurio, F., Interest Rate Models: Theory and Practice. New York: Springer-Verlag, 2001.
Glasserman, P., Monte Carlo Methods in Financial Engineering. New York: Springer-Verlag, 2004.
Ho, T.S.Y, and Loo, S.-B., Term Structure Movements and Pricing Interest Rate Contingent Claims, Journal of Finance, 41 (1986), pp. 1011-29.
Hull, J., Options, Futures, and Other Derivatives, 5th. edition. Upper Saddle River, New Jersey: Prentice Hall, 2003.
Hull, J., and White, A., Pricing Interest Rate Derivative Securities, Review of Financial Studies, 3 (1990), pp. 573-92.
Vasicek, O.A., An Equilibrium Characterization of the Term Structure, Journal of Financial Economics, 5 (1977), pp. 177-88.
The Finance[GaussMarkovProcess] command was introduced in Maple 15.
For more information on Maple 15 changes, see Updates in Maple 15.
Download Help Document
What kind of issue would you like to report? (Optional)