1、MATLAB程序设计 BS公式与二叉树模型期权定价与分析 BS公式与二叉树模型期权定价与分析 什么是期权?期权就是当什么时候或条件下,你有什么权力。教课书上的期权似乎离我们比较遥远,或仅限于金融市场。但如果仔细想想,车险或疾病保险似乎也是一种期权,期权本质是一种选择权。例如,商业医疗保险,客户每年缴纳一定的保费,获得在生病时获取一定补偿的权利。公司期权,若工作业绩达到某个标准(付出),得到公司多少多上的期权。就如面临选择,需要权衡一样;各种期权也需要衡量(定价)。1 Black-Scholes期权定价公式 1973年,芝加哥大学教授Black和MIT 教授Scholes在美国“政治经济学报”(
2、Journal of Political Economy)上发表了一篇题为“期权定价和公司负债”(The pricing of Options and Corporate Liabilities)的论文;同年,哈佛大学教授Merton在“贝尔经济管理科学学报”上发表了另一篇论文“期权的理性定价理论”(Theory of rational option pricing),奠定了期权定价的理论性基础,B-S期权定价公式诞生了。1.1布朗运动 从概率论的角度讲,标的资产价格的变化是一个随机过程。因此,了解和掌握这个随机过程的基本特征,是期权定价理论首先要回答的基本问题。例如,股票价格变动服从几何布朗
3、运动或对数正态分布,是Black和Scholes在推导B-S期权定价模型时用到的最基本的假设。一般维纳过程:设为布朗运动,则称 为一般化的维纳过程(布朗运动)。称为瞬时期望漂移率,为瞬时标准差,它们都是给定的参数,是连续的维纳过程。生成布朗运动的随机序列,作者编写了函数BrownM可以生成一维或者二维的随机序列,具体使用方法为:function data=BrownM(Npoints,Mean,Std,Opt)输入参数:Npoints:生成序列的节点数Mean:正态分布均值Std: 正态分布标准差Opt: 选择项Opt=1生成一维随机数,Opt=2生成二维随机数输出参数:Data:服从布朗运动
4、一维或者二维的随机序列BrownM源码:function data=BrownM(Npoints,Mean,Std,Opt)%code by ariszheng%2009-6-13dt=1;%dt时间变化%选择项Opt=1生成一维随机数,Opt=2生成二维随机数if Opt=1% standard Brownian motion data=0 cumsum(dt0.5.*random(Normal,Mean,Std,1,Npoints); %random(Normal,Mean,Std,1,Npoints) %生成服从正态分布的随机数,Mean均值,Std方差,1,Npoints 一行Npoi
5、nts个 %cumsum为累加函数 %画图 figure plot(0:Npoints,data);elseif Opt=2 data=cumsum(zeros(1,3);dt0.5*random( Normal ,Mean , Std ,Npoints-1,3 ); %画图 figure plot3(data(:, 1), data(:, 2), data(:, 3), k); %根据数值设定画图点的颜色 pcol = (data-repmat(min(data), Npoints, 1)./ . repmat(max(data)-min(data), Npoints, 1); %叠加画图
6、hold on; scatter3(data(:, 1), data(:, 2),data(:, 3), . 10, pcol, filled); %显示网格 grid on; hold off;else error(Opt=1 or Opt=2)end注视:累加运算Cumsum 例如A=1,2,3,4 ;Cumsum(A)=1,3,6,10BrownM使用实例:M文件BrownMtest.M%test BrownM%生成1000个数据Npoints=1000;%均值为0Mean=0;%方差为1Std=1;%生成一维随机数Opt=1;dataA=BrownM(Npoints,Mean,Std,
7、Opt);% Opt=2;% dataB=BrownM(Npoints,Mean,Std,Opt);结果图:布朗运动一维随机序列与布朗运动二维随机序列图1布朗运动一维随机序列图图2布朗运动二维随机序列图1.2 B-S定价模型即著名的Black-Scholes期权定价公式,欧式买权或卖权解的表达式:其中,Black-Scholes期权定价模型将股票期权价格的主要因素分为五个:标的资产市场价格:执行价格:无风险利率:标的资产价格波动率:距离到期时间。Matlab提供了Black-Scholes期权定价模型函数函数名称函数功能blsdeltaBlack-Scholes sensitivity to
8、underlying price changeDelta计算blsgammaBlack-Scholes sensitivity to underlying delta changeGamma值计算blslambdaBlack-Scholes elasticityblspriceBlack-Scholes put and call option pricingBS公式期权价值计算blsrhoBlack-Scholes sensitivity to interest rate change利率变化 rho计算blsthetaBlack-Scholes sensitivity to time-unt
9、il-maturity change剩余期限theta值计算blsvegaBlack-Scholes sensitivity to underlying price volatility标的资产的波动率 Vage值计算blkimpvImplied volatility for futures options from Blacks model Black模型隐含波动率计算表1 Black-Scholes期权定价模型函数1期权价格函数blspriceCall, Put = blsprice(Price, Strike, Rate, Time, Volatility, Yield)输入参数:Pri
10、ce:标的资产市场价格Strike:执行价格Rate:无风险利率Time:距离到期时间Volatility:标的资产价格波动率Yield:(可选)资产连续贴现利率,默认为0输出参数:Call: Call option价格Put:Put option价格 假设欧式股票期权,三个月后到期,执行价格95元,现价为100元,无股利支付,股价年化波动率为50%,无风险利率为10%,则期权价格为:%标底资产价格Price=100;%执行价格Strike=95; %无风险收益率(年化)10%Rate=0.1 %剩余时间Time=3/12=0.25;%年化波动率Volatility=0.5Call, Put
11、= blsprice(100, 95, 0.1, 0.25, 0.5) Call=13.70 %买入期权 Put=6.35 %卖出期权若要分析期权价格与波动率关系,我们可以根据一系列波动率计算,一系列看涨期权与看跌期权的价格,可以编写blsprice_Vol.m程序%标底资产价格Price=100;%执行价格Strike=95; %无风险收益率(年化)Rate=0.1;%10%剩余时间Time=3/12;%=0.25;%年化波动率从0.1到0.5间隔0.01共41个数据点Volatility=0.1:0.01:0.5;% 数组Volatility的元素个数N=length(Volatility
12、)Call=zeros(1,N);Put=zeros(1,N);for i=1:N Call(i), Put(i) = blsprice(Price, Strike, Rate, Time, Volatility(i); End%看涨期权为虚线plot(Call,b-);hold on%看跌期权为实现,b表示蓝色plot(Put,b);%横坐标xlabel(Volatility)%纵坐标ylabel(price)%线标legend(Call,Put)结果如图图3 期权价格与波动率关系2Greeks计算 期权的Greeks为期权价格对市场变量的敏感程度即定价公式的导数(1)delta为期权价格对
13、标的物市场价格的敏感度(S的一阶导数),计算函数为blsdelta(2)gamma为期权Delta对标的物市场价格的敏感度(S的二阶导数),计算函数为 blsgamma(3) lambda为期权杠杆水平的一个比率,显示标的资产的价格每变动一个百分点,可导致期权价格变动的百分比.,计算公式为blslambda(3)rho为期权对市场利率的敏感度(r的一阶导数),计算函数为blsrho(4)theta为期权对剩余期限的敏感程度(T-t的一阶导数),计算函数为blstheta(5)vega为期权对标底物价格波动率的敏感度(的一阶导数),计算函数为blsvga以blsdelta函数语法为例,其他Gre
14、eks的语法与blsdelta基本相同CallDelta, PutDelta = blsdelta(Price, Strike, Rate, Time, Volatility, Yield)输入参数:Price:标的资产市场价格Strike:执行价格Rate:无风险利率Time:距离到期时间Volatility:标的资产价格波动率Yield:(可选)资产连续贴现利率,默认为0输出参数: CallDelta:看涨期权的Delta PutDelta:看跌期权的Delta 假设欧式股票期权,三个月后到期,执行价格95元,现价为100元,无股利支付,股价年化波动率为50%,无风险利率为10%,则期权Delta为:%标底资产价格Price=100;%执行价格Strike=95; %无风险收益率(年化)Rate=0.1;%10%剩余时间Time=3/12;%=0.25;%年化波动率Volatility=0.5;CallDelta, PutDelta = blsdelta(Price, Strike, Rate, Time, Volatility)计算结果:CallDelta = 0.6665PutDelta = -0.3335若要分析期权Detla与标的资产价格、剩余期限的关系,即不同的Price与Time 计
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1