实验三Black-Scholes 期权定价方法

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

实验三Black-Scholes 期权定价方法
一、实验概述
本试验用Matlab7.0 工具绘制期权到期收益图,在此基础上进一步了解欧式期权的特征。

进一步利用Black-Scholes 期权定价对看涨期权进行定价过程。

二、实验目的
1.理解欧式期权的形态特征
2.掌握欧式期权的参数估计方法
3.利用国泰安和锐思数据库对股票的收益率进行参数估计。

4.培养学生利用数据库和相关软件进行金融计算的能力。

三、实验工具
天琪期货据库和锐思数据库,MATLAB7.0软件。

四、实验原理
4.1 欧式看涨期权的到期收益计算
()S T 表示股票在交割日的价格,K 表示交割价,看涨期权到期收益为
max{(),0}S T K -。

4.2欧式看跌期权的到期收益计算
()S T 表示股票在交割日的价格,K 表示交割价,看涨期权到期收益为
max{(),0}K S T -。

4.3 二元期权和备兑认购期权的到期收益计算
()S T 表示股票在交割日的价格,K 表示交割价,二元期权到期收益为
1,()1,()if S T K if S T K
>⎧⎨-≤⎩。

备兑认购期权的到期收益
()max{(),0}S T K S T +-
4.4 Black-Scholes 股票期权定价
股票价格服从对数正态分布;

在期权有效期内,无风险利率和股票资产期望收益变量和价格波动率是
恒定的;
● 市场无摩擦,即不存在税收和交易成本;
● 股票资产在期权有效期内不支付红利及其它所得(该假设可以被放弃);
● 该期权是欧式期权,即在期权到期前不可实施;
● 金融市场不存在无风险套利机会;
● 金融资产的交易可以是连续进行的;
● 可以运用全部的金融资产所得进行卖空操作。

股票的价格为 ()20exp /2t t S S z t σμσ⎡⎤=+-⎣⎦
对上述方程两边取自然对数可得,
20ln 2t t S z t S σσμ⎛⎫⎛⎫=+- ⎪ ⎪⎝⎭⎝⎭
其中右边的表达式是一个均值为 2(/2)t μσ-,方差为t 2σ的正态随机变量,波动率是σ,漂浮率是μ。

我们将用股票价格的几何布朗运动模型对欧式看涨期权进行定价。

F. Black
和M. Scholes(1973年)假设股票价格是几何布朗运动,股票的现价是0S ,执行价
是X ,到期时间为τ,无风险利率是r ,利用ˆIto
引理,推导出欧式看涨期权的价格V 的解析表达式是
012()()r V S N d Xe N d τ-=-
其中,1()N d 和2()N d 是标准正态分布函数,
2
1d =() ,21d d =-。

V 被称为Black-Schole 公式
五、实验内容
第一步、利用Matlab 绘制欧式期权的收益图
subplot(1,2,1) % 生成1行2列子图;数字(1,2,1)分别表示为在同一幅图有
1行2列子图,最后一个1表示第1列将会显示后面生成的“看涨期权
的到期收益”子图
s=[0:1:99]; %生成股票的向量:从0到99共100个样本点,0到99之间的间隔距离为1
E=50; %执行价格
call=zeros(size(s)); % 生成和向量s一样长度的向量call(看涨期权),并全部初始赋值为
0;size()为返回指定数组的行数或列数的函数
for i=1:100 % 循环语句,执行100次
call(i)=max(s(i)-E,0); %将看涨期权到期收益赋值给call数组(赋值了100次)
end %赋值结束
plot(s,call) % 画看涨期权到期收益图,x轴为股票向量,y轴为看涨期权到期收益ylim([-10 50]); %设置y的上下界
xlim([0 90]); %设置x轴的上下界
xlabel('股票到期价格S(T)'); % 给x轴作标签
ylabel('看涨期权的到期收益'); % 给y轴作标签
supplot(1,2,2) %在上述同一幅图中第2列将会显示后面生成的“看跌期权的到期
收益”子图
S=[0:1:99]; %生成股票的向量:从0到99共100个样本点,0到99之间的间隔距离为1
put=zeros(size(S)); %生成和向量s一样长度的向量put(看跌期权),并全部初始赋值为0;
size()为返回指定数组的行数或列数的函数
for i=1:100 % 循环语句,执行100次
put(i)=max(E-S(i),0); %将看涨期权到期收益赋值给call数组(赋值了100次)
end % 循环语句结束
plot(S,put); % 画看跌期权到期收益图,x轴为股票向量,y轴为看跌期权到期收益ylim([-10 50]); %设置y的上下界
xlim([0 90]); %设置x轴的上下界
xlabel('股票到期价格S(T)'); % 给x轴作标签
ylabel('看跌期权的到期收益'); % 给y轴作标签
程序运行如下:
table1 看涨期权到期收益和看跌期权到期收益
第二步、二元期权的到期收益图
%binaryplot.m %建立一个m文件
S=[0:1:99]; %生成股票的向量:从0到99共100个样本点,间隔距离为1 E=45; %执行价格
payoff=zeros(size(S,2),1);%生成一个size(S,2)行1列全为0的数组payoff
size(S,2)表示数组S的列数
for i=1:size(S,2) % 循环语句,执行100次
if S(i)>E % 选择语句,若S(i)>E,则将1复制给payoff(i),否则,执行
-1赋值给payoff(i)
payoff(i)=1;
else
payoff(i)=-1;
end % 选择语句结束
end % 循环语句结束
plot(S,payoff); %绘二元期权到期收益图
ylim([-2 2]); %设置y的上下界
xlabel('二元期权的到期收益') % 给x轴作标签
ylabel('看涨期权的到期收益') % 给y轴作标签
table2 二元期权到期收益
第三步、利用Matlab 软件编程,计算影响期权价格的参数估计。

% 对时间序列缺失的日数据进行线性插值
function sp=chazhi(SPrice) %建立chazhi 函数
z=SPrice(size(SPrice,1),1)-SPrice(1,1)+1; %计算数据行数,SPrice 函数的第一
个列的最后一个数减去第一个数
p=zeros(z,2); %初始化P 矩阵,生成z 行2列全为0矩阵的p 矩阵
p(1,:)=SPrice(1,:); % 将SPrice 矩阵第一行的数全部赋值给p 矩阵的第一行
k=1;
for i=1:(size(SPrice,1)-1) % 外循环语句
m=SPrice(i+1,1)-SPrice(i,1); %将SPrice 数组的前一个数减去后一个数
for j=1:m % 内循环语句
p(k+j-1,:)=[SPrice(i,1)+j-1,…
SPrice(i,2)+(j-1)*(SPrice(i+1,2)- SPrice(i,2))/m];
% 对原数据SPrice 进行线性插值,并重新赋值给p 矩阵
end %内循环语句结束
k=k+m;
end %外循环语句结束
% p(z,:)=SPrice(size(SPrice,1),:);
010203040506070
8090100
-2-1.5
-1
-0.5
00.51
1.5
2
二元期权的到期收益看涨期权的到期收益
sp=p; % p矩阵全部赋值给sp矩阵
在命令窗口输入以下程序,计算收益率
SPrice=[1500,1600;1700,1800]; %数据输入
chazhi(SPrice) % 调用上述chazhi插值函数
SP=ans; %将计算结果赋值给SP矩阵
pp=zeros(size(SP)); %初始化PP数组(全为0),生成和矩阵SP一样大小
pp(:,1)=SP(:,2); %将矩阵SP的第2列元素全部赋值到矩阵PP的第一列
for i=1:size(SP,1)-1 %循环语句,执行次数为(矩阵SP行数-1)次
pp(i+1,2)=SP(i,2); % 矩阵SP的第二列元素全部赋值给PP矩阵的第2列
rr(i,1)=log(pp(i+1,1)/pp(i+1,2)); %计算收益率
end % 循环语句结束
rr % 显示出收益率的数据
h=jbtest(rr) % jb检验(默认显著性水平)
h =
1
>> hs=adftest(rr) %ADF检验
hs =
1
第四步、计算Black-Scholes 期权价格
function [Call Put]=bsprice(S0,K,r,T,sigma)
% call:看涨期权
% put:看跌期权
% S0:股票的现价
% K:期权执行价格
% r:无风险利率
% T:期权存续期
% sigma:波动率
d1=(log(S0/K)+(r+0.5*sigma^2)*T)/(sigma*sqrt(T)); % d1的计算
d2=d1-(sigma*sqrt(T)); % d2的计算
Call=S0*normcdf(d1)-K*exp(-r*T)*normcdf(d2); % 利用Black-Schole公式
计算看涨期权价格Put=K*exp(-r*T)*normcdf(-d2)-S0*normcdf(-d1); % 计算看跌期权价格、
将以上代码,保存为m文件
% 在命令窗口,输入相关参数的值
[Call,Put]=bsprice(7.5,7,0.022,1,0.45)
运行计算得出的结果如下:
Call = 1.6288
Put = 0.9765
六、课堂实验任务
在锐思数据库,下载我国某个期权(权证)的相关信息,完成下面的试验任务:
第一、用Matlab编程,绘制欧式看跌期权和二元期权的收益和盈亏图;
第二、利用试验原理中的Black-Scholes 期权定价公式,计算在给定相关参数时的欧式看涨期权价格;
第三、根据上述内容完成试验报告,其主要包括实验名称、实验原理、实验目的、实验内容、实验过程及实验结果分析等。

相关文档
最新文档