主要内容

欧洲香草价格看涨期权使用布莱克-斯科尔斯模型和不同的股权定价的人

这个例子展示了如何比较欧洲香草仪器使用一个看涨期权价格BlackScholes模型和不同的定价方法。这种比较的定价方法是Cox-Ross-Rubinstein Leisen-Reimer,有限差分和布莱克-斯科尔斯分析公式。

创建ratecurve对象

创建一个ratecurve对象使用ratecurve

解决= datetime (2019、01 01);成熟= datetime (2022、01 01);率= 0.0111;复合= 1;ZeroCurve = ratecurve (“零”解决,成熟,速度,“复合”、复合);

创建BlackScholes模型对象

使用finmodel创建一个BlackScholes模型对象。

波动率= .35点;BSModel = finmodel (“BlackScholes”,“波动”波动率);

创建香草仪对象

使用fininstrument创建一个香草仪对象。

ExerciseDates = datetime(2019、09年01);罢工= 30;OptionType =“电话”;EuropeanCallOption = fininstrument (“香草”,“ExerciseDate”ExerciseDates,“罢工”罢工,“OptionType”OptionType,“名字”,“vanilla_call_option”);

创建分析,AssetTree,FiniteDifference定价的人对象

为香草选项创建两个场景。在第一个场景中,期权的钱(移动)。在第二个场景中(ATM)的选择是钱。

%定义树的层数AssetTree定价的人NumPeriods = 55;

计算移动香草期权价格的选择

使用finpricer创建一个BlackScholes,AssetTree,FiniteDifference定价的人移动对象的选择和使用ratecurve对象的“DiscountCurve”名称-值对的论点。

SpotPriceOTM = 25;%分析定价的人AnalyticPricerOTM = finpricer (“分析”,“模型”BSModel,“SpotPrice”SpotPriceOTM,“DiscountCurve”,ZeroCurve);PriceBLSOTM =价格(AnalyticPricerOTM EuropeanCallOption);% AssetTree定价的人CRRPricerOTM = finpricer (“AssetTree”,“DiscountCurve”ZeroCurve,“模型”BSModel,“SpotPrice”SpotPriceOTM,“PricingMethod”,“CoxRossRubinstein”,“NumPeriods”NumPeriods,“成熟”,ExerciseDates);PriceCRROTM =价格(CRRPricerOTM EuropeanCallOption);LRPricerOTM = finpricer (“AssetTree”,“DiscountCurve”ZeroCurve,“模型”BSModel,“SpotPrice”SpotPriceOTM,“PricingMethod”,“LeisenReimer”,“NumPeriods”NumPeriods,“成熟”ExerciseDates,“罢工”,罢工);PriceLROTM =价格(LRPricerOTM EuropeanCallOption);% FiniteDifference定价的人FDPricerOTM = finpricer (“FiniteDifference”,“模型”BSModel,“SpotPrice”SpotPriceOTM,“DiscountCurve”,ZeroCurve);PriceFDOTM =价格(FDPricerOTM EuropeanCallOption);

计算ATM香草期权价格的选择

使用finpricer创建一个BlackScholes,AssetTree,FiniteDifference定价的人对象并使用自动取款机选项ratecurve对象的“DiscountCurve”名称-值对的论点。

SpotPriceATM = 30;%分析定价的人AnalyticPricerATM = finpricer (“分析”,“模型”BSModel,“SpotPrice”SpotPriceATM,“DiscountCurve”,ZeroCurve);PriceBLSATM =价格(AnalyticPricerATM EuropeanCallOption);% AsetTree定价的人CRRPricerATM = finpricer (“AssetTree”,“DiscountCurve”ZeroCurve,“模型”BSModel,“SpotPrice”SpotPriceATM,“PricingMethod”,“CoxRossRubinstein”,“NumPeriods”NumPeriods,“成熟”,ExerciseDates);PriceCRRATM =价格(CRRPricerATM EuropeanCallOption);LRPricerATM = finpricer (“AssetTree”,“DiscountCurve”ZeroCurve,“模型”BSModel,“SpotPrice”SpotPriceATM,“PricingMethod”,“LeisenReimer”,“NumPeriods”NumPeriods,“成熟”ExerciseDates,“罢工”,罢工);PriceLRATM =价格(LRPricerATM EuropeanCallOption);% FiniteDifference定价的人FDPricerATM = finpricer (“FiniteDifference”,“模型”BSModel,“SpotPrice”SpotPriceATM,“DiscountCurve”,ZeroCurve);PriceFDATM =价格(FDPricerATM EuropeanCallOption);

香草选项选项移动时价格比较

使用displayPricesVanillaCallOption本地函数比较香草移动电话价格。

displayPricesVanillaCallOption (“移动”,PriceCRROTM PriceBLSOTM PriceLROTM PriceFDOTM)
比较香草看涨期权价格移动:布莱克-斯科尔斯:1.280591 Cox-Ross-Rubinstein: 1.278306 Leisen-Reimer: 1.280651有限差分:1.280599

当选择是ATM香草选择价格比较

使用displayPricesVanillaCallOption本地函数比较香草叫ATM的价格。

displayPricesVanillaCallOption (“取款机”,PriceCRRATM PriceBLSATM PriceLRATM PriceFDATM)
比较香草看涨期权价格的ATM:布莱克-斯科尔斯:3.505323 Cox-Ross-Rubinstein: 3.520559 Leisen-Reimer: 3.505377有限差分:3.505452

分析树的数量水平对期权价格的影响在使用AssetTree定价的人

创建图形可视化如何收敛变化步骤二项计算数量的增加Cox-Ross-Rubinstein和Leisen-Reimer树模型,以及资产价格的变化对收敛的影响。

%定义树的时间步骤的数目NPoints = 240;% Cox-Ross-RubinsteinNumPeriodCRR = 5: 1: NPoints;NbStepCRR =长度(NumPeriodCRR);PriceOTMCRR =南(NbStepCRR, 1);PriceATMCRR = PriceOTMCRR;i = 1: NbStepCRR PricerCRROTM = finpricer (“AssetTree”,“DiscountCurve”ZeroCurve,“模型”BSModel,“SpotPrice”SpotPriceOTM,“PricingMethod”,“CoxRossRubinstein”,“NumPeriods”NumPeriodCRR(我),“成熟”,ExerciseDates);PriceOTMCRR (i) =价格(PricerCRROTM EuropeanCallOption);PricerCRRATM = finpricer (“AssetTree”,“DiscountCurve”ZeroCurve,“模型”BSModel,“SpotPrice”SpotPriceATM,“PricingMethod”,“CoxRossRubinstein”,“NumPeriods”NumPeriodCRR(我),“成熟”,ExerciseDates);PriceATMCRR (i) =价格(PricerCRRATM EuropeanCallOption);结束% Leisen-ReimerNumPeriodLR = 5: 2: NPoints;NbStepLR =长度(NumPeriodLR);PriceOTMLR =南(NbStepLR, 1);PriceATMLR = PriceOTMLR;i = 1: NbStepLR PricerLROTM = finpricer (“AssetTree”,“DiscountCurve”ZeroCurve,“模型”BSModel,“SpotPrice”SpotPriceOTM,“PricingMethod”,“LeisenReimer”,“NumPeriods”NumPeriodLR(我),“成熟”ExerciseDates,“罢工”,罢工);PriceOTMLR (i) =价格(PricerLROTM EuropeanCallOption);PricerLRATM = finpricer (“AssetTree”,“DiscountCurve”ZeroCurve,“模型”BSModel,“SpotPrice”SpotPriceATM,“PricingMethod”,“LeisenReimer”,“NumPeriods”NumPeriodLR(我),“成熟”ExerciseDates,“罢工”,罢工);PriceATMLR (i) =价格(PricerLRATM EuropeanCallOption);结束

第一个场景:移动香草看涨期权

情节退休研究中心的融合和LR模型为一个移动选项布莱克-斯科尔斯的解决方案。

% Cox-Ross-Rubinstein情节(NumPeriodCRR PriceOTMCRR);持有;情节(NumPeriodCRR PriceBLSOTM *的(NbStepCRR, 1),“颜色”(0.9 0 0),“线宽”,1.5);% Leisen-Reimer情节(NumPeriodLR PriceOTMLR,“颜色”(0.9 0 0),“线宽”,1.5);%剪裁的感兴趣的领域集中在Y轴上的五倍% LR价格:YLimDelta = 5 * abs (PriceOTMLR (1) - PriceBLSOTM);甘氨胆酸ax =;斧子。YLim = [PriceBLSOTM - YLimDelta PriceBLSOTM + YLimDelta];斧子。NPoints XLim = [5];%注释情节titleString = sprintf (的哭泣和LR模型\ nConvergence BLS解决方案(移动)\ nStrike = % d,资产价格= % d '、罢工、SpotPriceOTM);标题(titleString) ylabel (期权价格的)包含(“许多步骤”)传说(“哭泣”,劳工统计局的,“LR”,“位置”,“东北”)

图包含一个坐标轴对象。坐标轴对象包含许多步骤,ylabel期权价格包含3线类型的对象。这些对象代表退休研究中心,美国劳工统计局,LR。

观察到Leisen-Reimer模型消除了振动并产生估计接近布莱克-斯科尔斯模型只使用少量的步骤。

第二个场景:ATM香草看涨期权

情节哭泣和LR模型收敛的布莱克-斯科尔斯ATM机解决方案的选择。

% Cox-Ross-Rubinstein图;情节(NumPeriodCRR PriceATMCRR);持有;情节(NumPeriodCRR PriceBLSATM *的(NbStepCRR, 1),“颜色”(0.9 0 0),“线宽”,1.5);% Leisen-Reimer情节(NumPeriodLR PriceATMLR,“颜色”(0.9 0 0),“线宽”,1.5);%剪裁的感兴趣的领域集中在Y轴上的五倍% LR价格:YLimDelta = 5 * abs (PriceATMLR (1) - PriceBLSATM);甘氨胆酸ax =;斧子。YLim = [PriceBLSATM - YLimDelta PriceBLSATM + YLimDelta];斧子。NPoints XLim = [5];%注释情节titleString = sprintf (的哭泣和LR模型\ nConvergence BLS的解决方案(ATM) \ nStrike = % d,资产价格= % d '、罢工、SpotPriceATM);标题(titleString) ylabel (期权价格的)包含(“许多步骤”)传说(“哭泣”,劳工统计局的,“LR”,“位置”,“东北”)

图包含一个坐标轴对象。坐标轴对象包含许多步骤,ylabel期权价格包含3线类型的对象。这些对象代表退休研究中心,美国劳工统计局,LR。

而退休研究中心二项式模型和布莱克-斯科尔斯模型收敛随着时间步数的增加,这种融合,除了平价期权,一点也不光滑或统一。

本地函数

函数displayPricesVanillaCallOption(类型、PriceBLS PriceCRR、PriceLR PriceFD)流(的比较香草看涨期权价格% s: \ n”、类型);流(' \ n ');流(“布莱克-斯科尔斯:% f \ n”,PriceBLS);流(“Cox-Ross-Rubinstein: % f \ n”,PriceCRR);流(“Leisen-Reimer: % f \ n”,PriceLR);流(“有限差分:% f \ n”,PriceFD);流(' \ n ');结束

另请参阅

|||

相关的例子

更多关于

外部网站