Black-Scholes Pricer

Version 1.0

The Black-Scholes Model

In the early 1970s, the Black-Scholes model together with the development of options exchanges ushered growth in derivatives markets. The Black-Scholes model brought respectability to options trading by providing efficient pricing and hedging of derivatives instruments, while the newly established exchanges supplied the needed infrastructure for options trading activities to take place. Inevitably, the Black-Scholes model became the industry standard.

The Black-Scholes Pricing Formulae

A generalized form of the Black-Scholes model is presented below by introducing a carry rate \( b \). The model can be used to price European options on stocks, stocks paying continuous dividend yields, futures, and currency options: $$ call = S e^{(b-r)T} N(d_1) - X e^{-rT} N(d_2) $$ $$ put = X e^{-rT} N(-d_2) - S e^{(b-r)T} N(-d_1), $$ where $$ d_1 = \frac{ln(S/X) + \left(b + \frac{\sigma^2}{2}\right)T}{\sigma \sqrt{T}} $$ $$ d_2 = d_1 - \sigma \sqrt{T}$$ \( b = r \) gives the Black and Scholes (1973) stock option model.
\( b = r - q \) gives the Merton (1973) stock option model with continuous dividend yield \( q \).
\( b = 0 \) gives the Black (1976) futures option model.
\( b = r - r_f \) gives the Garman and Kohlhagen (1983) currency option model.

The Black-Scholes Greeks

The option sensitivities or Greeks are the partial derivatives of the Black-Scholes formulae. The partial derivative is a measure of the sensitivity of the option price to a small change in a parameter of the formula.

Delta

Delta is the option's sensitivity to small changes in the underlying asset price. For a call: $$ \Delta_{call} = \frac{\partial call}{\partial S} = e^{(b-r)T} N(d_1) > 0 $$ While for a put: $$ \Delta_{put} = \frac{\partial put}{\partial S} = e^{(b-r)T} \left( N(d_1) - 1 \right) > 0 $$

Gamma

Gamma is the delta's sensitivity to small changes in the underlying asset price. Gamma is identical for a call and put option: $$ \Gamma_{call,put} = \frac{\partial^2 call}{\partial S^2} = \frac{\partial^2 put}{\partial S^2} = \frac{n(d_1) e^{(b-r)T}}{S \sigma \sqrt{T}} > 0 $$

Vega

Vega is the option's sensitivity to a small change in the volatility of the underlying asset. Vega is identical for a call and put option: $$ \nu_{call,put} = \frac{\partial call}{\partial \sigma} = \frac{\partial put}{\partial \sigma} = S e^{(b-r)T} n(d_1) \sqrt{T} > 0 $$

Theta

Theta is the option's sensitivity to a small change in time to maturity. As time to maturity decreases, it is common to express theta as minus the partial derivative with respect to time. For a call: $$ \Theta_{call} = - \frac{\partial call}{\partial T} = - \frac {S e^{(b-r)T} n(d_1) \sigma}{2 \sqrt{T}} - (b-r) S e^{(b-r)T} N(d_1) - r X e^{-rT} N(d_2) \leq \geq 0 $$ While for a put: $$ \Theta_{put} = - \frac{\partial put}{\partial T} = - \frac {S e^{(b-r)T} n(d_1) \sigma}{2 \sqrt{T}} + (b-r) S e^{(b-r)T} N(-d_1) + r X e^{-rT} N(-d_2) \leq \geq 0 $$

Rho

Rho is the option's sensitivity to small changes in the risk-free interest rate. For a call: $$ \rho_{call} = \frac{\partial call}{\partial r} = T X e^{-rT} N(d_2) > 0 $$ While for a put: $$ \rho_{put} = \frac{\partial put}{\partial r} = - T X e^{-rT} N(-d_2) > 0 $$