image thumbnail
from PlotMeTheGreeks by Yazann Romahi
VisualizationTool for Option Greeks in 3 and 4 dimensions.

GKprice(CallPutFlag, S, X, T, r, r_f, sigma)
function c = GKprice(CallPutFlag, S, X, T, r, r_f, sigma)
    sigma=sigma+0.0000001; % To avoid 0 sigma divide by zero error
    T=T+0.0000001; % To avoid 0 T divide by zero error
    d1=(log(S./X)+(r-r_f+(sigma.^2)./2)*T)./(sigma.*sqrt(T));
    d2=d1-(sigma.*sqrt(T));
    
    if CallPutFlag == 'C' 
        c=S.*normcdf(d1).*exp(-r_f*T) - X.*normcdf(d2).*exp(-r*T);
    else
        c=X.*normcdf(-d2).*exp(-r*T) - S.*normcdf(-d1).*exp(-r_f*T);
    end
end

% GKprice(CallPutFlag, S, X, T, r, r_f, sigma) 
% 
% Returns Garman-Kohlhagen (1983) modified Black-Scholes price for a
% European currency option

%   version: v1.0
%   author: Yazann Romahi [yazann@romahi.com]

Contact us at files@mathworks.com