主要内容

simByEuler

随机微分方程的欧拉模拟(sd),BM,“绿带运动”,CEV,圆形的,HWV,赫斯顿,SDEDDO,SDELD,或SDEMRD模型

描述

例子

(路径,,Z)= simByEuler (MDL,NPeriods)模拟NTrials样本路径据nvar状态变量由相关NBrowns布朗运动的风险来源NPeriods连续观察时间。simByEuler使用欧拉方法近似的连续时间随机过程。

例子

(路径,,Z)= simByEuler (___,名称,值)指定选项使用一个或多个名称-值对参数除了输入参数在前面的语法。

您可以执行quasi-Monte卡洛模拟使用名称-值的参数MonteCarloMethodQuasiSequence。有关更多信息,请参见Quasi-Monte卡洛模拟

例子

全部折叠

加载数据并指定SDE的模型

负载Data_GlobalIdx2价格=(数据集。TSX数据集。CAC Dataset.DAX数据集。尼克的数据集。FTSE Dataset.SP]; returns = tick2ret(prices); nVariables = size(returns,2); expReturn = mean(returns); sigma = std(returns); correlation = corrcoef(returns); t = 0; X = 100; X = X(ones(nVariables,1)); F = @(t,X) diag(expReturn)* X; G = @(t,X) diag(X) * diag(sigma); SDE = sde(F, G,“相关”,相关性,“StartState”,X);

模拟单个路径超过一年

nPeriods = 249;% #模拟的观察dt = 1;%时间增量= 1天rng (142857“旋风”)(S, T) = simByEuler (nPeriods钻,“DeltaTime”,dt);

模拟10 SDE的试验和检验模型

rng (142857“旋风”)(S, T) =模拟(nPeriods钻,“DeltaTime”,dt,“nTrials”10);谁年代
类属性名称大小字节年代250 x6x10 120000双

画出路径

情节(T, S(:,: 1)),包含(“交易日”),ylabel (“价格”)标题(“多维市场模式的第一路径”)({传奇“加拿大”“法国”“德国”“日本”“英国”“我们”},“位置”,“最佳”)

图包含一个坐标轴对象。坐标轴对象与标题的第一路径多维市场模型包含6行类型的对象。这些对象代表加拿大、法国、德国、日本、英国、美国。

Cox-Ingersoll-Ross (CIR)短期汇率类直接来自SDE向均数回归漂移(SDEMRD): d X t = 年代 ( t ) ( l ( t ) - - - - - - X t ] d t + D ( t , X t 1 2 ) V ( t ) d W

在哪里 D 是一个对角矩阵的元素是根对应的状态向量的元素。

创建一个圆形的对象来表示模型: d X t = 0 2 ( 0 1 - - - - - - X t ) d t + 0 0 5 X t 1 2 d W

CIR = CIR (0.2, 0.1, 0.05)%(速度、水平、σ)
CIR =类背景:Cox-Ingersoll-Ross - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -维度:状态= 1,布朗= 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -开始时间:0 StartState: 1相关:1漂移:漂移率函数F (t) X (t))扩散:扩散率函数G (t) X (t))模拟:模拟方法/函数simByEulerσ:0.05级:0.1速度:0.2

一年多使用模拟单一路径simByEuler

nPeriods = 249;% #模拟的观察dt = 1;%时间增量= 1天rng (142857“旋风”)(路径,次)= simByEuler (CIR、nPeriods“方法”,“higham-mao”,“DeltaTime”dt)
路径=250×11.0000 0.8613 0.7245 0.6349 0.4741 0.3853 0.3374 0.2549 0.1859 0.1814⋮
* =250×10 1 2 3 4 5 6 7 8 9⋮

Cox-Ingersoll-Ross (CIR)短期汇率类直接来自SDE向均数回归漂移(SDEMRD): d X t = 年代 ( t ) ( l ( t ) - - - - - - X t ] d t + D ( t , X t 1 2 ) V ( t ) d W

在哪里 D 是一个对角矩阵的元素是根对应的状态向量的元素。

创建一个圆形的对象来表示模型: d X t = 0 2 ( 0 1 - - - - - - X t ) d t + 0 0 5 X t 1 2 d W

cir_obj = cir (0.2, 0.1, 0.05)%(速度、水平、σ)
cir_obj =类背景:Cox-Ingersoll-Ross - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -维度:状态= 1,布朗= 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -开始时间:0 StartState: 1相关:1漂移:漂移率函数F (t) X (t))扩散:扩散率函数G (t) X (t))模拟:模拟方法/函数simByEulerσ:0.05级:0.1速度:0.2

定义quasi-Monte卡洛模拟使用可选名称参数“MonteCarloMethod”“QuasiSequence”

(路径、时间、z) = simByEuler (cir_obj 10“ntrials”,4096,“方法”,“基本”,“montecarlomethod”,“准”,“quasisequence”,“sobol”);

赫斯顿(赫斯顿)类直接来自端漂移和扩散sdeddo)。每个赫斯顿模型是一个二元复合模型,包括两个耦合的单变量模型:

d X 1 t = B ( t ) X 1 t d t + X 2 t X 1 t d W 1 t

d X 2 t = 年代 ( t ) ( l ( t ) - - - - - - X 2 t ] d t + V ( t ) X 2 t d W 2 t

创建一个赫斯顿对象。

heston_obj =赫斯顿(0.1,0.2,0.1,0.05)%(返回、速度、水平、波动)
heston_obj =类赫斯顿:赫斯顿二元随机波动率- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -维度:状态= 2,布朗= 2 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -开始时间:0 StartState: 1 (2 x1双阵列)相关性:2 x2对角双重数组漂移:漂移率函数F (t) X (t))扩散:扩散率函数G (t) X (t))模拟:模拟方法/函数simByEuler返回:0.1速度:0.2级:0.1波动:0.05

定义quasi-Monte卡洛模拟使用可选名称参数“MonteCarloMethod”“QuasiSequence”

(路径、时间、z) = simByEuler (heston_obj 10“ntrials”,4096,“montecarlomethod”,“准”,“quasisequence”,“sobol”);

创建一个单变量“绿带运动”对象来表示模型: d X t = 0 2 5 X t d t + 0 3 X t d W t

gbm_obj =“绿带运动”(0.25,0.3)% (B =回报,σ)
gbm_obj =类GBM:广义几何布朗运动- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -维度:状态= 1,布朗= 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -开始时间:0 StartState: 1相关:1漂移:漂移率函数F (t) X (t))扩散:扩散率函数G (t) X (t))模拟:模拟方法/函数simByEuler返回:0.25σ:0.3

“绿带运动”对象显示参数B更熟悉的返回

定义quasi-Monte卡洛模拟使用可选名称参数“MonteCarloMethod”“QuasiSequence”

(路径、时间、z) = simByEuler (gbm_obj 10“ntrials”,4096,“montecarlomethod”,“准”,“quasisequence”,“sobol”);

输入参数

全部折叠

随机微分方程模型,指定为一个,bm,“绿带运动”,cev,圆形的,hwv,赫斯顿,sdeddo,sdeld,或sdemrd对象。

数据类型:对象

仿真时间,指定为一个积极的标量整数。的价值NPeriods决定了模拟输出的行数。

数据类型:

名称-值参数

指定可选的双参数作为Name1 = Value1,…,以=家,在那里的名字参数名称和吗价值相应的价值。名称-值参数必须出现在其他参数,但对的顺序无关紧要。

R2021a之前,用逗号来分隔每一个名称和值,并附上的名字在报价。

例子:(路径,乘以,Z) = simByEuler (SDE, NPeriods DeltaTime, dt)

方法来处理负值,指定为逗号分隔组成的“方法”和一个字符与支持向量或字符串值。万博1manbetx

请注意

方法参数是只支持在使用万博1manbetx圆形的对象。创建一个的更多信息圆形的对象,看到圆形的

数据类型:字符|字符串

模拟试验(样本路径)NPeriods观察每个,指定为逗号分隔组成的“NTrials”和积极的标量整数。

数据类型:

积极的时间增量之间的观察,指定为逗号分隔组成的“DeltaTimes”和一个标量或NPeriods——- - - - - -1列向量。

DeltaTime代表了熟悉的dt随机微分方程,并确定的时间模拟报告输出状态变量的路径。

数据类型:

中间的步骤在每个时间增量的数量dt(指定为DeltaTime),指定为逗号分隔组成的“NSteps”和积极的标量整数。

simByEuler每一次增量功能分区dtNSteps小区间的长度dt/NSteps通过评估,改进模拟模拟状态向量NSteps−1中间点。虽然simByEuler不报告输出状态向量在这些中间点,改进提高精度允许仿真更接近底层连续时间过程近似。

数据类型:

标志指示是否simByEuler使用反向抽样生成高斯随机变量驱动布朗运动向量(维纳过程)。这个参数被指定为逗号分隔组成的“反向”和一个标量逻辑的价值真正的

当你指定真正的,simByEuler执行抽样,这样所有小学和反向路径模拟并存储在连续匹配双:

  • 奇怪的试验(1、3、5、…)对应于主高斯路径。

  • 即使试验(2、4、6,…)每一对派生的匹配反向路径是通过否定高斯吸引相应的主(奇数)试验。

请注意

如果您指定一个输入噪声过程(见Z),simByEuler忽略的价值对立的

数据类型:逻辑

依赖的随机噪声过程的直接规范用于生成布朗运动向量(维纳过程),驱动仿真。这个参数被指定为逗号分隔组成的“Z”和一个函数或一个(NPeriods⨉NSteps)——- - - - - -NBrowns——- - - - - -NTrials相依随机变量的三维数组。

请注意

如果您指定Z作为一个函数,它必须返回一个NBrowns——- - - - - -1列向量,必须调用它有两个输入:

  • 一个实值标量观测时间t

  • 一个据nvar——- - - - - -1状态向量Xt

数据类型:|函数

国旗,表明输出数组路径存储并返回,指定为逗号分隔两人组成的吗“路径”和一个标量逻辑的价值真正的

如果路径真正的(默认值)或者是未指定的,simByEuler返回路径作为一个三维时间序列数组。

如果路径(逻辑0),simByEuler返回路径输出数组为空矩阵。

数据类型:逻辑

蒙特卡罗方法模拟随机过程,指定为逗号分隔组成的“MonteCarloMethod”和一个字符串或字符向量与下列值之一:

  • “标准”——蒙特卡洛使用伪随机数。

  • “准”——Quasi-Monte卡使用low-discrepancy序列。

  • “randomized-quasi”——随机quasi-Monte卡洛。

请注意

如果您指定一个输入噪声过程(见Z),simByEuler忽略的价值MonteCarloMethod

数据类型:字符串|字符

低偏差序列驱动随机过程,指定为逗号分隔组成的“QuasiSequence”和一个字符串或字符向量与下列值之一:

  • “sobol”——拟随机low-discrepancy序列,使用一个基地的两个先后形成细均匀分区单位间隔,然后重新排序每个维度的坐标

请注意

如果MonteCarloMethod选项没有指定或指定为“标准”,QuasiSequence将被忽略。

数据类型:字符串|字符

序列的期末过程或状态向量的调整形式,指定为逗号分隔组成的“过程”和一个函数或函数单元阵列的形式

X t = P ( t , X t )

simByEuler时间运行在每个插值处理功能函数。他们必须接受当前插值时间t,当前状态向量Xt,并返回一个状态向量调整输入状态。

如果你指定多个处理函数,simByEuler在它们出现的顺序调用函数在单元阵列。你可以使用这个参数来指定边界条件,防止负面价格,积累数据,绘制图表等等。

数据类型:细胞|函数

输出参数

全部折叠

模拟路径相关的状态变量,作为一个返回(NPeriods + 1)——- - - - - -据nvar——- - - - - -NTrials三维时间序列数组。

对于一个给定的试验中,每一行路径状态向量的转置Xt在时间t。当输入信号路径=,simByEuler返回路径作为一个空矩阵。

观察时间与模拟路径有关,作为一个返回(NPeriods + 1)——- - - - - -1列向量。的每个元素与相应的行吗路径

相依随机变量用于生成布朗运动向量驱动仿真(维纳过程),作为一个返回(NPeriods⨉NSteps)——- - - - - -NBrowns——- - - - - -NTrials三维时间序列数组。

更多关于

全部折叠

对偶的抽样

模拟方法允许您指定一个流行方差减少技术对偶的抽样

这种方法试图取代一个序列的随机观测与另一个相同的期望值,但较小的方差。在一个典型的蒙特卡罗模拟,每个样本路径是独立的,代表了一个独立的审判。然而,反向抽样生成成对样本路径。的第一个路径被称为主要路径,第二个的反向路径。任何一对独立于任何其他,但两条路径在每一对都是高度相关的。反向取样文学常常建议平均每一对的贴现回报,有效蒙特卡罗试验的数量减半。

这种技术试图降低方差诱导负输入配对样本之间的依赖,理想情况下导致消极依赖之间的配对样本的输出。消极的依赖程度越大,更有效的反向取样。

算法

这个函数模拟任何向量值的表单

d X t = F ( t , X t ) d t + G ( t , X t ) d W t

地点:

  • X是一个据nvar——- - - - - -1状态向量的过程变量(例如,短期利率或股票价格)来模拟。

  • W是一个NBrowns——- - - - - -1布朗运动向量。

  • F是一个据nvar——- - - - - -1向量值函数漂移率。

  • G是一个据nvar——- - - - - -NBrowns矩阵值扩散率函数。

simByEuler模拟NTrials样本路径据nvar状态变量由相关NBrowns布朗运动的风险来源NPeriods连续观察时期,用欧拉方法近似的连续时间随机过程。

  • 这个模拟引擎提供了一个潜在的广义连续时间过程的离散近似。仿真是直接从运动的随机微分方程。因此,离散时间过程只接近真正的连续时间过程DeltaTime接近零。

  • 输入参数Z允许您直接指定噪音的产生过程。这个过程优先于相关参数的对象和的值对立的输入信号。如果你不指定一个值Z,simByEuler生成相关的高斯变量,有或没有反向取样要求。

  • 期末流程参数允许您提前终止一个给定的试验。在每个时间步长,simByEuler测试状态向量Xt对于一个所有- - -条件。因此,信号给定的早期终止试验,状态向量的所有元素Xt必须。这个测试允许一个用户定义的流程函数信号提前终止试验,并提供显著的性能优势在某些情况下(例如,穷困潦倒的障碍期权定价)。

引用

[1]Deelstra、g和f . Delbaen。“收敛的离散随机(利率)和随机漂移项过程。”应用随机模型和数据分析。1998年,14卷,没有。1,页77 - 84。

[2]海厄姆,德斯蒙德,Xuerong毛。“融合涉及向均数回归的平方根的蒙特卡罗模拟过程。”计算金融杂志上,8卷,不。3、2005年,35 - 61页。

[3]主啊,罗杰,et al。”比较偏向随机波动模型模拟方案。”定量金融学,10卷,不。2、2010年2月,页177 - 94

版本历史

介绍了R2008a