Book Image

Python for Finance

By : Yuxing Yan
Book Image

Python for Finance

By: Yuxing Yan

Overview of this book

Table of Contents (20 chapters)
Python for Finance
Credits
About the Author
Acknowledgments
About the Reviewers
www.PacktPub.com
Preface
Index

The Black-Scholes-Merton option model on non-dividend paying stocks


The Black-Scholes-Merton option model is a closed-form solution to price a European option on a stock that does not pay any dividends before its maturity date. If we use for the price today, X for the exercise price, r for the continuously compounded risk-free rate, T for the maturity in years, and for the volatility of the stock, the closed-form formulae for a European call (c) and put (p) will be as follows:

Here, N() is the cumulative standard normal distribution. The following Python code snippet represents the preceding formulae to evaluate a European call:

from scipy import log,exp,sqrt,stats
def bs_call(S,X,T,r,sigma):
    d1=(log(S/X)+(r+sigma*sigma/2.)*T)/(sigma*sqrt(T))
    d2 = d1-sigma*sqrt(T)
    return S*stats.norm.cdf(d1)-X*exp(-r*T)*stats.norm.cdf(d2)

In the preceding program, the stats.norm.cdf() function is the cumulative normal distribution, that is, N() in the Black-Scholes-Merton option model. The current...