function CallAsianOptionArithmeticTurbunnWakemanForm(S,K,r,sigma,q,T,t) { sigmaC=sigma*sigma; M1=(Math.exp((r-q)*T)-Math.exp((r-q)*t))/((r-q)*(T-t)); M2p1=2*Math.exp((2*(r-q)+sigmaC)*T)/((r-q+sigmaC)*(2*r-2*q+sigmaC)*(T-t)*(T-t)); M2p2=2*Math.exp((2*(r-q)+sigmaC)*t)/((r-q)*(T-t)*(T-t))*((1/(2*(r-q)+sigmaC))-(Math.exp(((r-q))*T)/(r-q+sigmaC))); M2=M2p1+M2p2; b=ln(M1)/T; sigmaA=Math.sqrt((ln(M2)/T)-2*b); d1=(ln(S/K)+(b+0.5*sigmaC)*(T-t))/(sigmaA*Math.sqrt(T-t)); d2=d1-(sigmaA*Math.sqrt(T-t)); return S*Math.exp((b-r)*(T-t))*NCDF2(d1)-K*Math.exp(-r*(T-t))*NCDF2(d2); } function PutAsianOptionArithmeticTurbunnWakemanForm(S,K,r,sigma,q,T,t) { sigmaC=sigma*sigma; M1=(Math.exp((r-q)*T)-Math.exp((r-q)*t))/((r-q)*(T-t)); M2p1=2*Math.exp((2*(r-q)+sigmaC)*T)/((r-q+sigmaC)*(2*r-2*q+sigmaC)*(T-t)*(T-t)); M2p2=(2*Math.exp((2*(r-q)+sigmaC)*t)/((r-q)*(T-t)*(T-t)))*((1/(2*(r-q)+sigmaC))-(Math.exp(((r-q))*T)/(r-q+sigmaC))); M2=M2p1+M2p2; b=ln(M1)/T; sigmaA=Math.sqrt((ln(M2)/T)-2*b); d1=(ln(S/K)+(b+0.5*sigmaC)*(T-t))/(sigmaA*Math.sqrt(T-t)); d2=d1-(sigmaA*Math.sqrt(T-t)); return K*Math.exp(-r*(T-t))*NCDF2(-d2)-S*Math.exp((b-r)*(T-t))*NCDF2(-d1); }
Tuesday, June 11, 2013
Asian Option Arithmetic Turbunn Wakwman Form
Subscribe to:
Post Comments (Atom)
No comments:
Post a Comment