- provides theoretical estimate of the price of European call/put option
- $ S $ = current price of stock
- $ K $ = strike price of the option
- $ T $ = time to maturity in years
- $ r $ = risk-free interest rate
- $ \sigma $ = volatility of stock (the standard deviation of returns)
Where:
- $ f(\sigma) = \text{BlackScholes}(\sigma) - \text{MarketPrice} = 0 $
$$\sigma_{\text{new}} = \sigma - \frac{f(\sigma)}{f'(\sigma)} = \sigma - \frac{\text{BlackScholes}(\sigma) - \text{MarketPrice}}{\text{Vega}(\sigma)}$$ - $ \text{Vega}(\sigma) = \text{rate of change of BlackScholes option price wrt changes in volatility } \sigma $
- Delta ($ \Delta $) = measures price sensitivity to underlying:
- Call option: $ \Delta $ ranges from 0 to 1
- Put option: $ \Delta $ ranges from -1 to 0
- Gamma ($ \Gamma $) = measures rate of change of delta
- Vega ($ \nu $) = measures sensitivity to volatility
- Theta ($ \Theta $) = measures sensitivity to time decay
- Rho ($ \rho $) = measures sensitivity to interest rates
- For Calls:
$$\Delta = N(d_1)$$ - For Puts:
$$\Delta = N(d_1) - 1$$ - where $ N() $ is the standard normal cumulative distribution function
$$\Gamma = \frac{N'(d_1)}{S \sigma \sqrt{T}}$$ - where $ N'(d_1) $ is the standard normal probability density function
$$\nu = S \sqrt{T} N'(d_1)$$
- Implement basic Black Scholes Algotithm
- Read options list from a csv file and ouput the call and put option price using the black scholes algorithm
- Implement implied volatility where we reverse the black sholes algo given a market option price find out what the implied volatility value is
- Visualise Option Prices using matplotlib such as option price vs stock price, option price vs strike price, option price vs volatility, option price vs time to maturity
- Implement simple Steamlit app that shows these results
- Add real time market data integration using Yahoo Finance API to retrieve real-world stock data
- Add a SQL database backend to store and export user stock option queries