主要内容

optpricebysim

给出模拟基础价值的价格选项

描述

例子

价格= optpricebysim (RateSpecSimulatedPricesOptSpec罢工ExerciseTimes基于基础资产的风险中性模拟计算欧洲、美国和百慕大看涨/看跌期权的价格。对于美国和百慕大期权,Longstaff-Schwartz最小二乘方法计算早期行权溢价。

例子

价格= optpricebysim (___名称,值添加可选的名称-值对参数。

例子

全部折叠

定义选项。

S0 = 100;%标的资产的初始价格σ = 2;标的资产波动率%罢工= 110;%的罢工OptSpec =“电话”%呼叫选项解决=“1 - 1月- 2013”%期权结算日期成熟=“1 - 1月- 2014”%期权到期日R = .05;%无风险利率(每年,连续复利)复利= -1;连续复合基= 0;法案/法案日计数惯例T = yearfrac(Settle, Maturity, Basis);%到期时间,以年为单位

设置“绿带运动”对象,并运行基于几何布朗运动(GBM)的蒙特卡罗仿真simBySolution方法从财务工具箱™。

Ntrials = 1000;NPERIODS = daysact(结算,到期);dt = T/NPERIODS;OptionGBM = gbm(r, Sigma,“StartState”, S0);[Paths, Times, Z] = simBySolution(OptionGBM, NPERIODS,...“NTRIALS”NTRIALS,“DeltaTime”, dt,“反向”,真正的);

创建要定义的利率期限结构RateSpec

RateSpec = intenvset(“ValuationDate”解决,startdate可以的解决,...“EndDates”成熟,“速度”r“复合”复合,...“基础”基础)
RateSpec =带字段的结构:FinObj: 'RateSpec'复合:-1光盘:0.9512利率:0.0500结束时间:1开始时间:0结束日期:735600开始日期:735235估值日期:735235基础:0 EndMonthRule: 1

定价美式期权。

模拟价格=挤压(路径);OptSpec = optpricebysim(RateSpec, SimulatedPrices, Times, OptSpec,...罢工,T,“AmericanOpt”, 1)
OptPrice = 5.8172

定义选项。

S0 = 100;%标的资产的初始价格σ = 2;标的资产波动率%罢工= 110;%的罢工OptSpec =“电话”%呼叫选项解决=“1 - 1月- 2013”%期权结算日期成熟=“1 - 1月- 2014”%期权到期日R = .05;%无风险利率(每年,连续复利)复利= -1;连续复合基= 0;法案/法案日计数惯例T = yearfrac(Settle, Maturity, Basis);%到期时间,以年为单位

设置“绿带运动”对象,并运行基于几何布朗运动(GBM)的蒙特卡罗仿真simBySolution方法从财务工具箱™。

Ntrials = 1000;NPERIODS = daysact(结算,到期);dt = T/NPERIODS;OptionGBM = gbm(r, Sigma,“StartState”, S0);[Paths, Times, Z] = simBySolution(OptionGBM, NPERIODS,...“NTRIALS”NTRIALS,“DeltaTime”, dt,“反向”,真正的);

创建要定义的利率期限结构RateSpec

RateSpec = intenvset(“ValuationDate”解决,startdate可以的解决,...“EndDates”成熟,“速度”r“复合”复合,...“基础”基础)
RateSpec =带字段的结构:FinObj: 'RateSpec'复合:-1光盘:0.9512利率:0.0500结束时间:1开始时间:0结束日期:735600开始日期:735235估值日期:735235基础:0 EndMonthRule: 1

通过计算不同时期的平均价格来为美亚期权定价(算术平均值)。

AvgPrices =零(NPERIODS+1, NTRIALS);i = 1: NPERIODS + 1 AvgPrices(我:)=意味着(挤压(路径(1:我::)));结束AsianPrice = optpricebysim(rate espec, AvgPrices, Times, OptSpec,...罢工,T,“AmericanOpt”, 1)
AsianPrice = 1.8221

定义选项。

S0 = 100;%标的资产的初始价格σ = 2;标的资产波动率%罢工= 110;%的罢工OptSpec =“电话”%呼叫选项解决=“1 - 1月- 2013”%期权结算日期成熟=“1 - 1月- 2014”%期权到期日R = .05;%无风险利率(每年,连续复利)复利= -1;连续复合基= 0;法案/法案日计数惯例T = yearfrac(Settle, Maturity, Basis);%到期时间,以年为单位

设置“绿带运动”对象,并运行基于几何布朗运动(GBM)的蒙特卡罗仿真simBySolution方法从财务工具箱™。

Ntrials = 1000;NPERIODS = daysact(结算,到期);dt = T/NPERIODS;OptionGBM = gbm(r, Sigma,“StartState”, S0);[Paths, Times, Z] = simBySolution(OptionGBM, NPERIODS,...“NTRIALS”NTRIALS,“DeltaTime”, dt,“反向”,真正的);

创建要定义的利率期限结构RateSpec

RateSpec = intenvset(“ValuationDate”解决,startdate可以的解决,...“EndDates”成熟,“速度”r“复合”复合,...“基础”基础)
RateSpec =带字段的结构:FinObj: 'RateSpec'复合:-1光盘:0.9512利率:0.0500结束时间:1开始时间:0结束日期:735600开始日期:735235估值日期:735235基础:0 EndMonthRule: 1

通过找出不同时期的最高价格来为美式回溯期权定价。

MaxPrices = 0 (NPERIODS+1, NTRIALS);LastPrice = squeeze(路径(1,:,:))';i = 1:NPERIODS+1;MaxPrices(i,:) = max([LastPrice;路径(我,:)));LastPrice = MaxPrices(i,:);结束LookbackPrice = optpricebysim(RateSpec, MaxPrices, Times, OptSpec,...罢工,T,“AmericanOpt”, 1)
LookbackPrice = 10.4410

定义选项。

S0 = 80;%标的资产的初始价格σ = .3;标的资产波动率%罢工= 75;%的罢工OptSpec =“把”%看跌期权解决=“1 - 1月- 2013”%期权结算日期成熟=“1 - 1月- 2014”%期权到期日ExerciseDates = {“1 - 6月- 2013 '“1 - 1月- 2014”};%选择权行使日期R = .05;%无风险利率(每年,连续复利)复利= -1;连续复合基= 0;法案/法案日计数惯例T = yearfrac(Settle, Maturity, Basis);%到期时间,以年为单位ExerciseTimes = yearfrac(Settle, ExerciseDates, Basis);%运动次数

设置“绿带运动”对象,并运行基于几何布朗运动(GBM)的蒙特卡罗仿真simBySolution方法从财务工具箱™。

Ntrials = 1000;NPERIODS = daysact(结算,到期);dt = T/NPERIODS;OptionGBM = gbm(r, Sigma,“StartState”, S0);[Paths, Times, Z] = simBySolution(OptionGBM, NPERIODS,...“NTRIALS”NTRIALS,“DeltaTime”, dt,“反向”,真正的);

创建要定义的利率期限结构RateSpec

RateSpec = intenvset(“ValuationDate”解决,startdate可以的解决,...“EndDates”成熟,“速度”r“复合”复合,...“基础”基础)
RateSpec =带字段的结构:FinObj: 'RateSpec'复合:-1光盘:0.9512利率:0.0500结束时间:1开始时间:0结束日期:735600开始日期:735235估值日期:735235基础:0 EndMonthRule: 1

为百慕大期权定价。

模拟价格=挤压(路径);百慕大价格= optpricebysim(rate espec,模拟价格,时间,...OptSpec, Strike, ExerciseTimes)
百慕大价格= 5.2014

定义选项。

S1 = 110;第一项标的资产的价格S2 = 100;第二标的资产的价格%Sigma1 = .1;第一项标的资产的波动率%Sigma2 = .15;第二标的资产的波动率%罢工= 15;%的罢工Rho = .3;基础之间的相关性OptSpec =“把”%看跌期权解决=“1 - 1月- 2013”%期权结算日期成熟=“1 - 1月- 2014”%期权到期日R = .05;%无风险利率(每年,连续复利)复利= -1;连续复合基= 0;法案/法案日计数惯例T = yearfrac(Settle, Maturity, Basis);%到期时间,以年为单位

设置“绿带运动”对象,并运行基于几何布朗运动(GBM)的蒙特卡罗仿真simBySolution方法从财务工具箱™。

Ntrials = 1000;NPERIODS = daysact(结算,到期);dt = T/NPERIODS;SpreadGBM = gbm(r*eye(2), diag([Sigma1;Sigma2]),“相关”...[1 Rho;Rho 1],“StartState”, (S1, S2));[Paths, Times, Z] = simBySolution(SpreadGBM, NPERIODS,“NTRIALS”NTRIALS,...“DeltaTime”, dt,“反向”,真正的);

创建要定义的利率期限结构RateSpec

RateSpec = intenvset(“ValuationDate”解决,startdate可以的解决,...“EndDates”成熟,“速度”r“复合”复合,...“基础”基础)
RateSpec =带字段的结构:FinObj: 'RateSpec'复合:-1光盘:0.9512利率:0.0500结束时间:1开始时间:0结束日期:735600开始日期:735235估值日期:735235基础:0 EndMonthRule: 1

为美国价差期权定价。

Spread = squeeze(路径(:,1,:)-路径(:,2,:));SpreadPrice = optpricebysim(RateSpec, Spread, Times, OptSpec, Strike,...T,“AmericanOpt”, 1)
SpreadPrice = 9.0007

输入参数

全部折叠

无风险利率的期限结构(年化和连续复利),由RateSpec获得intenvset.估价日必须在期权交割日,日计基准和月末规则必须与用于计算期权的日计基准和月末规则相同输入。有关利率规范的信息,请参见intenvset

数据类型:结构体

模拟价格,使用(NumPeriods+1)———NumTrials风险中性模拟价格矩阵。的第一个元素SimulatedPrices是0时刻的初值。

数据类型:|

与模拟价格相关的年度时间因素,使用(NumPeriods+1)———1列向量。的每个元素的对应行相关联SimulatedPrices.的第一个元素必须为0(当前时间)。

数据类型:|

期权的定义为“电话”“把”,指定为字符向量。

数据类型:字符

期权执行价格值,指定为标量值罢工价格。罢工百慕大期权可指定为1——- - - - - -NSTRIKES向量或函数句柄,在给定攻击时间的情况下返回攻击值。

数据类型:||function_handle

运动时间为选项,指定为运动时间的向量,如下所示:

  • 对于欧洲或百慕大的选择,ExerciseTimes是一个1——- - - - - -1(欧洲)或1——- - - - - -NSTRIKES(百慕大)运动时间向量。至于欧洲选项,只有一个ExerciseTimes在期权到期日。

  • 对于美国人来说,ExerciseTimes是一个1——- - - - - -2运动时间边界向量。该选项在该行上的时间对之间的任何日期执行,或包括该日期对。如果ExerciseTimes1——- - - - - -1,期权在时间之间行使0单独列出ExerciseTimes

数据类型:

名称-值参数

指定可选参数对为Name1 = Value1,…,以=家,在那里名字参数名称和价值对应的值。名称-值参数必须出现在其他参数之后,但对的顺序无关紧要。

在R2021a之前,使用逗号分隔每个名称和值,并将其括起来名字在报价。

例子:价格= optpricebysim(RateSpec,价格,时间,OptSpec,结算,罢工,演习时间,'AmericanOpt',1)

选项类型,指定为逗号分隔的对,由“AmericanOpt”和带有值的整数标量标志:

  • 0-欧洲或百慕大

  • 1——美国

对于美式期权,Longstaff-Schwartz最小二乘法计算早期行权溢价。

数据类型:|

输出参数

全部折叠

选项的价格,作为标量值返回。

版本历史

在R2014a中引入