Main Content

本页翻译不是最新的。点击此处可查看最新英文版本。

bm

布朗运动 (BM) 模型

说明

创建并显示布朗运动(有时称为算术布朗运动广义维纳过程)的 bm 对象,该对象来源于 sdeld(以线性形式表示漂移率的 SDE)类。

使用 bm 对象模拟 NVars 个状态变量(由 NBrowns 个风险源驱动)在 NPeriods 个连续观测周期内的样本路径,以便逼近连续时间布朗运动随机过程。这使您能够将 NBrowns 个不相关、零漂移、单方差率布朗分量的向量转换为具有任意漂移、方差率和相关性结构的 NVars 个布朗分量的向量。

使用 bm 模拟以下形式的任意向量值布朗运动过程:

dXt=μ(t)dt+V(t)dWt

其中:

  • Xt 是过程变量的 NVars×1 状态向量。

  • μ 是 NVars×1 漂移率向量。

  • V 是 NVars×NBrowns 瞬时波动率矩阵。

  • dWt 是(可能)相关的零漂移/单位方差率布朗分量 NBrowns×1 向量。

创建对象

描述

示例

BM = bm(Mu,Sigma) 创建一个默认的 BM 对象。

将所需的输入参数指定为以下类型之一:

  • MATLAB® 数组。指定数组表示静态(非时变)参数设定。此数组完全捕获与参数形式明显相关的所有实现细节。

  • MATLAB 函数。指定函数可为几乎任何静态、动态、线性或非线性模型提供间接支持。此参数通过接口支持,因为所有实现细节都隐藏并被函数完全封装。

注意

您可以根据需要指定数组和函数输入参数的组合。

此外,如果函数接受标量时间 t 作为其唯一输入参量,则将参数识别为时间的确定性函数。否则,系统将假定参数为时间 t 和状态 X(t) 的函数,并使用两个输入参量调用。

示例

BM = bm(___,Name,Value) 使用由一个或多个 Name,Value 对组参量指定的其他选项创建一个 bm 对象。

Name 是属性名称,Value 是其对应的值。Name 必须放在单引号 ('') 内。您可以按任意顺序指定多个名称-值对组参量,如 Name1,Value1,…,NameN,ValueN

BM 对象具有以下属性

  • StartTime - 初始观测时间

  • StartState - StartTime 时的初始状态

  • Correlation - Correlation 输入参量的访问函数,可作为时间的函数进行调用

  • Drift - 复合漂移率函数,可作为时间和状态的函数进行调用

  • Diffusion - 复合扩散率函数,可作为时间和状态的函数进行调用

  • Simulation - 模拟函数或方法

输入参量

全部展开

Mu 表示参数 μ,指定为数组或时间的确定性函数。

如果您指定 Mu 为数组,它必须是一个 NVars×1 列向量,表示漂移率(预期的瞬时漂移率,也就是时间趋势)。

作为时间的确定性函数,当以实数值标量时间 t 作为唯一输入调用 Mu 时,Mu 必须生成一个 NVars×NVars 矩阵。如果您指定 Mu 为时间和状态的函数,它将计算预期的瞬时漂移率。当使用下面两个输入调用该函数时,该函数必须生成一个 NVars×1 列向量:

  • 实值标量观测时间 t。

  • NVars×1 状态向量 Xt

数据类型: double | function_handle

Sigma 表示参数 V,指定为数组或时间的确定性函数。

如果您指定 Sigma 为数组,它必须是一个 NVars×NBrowns 瞬时波动率矩阵或作为时间的确定性函数。在本例中,Sigma 的每行都对应于一个特定的状态变量。每列对应于一个特定的布朗不确定性源,并将状态变量的敞口量级与不确定性源相关联。

作为时间的确定性函数,当以实数值标量时间 t 作为唯一输入调用 Sigma 时,Sigma 必须生成一个 NVars×NBrowns 矩阵。如果您指定 Sigma 为时间和状态的函数,则在使用下面两个输入调用它时,必须返回一个 NVars×NBrowns 波动率矩阵:

  • 实值标量观测时间 t。

  • NVars×1 状态向量 Xt

虽然 gbm 构造函数对 Sigma 波动率的符号未施加任何限制,但它们需要指定为正值。

数据类型: double | function_handle

属性

全部展开

首次观测的开始时间,应用于所有状态变量,指定为数值。

数据类型: double

状态变量的初始值,指定为标量、列向量或矩阵。

如果 StartState 是一个标量,则 bm 在所有试验中对所有状态变量应用相同的初始值。

如果 StartState 是一个列向量,则 bm 在所有试验中对每个状态变量应用唯一的初始值。

如果 StartState 是一个矩阵,则 bm 在每次试验中对每个状态变量应用唯一的初始值。

数据类型: double

为生成布朗运动向量(维纳过程)而抽取的高斯随机变量之间的相关性,指定为 NBrowns×NBrowns 半正定矩阵或确定性函数 C(t),接受当前时间 t 并返回 NBrowns×NBrowns 半正定相关矩阵。如果 Correlation 不是对称半正定矩阵,则使用 nearcorr 为相关矩阵创建半正定矩阵。

Correlation 矩阵表示静态条件。

作为时间的确定性函数,Correlation 允许您指定动态相关结构体。

数据类型: double

用户自定义的模拟函数或 SDE 模拟方法,指定为函数或 SDE 模拟方法。

数据类型: function_handle

此 属性 为只读。

连续时间随机微分方程 (SDE) 的漂移率分量,指定为可由 (t, Xt) 访问的漂移对象或函数。

漂移率设定支持模拟 NVars 个状态变量(由 NBrowns 个布朗运动风险源驱动)在 NPeriods 个连续观测周期内的样本路径,逼近连续时间随机过程。

drift 类允许使用以下形式的 drift 创建漂移率对象:

F(t,Xt)=A(t)+B(t)Xt

其中:

  • A 是一个 NVars×1 向量值函数,可使用 (t, Xt) 接口访问。

  • B 是一个 NVars×NVars 矩阵值函数,可使用 (t, Xt) 接口访问。

drift 对象显示的参数是:

  • Rate:漂移率函数 F(t,Xt)

  • A:F(t,Xt) 的截断项 A(t,Xt)

  • B:F(t,Xt) 的一阶项 B(t,Xt)

AB 让您可以查询原始输入。存储在 Rate 中的函数完全封装了 AB 的组合效果。

当指定为 MATLAB 双精度数组时,输入 AB 显然与线性漂移率参数式相关联。然而,指定 AB 为函数,几乎可以让您自定义任何漂移率设定。

注意

您可以采用最一般的形式来表达 driftdiffusion 类,以突出 (t, Xt) 函数式接口。不过,在指定分量 AB 时,可以将其指定为支持通用 (t, Xt) 接口,也可以指定为具有适当维度的 MATLAB 数组。

示例: F = drift(0, 0.1) % Drift rate function F(t,X)

数据类型: object

此 属性 为只读。

连续时间随机微分方程 (SDE) 的扩散率分量,指定为可由 (t, Xt) 访问的漂移对象或函数。

扩散率设定支持模拟 NVars 个状态变量(由 NBrowns 个布朗运动风险源驱动)在 NPeriods 个连续观测周期内的样本路径,逼近连续时间随机过程。

diffusion 类允许使用 diffusion 创建扩散率对象:

G(t,Xt)=D(t,Xtα(t))V(t)

其中:

  • D 是一个 NVars×NVars 对角矩阵值函数。

  • D 的每个对角元素是状态向量对应元素的 Alpha 指数次幂,该指数是一个 NVars×1 向量值函数。

  • V 是一个 NVars×NBrowns 矩阵值波动率函数 Sigma

  • AlphaSigma 也可以使用 (t, Xt) 接口访问。

diffusion 对象显示的参数是:

  • Rate:扩散率函数 G(t,Xt)。

  • Alpha:状态向量指数,决定了 G(t,Xt) 的 D(t,Xt) 的格式。

  • Sigma:G(t,Xt) 的波动率 V(t,Xt)。

AlphaSigma 让您可以查询原始输入。(单个 AlphaSigma 参数由存储在 Rate 中的函数完全封装。)Rate 函数是 driftdiffusion 对象的计算引擎,而这一函数是模拟所需的唯一参数。

注意

您可以采用最一般的形式来表达 driftdiffusion 类,以突出 (t, Xt) 函数式接口。不过,在指定分量 AB 时,可以将其指定为支持通用 (t, Xt) 接口,也可以指定为具有适当维度的 MATLAB 数组。

示例: G = diffusion(1, 0.3) % Diffusion rate function G(t,X)

数据类型: object

对象函数

interpolateBrownian interpolation of stochastic differential equations (SDEs) for SDE, BM, GBM, CEV, CIR, HWV, Heston, SDEDDO, SDELD, or SDEMRD models
simulateSimulate multivariate stochastic differential equations (SDEs) for SDE, BM, GBM, CEV, CIR, HWV, Heston, SDEDDO, SDELD, SDEMRD, Merton, or Bates models
simByEulerEuler simulation of stochastic differential equations (SDEs) for SDE, BM, GBM, CEV, CIR, HWV, Heston, SDEDDO, SDELD, or SDEMRD models
simByMilsteinSimulate diagonal diffusion for BM, GBM, CEV, HWV, SDEDDO, SDELD, or SDEMRD sample paths by Milstein approximation
simByMilstein2Simulate BM, GBM, CEV, HWV, SDEDDO, SDELD, SDEMRD process sample paths by second order Milstein approximation

示例

全部折叠

创建一元布朗运动 (bm) 对象,用于表示模型:dXt=0.3dWt

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 对象将参数 A 显示为更常用的 Mu

bm 类还提供了一种重载的欧拉模拟方法,可以在某些常见情况下提高运行时性能。仅在满足以下所有条件时,才会自动调用此专用方法:

  • 预期的漂移(或趋势)率 Mu 是一个列向量。

  • 波动率 Sigma 为矩阵。

  • 未进行任何周期末尾调整和/或处理。

  • 如果指定,则随机噪声过程 Z 是三维数组。

  • 如果未指定 Z,则假设的高斯相关结构体为双精度矩阵。

详细信息

全部展开

算法

当您将必需的输入参数指定为数组时,它们将与特定的参数化形式相关联。相比之下,当您将任一必需的输入参数指定为函数时,几乎可以自定义任何设定。

在没有输入的情况下访问输出参数只会返回原始输入设定。因此,当您不带输入调用这些参数时,它们的行为就像简单的属性,您可以测试指定的原始输入的数据类型(是双精度值还是函数,即是静态的还是动态的)。这对于验证和设计方法非常有用。

当您使用输入调用这些参数时,它们的行为类似于函数,给人以动态行为的印象。该参数接受观测时间 t 和状态向量 Xt,并返回适当维度的数组。即使您最初将输入指定为数组,bm 也会将其视为时间和状态的静态函数,这样可以确保所有参数都可由同一接口访问。

参考

[1] Aït-Sahalia, Yacine. “Testing Continuous-Time Models of the Spot Interest Rate.” Review of Financial Studies, vol. 9, no. 2, Apr. 1996, pp. 385–426.

[2] Aït-Sahalia, Yacine. “Transition Densities for Interest Rate and Other Nonlinear Diffusions.” The Journal of Finance, vol. 54, no. 4, Aug. 1999, pp. 1361–95.

[3] Glasserman, Paul. Monte Carlo Methods in Financial Engineering. Springer, 2004.

[4] Hull, John. Options, Futures and Other Derivatives. 7th ed, Prentice Hall, 2009.

[5] Johnson, Norman Lloyd, et al. Continuous Univariate Distributions. 2nd ed, Wiley, 1994.

[6] Shreve, Steven E. Stochastic Calculus for Finance. Springer, 2004.

版本历史记录

在 R2008a 中推出

全部展开