Tuesday, June 11, 2013

Asian Option Geometric Closed Form


function CallAsianOptionGeometricClosedForm(S,K,r,sigma,q,T,t)
{
 sigmaA=sigma/Math.sqrt(3);
 b=0.5*(r-q-sigma*sigma/6);
 d1=(ln(S/K)+(b+0.5*sigmaA*sigmaA)*(T-t))/(sigmaA*Math.sqrt(T-t));
 d2=(ln(S/K)+(b-0.5*sigmaA*sigmaA)*(T-t))/(sigmaA*Math.sqrt(T-t));
 return S*Math.exp((b-r)*(T-t))*NCDF2(d1)-K*Math.exp(-r*(T-t))*NCDF2(d2);
}

function PutAsianOptionGeometricClosedForm(S,K,r,sigma,q,T,t)
{
 sigmaA=sigma/Math.sqrt(3);
 b=0.5*(r-q-sigma*sigma/6);
 d1=(ln(S/K)+(b+0.5*sigmaA*sigmaA)*(T-t))/(sigmaA*Math.sqrt(T-t));
 d2=(ln(S/K)+(b-0.5*sigmaA*sigmaA)*(T-t))/(sigmaA*Math.sqrt(T-t));
 return K*Math.exp(-r*(T-t))*NCDF2(-d2)-S*Math.exp((b-r)*(T-t))*NCDF2(-d1);
}

No comments: