#### Overview of this book

Python for Finance
Credits
Acknowledgments
www.PacktPub.com
Preface
Free Chapter
Introduction and Installation of Python
13 Lines of Python to Price a Call Option
Introduction to Modules
Statistical Analysis of Time Series
Index

## Estimating implied volatility by using an American call

Since almost all exchange listed stock options are American options, we show the following program to estimate an implied volatility based on an American call option:

```from math import exp,sqrt
def binomialCallAmerican(s,x,T,r,sigma,n=100):
deltaT = T /n
u = exp(sigma * sqrt(deltaT))
d = 1.0 / u
a = exp(r * deltaT)
p = (a - d) / (u - d)
v = [[0.0 for j in xrange(i + 1)] for i in xrange(n + 1)]
for j in xrange(i+1):
v[n][j] = max(s * u**j * d**(n - j) - x, 0.0)
for i in xrange(n-1, -1, -1):
for j in xrange(i + 1):
v1=exp(-r*deltaT)*(p*v[i+1][j+1]+(1.0-p)*v[i+1][j])
v2=max(s-x,0)
v[i][j]=max(v1,v2)
return v[0][0]
```

The previous Python program is used to estimate an American call option based on the binomial-tree method, or CRR method. Based on the input values, we first calculate `u`, `d`, and `p`, where `u` represents the up movement, `d` represents the down movement...