Tuesday, June 11, 2013

Caplet/Floorlet option


function CapletOption(F,X,Notional,d,basis,r,sigma,T1,T2)
{


 sigma2=sigma*sigma;
 d1=(ln(F/X)+(sigma2/2/(T2-T1)))/Math.sqrt(T2-T1)/sigma;
 d2=d1-Math.sqrt(T2-T1)*sigma;
 
 return (Notional*d/basis)/(1+F*d/basis)*Math.exp(-r*(T2-T1))*(F*NCDF2(d1)-X*NCDF2(d2));
}


function FloorletOption(F,X,Notional,d,basis,r,sigma,T1,T2)
{


 sigma2=sigma*sigma;
 d1=(ln(F/X)+(sigma2/2/(T2-T1)))/Math.sqrt(T2-T1)/sigma;
 d2=d1-Math.sqrt(T2-T1)*sigma;
 
 return (Notional*d/basis)/(1+F*d/basis)*Math.exp(-r*(T2-T1))*(X*NCDF2(-d2)-F*NCDF2(-d1));
}

No comments: