simByQuadExp
模拟贝茨
,赫斯顿
,圆形的
抽样路径采用二次指数离散方案
语法
描述
[
除前面语法中的输入参数外,还使用一个或多个名称-值对参数指定选项。路径
,次
,Z
,N
= simByQuadExp(___,名称,值
)
的名称-值参数可以执行准蒙特卡罗模拟MonteCarloMethod
,QuasiSequence
,BrownianMotionMethod
.有关更多信息,请参见准蒙特卡罗模拟.
例子
用二次指数离散方案模拟贝茨采样路径
创建一个贝茨
对象。
资产价格= 80;Return = 0.03;JumpMean = 0.02;JumpVol = 0.08;JumpFreq = 0.1;V0 = 0.04;水平= 0.05;速度= 1.0;波动率= 0.2;Rho = -0.7; StartState = [AssetPrice;V0]; Correlation = [1 Rho;Rho 1]; batesObj = bates(Return, Speed, Level, Volatility,...JumpFreq, JumpMean, JumpVol,“startstate”StartState,...“相关”、相关)
batesObj =类BATES:贝茨双变量随机波动率--------------------------------------------------维度:状态= 2,布朗= 2 -------------------------------------------------- StartTime: 0 StartState: 2x1双阵列相关性:2x2双阵列漂移:漂移率函数F(t,X(t))扩散:扩散率函数G(t,X(t))模拟:模拟方法/函数simByEuler返回:0.03速度:1水平:0.05波动率:0.2 JumpFreq: 0.1 JumpMean: 0.02 JumpVol: 0.08
使用simByQuadExp
模拟NTrials
直接从随机运动微分方程中提取样本路径;离散时间过程只有在为极限时才接近真正的连续时间过程DeltaTimes
接近零。
NPeriods = 2;[Paths,Times,Z,N] = simByQuadExp(batesObj,NPeriods)
路径=3×280.0000 0.0400 64.3377 0.1063 31.5703 0.1009
* =3×10 1 2
Z =2×20.5377 1.8339 -2.2588 0.8622
N =2×10 0
输出路径
返回为(NPeriods
+1
)———据nvar
——- - - - - -NTrials
三维时间序列阵列。
贝茨模型的准蒙特卡罗模拟
这个例子展示了如何使用simByQuadExp
采用贝茨模型进行准蒙特卡罗模拟。准蒙特卡罗模拟是一种用准随机序列代替伪随机数的蒙特卡罗模拟。
属性的参数贝茨
对象。
资产价格= 80;Return = 0.03;JumpMean = 0.02;JumpVol = 0.08;JumpFreq = 0.1;V0 = 0.04;水平= 0.05;速度= 1.0;波动率= 0.2;Rho = -0.7; StartState = [AssetPrice;V0]; Correlation = [1 Rho;Rho 1];
创建一个贝茨
对象。
贝茨=贝茨(回报,速度,水平,波动性,...JumpFreq, JumpMean, JumpVol,“startstate”StartState,...“相关”、相关)
Bates =类Bates: Bates双变量随机波动率--------------------------------------------------维度:状态= 2,布朗= 2 -------------------------------------------------- StartTime: 0 StartState: 2x1双阵列相关性:2x2双阵列漂移:漂移率函数F(t,X(t))扩散:扩散率函数G(t,X(t))模拟:模拟方法/函数simByEuler返回:0.03速度:1水平:0.05波动率:0.2 JumpFreq: 0.1 JumpMean: 0.02 JumpVol: 0.08
用进行准蒙特卡罗模拟simByQuadExp
的可选名称-值参数“MonteCarloMethod”
,“QuasiSequence”
,“BrownianMotionMethod”
.
[paths,time,z] = simByQuadExp(Bates,10,“ntrials”, 4096,“montecarlomethod”,“准”,“quasisequence”,“sobol”,“BrownianMotionMethod”,“brownian-bridge”);
输入参数
NPeriods
- - - - - -模拟周期数
正标量整数
模拟周期数,指定为正标量整数。的价值NPeriods
确定模拟输出序列的行数。
数据类型:双
名称-值参数
指定可选参数对为Name1 = Value1,…,以=家
,在那里的名字
参数名称和价值
对应的值。名称-值参数必须出现在其他参数之后,但对的顺序无关紧要。
在R2021a之前,使用逗号分隔每个名称和值,并将其括起来的名字
在报价。
例子:[Paths,Times,Z,N] = simByQuadExp(bates_obj,NPeriods,'DeltaTime',dt)
NTrials
- - - - - -的模拟试验(样本路径)NPeriods
观察每一个
1
(相关状态变量单路径)(默认)|正标量整数
的模拟试验(样本路径)NPeriods
每个观测值,指定为逗号分隔的对,由“NTrials”
一个正标量整数。
数据类型:双
DeltaTimes
- - - - - -观察之间的正时间增量
1
(默认)|标量|列向量
观测值之间的正时间增量,指定为逗号分隔的对,由“DeltaTimes”
一个标量或者aNPeriods
——- - - - - -1
列向量。
DeltaTimes
代表熟悉的dt在随机微分方程中发现,并确定输出状态变量的模拟路径被报告的时间。
数据类型:双
NSteps
- - - - - -每个时间增量中的中间时间步数dt(指定为DeltaTimes
)
1
(表示没有中期评估)(默认)|正标量整数
每个时间增量中的中间时间步数dt(指定为DeltaTimes
),指定为逗号分隔的对,由“NSteps”
一个正标量整数。
的simByQuadExp
功能分区每次递增dt成NSteps
长度的子区间dt/NSteps
,并通过计算所模拟的状态向量来改进仿真NSteps−1
中间点。虽然simByQuadExp
不报告这些中间点的输出状态向量,细化通过允许模拟更接近底层连续时间过程来提高精度。
数据类型:双
MonteCarloMethod
- - - - - -蒙特卡罗方法模拟随机过程
“标准”
(默认)|带值的字符串“标准”
,“准”
,或“randomized-quasi”
|带值的字符向量“标准”
,“准”
,或“randomized-quasi”
QuasiSequence
- - - - - -低差异序列驱动随机过程
“sobol”
(默认)|带值的字符串“sobol”
|带值的字符向量“sobol”
低差异序列驱动随机过程,指定为逗号分隔对组成“QuasiSequence”
和具有以下值之一的字符串或字符向量:
“sobol”
-准随机低差异序列,以2为基数,形成单位区间的连续更细均匀分区,然后在每个维度上重新排序坐标
请注意
如果MonteCarloMethod
选项未指定或指定为“标准”
,QuasiSequence
将被忽略。
数据类型:字符串
|字符
BrownianMotionMethod
- - - - - -布朗运动构造法
“标准”
(默认)|带值的字符串“brownian-bridge”
或“主成分”
|带值的字符向量“brownian-bridge”
或主成分的
布朗运动构造方法,指定为由逗号分隔的对组成“BrownianMotionMethod”
和具有以下值之一的字符串或字符向量:
“标准”
-布朗运动路径通过取高斯变量的累积和得到。“brownian-bridge”
-首先计算布朗运动路径的最后一步,然后计算步骤之间的任意顺序,直到确定所有步骤。“主成分”
-通过最小化近似误差来计算布朗运动路径。
请注意
方法指定输入噪声过程Z
输入参数,BrownianMotionMethod
将被忽略。
蒙特卡罗模拟的起点是构造布朗运动样本路径(或维纳路径)。这些路径由一组独立的高斯变量构建,使用标准离散化、布朗桥结构或主成分结构。
标准离散化和布朗桥结构都具有相同的方差,因此当与MonteCarloMethod
使用伪随机数。然而,两者之间的性能是不同的MonteCarloMethod
选项“准”
是引入的,具有更快的收敛见“brownian-bridge”
构造选项和收敛速度最快时使用“主成分”
建筑的选择。
数据类型:字符串
|字符
对立的
- - - - - -标志来使用对偶抽样来生成高斯随机变量
假
(无对偶抽样)(默认)|值的逻辑真正的
或假
标志,以使用对偶采样来生成驱动布朗运动向量(维纳过程)的高斯随机变量,指定为由逗号分隔的对组成“反向”
和标量数字或逻辑1
(真正的
)或0
(假
).
当你指定真正的
,simByQuadExp
执行采样,使所有主路径和反路径都被模拟并存储在连续的匹配对中:
奇怪的试验
(1、3、5、…)
对应于主高斯路径。即使试验
(2、4、6,…)
为每对匹配的对偶路径,通过对对应的主(奇)试验的高斯图求反而得到。
请注意
如果指定输入噪声过程(请参阅Z
),simByEuler
忽略的值。对立的
.
数据类型:逻辑
Z
- - - - - -布朗运动矢量生成的相关随机噪声过程的直接说明
生成相关的高斯变量相关
委员会成员赫斯顿
,贝茨
,或圆形的
对象(默认)|函数|相关随机变量的三维数组
生成驱动模拟的布朗运动向量(维纳过程)的相关随机噪声过程的直接规范,指定为由逗号分隔的对组成“Z”
一个函数或者(NPeriods⨉NSteps)
——- - - - - -NBrowns
——- - - - - -NTrials
相关随机变量的三维数组。
如果你指定Z
作为函数,它必须返回NBrowns
——- - - - - -1
列向量,你必须用两个输入来调用它:
一个实值标量观测时间t
一个
据nvar
——- - - - - -1
状态向量Xt
数据类型:双
|函数
路径
- - - - - -标志,指示如何路径
存储并返回
真正的
(默认)|值的逻辑真正的
或假
标志,该标志指示输出数组路径
存储并返回,指定为逗号分隔的对,由“路径”
和标量数字或逻辑1
(真正的
)或0
(假
).
如果路径
是真正的
(默认值)或未指定,simByQuadExp
返回路径
三维时间序列数组。
如果路径
是假
(逻辑0
),simByQuadExp
返回路径
作为一个空矩阵。
数据类型:逻辑
流程
- - - - - -周期结束过程或状态向量调整的序列
simByQuadExp
不进行任何调整,也不执行任何处理(默认)|函数|函数的单元格数组
周期结束过程或状态向量调整的序列,指定为逗号分隔的对,由“过程”
以及函数或单元格数组的函数形式
的simByQuadExp
函数在每个插值时间运行处理函数。函数必须接受当前插补时间t,和当前状态向量Xt并返回一个状态向量,它可以是对输入状态的调整。
如果指定了多个处理函数,simByQuadExp
按照函数在单元格数组中出现的顺序调用它们。您可以使用此参数指定边界条件、防止负价格、积累统计信息、绘制图形等。
期末流程
参数允许您提前终止给定的试验。在每个时间步的末尾,simByQuadExp
测试状态向量Xt对于所有人来说——南
条件。因此,为了表示一个给定试验的提前终止,状态向量的所有元素Xt必须南
.这个测试使您能够定义一个流程
函数,用于发出提前终止试验的信号,并在某些情况下提供了显著的性能优势(例如,定价障碍选项)。
数据类型:细胞
|函数
输出参数
路径
-模拟相关状态变量的路径
数组
heston, bates或cir模型的相关状态变量的模拟路径,返回为(NPeriods + 1)
——- - - - - -据nvar
——- - - - - -NTrials
三维时间序列阵列。
对于给定的试验,每一行路径
是状态向量的转置吗Xt在时间t.当路径
设置为假
,simByQuadExp
返回路径
作为一个空矩阵。
次
-与模拟路径相关的观测次数
列向量
与模拟路径相关联的heston、bates或cir模型的观测时间,返回为(NPeriods + 1)
——- - - - - -1
列向量。的每个元素次
的对应行相关联路径
.
Z
-生成布朗运动向量的依赖随机变量
数组
heston, bates或cir模型的相关随机变量,用于生成驱动模拟的布朗运动向量(维纳过程),返回为(NPeriods⨉NSteps)
——- - - - - -NBrowns
——- - - - - -NTrials
三维时间序列阵列。
N
-生成跳跃计数过程向量的依赖随机变量
数组
贝茨模型的相关随机变量,用于生成跳跃计数过程向量,返回为(NPeriods⨉NSteps)
——- - - - - -NJumps
——- - - - - -NTrials
三维时间序列阵列。
更多关于
对偶的抽样
模拟方法允许您指定一个流行的方差减少技术对偶的抽样.
这种技术试图用另一个期望值相同但方差更小的随机观测序列替换一个随机观测序列。在典型的蒙特卡罗模拟中,每个样本路径是独立的,代表一个独立的试验。然而,相反抽样产生成对的样本路径。该路径对的第一个路径称为主要路径,第二为反向路径.任何给定的路径对都独立于任何其他路径对,但每对中的两条路径都高度相关。反向抽样文献通常建议平均每对的折现收益,有效地将蒙特卡罗试验的次数减半。
该技术试图通过诱导成对输入样本之间的负依赖性来减少方差,理想情况下会导致成对输出样本之间的负依赖性。负相关程度越大,反抽样越有效。
算法
赫斯顿
在Heston随机波动率模型中,资产价值过程和波动率过程被定义为
在这里:
γ是连续无风险利率。
θ是一个长期方差水平。
κ是方差的平均回归速度。
σ就是波动中的波动。
圆形的
可以模拟任意形式的向量值CIR过程
在这里:
Xt是一个
据nvar
——- - - - - -1
过程变量的状态向量。年代是一个
据nvar
——- - - - - -据nvar
平均回归速度矩阵(平均回归率)。l是一个
据nvar
——- - - - - -1
均值回归水平向量(长期均值或水平)。D是一个
据nvar
——- - - - - -据nvar
对角线矩阵,其中主对角线上的每个元素都是状态向量中相应元素的平方根。V是一个
据nvar
——- - - - - -NBrowns
瞬时波动率矩阵。dWt是一个
NBrowns
——- - - - - -1
布朗运动向量。
参考文献
[1]安德森,莱夫。Heston随机波动模型的简单有效模拟计算金融杂志11日,没有。3(2008年3月):1-42。
[2]布罗迪,M.和O.卡亚。随机波动率和跳跃扩散模型下希腊期权的精确模拟在2004年冬季模拟会议记录, 2004年。,2:535–43. Washington, D.C.: IEEE, 2004.
[3]布罗迪,马克和Özgür卡娅。随机波动率和其他仿射跳跃扩散过程的精确模拟。运筹学54岁的没有。2(四月2006):217-31。
版本历史
R2020a中引入R2022b:进行布朗桥及主构件施工
使用名称-值参数执行布朗桥和主成分构造BrownianMotionMethod
.
R2022a:进行准蒙特卡罗模拟
使用名称-值参数执行准蒙特卡罗模拟MonteCarloMethod
而且QuasiSequence
.
MATLAB命令
你点击了一个对应于这个MATLAB命令的链接:
在MATLAB命令窗口中输入该命令来运行该命令。Web浏览器不支持MATLAB命令。
您也可以从以下列表中选择一个网站:
如何获得最佳的网站性能
选择中国站点(中文或英文)以获得最佳站点性能。其他MathWorks国家站点没有针对您所在位置的访问进行优化。