function output = BSCall(S, K, r, T, sigma) % Copyright (c) 2001-2009 by Ales Cerny %************************************************************************% % BSCall.m - supplementary program to % % Ales Cerny (2009) Mathematical Techniques in Finance (2nd ed.) % % Princeton University Press http://press.princeton.edu/titles/9079.html % %************************************************************************% % This code is provided 'as-is', without any express or implied warranty. % % Permission is granted to anyone to use this code for any purpose, % subject to the following restrictions: % % 1. The origin of this code must not be misrepresented; you must not % claim that you wrote the original code. % 2. Modified code versions must be plainly marked as such, and must not % be misrepresented as being the original code. % 3. This notice may not be removed from any source distribution. % NOTICE TO STUDENTS: To avoid accusations of plagiarism, if you use this % code or its modifications in assessed work you should prepend it with a % note stating: % "This is the original/modified version of the code BSCall.m by % Ales Cerny (2009), Mathematical Techniques in Finance (2nd ed.), % Princeton University Press. The original version is available from % http://www.martingales.info/mtfweb2". % A similar acknowledgement should appear prominently inside your written % report. d1 = (log(S/K)+(r+sigma^2/2)*T)/(sigma*sqrt(T)); d2 = (log(S/K)+(r-sigma^2/2)*T)/(sigma*sqrt(T)); output = S*normcdf(d1)-K*exp(-r*T)*normcdf(d2); function output = normcdf(x) output = 0.5*erfc(-x/sqrt(2));