simByEuler

随机微分方程(SDEs)的欧拉模拟

描述

例子

[pathZ.) = simByEuler (MDLNPeriods模拟NTRIALS样本路径据nvar相关状态变量驱动那个布朗运动的风险源NPERIODS连续观察期。simByEuler用欧拉方法逼近连续时间随机过程。

例子

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

例子

全部收缩

加载数据并指定SDE模型

加载Data_GlobalIdx2价格=(数据集。TSX数据集。CAC数据集。达克斯...数据集。尼克的数据集。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,'twister') [S,T] = simByEuler(SDE, nPeriods,“DeltaTime”,dt);

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

RNG(142857,'twister') [S,T] = simulate(SDE, nPeriods,“DeltaTime”, dt,“nTrials”10);谁S.
名称大小字节类属性s 250x6x10 120000双倍

画出路径

绘图(t,s(:,:,1)),xlabel('交易日'),Ylabel('价钱')标题(“多维市场模式的第一条路径”)({传奇“加拿大”“法国”“德国”'日本'“英国”“我们”},...“位置”'最好的事物'

Cox-Ingersoll-Ross (CIR)短期利率类直接来自于具有均值回归漂移的SDE (SDEMRD): D. X T. = S. T. [ L. T. - X T. ] D. T. + D. T. X T. 1 2 V. T. D. W.

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

创建一个cir对象表示模型: 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,'twister')[路径,时间] = 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⋮

输入参数

全部收缩

随机微分方程模型,指定为SDE.BM.“绿带运动”CEV.cirHWV.哈斯顿sdeddosdeld,或sdemrd对象。

数据类型:目的

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

数据类型:

名称值对参数

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

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

方法来处理由逗号分隔的对组成的负数“方法”以及具有受支持值的字符向量或字符串。金宝app

笔记

方法参数仅在使用金宝appcir对象。有关创建cir对象,看到cir

数据类型:字符|字符串

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

数据类型:

观察之间的正时间增量,指定为逗号分隔的对,包括“DeltaTimes”和一个标量或一个NPERIODS——- - - - - -1列向量。

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

数据类型:

在每个时间增量内的中间时间步长的数目DT.(指定为德国),指定为逗号分隔的对,由'nsteps'和一个正标量整数。

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

数据类型:

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

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

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

  • 即使试验(2、4、6,…)是通过对对应的初值(奇数)试验的高斯画求反而得到的每对匹配的对偶路径。

笔记

如果您指定一个输入噪声处理(参见Z.),simByEuler忽略attheth

数据类型:逻辑

直接指定用于生成驱动仿真的布朗运动矢量(维纳过程)的依赖随机噪声过程。此参数指定为逗号分隔的对,由“Z”和一个函数(NPERIODS⨉NSTEPS)——- - - - - -那个——- - - - - -NTRIALS依赖随机变体的三维阵列。

笔记

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

  • 一个真实的标量观察时间T.

  • 一个据nvar——- - - - - -1州矢量XT.

数据类型:|函数

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

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

如果店铺错误的(逻辑0.),simByEuler返回path输出数组作为一个空矩阵。

数据类型:逻辑

句号结束过程序列或状态矢量调整的形式,指定为逗号分隔对组成'流程'以及表单功能的函数或小区数组

X T. = P. T. X T.

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

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

数据类型:细胞|函数

输出参数

全部收缩

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

对于给定的试验,每行path是状态向量的转置吗XT.在时间T..当输入标志店铺=错误的simByEuler回报path作为空矩阵。

与模拟路径相关的观察时间作为a返回(NPERIODS + 1)——- - - - - -1列向量。的每个元素与相应的行相关联path

用于生成驱动仿真的布朗运动矢量(维纳过程)的依赖随机变量,返回为(NPERIODS⨉NSTEPS)——- - - - - -那个——- - - - - -NTRIALS三维时间序列阵列。

更多关于

全部收缩

对偶的抽样

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

这种技术试图用另一个具有相同期望值但方差更小的随机观测序列来替换一个序列。在典型的蒙特卡罗模拟中,每个样本路径是独立的,代表一个独立的试验。然而,对偶抽样产生成对的样本路径。pair的第一个路径被称为主要路径,第二个作为反向路径.任何给定对与任何其他对无关,但是每对内的两个路径高度相关。抗静性采样文献通常建议平均每对的折扣收益,有效减少蒙特卡罗试验的数量。

该技术试图通过诱导配对输入样本之间的负依赖性来降低方差,理想地导致配对输出样本之间的负依赖性。负依赖的程度越大,较为有效的抗静性取样是。

算法

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

D. X T. = F T. X T. D. T. + G T. X T. D. W. T.

在哪里:

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

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

  • F是一个据nvar——- - - - - -1矢量值漂移速率功能。

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

simByEuler模拟NTRIALS样本路径据nvar相关状态变量驱动那个布朗运动的风险源NPERIODS利用欧拉方法逼近连续时间随机过程。

  • 该仿真引擎提供了基础广泛连续时间过程的离散时间近似。模拟直接来自动作的随机微分方程。因此,离散时间过程仅接近真正的连续时间过程德国接近零。

  • 输入参数Z.允许您直接指定噪声生成过程。这个过程优先于相关性参数的SDE.对象的值attheth输入信号。如果没有指定值Z.simByEuler生成相关的高斯变量,根据要求使用或不使用对偶采样。

  • 末期流程参数允许您尽早终止给定的试验。在每次步骤结束时,simByEuler测试状态向量XT.一个人条件。因此,为了表示给定试验的提前结束,状态向量的所有元素XT.必须.此测试启用用户定义流程函数表示试验的提前终止,并在某些情况下提供显著的性能优势(例如,为淘汰障碍选项定价)。

参考文献

[1] Deelstra G.和F. Delbaen。具有随机漂移项的离散随机(利率)过程的收敛性应用随机模型及数据分析。,1998年,卷。14,1号,第77-84页。

D. Higham和X. Mao。蒙特卡罗模拟的收敛性包括均值回归平方根过程计算金融杂志。, 2005,第8卷,第3期,第35-61页。

[3] Lord, R., R. Koekkoek和D. Van Dijk。随机波动率模型的有偏模拟方案比较定量金融学。,2010年,卷。10,2号,第177-194页。

在R2008A介绍