⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 complete.m

📁 有限差法计算期权价格
💻 M
字号:
function value=complete(S0,K,T,r,delta,v)q=2*r/(v^2); q2=2*(r-delta)/(v^2);xmin=-5; xmax=5;m=100;vmax=m;dx=(xmax-xmin)/m; dtau=(0.5*v^2*T)/vmax;lambda=dtau/(dx^2); alpha=0.5*lambda;for i=1:m    w(i)=W((xmin+i*dx),q2);    V(i)=w(i);endfor j=1:m    tau=dtau*j;        b(1)=w(1)+0.5*lambda*(w(2)-2*w(1)+g((xmin+dx),(tau-dtau),q,q2))+0.5*lambda*g((xmin+dx),tau,q,q2);       for i=2:m-2                b(i)=w(i)+0.5*lambda*(w(1+i)-2*w(i)+w(i-1));    end    b(m-1)=w(m-1)+0.5*lambda*(g(xmax,(tau-dtau),q,q2)-2*w(m-1)+w(m-2))+0.5*lambda*g((xmin+dx*m),tau,q,q2);                     Error=-10^(-5);    sum=1;    while sqrt(sum)>Error       sum=0;        Error=10^(-5);       Vnew(1)=0;        for i=1:m-1                       rho=(b(i)+alpha*(Vnew(i)+V(i+1)))/(1+2*alpha);            Vnew(i+1)=max((V(i)+(rho-V(i))),g((xmin+dx*i),tau,q,q2));            sum=sum+(Vnew(i+1)-V(i))^2;        end        for i=1:m-1        V(i)=Vnew(i+1);        end    end    for i=1:m-1                w(i)=V(i);    endend        x0=log(S0/K);j=fix((x0-xmin)/dx);value = K*exp(-0.5*(q2-1)*x0)*exp(-(0.25*(q2-1)^2+q)*0.5*v^2*T)*w(j);function [w2]=W(x,q2)    w2=max((exp(0.5*x*(q2+1))-exp(0.5*x*(q2-1))),0);function [g2]=g(x,tau,q,q2)    g2=exp(0.25*tau*((q2-1)^2+4*q))*max((exp(0.5*x*(q2+1))-exp(0.5*x*(q2-1))),0);    

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -