5. In-The-Money proxies
There are currently two ways to estimate the probability of an option being "in-the-money" in using the Black-Scholes-Merton model.
Parameters
Reference of all symbols that are used in the formulas:
$T$
= Time to maturity (in years)
$r$
= Risk-free rate
$q$
= Annual dividend yield
$\Phi(.)$
= Cumulative Density Function (CDF) of $\mathcal{N}(0, 1)$
$d_1 = \frac{ln(\frac{S}{K}) + (r - q + \frac{1}{2}\sigma^2)T}{\sigma\sqrt{T}}$
$d_2 = d_1 - \sigma\sqrt{T}$
1. Naive estimate
There is a parity between this estimate for calls and puts.
In other words, the estimate of a call plus that of a put with same input parameters always equals $1$
.
Call
$$\Phi(d_2)$$
from blackscholes import BlackScholesCall
call = BlackScholesCall(S=55, K=50, T=1, r=0.0025, sigma=0.15)
call.in_the_money() ## 0.71805
Naive Probability that call option will be in the money at maturity.
Source code in blackscholes/call.py
84 85 86 |
|
Put
$$1 - \Phi(d_2)$$
from blackscholes import BlackScholesPut
put = BlackScholesPut(S=55, K=50, T=1, r=0.0025, sigma=0.15)
put.in_the_money() ## 0.28194
Naive Probability that put option will be in the money at maturity.
Source code in blackscholes/put.py
85 86 87 |
|
2. Dual Delta
Dual delta is an option Greek that also happens to provide a good estimate of the probability that an option will expire in-the-money.
There is a parity between the dual delta for calls and puts.
In other words, the dual delta of call plus dual delta of put with same input parameters always equals $1$
.
Call
$$e^{-rT}\Phi(d_2)$$
from blackscholes import BlackScholesCall
call = BlackScholesCall(S=55, K=50, T=1, r=0.0025, sigma=0.15)
call.dual_delta() ## 0.71626
1st derivative in option price with respect to strike price.
Source code in blackscholes/call.py
46 47 48 49 50 |
|
Put
$$e^{-rT}\Phi(-d_2)$$
from blackscholes import BlackScholesPut
put = BlackScholesPut(S=55, K=50, T=1, r=0.0025, sigma=0.15)
put.dual_delta() ## 0.28124