function CallSpreadOption(S1,S2,X,r,sigma1,sigma2,rho,T) { sigmaC1=sigma1*sigma1; sigmaC2=sigma2*sigma2; Sa=S1/(S2+X); nSig=Math.sqrt(sigmaC1+Math.pow(sigma2*S2/(S2+X),2)-2*rho*sigma1*sigma2*S2/(S2+X)); d1=(ln(Sa)+0.5*nSig*nSig*T)/Math.sqrt(T)/nSig; d2=d1-Math.sqrt(T)*nSig; return (S2+X)*Math.exp(-r*T)*((Sa*NCDF2(d1))-NCDF2(d2)); } function PutSpreadOption(S1,S2,X,r,sigma1,sigma2,rho,T) { sigmaC1=sigma1*sigma1; sigmaC2=sigma2*sigma2; Sa=S1/(S2+X); nSig=Math.sqrt(sigmaC1+Math.pow(sigma2*S2/(S2+X),2)-2*rho*sigma1*sigma2*S2/(S2+X)); d1=(ln(Sa)+0.5*nSig*nSig*T)/Math.sqrt(T)/nSig; d2=d1-Math.sqrt(T)*nSig; return (S2+X)*Math.exp(-r*T)*((NCDF2(-d2)-Sa*NCDF2(-d1))); }
Tuesday, June 11, 2013
Spread Option
Subscribe to:
Post Comments (Atom)
No comments:
Post a Comment