simByEuler

随机微分方程的欧拉模拟

描述

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

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

例子

全部收缩

加载数据和指定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(SDE, nperiod,“DeltaTime”,DT);

模拟10次试验并检验SDE模型

RNG(142857,“扭腰”) [S,T] =模拟(SDE, nperiod,“DeltaTime”,dt,“nTrials”10);谁小号
名称大小字节类属性小号250x6x10 120000双

画出路径

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

Cox-Ingersoll-Ross (CIR)短期利率类直接源自具有均值反向漂移的SDE (SDEMRD): d X Ť = 小号 Ť [ 大号 Ť - X Ť ] d Ť + d Ť X Ť 1 2 V Ť d w ^

在哪里 d 是一个对角矩阵,其元素是状态向量对应元素的平方根。

创建一个CIR对象来表示模型: d X Ť = 0 2 0 1 - X Ť d Ť + 0 0 X Ť 1 2 d w ^

CIR = CIR (0.2, 0.1, 0.05)%(速度,级别,Sigma)的
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⋮

输入参数

全部收缩

随机微分方程模型SDEBM“绿带运动”CEVCIRHWV赫斯顿sdeddosdeld,或sdemrd对象。

数据类型:宾语

仿真期间,指定为正标量整数的数目。的价值NPeriods确定模拟输出系列的行数。

数据类型:

名称 - 值对参数

指定可选的用逗号分隔的对名称,值参数。的名字是参数的名称和价值是对应的值。的名字必须出现引号内。您可以按照任何顺序指定多个名称和值对参数Name1, Value1,…,的家

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

方法处理负值,指定为逗号分隔的对“方法”和具有受支持的值的字符向量或字符串。万博1manbetx

注意

方法参数仅在使用时受支持万博1manbetxCIR对象。有关创建a的更多信息,请参见CIR对象,看到CIR

数据类型:字符|字符串

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

数据类型:

观测值之间的正时间增量,用逗号分隔的对表示“DeltaTimes”和一个标量或NPeriods——- - - - - -1列向量。

的DeltaTime代表了熟悉的DT在随机微分方程发现,并且决定了输出的状态变量的模拟路径报告的时间。

数据类型:

每个时间增量内的中间时间步数DT(被指定为的DeltaTime),指定为逗号分隔的对,由“n步”和正标量整数。

simByEuler功能分区中的每个时间增量DTNSteps小区间的长度DT/NSteps,并通过计算仿真的状态向量来细化仿真NSteps−1中间点。虽然simByEuler在这些中间点不报告输出状态向量,通过允许模拟更接近底层连续时间过程,精化提高了准确性。

数据类型:

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

当你指定真正的simByEuler执行抽样,以便模拟所有主路径和对偶路径,并将其存储在连续的匹配对中:

  • 奇怪的试验(1,3,5,...)对应主高斯路径。

  • 即使试验(2、4、6,…)为每对的匹配对偶路径,通过对相应的主(奇)试的高斯图求反。

注意

如果你指定了一个输入噪声处理(参见žsimByEuler忽略的值对立的

数据类型:合乎逻辑

直接指定相关随机噪声过程用于生成驱动仿真的布朗运动矢量(维纳过程)。此参数指定为逗号分隔的对,由“Z”和一个函数或an(NPeriods⨉NSteps)——- - - - - -NBrowns——- - - - - -NTrials取决于随机变元的三维阵列。

注意

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

  • 实值标观测时间Ť

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

数据类型:|函数

标记,指示如何输出数组路径存储并返回,指定为逗号分隔的对,由“路径”和值为的标量逻辑标志真正的

如果StorePaths真正的(默认值)或未指定,simByEuler回报路径作为一个三维时间序列阵列。

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

数据类型:合乎逻辑

周期结束过程的序列或状态向量调整的形式,指定为逗号分隔的对组成“流程”和的形式的功能的功能或单元阵列

X Ť = P Ť X Ť

simByEuler功能运行的每个插时间在处理功能。他们必须接受目前的插时间Ť和当前状态向量XŤ,并返回一个状态向量,该状态向量可能是对输入状态的调整。

如果指定多个处理函数,simByEuler按函数在单元数组中出现的顺序调用函数。您可以使用这个参数来指定边界条件、防止负价格、累积统计数据、绘制图表等等。

数据类型:细胞|函数

输出参数

全部收缩

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

对于给定的试验中,每行路径是状态向量的转置吗XŤ在时间Ť。当输入标志StorePaths=simByEuler回报路径作为空矩阵。

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

相关随机变量用于生成驱动仿真的布朗运动矢量(Wiener过程),作为a返回(NPeriods⨉NSteps)——- - - - - -NBrowns——- - - - - -NTrials三维时间序列阵列。

更多关于

全部收缩

对偶的抽样

仿真方法允许您指定一个流行的方差减少技术偶采样

这种技术试图用另一个期望值相同但方差较小的随机观测序列来代替一个随机观测序列。在典型的蒙特卡罗模拟中,每个样本路径都是独立的,代表一个独立的试验。然而,对偶抽样生成成对的样本路径。的第一个路径称为主要路径,而第二个则是反向路径。任何给定的一对独立于任何其它对,但每对中的两个路径是高度相关的。偶性采样文献经常建议平均每对的贴现收益,有效地减半蒙特卡洛试验的次数。

该技术试图通过诱导成对的输入样本之间负相关性,理想地导致成对的输出样本之间负相关性,以减少偏差。负依赖程度越大,更有效的偶采样。

算法

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

d X Ť = F Ť X Ť d Ť + G Ť X Ť d w ^ Ť

哪里:

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

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

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

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

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

  • 这个仿真引擎提供底层广义连续时间过程的离散时间近似。仿真是直接从运动的随机微分方程的。因此,离散时间过程接近真实连续时间过程仅作为的DeltaTime接近零。

  • 输入参数ž允许您直接指定噪声生成过程。此过程优先于关联的参数SDE对象的值对立的输入信号。如果没有指定值žsimByEuler生成相关高斯变量,有或没有要求的对偶抽样。

  • 的结束时期流程参数允许提前终止一个给定的审判。在每个时间步骤结束时,simByEuler测试状态向量XŤ为清一色为NaN条件。因此,要提前终止一个给定的试验,所有元素的状态向量XŤ必须为NaN。此测试启用用户定义流程功能,指示试验提前结束,并在某些情况下提供显著的性能优势(例如,为彻底的障碍期权定价)。

参考文献

[1]迪利斯特拉,G.和F.德尔巴恩。具有随机漂移项的离散随机(利率)过程的收敛性。应用随机模型和数据分析。,1998年,第二卷。14,没有。1期,第77-84。

[2]海厄姆,德斯蒙德,和雪蓉毛。“蒙地卡罗模拟涉及均值回复平方根过程的收敛。”计算金融杂志,第8卷,第3期。2005年3月,第35-61页。

随机波动率模型的偏置模拟方案之比较。定量金融学卷。10,没有。2,2010年2月,第177-94

介绍了在R2008a