资源描述:
《美式期权定价MATLAB代码.docx》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、调用函数代码functionPrice=AmOption(S0,K,T,r,M,type,sigma)dt=T/M;u=exp(sqrt(dt)*sigma);d=1/u;%·çÏÕÖÐÐÔ¸ÅÂÊp=(exp(r*dt)-d)/(u-d);S=zeros(M+1,M+1);S(1,1)=S0;forj=1:Mfori=0:jS(i+1,j+1)=S0*u^(j-i)*d^i;endendV=zeros(M+1,M+1);fori=0:Mswitchtypecase'call'V(i+1,M+1)=max(S(i+1,M+1)-K,0);case'put'V(i+
2、1,M+1)=max(K-S(i+1,M+1),0);endendforj=M-1:-1:0fori=0:jtemp=exp(-r*dt)*(p*V(i+1,j+2)+(1-p)*V(i+2,j+2));%ÂíÉÏÐÐȨµÄ¼ÛÖµ=(K-S(i+1,j+1))switchtypecase'call'V(i+1,j+1)=max(temp,K-S(i+1,j+1));case'put'V(i+1,j+1)=max(temp,S(i+1,j+1)-K);case'stra'V(i+1,j+1)=max(temp,max(S(i+1,j+1)-K,0)+max(K-
3、S(i+1,j+1),0));case'bino'V(i+1,j+1)=max(temp,S(i+1,j+1)>K);endendendPrice=V(1,1);数据画图代码S0=6;K=5;T=1;r=0.05;sigma=0.20;forM=1:100type='call';Price=AmOption(S0,K,T,r,M,type,sigma);Vc(M)=Price;endsubplot(221);plot(Vc,'b');title('AmcallOption');forM=1:100type='put';Price=AmOption(S0,K,T,r
4、,M,type,sigma);Vp(M)=Price;endsubplot(222);plot(Vp,'r');title('AmputOption');forM=1:100type='stra';Price=AmOption(S0,K,T,r,M,type,sigma);Vs(M)=Price;endsubplot(223);plot(Vs,'y');title('AmstraddleOption');forM=1:100type='bino';Price=AmOption(S0,K,T,r,M,type,sigma);Vb(M)=Price;endsubplo
5、t(224);plot(Vb,'g');title('AmsbinomialOption');