This repository contains a simple and transparent Python implementation of the Black–Scholes option pricing model for European call and put options. The objective of this project is to understand the mathematical structure of the model and implement the closed-form solution without overengineering.
The Black–Scholes model is a foundational framework used in derivative pricing to determine the theoretical value of European options under a set of simplifying assumptions.
This project focuses on:
- Translating the mathematical formula into Python
- Understanding the role of key parameters
- Computing option prices using the analytical solution
- Asset prices follow a lognormal distribution
- Constant volatility and risk-free interest rate
- No arbitrage
- Frictionless markets
- European-style exercise only
The notebook computes:
- d1 and d2 using the Black–Scholes formulation
- European call option price
- European put option price
The implementation uses the cumulative normal distribution to evaluate option values under the risk-neutral framework.
The model accepts the following inputs:
- Spot price (S)
- Strike price (K)
- Risk-free interest rate (r)
- Volatility (σ)
- Time to maturity (T)
- SciPy
- Jupyter Notebook
- Clone the repository git clone https://github.com/your-username/black-scholes-option-pricing.git
- Install dependencies pip install -r requirements.txt
- Open jupyter notebook and run - BSM_Option_Pricing.ipynb
- Applicable only to European options
- Assumes constant volatility and interest rates
- Does not model dividends
- Does not include Greeks or implied volatility
- Greeks computation
- Implied volatility estimation
- Binomial Tree pricing