MATLAB程序设计 BS公式与二叉树模型期权定价与分析.docx

上传人:b****3 文档编号:2812456 上传时间:2022-11-15 格式:DOCX 页数:24 大小:278.64KB
下载 相关 举报
MATLAB程序设计 BS公式与二叉树模型期权定价与分析.docx_第1页
第1页 / 共24页
MATLAB程序设计 BS公式与二叉树模型期权定价与分析.docx_第2页
第2页 / 共24页
MATLAB程序设计 BS公式与二叉树模型期权定价与分析.docx_第3页
第3页 / 共24页
MATLAB程序设计 BS公式与二叉树模型期权定价与分析.docx_第4页
第4页 / 共24页
MATLAB程序设计 BS公式与二叉树模型期权定价与分析.docx_第5页
第5页 / 共24页
点击查看更多>>
下载资源
资源描述

MATLAB程序设计 BS公式与二叉树模型期权定价与分析.docx

《MATLAB程序设计 BS公式与二叉树模型期权定价与分析.docx》由会员分享,可在线阅读,更多相关《MATLAB程序设计 BS公式与二叉树模型期权定价与分析.docx(24页珍藏版)》请在冰豆网上搜索。

MATLAB程序设计 BS公式与二叉树模型期权定价与分析.docx

MATLAB程序设计BS公式与二叉树模型期权定价与分析

BS公式与二叉树模型—期权定价与分析

什么是期权?

期权就是当什么时候或条件下,你有什么权力。

教课书上的期权似乎离我们比较遥远,或仅限于金融市场。

但如果仔细想想,车险或疾病保险似乎也是一种期权,期权本质是一种选择权。

例如,商业医疗保险,客户每年缴纳一定的保费,获得在生病时获取一定补偿的权利。

公司期权,若工作业绩达到某个标准(付出),得到公司多少多上的期权。

就如面临选择,需要权衡一样;各种期权也需要衡量(定价)。

1Black-Scholes期权定价公式

1973年,芝加哥大学教授Black和MIT教授Scholes在美国“政治经济学报”(JournalofPoliticalEconomy)上发表了一篇题为“期权定价和公司负债”(ThepricingofOptionsandCorporateLiabilities)的论文;同年,哈佛大学教授Merton在“贝尔经济管理科学学报”上发表了另一篇论文“期权的理性定价理论”(Theoryofrationaloptionpricing),奠定了期权定价的理论性基础,B-S期权定价公式诞生了。

1.1布朗运动

从概率论的角度讲,标的资产价格的变化是一个随机过程。

因此,了解和掌握这个随机过程的基本特征,是期权定价理论首先要回答的基本问题。

例如,股票价格变动服从几何布朗运动或对数正态分布,是Black和Scholes在推导B-S期权定价模型时用到的最基本的假设。

一般维纳过程:

为布朗运动,则称

为一般化的维纳过程(布朗运动)。

为瞬时期望漂移率,

为瞬时标准差,它们都是给定的参数,

是连续的维纳过程。

生成布朗运动的随机序列,作者编写了函数BrownM可以生成一维或者二维的随机序列,具体使用方法为:

functiondata=BrownM(Npoints,Mean,Std,Opt)

输入参数:

Npoints:

生成序列的节点数

Mean:

正态分布均值

Std:

正态分布标准差

Opt:

选择项Opt=1生成一维随机数,Opt=2生成二维随机数

输出参数:

Data:

服从布朗运动一维或者二维的随机序列

BrownM源码:

functiondata=BrownM(Npoints,Mean,Std,Opt)

%codebyariszheng@

%2009-6-13

dt=1;

%dt时间变化

%选择项Opt=1生成一维随机数,Opt=2生成二维随机数

ifOpt==1

%%

%standardBrownianmotion

data=[0cumsum(dt^0.5.*random('Normal',Mean,Std,1,Npoints))];

%random('Normal',Mean,Std,1,Npoints)

%生成服从正态分布的随机数,Mean均值,Std方差,1,Npoints一行Npoints个

%cumsum为累加函数

%画图

figure

plot(0:

Npoints,data);

elseifOpt==2

data=cumsum([zeros(1,3);dt^0.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);

%叠加画图

holdon;

scatter3(data(:

1),data(:

2),data(:

3),...

10,pcol,'filled');

%显示网格

gridon;

holdoff;

else

error('Opt=1orOpt=2')

end

注视:

累加运算Cumsum例如A=[1,2,3,4];Cumsum(A)=[1,3,6,10]

BrownM使用实例:

M文件BrownMtest.M

%testBrownM

%生成1000个数据

Npoints=1000;

%均值为0

Mean=0;

%方差为1

Std=1;

%生成一维随机数

Opt=1;

dataA=BrownM(Npoints,Mean,Std,Opt);

%Opt=2;

%dataB=BrownM(Npoints,Mean,Std,Opt);

结果图:

布朗运动一维随机序列与布朗运动二维随机序列

图1布朗运动一维随机序列图

图2布朗运动二维随机序列图

1.2B-S定价模型

即著名的Black-Scholes期权定价公式,欧式买权或卖权解的表达式:

其中,

Black-Scholes期权定价模型将股票期权价格的主要因素分为五个:

标的资产市场价格

执行价格

无风险利率

标的资产价格波动率

距离到期时间。

Matlab提供了Black-Scholes期权定价模型函数

函数名称

函数功能

blsdelta

Black-Scholessensitivitytounderlyingpricechange

Delta计算

blsgamma

Black-Scholessensitivitytounderlyingdeltachange

Gamma值计算

blslambda

Black-Scholeselasticity

blsprice

Black-Scholesputandcalloptionpricing

BS公式期权价值计算

blsrho

Black-Scholessensitivitytointerestratechange

利率变化rho计算

blstheta

Black-Scholessensitivitytotime-until-maturitychange

剩余期限theta值计算

blsvega

Black-Scholessensitivitytounderlyingpricevolatility

标的资产的波动率Vage值计算

blkimpv

ImpliedvolatilityforfuturesoptionsfromBlack'smodel

Black模型隐含波动率计算

表1Black-Scholes期权定价模型函数

1.期权价格函数blsprice

[Call,Put]=blsprice(Price,Strike,Rate,Time,Volatility,Yield)

输入参数:

Price:

标的资产市场价格

Strike:

执行价格

Rate:

无风险利率

Time:

距离到期时间

Volatility:

标的资产价格波动率

Yield:

(可选)资产连续贴现利率,默认为0

输出参数:

Call:

Calloption价格

Put:

Putoption价格

假设欧式股票期权,三个月后到期,执行价格95元,现价为100元,无股利支付,股价年化波动率为50%,无风险利率为10%,则期权价格为:

%标底资产价格

Price=100;

%执行价格

Strike=95;

%无风险收益率(年化)10%

Rate=0.1

%剩余时间

Time=3/12=0.25;

%年化波动率

Volatility=0.5

[Call,Put]=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)

Call=zeros(1,N);

Put=zeros(1,N);

fori=1:

N

[Call(i),Put(i)]=blsprice(Price,Strike,Rate,Time,Volatility(i));

End

%看涨期权为虚线

plot(Call,'b--');

holdon

%看跌期权为实现,‘b’表示蓝色

plot(Put,'b');

%横坐标

xlabel('Volatility')

%纵坐标

ylabel('price')

%线标

legend('Call','Put')

结果如图

图3期权价格与波动率关系

2.Greeks计算

期权的Greeks为期权价格对市场变量的敏感程度即定价公式的导数

(1)delta为期权价格对标的物市场价格的敏感度(S的一阶导数),计算函数为blsdelta

(2)gamma为期权Delta对标的物市场价格的敏感度(S的二阶导数),计算函数为blsgamma

(3)lambda为期权杠杆水平的一个比率,显示标的资产的价格每变动一个百分点,可导致期权价格变动的百分比.,计算公式为blslambda

(3)rho为期权对市场利率的敏感度(r的一阶导数),计算函数为blsrho

(4)theta为期权对剩余期限的敏感程度(T-t的一阶导数),计算函数为blstheta

(5)vega为期权对标底物价格波动率的敏感度(σ的一阶导数),计算函数为blsvga

以blsdelta函数语法为例,其他Greeks的语法与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.6665

PutDelta=

-0.3335

若要分析期权Detla与标的资产价格、剩余期限的关系,即不同的Price与Time计

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 经管营销 > 经济市场

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1