一、实验概述
本试验介绍基于最小方差变化的套期保值优化模型以及如何运用锐思数据库和Matlab7.0 工具实现套期保值的过程。
二、实验目的 1.理解期货套期保值
2.掌握基于最小方差的期货套保值的模型与求解方法
3.掌握运用MATLAB7.0软件计算现货和期货收益率及方差的技巧; 4.培养读者利用数据库和相关软件进行金融计算的能力。
三、实验工具
天琪期货据库和锐思数据库,MATLAB7.0软件。
四、实验原理
4.1 最小方差对冲比率的计算 我们将采用以下符号
S表示在对冲期限内,即期价格S的变化; F表示在对冲期限内,期货价格F的变化;
S表示S的标准差;
F表示F的标准差;
表示S和F之间的相关系数;
h*表示使得对冲者头寸变化的方差达到极小的对冲比率,可以证明了以下关系式成立
h*S。 F该公式表明,最佳对冲比率等于S和F之间的相关系数乘以S的标准差与F的标准差之间的比率。
4.2最优合约数量
为了计算对冲所采用的合约数量,定义如下变量:
QA表示被对冲头寸的大小(单位数量); QF表示合约的规模(单位数量);
N*表示用于对冲的最优期货合约数量。
应采用的期货合约的面值在h*QA,因此所需的期货数量为
h*QA NQF*当采用期货来对冲时,对于每天的交割可以做出一个微小的调整,这一调整方式被称为尾随对冲(tailing the hedge)。在实际中,这意味着式变为
h*VA NVF*式中,VA为被对冲头寸的实际货币价值,VF为一个期货合约的货币价值 (期货价格乘以QF)。
五、实验内容
第一步、 实验样本选取
从天琪期货网站下载现货的价格,时间区间为2011/7/26—2011/10/10日,导出数据保存为spto.xls.,其中现货价格在进入锐思数据库,如下面的界面。
第二步、利用Matlab软件编程,计算现货和期货收益率的标准差和相关系数。
>> [data1,date]=xlsread('LME nie.xls'); %导入nie金属的现货结算价 >> data1=data1(1:100,:); %筛选前100个数据(2004.5.10到2004.9.28) >> P=diff(log(data1)); %现货的收益率向量
>> [data2,date]=xlsread('LME3 nie.xls'); %导入nie金属的期货收盘价 >> data2=data2(1:100,:); %筛选前100个数据,和data1的数据大小相同 >> F=diff(log(data2)); %期货的收益率 >> a=std(P); % 现货收益率的标准差 >> b=std(F); % 期货收益率的标准差 >> R=corrcoef(P,F); % 现货与期货的相关系数 R =
1.0000 0.5953 0.5953 1.0000
第三步、计算现货的风险暴露和期货的风险暴露,从而最优套期保值 Matlab程序为Function h=R*(a/b)
h*S F在命令窗口直接输入即可:
>> h=R.*(a./b); % 求对冲比率 h =
1.0317 0.6142 0.6142 1.0317
六、课堂实验任务
在天旗期货公司和大连期货交易所或者锐思数据库,下载大豆的现货价格和期货价格,
完成下面的试验任务:
第一、 计算现货的收益率及其标准差;
第二、 计算期货的标准差,并且根据试验原理计算期货的最优套期保值比率;
第三、 根据上述内容完成试验报告,其主要包括实验名称、实验原理、实验目的、实验内容、实验过程及实验结果分析等。
实验三Black-Scholes 期权定价方法
一、实验概述
本试验用Matlab7.0 工具绘制期权到期收益图,在此基础上进一步了解欧式期权的特征。进一步利用Black-Scholes 期权定价对看涨期权进行定价过程。
二、实验目的
1.理解欧式期权的形态特征 2.掌握欧式期权的参数估计方法
3.利用国泰安和锐思数据库对股票的收益率进行参数估计。 4.培养学生利用数据库和相关软件进行金融计算的能力。
三、实验工具
天琪期货据库和锐思数据库,MATLAB7.0软件。
四、实验原理
4.1 欧式看涨期权的到期收益计算
S(T)表示股票在交割日的价格,K表示交割价,看涨期权到期收益为
max{S(T)K,0}。
4.2欧式看跌期权的到期收益计算
S(T)表示股票在交割日的价格,K表示交割价,看涨期权到期收益为
max{KS(T),0}。
4.3 二元期权和备兑认购期权的到期收益计算
S(T)表示股票在交割日的价格,K表示交割价,二元期权到期收益为
1,ifS(T)K。 1,ifS(T)K备兑认购期权的到期收益
S(T)max{KS(T),0}
4.4 Black-Scholes 股票期权定价
股票价格服从对数正态分布;
在期权有效期内,无风险利率和股票资产期望收益变量和价格波动率是恒定的; 市场无摩擦,即不存在税收和交易成本; 股票资产在期权有效期内不支付红利及其它所得(该假设可以被放弃); 该期权是欧式期权,即在期权到期前不可实施; 金融市场不存在无风险套利机会; 金融资产的交易可以是连续进行的; 可以运用全部的金融资产所得进行卖空操作。 股票的价格为
2StS0expz/2tt
对上述方程两边取自然对数可得,
St2lnztt
2S0其中右边的表达式是一个均值为 (2/2)t,方差为2t的正态随机变量,波动率是,漂浮率是。
我们将用股票价格的几何布朗运动模型对欧式看涨期权进行定价。 F. Black和M. Scholes(1973年)假设股票价格是几何布朗运动,股票的现价是S0,执行价
ˆ引理,推导出欧式看涨期权的价是X,到期时间为,无风险利率是r,利用Ito格V的解析表达式是
VS0N(d1)XerN(d2)
其中,N(d1)和N(d2)是标准正态分布函数,
d1ln(S0/X)(r2/2) ,d2d1。
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轴作标签
21.51看涨期权的到期收益0.50-0.5-1-1.5-2010203040506070二元期权的到期收益8090100
table2 二元期权到期收益
第三步、利用Matlab软件编程,计算影响期权价格的参数估计。
% 对时间序列缺失的日数据进行线性插值
function sp=chazhi(SPrice) %建立chazhi函数 z=SPrice(size(SPrice,1),1)-SPrice(1,1)+1; %计算数据行数
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),:);
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 期权定价公式,计算在给定相关参数时的欧式
看涨期权价格;
第三、 根据上述内容完成试验报告,其主要包括实验名称、实验原理、实验目的、实验内
容、实验过程及实验结果分析等。
实验四 期权定价的二叉树方法
一、实验概述
本试验首先介绍了二叉树方法的来源和主要的理论,然后给出期权的二叉树定价的基本过程和Matlab7.0 工具的定价过程。
二、实验目的
1.理解欧式期权的二叉树机理
2.掌握用Matlab7.0生产股票价格的二叉树方法
3.培养学生利用数据库和相关软件进行金融计算的能力。
三、实验工具
天琪期货据库和锐思数据库,MATLAB7.0软件。
四、实验原理
4.1股票的两期二叉树模型
假设股票价格变化的时间区间
0,T分为0,t1和t1,T两段,0时刻股票的价格记为
S0,股票价格在以后的每个阶段的变化情况是:
在第一阶段末t1时刻,股票的价格有两种状态:上涨记为Su或下跌记为Sd,而且满足
SuuSo和SddS0,
其中,两个参数u1是增长因子,d1是下跌因子。
在第二阶段末T时刻,股票价格以在第一阶段末t1时刻的两个状态中的一个为开始状态,继续保持与第一阶段相同的变化规律,即股票可能以u为增长因子,或以d下跌因子。当股票在t1时刻的价格是Su时,那么在下一时刻T,股票的价格上涨为uSu或下跌为dSu;类似的,当股票在t1时刻的价格是Sd时,那么在下一时刻T,股票的价格上涨为uSd或下
跌为。
0时刻 t1时刻
T时刻
2 因为uddu,可知在时刻T股票有三种状态:u
S0、udS0以及d2S0。
4.2股票期权的无套利定价
现在假设股票期权对于股票二叉树中的每一个最终结果都有一个特定的价格。三种可能的价格将是U、M和D,分别对应股票价值u出。
2S0、udS0或d2S0,这些结果由图7-4给
时间 0 1 2
我们如何得到衍生品的价格V0,关键是要找到衍生品在时间t1的可能价格。假设我们有这些价格,X和Y,那么,我们就可以转化二叉树问题。
而该问题我们可以运用第一章第四节的任何方法解决。 由公式可知: V0aS0(XauS0)er 其中
aV(XY)
S(uS0dS0)很显然,只要知道X和Y,包括V0的每个量都可以确定。
下面是求解X的方法。考虑图所示的股价上升为uS0和衍生品价格
股价树 衍生产品值
为X所对应的状态。在该状态下,股票再次从期初始值uS0上升或下降,与每一股票价格对应的两种可能的衍生产品的价格已知。计算在这种情形下衍生产品的公平价格X的值。
Xa1uS0(Ua1u2S0)e
其中
a1V1S1(UM)。 (u2S0duS0)r当初始股价为dS0时,衍生产品的两种可能价格为M和D,Y的计算可以通过与上面相似的二叉树进行。
Ya2dS0(Ma2udS0)e
其中
a2V2S2(MU)
(udS0d2S0)r总结一下,我们计算了中间价格并且用这些值得到了V0。
五、实验内容
第一步、欧式看涨期权的二叉树定价
function [price, lattice]=latticeEurcall(S0,E,r,T,sigma,N) % price: 欧式看涨期权价格 % lattice: 二叉树格子 % S0:股票现价 % E:期权执行价格 % r:无风险利率
% T: 期权的有效期限 % sigma:波动率 % N: 结点数
deltaT=T/N; %日期步长
U=exp(sigma*sqrt(deltaT)); % 计算u=𝑒𝜎√∆𝑡
D=1/U;
p=(exp(r*deltaT)-D)/(U-D); %风险中性概率
lattice=zeros(N+1,N+1); %初始化lattice矩阵(美式看跌期权的格子),为N+1行N+1
列的全为0
for j=0:N % 循环语句,执行N+1次
lattice(N+1,j+1)=max(0,S0*(U^j)*(D^(N-j))-E); % 因美式看涨期权的到期收益与欧式
看涨期权是一致的,所以美式看涨期权的格子(Lattice)的计算公式也为 𝑓𝑁,𝑗=max[0,𝑠0𝑈𝑗𝐷𝑁−𝑗−𝐸] end % 循环语句结束
for i=N-1:-1:0 % 外循环语句,i从N-1以公差-1减到0,即循环N次 for j=0:i % 内循环语句开始 lattice(i+1,j+1)=exp(-r*deltaT)*...
(p*lattice(i+2,j+2)+(1-p)*lattice(i+2,j+1));
% 用向后递归公式,计算𝑙𝑎𝑡𝑡𝑖𝑐𝑒𝑖+1,𝑗+1=𝑒−𝑟∗∆𝑡*(p*𝑙𝑎𝑡𝑡𝑖𝑐𝑒𝑖+2,j+2+(1−𝑝)∗𝑙𝑎𝑡𝑡𝑖𝑐𝑒𝑖+2,𝑗+1) end %内循环结束 end %外循环结束
price=lattice(1,1); % 将二叉树的格子的第1行第1列的数赋值给price(欧式看涨期
权价格)
第二步、在matlab窗口中输入
[price, lattice]=latticeEurcall(50,40,0.03,1,0.2,10)
就可以得到一个以下三角矩阵表示二叉树的格子以及欧式看涨期权的价格11.6247, 获得结果如下:
price =
11.6247
lattice =
11.6247 0 0 0 0 0 0 0 0 0 0 8.7184 14.5090 0 0 0 0 0 0 0 0 0 6.1484 11.2598 17.7426 0 0 0 0 0 0 0 0 3.9646 8.3004 14.1934 21.2858 0 0 0 0 0 0 0 2.2265 5.6720 10.8958 17.4719 25.1066 0 0 0 0 0 0 0.9879 3.4396 7.8682 13.8934 21.0421 29.1927 0 0 0 0 0
0.2670 1.6921 5.1528 10.5453 17.2191 24.8701 33.5529 0 0 0 0 0 0.5272 2.8308 7.4329 13.6228 20.8049 28.9555 38.2051 0 0 0 0 0 1.0410 4.5814 10.2393 16.9812 24.6323 33.3150 43.1685 0 0 0 0 0 2.0556 7.0555 13.3842 20.5664 28.7170 37.9665 48.4634 0 0 0 0 0 4.0591 10.0000 16.7420 24.3930 33.0757 42.9292 54.1113
六、课堂实验任务
第一、用Matlab编程,绘制欧式看跌期权和看涨期权的二叉树图;
第二、利用试验原理中的欧式看涨期权的期权定价公式,计算在给定相关参数时的欧式看
涨期权离散价格;
第三、 根据上述内容完成试验报告,其主要包括实验名称、实验原理、实验目的、实验内
容、实验过程及实验结果分析等。
因篇幅问题不能全部显示,请点此查看更多更全内容