MATLAB程序设计 BS公式与二叉树模型期权定价与分析.docx
- 文档编号:2812456
- 上传时间:2022-11-15
- 格式:DOCX
- 页数:24
- 大小:278.64KB
MATLAB程序设计 BS公式与二叉树模型期权定价与分析.docx
《MATLAB程序设计 BS公式与二叉树模型期权定价与分析.docx》由会员分享,可在线阅读,更多相关《MATLAB程序设计 BS公式与二叉树模型期权定价与分析.docx(24页珍藏版)》请在冰豆网上搜索。
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计
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- MATLAB程序设计 BS公式与二叉树模型期权定价与分析 MATLAB 程序设计 BS 公式 二叉 模型 期权 定价 分析