欧式期权二叉树定价MATLAB代码
期权的二叉树定价模型

17
利用风险中性定价法计算上面例题
• 已知股票现价为$20,三个月末股票价格可能上涨到$22或下降到 $18。本例中所考虑的期权是一份执行价格为$21,有效期为三个 月的欧式看涨期权,无风险利率是年率12%。 • 在风险中性假设条件下,股票价格上升变化的概率是p。在这样的 世界中,股票的预期收益率一定等于无风险利率12%。这意味着一 定满足: 22p +18(1 –p)= 20e0.12*0.25 p=0.6523。 • 在三个月末尾,看涨期权价值具有$1价值的概率为0.6523,价值 为零的概率为0.3477。因此,看涨期权的期望值为: 0.6523 1 + 0.3477 0 = $0.6523 • 利用无风险利率进行贴现,可以得到该期权的价值为: 0.6523e-0.12*0.25=0.633 • 这一计算结果与前面所得结果相同,这说明利用无套利理论和风 险中性定价方法计算的结论相同。
f
u
f
d
Su Sd
(1)
11
当组合中股票的△取值为 f
u
Su Sd
f 时
d
• 所构造的组合一定是无风险组合,根据无套利假设条件, 组合的收益一定为无风险利率。 rT ( Su f ) e • 我们用r表示无风险利率,则该组合的现值为: u • • 而该组合的初始价值为S △ -f ,因此
19
6
在无套利假设条件下,无风险证券组合 的收益率一定为无风险利率。
• 假设无风险利率为年率 12% 。我们可以计算该组 合的现在价值一定是$4.5,即: • 我们用 f 表示期权的价格。已知股票现在价格为 $20,因此该组合现在的价值为: • 20*0.25 – f = 5 – f • 于是 5 – f = 4.367 • 求解可得 f = 0.633 • 在无套利假设条件下,期权的价值一定为 $0.633 。
二叉树期权定价法22222

二叉树期权定价法摘要上世纪七十年代以来金融衍生品得到了蓬勃的发展,在这之中,期权的地位尤为受到重视,居于核心地位,很多的新创的衍生品,都包含了期权的成分。
所以一直以来,期权的定价问题受到了大量经济学家的探索。
实物期权的定价模式的种类较多,理论界和实务界尚未形成通用的定价模型,主要估值方式有两种:一是B l a c k-S c h o l e s期权定价模型;二是二叉树期权定价模型。
1973年,布莱克和斯科尔斯(B l a c k a n d C s c h o l e s)提出了B l a c k-S c h o l e s期权定价公式,对标的资产的价格服从正态分布的期权进行定价。
随后,罗斯开始研究标的资产的价格服从非正态分布的期权定价理论。
1976年,约翰·考克斯(J o h nC a r r i n g t o n C o x)、斯蒂芬·罗斯(S t e p h e n A.R o s s)在《金融经济学杂志》上发表论文“基于另类随机过程的期权定价”,提出了风险中性定价理论。
1979年,约翰·考克斯(J o h n C a r r i n g t o n C o x)、斯蒂芬·罗斯(S t e p h e n A.R o s s)、马克·鲁宾斯坦(M a r k R u b i n s t e i n)在《金融经济学杂志》上发表论文“期权定价:一种简单的方法”,该文提出了一种简单的对离散时间的期权的定价方法,被称为C o x-R o s s-R u b i n s t e i n二项式期权定价模型。
关键词B l a c k-S c h o l e s期权定价模型虽然有许多优点,但是它的推导过程却是难以为人们所接受;二叉树期权定价模型假设股价波动只有向上和向下两个方向,且假设在整个考察期内,股价每次向上(或向下)波动的概率和幅度不变。
模型将考察的存续期分为若干阶段,根据股价的历史波动率模拟出正股在整个存续期内所有可能的发展路径,并对每一路径上的每一节点计算权证行权收益和用贴现法计算出的权证价格。
10.3二叉树看跌期权定价与平价原理

第10章二叉树法期权定价及其Python应用本章精粹蒙特卡罗模拟法便于处理报酬函数复杂、标的变量多等问题,但是在处理提前行权问题时却表现出明显的不足。
本章将要介绍的二叉树法可以弥补蒙特卡罗模拟法的这种不足。
二叉树的基本原理是:假设变量运动只有向上和向下两个方向,且假设在整个考察期内,标的变量每次向上或向下的概率和幅度不变。
将考察期分为若干阶段,根据标的变量的历史波动率模拟标的变量在整个考察期内所有可能的发展路径,并由后向前以倒推的形式走过所有结点,同时用贴现法得到在0时刻的价格。
如果存在提前行权的问题,必须在二叉树的每个结点处检查在这一点行权是否比下一个结点上更有利,然后重复上述过程。
10.1 二叉树法的单期欧式看涨期权定价假设:(1) 市场为无摩擦的完美市场,即市场投资没有交易成本。
这意味着不支付税负,没有买卖价差(Bid-Ask Spread)、没有经纪商佣金(Brokerage Commission)、信息对称等。
(2) 投资者是价格的接受者,投资者的交易行为不能显著地影响价格。
(3) 允许以无风险利率借入和贷出资金。
(4) 允许完全使用卖空所得款项。
(5) 未来股票的价格将是两种可能值中的一种。
为了建立好二叉树期权定价模型,我们先假定存在一个时期,在此期间股票价格能够从现行价格上升或下降。
下面用实例来说明二叉树期权定价模型的定价方法。
1. 单一时期内的买权定价假设股票今天(t =0)的价格是100美元,一年后(t =1)将分别以120美元或90美元出售,就是1年后股价上升20%或下降10%。
期权的执行价格为110美元。
年无风险利率为8%,投资者可以这个利率放款(购买这些利率8%的债券)或借款(卖空这些债券)。
如图10-1所示。
今天 1年后t =0 t =1u S 0=120 上升20% 1000=Sd S 0=90 下降10%u 0max(u ,0)max(120110,0)10C S X =-=-=?0=Cd 0max(d ,0)max(90110,0)0C S X =-=-=图10-1 买权价格图10-1表示股票买权的二叉树期权定价模型。
期权定价二叉树模型

9 e
0.10.25
8.78
• 这也应该是期初用于投资组合的资金,由 此得:
1 30 C 8.78, C 10 8.78 1.22 3 • 买入期权的价格应该定为1.22元
三、期权定价的二项式公式
符号: S 0 股票在期初的价格, S X 期权确定的执行价格, u 股票价格在单个时间阶段内的上升因子 d 股票价格在单个时间阶段内的下降因子(-) Ru 期权在股票价格上升状态下的收益 Rd 期权在股票价格下降状态下的收益 r 年无风险收益率 T 期权的期限
7.14 qu max{ S 0 (1 u ) 3 (1 d ) S X ,0} q d max{ S 0 (1 u ) 2 (1 d ) 2 S X ,0}
0.33 qu max{ S 0 (1 u ) 2 (1 d ) 2 S X ,0} q d max{ S 0 (1 u )(1 d ) 3 S X ,0}
n n i i n i i C i qu q d max{ S 0 (1 u ) (1 d ) S X ,0} i 0
n
n n! n (n 1) (n i 1) , n 0,1, i (i 1) 1 i (n i )!i !
0 qu max{ S 0 (1 u ) 3 (1 d ) S X ,0} qd max{ S 0 (1 d ) 4 S X ,0}
对于第2阶段各状态期权价值有
2 13.7 qu 18.03 q d 7.14 qu max{ S 0 (1 u ) 4 S X ,0}
计算相关数据
u (e rT 1) ud 0.1 (e 0.05 1) 0.1 0.05 0.324859
基于MATLAB的欧式期权定价的敏感性分析_吕喜明

Black-Scholes-Merton 模型的灵敏度指标的计算公式;
2.首次在 Noteboo 环境[11]下编写了一个集成度较
高的“Black-Scholes-Merton 模型欧式期权敏感性指标
通用计算模板”,在 Word 中实现了欧式期权敏感性指标
的快捷计算;
3. 率先用四维敏感性曲面图生动地再现了模型中
239
计 中 国 乡 镇 企 业 会
time=1:0.5:12; newtime=time(ones(range,1),:)'/12; timerange=ones(length(time),1); newprice=price(timerange,:); pad=ones(size(newtime)); Delta=blsdelta (newprice,40*pad,0.1*pad,newtime,0. 35*pad); color=blsprice (newprice,40*pad,0.1*pad,newtime,0. 35*pad); mesh(price,time,Delta,color) xlabel(' 股票价格 ') ylabel(' 时间(月)') zlabel('Delta') title(' 图 1 看涨期权的敏感性度量之 Delta') axis([10 70 1 12 -inf inf]) set(gca,'box','on'); colorbar 六、结语 本文给出了 Black-Scholes-Merton 期权敏感性指标 的计算公式,并在 Notebook 环境下计算了敏感性指标 的值,绘制了敏感性四维网面图。为 MATLAB 金融工具 箱的使用提供了新的思路。受时间所限,文中只探讨了 单个 Black-Scholes-Merton 模型的期权敏感性问题,对 于投资组合型的及 Black-Scholes 模型的其它推广形式 的期权定价的敏感性问题将另作探讨。
欧式期权定价理论及其数值计算方法论文

毕业论文欧式期权定价理论及其数值计算方法摘要随着全球金融市场的迅猛发展,期权也越来越受到很多人的关注,有必要对期权进行更加深入的研究。
前人已经对欧式期权定价进行了很深入的研究,在1973年Fischer Black 和Myron Scholes 建立了看涨期权定价公式并因此获得诺贝尔学奖。
本文对欧式期权的定价的讨论主要在其定价模型和数值计算方法两个方面,探讨其理论知识和进行实例分析,并得出简单的结论。
本文将从以下六个方面讨论。
第一:介绍问题的背景和意义,先前的研究成果以及本文框架;第二:讨论期权的基础知识,了解期权损益和定价界限;第三:研究二项式模型,由浅入深的分别给出股价运动一期、二期和多期的欧式期权定价公式;第四:研究Black-Scholes 模型,通过求解Black-Scholes 方程得到Black-Scholes 公式()12(,)()()r T t C S t SN d Xe N d --=-,并探讨Black-Scholes 模型和二项式模型的联系,即得到波动率σ,就可以求出与之相匹配的二项式模型中的u ,d 和q ;第五:用数值计算方法求解欧式期权定价,分析了二叉树图法和有限差分法,有限差分方法又包括内含有限差分方法、外推有限差分方法及Crank-Nicolson 差分方法。
两种数值方法都要求得到末期的期权值来推出初期的期权值,然后进行实例分析进行应用,并用计算机语言把数学内容表示出来,实现数学知识与计算机语言的结合。
第六:通过以上的内容得出一些结论。
本文的重心是基于对期权定价的模型和数值方法的探讨和分析,加以实例辅助突出其应用性,不足之处在于理论的突破性不大。
关键词 欧式期权定价 二项式模型 Black-Scholes 模型 有限差分 二叉树图目 录1 前言 (1)1.1 选题的背景和意义 (1)1.2 前人的研究成果 (2)1.3 论文的研究框架 (3)2 期权基本理论 (3)2.1 期权的相关术语 (3)2.2 期权的损益与期权价格的界限 (4)2.2.1 期权的损益 (4)2.2.2 欧式期权价格的界限 (5)3 二项式模型 (6)3.1 二项期权定价模型介绍 (6)3.2 欧式期权定价模型 (7)3.2.1 一期模型的欧式看涨期权定价 (7)3.2.2 二期模型的欧式看涨期权定价 (9)3.2.3 多期二项式期权定价公式 (10)4 Black-Scholes模型 (12)4.1 股票价格的行为模式 (12)4.2 历史回顾 (13)4.3 Black-Scholes方程 (14)4.4 Black-Scholes公式(欧式看涨期权的定价) (15)4.5 二项式模型和Black-Scholes的模型的关系 (17)5 欧式期权定价的数值方法 (18)5.1 二项式模型的数值计算 (18)5.1.1 二叉树图方法 (18)5.1.2 实例分析 (19)5.2 Black-Scholes公式(欧式期权定价)的数值计算 (23)5.2.1 有限差分方法 (23)5.2.2 实例分析 (26)6 总结 (28)6.1 本文结论 (28)6.2 展望未来 (30)致 (31)参考文献 (32)Abstract (33)附录 (34)本科专业毕业论文成绩评定表 (39)1 前言1.1 选题的背景和意义期权交易的出现已达几个世纪之久。
基于MATLAB的欧式期权定价与隐含波动率应用

基于MATLAB的欧式期权定价与隐含波动率应用作者:刘俊材林若来源:《商场现代化》2010年第26期[摘要]期权价格依赖于标的产品的价格、执行价格、无风险利率、从目前到期权到期的时间、基础资产的波动率等变量。
欧式期权定价和银行波动率的应用是金融工程领域研究的重要内容。
本文利用MATLAB工具箱实现对欧式期权定价的求解,并进一步探讨隐含波动率在投资实践中的应用。
[关键词] MATLAB 欧式期权隐含波动率一、引言期权,是指双方当事人达成某种协议,期权买方向期权卖方支付一定费用,取得在未来到期日(Maturity Data)或到期前按协议买进或卖出一定数量某种基础证券(Underlying Assets)的权利,欧式期权则指买入期权的一方只能在期权到期日当天才能行使的期权。
一直以来,MATLAB在期权定价模型等金融工程方面有着极其重要的作用。
本文通过应用MATLAB,实现欧式期权和隐含波动率在实践中的应用。
二、Black-Scholes期权定价模型及MATLAB实现1.欧式期权的理论价格根据Black-Scholes期权定价模型可以得出欧式期权理论价格的表达式:其中,:标的资产市场价格X : 执行价格r : 无风险利率:标的资产价格波动率T – t: 距离到期时间2. MATLAB实现MATLAB中计算欧式期权价格的函数是blsprice>>[call, put]= blsprice(price, strike, rate, time, volatility)输入参数,Price是股票价格,Strike是执行价,Rate代表无风险利率,Time是指距离到期日的时间,即期权的存续期(单位:年),Volatility表示标定资产的标准差。
输出参数,Call表示欧式看涨期权价格,Put表示欧式看跌期权价格算例:考虑一只无分红的股票,若股票的现在价格为80,波动率的标准差为0.4,无风险利率为8%,期权的执行价格为90元,执行期为3个月,利用MATLAB计算欧式期权价格。
三叉树欧式期权定价

数值计算与金融仿真实验一实验名称:期权的三叉树定价模型组员:****实验日期:2013年5月30日实验环境:Matlab 7.0 2010b一、标的资产说明:公司名称:SINA CorporationNasdaq简称:SINA上市时间:2000年4月13日计价货币:USD二、实验过程及结果a)(1)登陆yahoo财经,下载SINA 2008年1月2日至2013年5月30日的调整后的收盘价,同时下载SINA 5月30日执行价格为40USD的看涨期权和看跌期权的报价,获得的数据请参见附件一:SINAStockPrice.xls和附件二:SINAOption.xls(2)运用excel表格计算SINA的历史日均收益,并计算历史平均收益和波动率,使用到的函数有average 和stdev,现将计算结果和其他重要参数列表如下:表1 SINA股票的重要参数(3)选取无风险利率,期权到期期限为112天,因此我们选择3个月的美国国库券到期收益率作为参考的无风险利率,从美联储网站得知,5月30日3个月期限的美国国库券到期收益率为0.04%;b)(1)三叉树模型定价假设:1)该期权为欧式期权;现将期权的参数列举如下:表2 SINA期权的重要参数(2)编写M文件,运用三叉树模型对其进行定价,M文件请参见附录一:TrinomialEuro输入[C, P] = TrinomialEuro(58.21, 40, 0.04, 112/365, 0.5864, N),得到以下结果:表3 三叉树欧式期权计算结果图1 看涨欧式期权三叉树定价价格收敛图图2 看跌欧式期权三叉树定价价格收敛图c)三叉树与B-S公式结果对比(1)运用B-S公式进行定价,在matlab中输入表达式:[C ,P] = blsprice(58.21,40,0.04,112/365, 0.5864)表4 B-S公式定价结果SINA_Option 模拟价格运行时间(s)Call 19.16920.0015Put 0.8792(2)精确度对比表5 三叉树与B-S公式计算结果误差对比评价:三叉树与B-S公式计算的结果看涨期权在保留四位小数的情况下完全相同,说明三叉树对看涨期权的定价相当准确;对于看跌期权,三叉树的定价与B-S公式略有偏差,绝对偏差为0.0002,相对误差为0.02%,仍属于比较小的误差水平。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
调用函数代码
function Price=EuroOption(S0,K,T,r,M,type,sigma)
dt = T/M;
u=exp(sqrt(dt)*sigma); d=1/u;
p = (exp(r*dt)-d)/(u-d);
S=zeros(M+1,M+1);
S(1,1)=S0;
for j=1:M
for i=0:j
S(i+1,j+1)= S0*u^(j-i)*d^i;
end
end
V=zeros(M+1,M+1);
for i=0:M
switch type
case 'call'
V(i+1,M+1)=max(S(i+1,M+1)-K,0);
case 'put'
V(i+1,M+1)=max(K-S(i+1,M+1),0);
case 'stra'
V(i+1,M+1)=max(S(i+1,M+1)-K,0)+max(K-S(i+1,M
+1),0);
case 'bino'
V(i+1,M+1) =(S(i+1,M+1)>K);
end
end
for j=M-1:-1:0
for i=0:j
V(i+1,j+1)=exp(-r*dt)*(p*V(i+1,j+2)+(1-p)*V(
i+2,j+2));
end
end
Price=V(1,1);
数据作图
S0 = 6; K = 5; T = 1; r = 0.05; sigma = 0.20;
for M=1:100
type='call';
Price=EuroOption(S0,K,T,r,M,type,sigma);
Vec(M)=Price;
end
for M=1:100
type='put';
Price=EuroOption(S0,K,T,r,M,type,sigma);
Vep(M)=Price;
end
for M=1:100
type='call';
Price=AmOption(S0,K,T,r,M,type,sigma);
Vac(M)=Price;
end
for M=1:100
type= 'put';
Price=AmOption(S0,K,T,r,M,type,sigma);
Vap(M)=Price;
end
figure(1)
plot(Vec,'b');
hold on
plot(Vac,'r');
hold off
legend ('Eurocall','Amcall');
figure(2)
plot(Vep,'b');
hold on
plot(Vap,'r');
legend ('Europut','Amput');