主要内容

simBySolution

模拟对角线漂移Merton跳转扩散过程的近似解

描述

例子

[path时代Z.N) = simBySolution (MDLnperiods.模拟nntrials.样本路径NVARS.由此驱动的相关状态变量那个布朗运动的风险来源和njumps.复合泊松过程表示重要事件的到来nperiods.连续观察期。模拟近似于闭合溶液的近似近似连续时间捷克扩散过程。

例子

[path时代Z.N) = simBySolution (___名称,值除了以前语法中的输入参数之外,使用一个或多个名称值对参数指定选项。

例子

全部折叠

模拟对角线漂移默顿过程的近似解。

创建一个默顿对象。

AssetPrice = 80;返回= 0.03;西格玛= 0.16;Jumpmean = 0.02;Jumpvol = 0.08;JumpFreq = 2;Mertonobj = Merton(Return,Sigma,JumpFreq,Jumpmean,JumpVol,......'startstat',assetprice)
默顿mertonObj =类:默顿跳扩散  ---------------------------------------- 维度:状态= 1,布朗= 1  ---------------------------------------- 开始时间:0 StartState: 80相关:1漂移:漂移率函数F (t) X (t))扩散:扩散率函数G (t) X (t))模拟:模拟方法/函数simByEulerσ:0.16回报率:0.03 jumpfrequency: 2 JumpMean: 0.02 JumpVol: 0.08

使用simBySolution模拟NTrials样本路径NVARS.由此驱动的相关状态变量那个布朗运动的风险来源和njumps.复合泊松过程表示重要事件的到来nperiods.连续观察期。该功能通过闭合溶液的近似来近似连续时间Merton跳跃扩散过程。

nperiods = 100;[路径,时代,z,n] = simbysolution(mertonobj,nperods,“nTrials”3,3)
路径=路径(:,:,1)= 1.0E + 03 * 0.0800 0.0662 0.1257 0.1863 0.2042 0.2210 0.2405 0.3143 0.4980 0.4753 0.4088 0.5627 0.6849 0.6662 0.7172 0.7710 0.6758 0.5528 0.4777 0.6314 0.7290 0.7265 0.6018 0.6630 0.5531 0.5919 0.5580 0.7209 0.8122 0.6494 0.8194 0.7434 0.6887 0.68730.7052 0.8532 0.5498 0.4686 0.5445 0.4291 0.5118 0.4138 0.4986 0.4331 0.4687 0.5235 0.4944 0.4616 0.3621 0.4860 0.4461 0.4268 0.4179 0.3913 0.5225 0.4346 0.3433 0.3635 0.3604 0.3736 0.3771 0.4883 0.4785 0.4859 0.5719 0.6593 0.7232 0.8269 0.7894 0.8895 0.9131 0.7396 0.9902 1.4258 1.1410 1.1657 1.2759 1.2797 1.2587 1.5073 1.5914 1.2676 1.5111 1.46981.5310 1.0471 1.3415 1.2142 1.3649 1.9905 1.9329 1.5042 1.7000 2.2315 2.6107 2.2992 2.6765 2.7024 1.6837 1.0520 1.1556路径(:,:,2)= 80.0000 67.0894 98.3231 108.1133 102.2668 116.5130 92.6337 94.7715 110.7864 125.7798 120.6730 116.9214 106.8356 118.3119 190.3385 228.3806 271.8072 272.0175 306.3696 249.6461 427.2599 310.1494 471.7915 370.6712426.4875 393.6037 423.9768 436.6450.423.3666 415.2689 578.7237 448.8291 358.5539 314.4588 284.7537 345.2281 379.3241 432.3968 284.6978 428.3203 314.5781 326.2297 236.1605 178.9878 175.8927 177.5584 140.5670 124.3399 111.5921 114.6988 101.7877 72.8823 61.0876 54.7438 53.9104 44.3239 32.8282 35.8978 44.7213 37.6385 34.8707 33.4812 35.0828 37.3844 50.3077 49.7005 41.2006 58.0578 51.8254 42.3636 38.3241 40.1687 35.9465 44.4746 36.3203 31.4723 25.3097 23.4042 14.5024 11.9513 11.7996 13.2874 14.9033 14.9986 14.9639 18.8188 16.5700 17.8684 13.5567 13.5978 11.3215 10.6453 9.9437 10.9639 14.0077 16.5691 12.1943 10.7238 11.5439 9.3313 10.3501 Paths(:,:,3) = 80.0000 79.6896 69.0705 57.4353 54.6468 61.1361 78.0797 104.5536 107.1168 87.1463 54.5801 59.8430 67.0858 74.7163 65.0742 90.0205 70.0329 94.1883 88.2437 100.7302 127.2244 111.4070 81.0410 93.1479 72.5876 74.3940 71.8182 78.4764 90.1952 89.6539 70.3198 50.4493 58.2573 52.1928 67.7723 81.1286 112.6400 108.8060 103.0418 104.3689 120.8792 89.2307 66.3967 76.2541 57.1963 56.8041 40.4475 34.5959 45.2467 44.6159 52.2680 63.3114 69.8554 102.0669 76.8265 84.8615 62.4934 70.3915 54.4665 60.1859 68.3690 73.3205 87.8904 82.7777 94.8760 88.8936 103.9546 103.4198 99.0468 135.2132 117.9348 120.8927 126.9568 120.5084 119.4830 154.8170 165.2276 180.3558 150.8172 155.2828 138.6475 179.8007 158.8069 166.0540 229.0607 253.4962 240.1957 192.3787 225.7069 311.1060 353.6839 463.5303 515.0606 569.4017 488.1785 331.1247 392.7017 379.5234 238.3932 186.9090 209.5703
* =101×10 1 2 3 4 5 6 7 8 9⋮
Z = Z(:,:,1) = -1.3077 3.5784 3.0349 0.7147 1.4897 0.6715 1.6302 0.7269 -1.0689 1.4384 1.3703 -0.2414 -0.8649 0.6277 -1.1135 -0.7697 1.1174 0.55250.0229 -0.2857 -1.1564 0.9642 -0.0348 -0.1332 -0.2248 -0.8479 1.6555 -0.8655 -1.3320 0.3335 -0.1303 0.8620 -0.8487 1.0391 0.6601 -0.2176 0.0513 0.4669 0.1832 0.3071 0.2614 -0.1461 -0.8757 -1.1742 1.5301 1.6035 -1.5062 0.2761 0.3919 -0.7411 0.0125 1.2424 0.3503 -1.5651 0.0983 -0.0308 -0.3728 -2.2584 1.0001 -0.2781 0.4716 0.6524 1.0061 -0.94440.。5946 0.9298 -0.6516 -0.0245 0.8617 -2.4863 -2.3193 0.4115 Z(:,:,2) = -0.4336 2.7694 0.7254 -0.2050 1.4090 -1.2075 0.4889 -0.3034 0.8884 -0.8095 0.3252 -1.7115 0.3192 -0.0301 1.0933 0.0774 -0.0068 0.3714 -1.0891 1.1006 -1.4916 2.3505 -0.1924 -1.4023 -0.1774 0.2916 -0.8045 -0.2437 -1.1480 2.5855 -0.0825 -1.7947 0.1001 -0.6003 1.7119 -0.8396 0.9610 -1.9609 2.9080 -1.0582 1.0984 -2.0518 -1.5771 0.0335 0.3502 -0.2620 -0.8314 -0.5336 0.5201 -0.7982 -0.7145 -0.5890 -1.1201 0.3075 -0.1765 -2.3299 0.3914 0.1837 -1.3617 -0.3349 -1.1176 -0.0679 -0.3031 0.8261 -0.2097 -1.0298 0.1352 -0.9415 -0.5320 -0.4838 -0.1922 -0.2490 1.2347 -0.4446 -0.2612 -1.2507 -0.5078 -3.0292 -1.0667 -0.0290 -0.0845 0.0414 0.2323 -0.2365 2.2294 -1.6642 0.4227 -1.2128 0.3271 -0.6509 -1.3218 -0.0549 0.3502 0.2398 1.1921 -1.9488 0.0012 0.5812 0.0799 0.6770 Z(:,:,3) = 0.3426 -1.3499 -0.0631 -0.1241 1.4172 0.7172 1.0347 0.2939 -1.1471 -2.9443 -0.7549 -0.1022 0.3129 -0.1649 1.1093 -1.2141 1.5326 -0.2256 0.0326 1.5442 -0.7423 -0.6156 0.8886 -1.4224 -0.1961 0.1978 0.6966 0.2157 0.1049 -0.6669 -1.9330 0.8404 -0.5445 0.4900 -0.1941 1.3546 0.1240 -0.1977 0.8252 -0.4686 -0.2779 -0.3538 0.5080 -1.3337 -0.2991 -1.7502 -0.9792 -2.0026 -0.0200 1.0187 1.3514 -0.2938 2.5260 -1.2571 0.7914 -1.4491 0.4517 -0.4762 0.4550 0.5528 1.2607 -0.1952 0.0230 1.5270 0.6252 0.9492 0.5152 -0.1623 1.6821 -0.7120 -0.2741 -1.0642 -0.2296 -0.1559 0.4434 -0.9480 -0.3206 -0.4570 0.9337 0.1825 1.6039 -0.7342 0.4264 2.0237 0.3376 -0.5900 -1.6702 0.0662 1.0826 0.2571 0.9248 0.9111 1.2503 -0.6904 -1.6118 1.0205 -0.0708 -2.1924 -0.9485 0.8577
n = n(:,:,1)= 1 2 1 0 2 0 1 3 4 2 11 0 1 11 1 1 0 0 3 2 2 1 0 11 11 3 4 2 4 11 11 2 0 2 2 3 2 13 2 2 1 1 1 3 0 2 2 11 0 1 1 1 1 0 2 2 11 11 7 3 2 2 11 3 3 4 3 0 1 7 2 0 5 2 2 11 2 1 3 0 2 5 2 2 4 2 23 1 2 6 1 0 3 3 11 1 3 N(:,:,2)= 2 2 2 0 4 1 2 3 11 2 11 4 2 4 2 2 2 2 11 5 3 11 3 3 1 3 5 1 4 22 1 2 1 1 6 0 2 2 3 2 2 1 0 1 5 5 0 1 11 2 1 2 3 2 2 11 2 0 3 1 5 3 3 0 2 11 2 0 22 2 2 11 1 3 11 2 2 11 4 1 3 3 0 11 11 2 3 N(:,3)= 3 2 2 1 4 2 3 0 0 4 3 2 3 11 1 1 1 3 4 1 23 1 1 1 1 0 3 0 1 0 5 0 2 4 3 1 0 1 4 3 3 2 11 11 11 4 4 11 11 2 11 11 11 11 7 0 15 1 1 3 4 3 11 2 2 11 2 11 1 1 1 11 2 3 4 2 1 3 2 1 1 0 1 3 0

输入参数

全部折叠

默顿模型,指定为默顿对象。你可以创建一个默顿对象使用默顿

数据类型:目的

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

数据类型:双倍的

名称-值对的观点

指定可选的逗号分隔的对名称,值论点。名称参数名和价值为对应值。名称必须出现在引号内。可以以任意顺序指定多个名称和值对参数name1,value1,...,namen,valuen

例子:[路径,时代,z,n] = simbysolution(merton,nperiods,'deltatimes',dt,'nntrial',10)

模拟网状(样品路径)nperiods.观察的每个,指定为逗号分隔对组成'nntrials'和一个正标量整数。

数据类型:双倍的

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

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

数据类型:双倍的

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

simBySolution函数对每个时间增量进行分区DT.nsteps.小区间的长度DT./nsteps.并且通过评估模拟状态向量来改进模拟nsteps - 1中间点。虽然simBySolution在这些中间点不报告输出状态向量,通过允许模拟更接近底层连续时间过程,改进提高了精度。

数据类型:双倍的

标志用对偶采样生成高斯随机变量,驱动布朗运动矢量(维纳过程),指定为逗号分隔对组成'attheth'和标量数字或逻辑1真正的)或0.).

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

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

  • 甚至没有网状(2,4,6,......)是通过对对应的初值(奇数)试验的高斯画求反而得到的每对匹配的对偶路径。

笔记

如果指定输入噪声过程(请参阅Z.),simBySolution忽略了价值attheth

数据类型:逻辑

用于生成驱动模拟的布朗运动矢量(维纳过程)的依赖随机噪声过程的直接规范,指定为逗号分隔的对“Z”还有一个函数(NPeriods * NSteps)-经过-那个-经过-nntrials.依赖随机变体的三维阵列。

输入论点Z.允许您直接指定噪声生成过程。这个过程优先于相关性输入的参数默顿对象和值的价值attheth输入标志。

具体而言,当Z.是指定的,相关性并没有明确地用于生成驱动布朗运动的高斯变量。然而,相关性仍然用于日志的指数项中出现的表达式[XT.欧拉计划。因此,您必须指定Z.作为相关结构的相关高斯噪声过程,其相关性持续捕获相关性

笔记

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

  • 实值标量观测时间T.

  • 一个NVARS.-经过-1状态向量XT.

数据类型:双倍的|函数

依赖的随机计数过程,用于生成跳跃数量,指定为包括的逗号分隔对'n'函数或(nperiods.nsteps.) -经过-njumps.-经过-nntrials.依赖随机变体的三维阵列。如果指定函数,N必须返回njumps.-经过-1列向量,您必须用两个输入调用它:真实值的标量观察时间T.其次是A.NVARS.-经过-1状态向量XT.

数据类型:双倍的|函数

标志,指示输出数组如何path被存储并返回,指定为逗号分隔对组成'储层路径'和标量数字或逻辑1真正的)或0.).

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

如果店铺(逻辑0.),simBySolution回报path作为一个空矩阵。

数据类型:逻辑

句号结束过程或状态矢量调整序列,指定为逗号分隔对,由“过程”和函数或单元格数组的形式

X T. = P. T. X T.

simBySolution在每个观测周期结束时应用处理函数。这些函数必须接受当前的观测时间T.和当前状态向量XT.,并返回一个可以对输入状态进行调整的状态矢量。

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

如果指定多个处理功能,simBySolution以它们显示在单元格数组中的顺序中调用函数。您可以使用此参数来指定边界条件,防止负面价格,累积统计,绘图图等。

数据类型:细胞|函数

输出参数

全部折叠

相关状态变量的模拟路径,作为一个返回(NPeriods + 1)-经过-NVARS.-经过-nntrials.三维时间序列数组。

对于给定的试验,每行path是状态向量的转置吗XT.在时间T.。什么时候店铺被设置为simBySolution回报path作为一个空矩阵。

与模拟路径相关的观察时间,作为一个(NPeriods + 1)-经过-1列向量。的每个元素时代与对应的行path

依赖于随机变体,用于生成驱动模拟的布朗运动矢量(维纳进程),返回AS(NPeriods * NSteps)-经过-那个-经过-nntrials.三维时间序列数组。

从属于生成跳转计数过程向量的随机变体,作为返回(NPeriods⨉NSteps)-经过-njumps.-经过-nntrials.三维时间序列数组。

更多关于

全部折叠

反向抽样

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

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

这种技术试图通过诱导成对输入样本之间的负依赖来减少方差,理想情况下会导致成对输出样本之间的负依赖。负依赖程度越大,对偶抽样越有效。

算法

simBySolution函数模拟状态向量XT.通过对角漂移默顿跳跃扩散模型闭解的近似。具体地说,它应用了欧拉方法对变换日志[XT.]过程(使用ITO的公式)。通常,这不是MERTON跳转扩散模型的精确解决方案,因为模拟和真正的状态矢量的概率分布仅是用于分段恒定参数的相同。

此功能模拟了任何向量值默顿形式的过程

D. X T. = B. T. X T. X T. D. T. + D. T. X T. V. T. X T. D. W. T. + y T. X T. N T. X T. D. N T.

在这里:

  • XT.是一个NVARS.-经过-1过程变量的状态向量。

  • B.T.XT.)是一个NVARS.-经过-NVARS.广义期望瞬时收益率矩阵。

  • D.T.XT.是一个NVARS.-经过-NVARS.对角矩阵,其中沿主对角线的每个元素都是状态向量的对应元素。

  • V.T.XT.是一个NVARS.-经过-NVARS.瞬时波动率的基质。

  • DW.T.是一个那个-经过-1布朗运动矢量。

  • yT.XT.NT.是一个NVARS.-经过-njumps.矩阵值跳跃大小函数。

  • DN.T.是一个njumps.-经过-1计算过程向量。

参考

[1] Ait-Sahalia Yacine。检验即期利率的连续时间模型审查金融研究9日,没有。2(1996年4月):385-426。

[2]Aït-sahalia,yacine。“利率和其他非线性扩散的过渡密度。”金融杂志54岁的没有。4(1999年8月):1361-95。

[3] Glasserman,保罗。金融工程中的蒙特卡罗方法。纽约:Springer-Verlag,2004。

[4]船体,约翰·科期权、期货及其他衍生品。第7号,Prentice Hall,2009年。

[5] Johnson,Norman Lloyd,Samuel Kotz和Narayanaswamy Balakrishnan。连续单变量分布。第二次。Wiley系列概率和数学统计。纽约:Wiley,1995年。

[6] Shreve,Steven E.财务的随机微分。纽约:Springer-Verlag,2004。

介绍了R2020a