毕业论文

打赏
当前位置: 毕业论文 > 数学论文 >

MATLAB期权数值解算法及股票预测模型(9)

时间:2017-01-16 19:43来源:毕业论文
matval=zeros(M+1,N+1); vets=Linspace(0,Smax,M+1); veti=0:N; vetj=0:M; matval(:,N+1)=max(X-vets,0); matval(1,:)=X*exp(-r*dt*(N-veti)); matval(M+1,:)=0; a=0.5*(r*vetj*dt-sigma^2*vetj.^2*dt); b=1+sigma^2


matval=zeros(M+1,N+1);
vets=Linspace(0,Smax,M+1);
veti=0:N;
vetj=0:M;
matval(:,N+1)=max(X-vets,0);
matval(1,:)=X*exp(-r*dt*(N-veti));
matval(M+1,:)=0;
a=0.5*(r*vetj*dt-sigma^2*vetj.^2*dt);
b=1+sigma^2*vetj.^2*dt+r*dt;
c=-0.5*(r*vetj*dt+sigma^2*vetj.^2*dt);
coeff=diag(a(3:M),-1)+diag(b(2:M))+diag(c(2:M-1),1);
[L,U]=lu(coeff);
aux=zeros(M-1,1);
for i=N:-1:1
    aux(1)=-a(2)*matval(1,i);
    matval(2:M,i)=U\(L\(matval(2:M,i+1)+aux));
end
jdown=floor(S0/ds);
jup=ceil(S0/ds);
if jdown==jup
    price=matval(jdown+i,1)
else
    price=matval(jdown+1,1)+(S0-jdown*ds)*(matval(jup+1,1)-matval(jup+1,1))/ds
end

price =

1.1555
2.4.     本节小结
    在本章, 分别介绍了三种基本的期权定价的数值方法:蒙特卡罗法、二叉树法和有限差分法.蒙特卡罗法的优点是能够处理报酬形态很复杂的衍生证券问题, 它的不足是无法兼顾美式期权的提前行权问题.为了克服这种不足, 介绍了二叉树法和有限差分法.这两种方法既可用于欧式期权定价, 也可用于美式期权定价, 它们的引入, 可以使原来感到棘手的美式看跌期权定价问题得到解决.
3.     期权定价的三种基本数值方法来求解宝钢期权并进行比较
3.1.    宝钢股票价格波动率 的估计
(1) 历史波动率
定义:n+1为观察次数; 为在第 个时间将恶魔的股票价格;令
因为 , 所以 就是第i个时间间隔后的连续福利收益率(时间间隔不以年为单位).  的标准差的估计值 通常为:利用股票波动的历史资料来计算出关于股票方差( )的统计量, 并以该统计量代替以后股票波动的真实方差, 现在不妨设变量 为 的标准差估计值:
通常使用最近90-180天的每日股票收盘价格来计算股票的波动率, 本文用宝钢最近90天(即2005年8月22日到11月25日)的市价计算宝钢股票的波动率.
通过(3.1.2)以及(3.1.3)分别计算出 ,  . 由于 , 得到日收益标准差的估计值为: .
假设以自然日为计算基础, 但是不是每天都是开市的, 因此每年有250天开市. 因此 . 以上数据给出的波动率的估计值就是 因此宝钢股票价格波动率的估计值为每年20.61%, 即其波动率 .
(2) 隐含波动率
隐含波动率是将市场上的期权交易价格带入权证理论价格的B-S公式, 反推出来的波动率数值. 而且它是一个重要的风险指标, 其数值越高, 所隐含的风险也越大.
欧式期权的理论价格表达式为:
 
现给出关于所选数据求波动率的MATLAB函数:
Step1:建立方程函数
看跌期权隐含波动率代码:
function f=ImpliedVolatitityPutObj(Volatility, Price, Strike, Rate, Time, Putprice)
[Call,Put] = blsprice(Price, Strike, Rate, Time, Volatility);
f=Put-Putprice;
Step2:求解方程函数
function [Vp,Cfval,Pfval]=ImpliedVolatility(Price,Strike,Rate,Time,PutPrice)
Volatility0=1.0;
[Vp,Pfval] =fsolve(@(Volatility) ImpliedVolatitityPutObj(Volatility, Price, Strike, Rate, Time, PutPrice),Volatility0);
Step3:函数求解
Price=4.63;
Strike=3.88;
Rate=0.0225;
Time=70/250;
PutPrice=1.77;
[Vp,Pfval]=ImpliedVolatility(Price,Strike,Rate,Time,PutPrice)
结果:
Vp =

    2.5766
Pfval =

 -1.2407e-010
结果说明:Pfval趋近于0, 说明计算出来的Vp为方程的解, 即隐含波动率为257.66%. 此期权风险非常大.
3.2.     宝钢权证JTB1的数值计算
在计算过程中, 考虑到实际数据中并没有给出所需要的无风险利率, 一般会直接地认为一年度存款利率为无风险利率, 2005年的一年度存款利率为2.25%. 因此, 无风险利率 , 然后将 带入到欧式期权公式中进行计算. 欧式期权分为欧式看跌和看涨期权, 选取看跌期权进行比较. MATLAB期权数值解算法及股票预测模型(9):http://www.751com.cn/shuxue/lunwen_2320.html
------分隔线----------------------------
推荐内容