主要内容

美国篮子期权定价的蒙特卡罗模拟

这个例子展示了如何对资产收益的肥尾行为建模,并评估替代联合分配对篮子期权价格的影响。使用各种实现的可分离多元几何布朗运动(GBM)过程,通常被称为多维市场模式,该例子模拟了股票指数组合的风险中性样本路径,并使用Longstaff & Schwartz的技术对一篮子看跌期权定价。

此外,本例还说明了随机微分方程(SDE)体系结构的显著特征,包括

  • 比较布朗运动和布朗联结的自定义随机数生成函数

  • 期末处理函数,形成一篮子股票指数,并基于Longstaff & Schwartz的最小二乘法对标的一篮子美国期权定价

  • 分段概率分布与极值理论(EVT)

这个例子还突出了波动性和利率缩放的重要问题。它说明了如何通过使用日数据或年化数据来获得相同的结果。有关EVT和copula的更多信息,请参见运用极值理论和Copulas评估市场风险(计量经济学工具箱)

建模框架概述

本例的最终目的是比较由不同噪声过程得出的一篮子期权价格。第一个噪声过程是一个传统的布朗运动模型,其指数组合价格过程是由相关的高斯随机抽取驱动的。作为一种替代方法,将布朗运动基准与高斯运动和学生运动驱动的噪声过程进行比较tCopulas,统称为a布朗连系动词

copula是具有均匀分布裕度的多元累积分布函数(CDF)。尽管copula的理论基础是几十年前建立的,但在过去几年里,它的流行程度急剧上升,主要是作为一种对非高斯投资组合风险建模的技术。

虽然有许多家族存在,但所有的关联变量都代表了一种统计方法,用于对两个或多个随机变量之间的依赖结构进行建模。此外,重要的统计数据,如等级相关而且尾巴的依赖是给定的关联函数的性质,并且通过其边缘的单调变换而不变。

这些关联图产生了相关的随机变量,这些变量随后被转换为单独的变量(边距)。这种转换是用一个带广义帕累托尾的半参数概率分布实现的。

要模拟的风险中性市场模型是

d X t r X t d t + σ X t d W t

无风险利率,r,在期权的整个生命周期内都是不变的。由于这是一个可分离多元模型,无风险收益是一个对角矩阵,其中相同的无风险收益应用于所有指标。为了简化模型及其相关数据收集,忽略了股息收益率。

相比之下,曝光矩阵的规格,σ,取决于不确定性的驱动源是如何建模的。可以直接将其建模为布朗运动(相关的高斯随机数隐式映射到高斯边缘),也可以将其建模为布朗联结(相关的高斯或t显式映射到半参数边缘的随机数)。

由于单变量分布的CDF和逆CDF(分位数函数)都是单调变换,因此关联函数提供了一种方便的方法来模拟边缘不相似且任意分布的相关随机变量。此外,由于copula定义了给定的依赖结构,而不考虑其边界,因此copula参数校准通常比联合分布函数的估计更容易。

一旦你模拟了样本路径,期权的定价由Longstaff & Schwartz的最小二乘回归方法(见用模拟计算美式期权的价值:一个简单的最小二乘方法《金融研究评论》2001年春季版。这种方法使用最小二乘来估计期权的预期收益,如果它没有立即被执行。它通过回归与所有在价样本路径相关的标的当前价格在未来收到的贴现期权现金流来实现这一点。延拓函数由一个简单的三阶多项式估计,其中回归中的所有现金流和价格都由期权行权价格归一化,提高了数值稳定性。

导入支持历史数据集金宝app

加载3个月Euribor的每日历史数据集,从2001年2月07日至2006年4月24日的交易日期,以及以下代表性大型股票指数的收盘指数水平:

  • TSX复合材料(加拿大)

  • CAC 40(法国)

  • DAX指数(德国)

  • 日经225指数(日本)

  • 富时100指数(英国)

  • 标准普尔500指数(美国)

清晰的负载Data_GlobalIdx2日期= datetime(日期,“ConvertFrom”“datenum”);

下面的图表说明了这一数据。具体来说,这些图表显示了每个指数和Euribor无风险利率代理的相对价格走势。每个指标的初始水平已标准化为统一,以方便比较历史记录的相对表现。

nindexes = size(数据,2)-1;指数% #价格=数据(:,1:end-1);yield = Data(:,end);日有效产量产量= 360 * log(1 +产量);%连续复利,年化收益率情节(日期、ret2tick (tick2ret(价格,“方法”“连续”),“方法”“连续”)包含(“日期”) ylabel (的索引值)标题(“日均指数收盘常态化”)传说(系列{1:end-1},“位置”“西北”

图中包含一个轴对象。标题为Normalized Daily Index closeings的axes对象包含6个类型为line的对象。这些对象代表(TSX)加拿大TSX综合指数,(CAC)法国CAC 40, (DAX)德国DAX, (NIK)日本日经225,(FTSE)英国富时100,(SP)美国标准普尔500。

Plot(日期,100 * yield) xlabel(“日期”) ylabel (年化收益率(%))标题(无风险利率(3个月欧元同业拆借利率连续复利)

图中包含一个轴对象。标题为“无风险利率(3个月Euribor连续复利)”的axis对象包含一个类型为line的对象。

极值理论与分段概率分布

为了准备copula建模,分别描述每个指数的收益分布。虽然每个返回序列的分布可以参数化地描述,但使用带广义帕累托尾的分段分布拟合半参数模型是有用的。这使用极值理论来更好地描述每个尾巴的行为。

统计和机器学习工具箱™软件目前支持与EVT相关的两个单变量概率分布,EVT是一种用于对资产回报和保险损失等金融数据的肥尾行为建模金宝app的统计工具:

  • 广义极值(GEV)分布,它使用了一种称为广义极值分布的建模技术阻塞极大值或极小值方法。该方法将历史数据集划分为一组子区间或块,并记录每个块中的最大或最小观测值,并将其拟合到GEV分布中。

  • 广义帕累托(GP)分布,使用一种称为违规情况分布峰值超过阈值方法。这种方法对历史数据集进行排序,并将那些超过指定阈值的观测值拟合为GP分布。

下面的分析重点介绍了在风险管理应用中更广泛使用的帕累托分布。

假设我们想要对任意一个股票指数的每日资产收益的概率分布创建一个完整的统计描述。假设此描述由分段半参数分布提供,其中每个尾部的渐近行为由广义帕累托分布表征。

最终,将使用一个copula来生成随机数来驱动模拟。CDF和CDF逆变换将捕获模拟收益的波动性,作为SDE扩散项的一部分。每个指数的平均收益由无风险利率决定,并纳入SDE的漂移项。下面的代码段集中了每个指数的返回值(即提取平均值)。

由于下面的分析使用极值理论来描述每个股票指数回报系列的分布,因此有助于检查特定国家的细节:

返回= tick2ret(价格,“方法”“连续”);%将价格转换为回报Returns = Returns - mean(Returns);%将退货居中指数= 3;%德国存储在第3列Plot (date (2:end), returns(:,index)) xlabel(“日期”) ylabel (“返回”)标题(“每日以对数为中心的收益:”系列{指数}])

图中包含一个轴对象。标题为Daily对数居中返回的坐标轴对象:(DAX)德语DAX包含一个类型为line的对象。

请注意,可以更改此代码段以检查任何国家的详细信息。

使用这些居中的回报,估计经验的,或非参数的,CDF的每个指数与高斯核。这平滑了CDF估计,消除了未平滑样本CDF的阶梯模式。虽然非参数核CDF估计非常适合分布的内部,在那里找到大部分数据,但当应用于上尾和下尾时,它们往往表现不佳。为了更好地估计分布的尾部,将EVT应用于每个尾部的收益。

具体地说,找到上下限阈值,使每个尾部保留10%的回报。然后将每个尾部的极端收益超出相关阈值的数量拟合为最大似然的帕累托分布。

下面的代码段创建一个类型的对象paretotails对于每个索引返回序列。这些帕累托尾对象封装了参数帕累托下尾、非参数核光滑内部和参数帕累托上尾的估计,为每个指标构造一个复合半参数CDF。

tailFraction = 0.1;%分配给每条尾巴的十进制分数tails = cell(nIndices,1);帕累托尾对象的% cell数组i = 1: nindexes尾巴{i} = paretotails(返回(:,i), tailFraction, 1 - tailFraction,“内核”);结束

得到的分段分布对象允许在CDF内部进行插值,并允许在每个尾部进行外推(函数计算)。外推法允许估计历史记录之外的分位数,这对于风险管理应用程序是非常宝贵的。

帕累托尾对象还提供了计算CDF和逆CDF(分位数函数)的方法,以及查询分段分布各分段之间边界的累积概率和分位数。

现在已经估计了分段分布的三个不同区域,以图形方式连接并显示结果。

下面的代码使用拟合所基于的数据以外的数据调用感兴趣的Pareto尾部对象的CDF和逆CDF方法。所引用的方法可以访问拟合状态。现在调用它们来选择和分析概率曲线的特定区域,作为强大的数据过滤机制。

作为参考,该图还包括一个相同标准偏差的零均值高斯CDF。在某种程度上,期权价格的变化反映了每种资产的分布不同于这条正态曲线的程度。

minProbability = cdf(tails{index}, (min(返回(:,索引))));maxProbability = cdf(tails{index}, (max(返回(:,索引))));pLowerTail = linspace(minProbability, tailFraction, 200);下尾%pUpperTail = linspace(1 - tailFraction, maxProbability, 200);%上尾pInterior = linspace(tailFraction, 1 - tailFraction, 200);%的室内plot(icdf(tails{index}, pLowerTail), pLowerTail,“红色”“线宽”2) hold网格plot(icdf(tails{index}, pInterior), pInterior,“黑”“线宽”, 2) plot(icdf(tails{index}, pUpperTail),“蓝”“线宽”, 2)极限=轴;X = linspace(limits(1), limits(2));Plot (x, normcdf(x, 0, std(returns(:,index))),“绿色”“线宽”, 2) FIG = gcf;fig.Color = [1 1 1];持有包含(“集中返回”) ylabel (“概率”)标题([半参数/分段CDF:传奇系列{指数}])({“帕累托下尾”“内核平滑内部”...“帕累托上尾”“具有相同\sigma的高斯”},“位置”“西北”

图中包含一个轴对象。标题为Semi-Parametric/Piecewise CDF的坐标轴对象:(DAX)德语DAX包含4个类型为line的对象。这些对象代表帕累托下尾,核平滑内部,帕累托上尾,具有相同\sigma的高斯。

下面和上面的尾巴区域,分别显示为红色和蓝色,适合外推,而内核光滑的内部,黑色,适合内插。

连系动词校准

统计和机器学习工具箱软件包括校准和模拟高斯和t连系动词。

使用每日指数收益,估计高斯和的参数t使用函数的copulacopulafit.自t当标量自由度参数(DoF)变得无限大时,copula变成高斯copula,这两个copula实际上属于同一个家族,因此共享一个线性相关矩阵作为基本参数。

虽然高斯联结的线性相关矩阵的校准是直截了当的,a的校准tCopula则不然。出于这个原因,统计和机器学习工具箱软件提供了两种技术来校准一个t连系动词:

  • 第一种技术在两步过程中执行最大似然估计(MLE)。在给定一个固定的自由度值的情况下,内步使关于线性相关矩阵的对数似然最大化。这个条件最大化被放置在关于自由度的1-D最大化范围内,从而使所有参数的对数似然最大化。在外层步骤中被最大化的函数被称为自由度的轮廓对数似然函数。

  • 第二种方法是通过对对数似然函数相对于线性相关矩阵求导而得到的,假设自由度是一个固定常数。得到的表达式是一个非线性方程,可以迭代求解相关矩阵。对于大样本容量的自由度参数,这种技术近似于剖面对数似然。这种技术通常比上面概述的真正最大似然技术要快得多;然而,你不应该在小或中等样本量的情况下使用它,因为估计和置信限可能不准确。

当均匀变量通过各裕度的经验CDF进行转换时,校准方法通常被称为典型最大似然(CML)。下面的代码段首先通过上面导出的分段半参数cdf将每日居中返回转换为统一变量。然后它拟合高斯和t转换后数据的copula:

U = 0(大小(返回));i = 1: nIndices U (:, i) = cdf(反面{我},返回(:,我));将每个边距转换为均匀结束选项= statset(“显示”“关闭”“TolX”1的军医);[rhoT, DoF] = copulafit(“t”U“方法”“ApproximateML”“选项”、选择);copulafit(“高斯”U);

估计的相关矩阵非常相似,但不完全相同。

corrcoef(返回)%日收益线性相关矩阵
ans =6×61.0000 0.4813 0.5058 0.1854 0.4573 0.6526 0.4813 1.0000 0.8485 0.2261 0.8575 0.5102 0.5058 0.8485 1.0000 0.2001 0.7650 0.6136 0.1854 0.2261 0.2001 1.0000 0.2295 0.1439 0.4573 0.8575 0.7650 0.2295 1.0000 0.4617 0.6526 0.5102 0.6136 0.1439 0.4617 1.0000
rhoG优化后的高斯联结的%线性相关矩阵
rhoG =6×61.0000 0.4745 0.5018 0.1857 0.4721 0.6622 0.4745 1.0000 0.8606 0.2393 0.8459 0.4912 0.5018 0.8606 1.0000 0.2126 0.7608 0.5811 0.1857 0.2393 0.2126 1.0000 0.2396 0.1494 0.4721 0.8459 0.7608 0.2396 1.0000 0.4518 0.6622 0.4912 0.5811 0.1494 0.4518 1.0000
rhoT优化t联结的%线性相关矩阵
rhoT =6×61.0000 0.4671 0.4858 0.1907 0.4734 0.6521 0.4671 1.0000 0.8871 0.2567 0.8500 0.5122 0.4858 0.8871 1.0000 0.2326 0.7723 0.5877 0.1907 0.2567 0.2326 1.0000 0.2503 0.1539 0.4734 8500 0.7723 0.2503 0.4769 0.6521 0.5122 0.5877 0.1539 0.4769 1.0000

注意从中获得的相对较低的自由度参数tcopula校准,表明显著偏离高斯情况。

景深优化t联结的标量自由度参数
DoF = 4.8613

介体模拟

现在已经估计了copula参数,使用函数模拟联合相关的均匀变量copularnd

然后,通过外推帕累托尾和插值平滑的内部,转换从copularnd通过每个指数的CDF的倒数,到日居中收益。这些模拟的居中返回值与从历史数据集中获得的结果一致。假设收益在时间上是独立的,但在任何时间点上都具有由给定的关联所引起的相关性和秩相关。

类模拟居中返回,从而演示了依赖关系结构t连系动词。然后使用统计和机器学习工具箱为法国CAC 40和德国DAX绘制带有边缘直方图的二维散点图scatterhist函数。之所以选择法国和德国指数,仅仅是因为它们与现有数据的相关性最高。

nPoints = 10000;% #模拟观测值s = RandStream.getGlobalStream();重置(s) R =零(nPoints, nindexes);%预分配模拟返回数组U =共生(“t”, rhoT, DoF, nPoints);%从t copula模拟U(0,1)j = 1: nindexes R(:,j) = icdf(尾部{j}, U(:,j));结束h = scatterhist(R(:,2), R(:,3),“颜色”“r”“标记”“。”“MarkerSize”1);FIG = gcf;fig.Color = [1 1 1];Y1 = ylim(h(1));Y3 = ylim(h(3));xlim (h(1),(-。1 .1]) ylim(h(1),[-。1 .1]) xlim(h(2), [-.]1。1)ylim (h (3), ((y3 (1) + (-0.1 - y1 (1))) (y3 (2) + (0.1 - y1(2)))))包含(“法国”) ylabel (“德国”)标题('t Copula (\nu = 'num2str(景深,2)“)”])

图中包含一个轴对象。轴对象的标题为t blank C o p la blank (nu blank = blank 4)。9)包含line类型的对象。

现在使用高斯联结来模拟并绘制以返回值为中心的图形。

重置(s) R =零(nPoints, nindexes);%预分配模拟返回数组U =共生(“高斯”, rhoG, nPoints);%模拟U(0,1)由高斯联结j = 1: nindexes R(:,j) = icdf(尾部{j}, U(:,j));结束h = scatterhist(R(:,2), R(:,3),“颜色”“r”“标记”“。”“MarkerSize”1);FIG = gcf;fig.Color = [1 1 1];Y1 = ylim(h(1));Y3 = ylim(h(3));xlim (h(1),(-。1 .1]) ylim(h(1),[-。1 .1]) xlim(h(2), [-.]1。1)ylim (h (3), ((y3 (1) + (-0.1 - y1 (1))) (y3 (2) + (0.1 - y1(2)))))包含(“法国”) ylabel (“德国”)标题(“高斯相关”

图中包含一个轴对象。标题为Gaussian Copula的axis对象包含一个类型为line的对象。

请看这两幅图。每个图的对应轴上的微型直方图之间有很强的相似性。这种相似性并非巧合。

这两个copula都模拟均匀随机变量,然后通过每个指数分段分布的逆CDF转换为每日居中收益。因此,任何给定指数的模拟收益都是同分布的,而不考虑copula。

然而,每个图的散点图表明了与给定的关联函数相关的依赖结构,并且与直方图中显示的单变量边缘相比,散点图是不同的。

再一次,copula定义了一个无关边界的依赖结构,因此提供了许多不仅限于校准的特征。

作为参考,使用高斯分布来模拟和绘制以收益为中心的图,这是传统布朗运动模型的基础。

重置(s) R = mvnrnd(零(1,nIndices), cov(返回),nPoints);h = scatterhist(R(:,2), R(:,3),“颜色”“r”“标记”“。”“MarkerSize”1);FIG = gcf;fig.Color = [1 1 1];Y1 = ylim(h(1));Y3 = ylim(h(3));xlim (h(1),(-。1 .1]) ylim(h(1),[-。1 .1]) xlim(h(2), [-.]1。1)ylim (h (3), ((y3 (1) + (-0.1 - y1 (1))) (y3 (2) + (0.1 - y1(2)))))包含(“法国”) ylabel (“德国”)标题(高斯分布的

图中包含一个轴对象。标题为高斯分布的axis对象包含一个类型为line的对象。

基于Longstaff & Schwartz方法的美国期权定价

既然copula已经校准好了,那么就比较一下由各种方法得出的平价美国一篮子期权的价格吧。为了简化分析,假设:

  • 所有指数都从100开始。

  • 投资组合持有每个指数的单个单位或份额,因此投资组合在任何时候的价值都是各个指数价值的总和。

  • 期权有效期为3个月。

  • 从每日数据中得到的信息是年化的。

  • 每个日历年由252个交易日组成。

  • 指数水平每天模拟。

  • 该期权可在每个交易日结束时行使,与美国期权类似,为百慕大期权。

现在计算所有模拟方法的通用参数:

Dt = 1 / 252;%时间增量= 1天= 1/252年yield = Data(:,end);日有效产量产量= 360 * log(1 +产量);%连续复利,年化收益率R = mean(yield);%历史3M欧元同业拆息平均水平X = repmat(100, nIndices, 1);%初态向量strike = sum(X);初始化货币篮子nTrials = 100;% #的独立试验nPeriods = 63;% #模拟周期:63/252 = 0.25年= 3个月

现在创建两个可分离的多维市场模型,其中无风险收益和波动风险敞口矩阵都是对角线。

虽然两者都是具有相同风险中性收益的对角GBM模型,但第一个由相关布朗运动驱动,并明确指定了以中心为中心的收益的样本线性相关矩阵。然后,这个相关的布朗运动过程用年化指数波动率或标准偏差的对角线矩阵进行加权。

作为一种替代方法,同样的模型可以由不相关的布朗运动(标准布朗运动),并指明相关作为单位矩阵,或者简单地接受默认值。在这种情况下,曝光矩阵σ指定为指数返回协方差矩阵的下Cholesky因子。因为基于copula的方法模拟相关随机数,为了一致性,选择对角线曝光形式。有关详细信息,请参见诱导依赖性和相关性

Sigma = std(返回)*根号(252);年化波动率相关性= corrcoef(收益);%相关高斯扰动GBM1 = gbm(diag(r(ones(1,nIndices))), diag(sigma),“StartState”, X,...“相关”、相关);

现在用单位矩阵创建由布朗联结驱动的第二个模型σ

GBM2 = gbm(diag(r(ones(1,nIndices))), eye(nIndices),“StartState”, X);

新创建的模型可能看起来不同寻常,但它突出了SDE体系结构的灵活性。

当使用copula时,允许随机数生成器函数Z(t,X)与copula诱导依赖关系(其中传统的线性相关概念是一种特殊情况),并使用半参数CDF和逆CDF变换诱导变化的幅度或尺度(类似于波动率或标准偏差),通常是方便的。由于每个指数的CDF和CDF逆变换继承了历史收益的特征,这也解释了为什么现在的收益是居中的。

在以下部分中,像这样的语句:

z = Example_CopulaRNG(返回* sqrt(252), nPeriods, '高斯');

z = Example_CopulaRNG(返回* sqrt(252), nPeriods, 't');

拟合高斯和t相关性结构,以及半参数边际到中心收益按每年交易天数(252)的平方根缩放。这种缩放并没有年化每日居中的收益。相反,它对它们进行缩放,使波动率与对角线年化暴露矩阵保持一致σ之前创建的传统布朗运动模型(GBM1)。

在本例中,您还指定了一个周期结束处理函数,该函数接受时间和状态(t,X),并将样本时间和投资组合的值记录为所有指数的单单位加权平均值。该函数还与其他函数共享此信息,这些函数使用Longstaff & Schwartz的最小二乘回归方法,以恒定的无风险利率为美国期权定价。

f = Example_LongstaffSchwartz(nPeriods, nTrials)
f =带字段的结构:LongstaffSchwartz: @Example_LongstaffSchwartz/saveBasketPrices CallPrice: @Example_LongstaffSchwartz/getCallPrice PutPrice: @Example_LongstaffSchwartz/getPutPrice price: @Example_LongstaffSchwartz/getBasketPrices

现在使用默认值模拟3个日历月股票指数价格的独立试验simByEuler方法。模拟方法不要求输出;事实上,构成篮子的个别指数的模拟价格是不必要的。为方便起见,报告看涨期权价格:

reset(s) simByEuler(GBM1, nPeriods,“nTrials”nTrials,“DeltaTime”, dt,...“过程”, f.LongstaffSchwartz);BrownianMotionCallPrice = f.CallPrice(strike, r);BrownianMotionPutPrice = f.PutPrice (strike, r);reset(s) z = Example_CopulaRNG(返回* sqrt(252), nPeriods,“高斯”);f = Example_LongstaffSchwartz(nPeriods, nTrials);simByEuler (GBM2 nPeriods,“nTrials”nTrials,“DeltaTime”, dt,...“过程”f.LongstaffSchwartz,“Z”, z);GaussianCopulaCallPrice = f.CallPrice(strike, r);GaussianCopulaPutPrice = f.PutPrice (strike, r);

重复copula模拟tCopula依赖结构。对于两个copula使用相同的模型对象;只有随机数生成器和期权定价函数需要重新初始化。

reset(s) z = Example_CopulaRNG(返回* sqrt(252), nPeriods,“t”);f = Example_LongstaffSchwartz(nPeriods, nTrials);simByEuler (GBM2 nPeriods,“nTrials”nTrials,“DeltaTime”, dt,...“过程”f.LongstaffSchwartz,“Z”, z);tCopulaCallPrice = f.CallPrice(strike, r);tCopulaPutPrice = f.PutPrice (strike, r);

最后,比较了所有模型得出的美国看跌期权和看涨期权的价格。

disp (' '

              
流(#蒙特卡洛选拔赛:%8d\n'nTrials)
蒙特卡洛预选赛冠军:100
流(# of Time Periods/Trial: %8d\n\n'nPeriods)
时间周期/审判数量:63
流(布朗运动美国电话篮价格:%8.4f\nBrownianMotionCallPrice)
布朗运动美国电话篮价格:25.9456
流(Brownian Motion美国看跌期权篮价格:%8.4f\n\nBrownianMotionPutPrice)
布朗运动美国看跌期权篮价格:16.4132
流(“高斯Copula美国电话篮价格:%8.4f\n”GaussianCopulaCallPrice)
高斯Copula美国电话篮价格:24.5711
流(“高斯Copula美国看跌期权篮价格:%8.4f\n\n”GaussianCopulaPutPrice)
高斯Copula美国看跌期权篮价格:17.4229
流(Copula美国电话篮价格:%8.4f\n'tCopulaCallPrice)
t Copula美国电话篮价格:22.6220
流(Copula American Put Basket价格:%8.4f\n'tCopulaPutPrice)
t Copula美国看跌期权篮价格:20.9983

这个分析只是一个小范围的模拟。如果重复模拟10万次,得到以下结果:

#蒙特卡洛试验:100000个时间周期/试验:63
布朗运动美国看涨期权篮价格:20.2214布朗运动美国看跌期权篮价格:16.5355
高斯Copula美国看涨期权篮价格:20.6097高斯Copula美国看跌期权篮价格:16.5539
t Copula美国现货篮价格:21.1273 t Copula美国现货篮价格:16.6873

有趣的是,结果非常一致。从copula获得的看跌期权价格比布朗运动的价格高出不到1%。

关于波动性和利率缩放的说明

同样的期权价格也可以通过处理以非年化(在本例中为日)为中心的回报和无风险利率(其中时间增量)来获得dt= 1天而不是1/252年。换句话说,投资组合的价格仍将在每个交易日被模拟;数据只是比例不同而已。

虽然没有执行,但通过首先将随机流重置为其初始内部状态,以下代码段使用每日集中收益和无风险利率工作,并产生相同的期权价格。

高斯分布/布朗运动及日数据:

重置(s)
f = Example_LongstaffSchwartz(nPeriods, nTrials);GBM1 = gbm(diag(r(ones(1,nIndices))/252), diag(std(returns)),“StartState”, X,...“相关”、相关);
simByEuler (GBM1 nPeriods,“nTrials”nTrials,“DeltaTime”, 1...“过程”, f.LongstaffSchwartz);
BrownianMotionPutPrice = f.PutPrice (strike, r/252)

高斯Copula &日数据:

重置(s)
z = Example_CopulaRNG(返回,nPeriods,“高斯”);f = Example_LongstaffSchwartz(nPeriods, nTrials);GBM2 = gbm(diag(r(ones(1,nIndices))/252), eye(nIndices),“StartState”, X);
simByEuler (GBM2 nPeriods,“nTrials”nTrials,“DeltaTime”, 1...“过程”,朗斯塔夫·施瓦茨,“Z”, z);
GaussianCopulaCallPrice = f.CallPrice(strike, r/252)

t Copula和每日数据:

重置(s)
z = Example_CopulaRNG(返回,nPeriods,“t”);f = Example_LongstaffSchwartz(nPeriods, nTrials);
simByEuler (GBM2 nPeriods,“nTrials”nTrials,“DeltaTime”, 1...“过程”,朗斯塔夫·施瓦茨,“Z”, z);
tCopulaCallPrice = f.CallPrice(strike, r/252) tCopulaPutPrice = f.PutPrice (strike, r/252)

另请参阅

||||||||||||||||||||

相关的例子

更多关于