
P1: JYS
c04 JWBK378-Fletcher May 23, 2009 4:21 Printer: Yet to come
28 Financial Modelling in Python
for o, a in opts:
if o in ("-h", "--help"):
help()
sys.exit()
if o in ("-v", "--version"):
print "‘%s’, Version 0.0.0" % sys.argv[0]
sys.exit()
print gauss()
print lognormal variate()
4.2 N(.)
In the ppf.math.special functions module, N is a function that approximates the
standard normal cumulative distribution function, N(.), as used in the celebrated Black–Scholes
option-pricing equation.
import math
def N(x):
a = 0.3535533905933
b1 = -1.2655122300000
b2 = 1.0000236800000
b3 = 0.3740919600000
b4 = 0.0967841800000
b5 = -0.1862880600000
b6 = 0.2788680700000
b7 = -1.1352039800000
b8 = 1.4885158700000
b9 = -0.8221522300000
b10 = 0.1708727700000
t, term, result = 0, 0, 0
if(x > 0):
if (x > 10): result = 1.0
else:
t = 1/(1 + a*x)
term = b9 + t*b10
term = b8 + t*term
term = b7 + t*term
term = b6 + t*term
term = b5 + t*term
term = b4 + t*term
term = b3 + t*term
term = b2 + t*term
term = b1 + t*term
term = term + -0.5*(x*x)
result = 1.0 - 0.5*t*math.exp(term)
else: