Description: A standalone Cumulative Bivariate Normal Distribution (CBND) functions that do not require any external libraries. This includes 3 different CBND calculations: Drezner(1978), Drezner and Wesolowsky (1990), and Genz (2004)
Comments: The standardized cumulative normal distribution function returns the probability that one random variable is less than a and that a second random variable is less than b when the correlation between the two variables is p. Since no closed-form solution exists for the bivariate cumulative normal distribution, we present three approximations. The first one is the well-known Drezner (1978) algorithm. The second one is the more efficient Drezner and Wesolowsky (1990) algorithm. The third is the Genz (2004) algorithm, which is the most accurate one and therefore our recommended algorithm. West (2005b) and Agca and Chance (2003) discuss the speed and accuracy of bivariate normal distribution approximations for use in option pricing in ore detail.
Reference: The Complete Guide to Option Pricing Formulas, 2nd ed. (Espen Gaarder Haug)
CBND1(A, b, rho) Returns the Cumulative Bivariate Normal Distribution (CBND) using Drezner 1978 Algorithm Parameters: A: float, b: float, rho: float, Returns: float.
CBND2(A, b, rho) Returns the Cumulative Bivariate Normal Distribution (CBND) using Drezner and Wesolowsky (1990) function Parameters: A: float, b: float, rho: float, Returns: float.
CBND3(x, y, rho) Returns the Cumulative Bivariate Normal Distribution (CBND) using Genz (2004) algorithm (this is the preferred method) Parameters: x: float, y: float, rho: float, Returns: float.