erf = x => {
const sign = Math.sign(x);
const ax = Math.abs(x);
const t = 1 / (1 + 0.3275911 * ax);
const y = 1 - (((((1.061405429*t - 1.453152027)*t) + 1.421413741)*t - 0.284496736)*t + 0.254829592)*t*Math.exp(-ax*ax);
return sign * y;
}
// Standard normal CDF
N = z => 0.5 * (1 + erf(z / Math.SQRT2));
// Black-Scholes pricing function
blackScholes = (S, K, T, r, sigma, q) => {
// S: Current stock price
// K: Strike price
// T: Time to expiration (in years)
// r: Risk-free rate (annualized)
// sigma: Volatility (annualized)
// q: Dividend yield (annualized)
if (T <= 0) return {call: Math.max(0, S - K), put: Math.max(0, K - S)};
const d1 = (Math.log(S / K) + (r - q + 0.5 * sigma * sigma) * T) / (sigma * Math.sqrt(T));
const d2 = d1 - sigma * Math.sqrt(T);
const call = S * Math.exp(-q * T) * N(d1) - K * Math.exp(-r * T) * N(d2);
const put = K * Math.exp(-r * T) * N(-d2) - S * Math.exp(-q * T) * N(-d1);
return {call, put, d1, d2};
}The Greeks
This interactive tool allows you to analyze the Greeks, the sensitivities of the option price to various parameters, using the Black-Scholes-Merton model.
Parameters
Greek Values
Detailed Analysis
Below you can see how each Greek varies with the Stock Price (\(S_0\)) and Time to Maturity (\(T\)).
Formula:
\[ \Delta = e^{-qT} N(d_1) \quad \text{(call)}, \qquad \Delta = -e^{-qT} N(-d_1) \quad \text{(put)} \]
Delta measures the sensitivity of the option’s price to changes in the underlying asset’s price.
- Call Delta: \(0 \le \Delta \le 1\) (for European calls without dividends).
- Put Delta: \(-1 \le \Delta \le 0\).
- Interpretation: Often used as a rough proxy for the risk-neutral probability that the option finishes in-the-money (which is exactly \(N(d_2)\)). Also the hedge ratio (number of shares to hold to hedge a short position).
Formula (per year):
\[ \Theta_c = -\frac{S_0 \sigma e^{-qT} N'(d_1)}{2\sqrt{T}} - r K e^{-rT} N(d_2) + q S_0 e^{-qT} N(d_1) \]
\[ \Theta_p = -\frac{S_0 \sigma e^{-qT} N'(d_1)}{2\sqrt{T}} + r K e^{-rT} N(-d_2) - q S_0 e^{-qT} N(-d_1) \]
Theta measures the rate of time decay of an option’s value.
- Sign: Usually negative for long positions (option loses value as time passes).
- Behavior: Decay accelerates as expiration approaches for at-the-money options.
- Note: The formula gives the time decay for one year. Traders often divide this by 365 (calendar days) or 252 (trading days) to estimate the daily decay.
Formula:
\[ \Gamma = \frac{e^{-qT} N'(d_1)}{S_0 \sigma \sqrt{T}} \]
Gamma measures the rate of change of Delta with respect to the underlying price (curvature).
- Sign: Positive for long positions (both calls and puts).
- Peak: Highest for at-the-money options.
- Risk: High gamma implies that Delta changes rapidly, making hedging difficult (Gamma risk).
Formula:
\[ \nu = S_0 e^{-qT} \sqrt{T} N'(d_1) \]
Vega measures the sensitivity to changes in volatility.
- Sign: Positive for long positions.
- Peak: Highest for at-the-money options.
- Interpretation: The calculated value represents the price change for a 1 unit (100%) change in volatility. Traders typically divide this by 100 to estimate the sensitivity to a 1 percentage point change in volatility.
Formula:
\[ \rho = K T e^{-rT} N(d_2) \quad \text{(call)}, \qquad \rho = -K T e^{-rT} N(-d_2) \quad \text{(put)} \]
Rho measures sensitivity to the risk-free interest rate.
- Call Rho: Positive (higher rates \(\rightarrow\) higher call prices).
- Put Rho: Negative (higher rates \(\rightarrow\) lower put prices).
- Relevance: Usually the least significant Greek for short-dated equity options.
- Note: Like Vega, the formula assumes a 1 unit (100%) change in interest rates. Divide by 100 for the sensitivity to a 1 percentage point change.
N’(d) denotes the standard normal probability density function (PDF):
\[ N'(d) = \frac{1}{\sqrt{2\pi}} e^{-d^2/2} \]
NoteReference
This page accompanies Chapter 19 of Hull (2022).
References
Hull, John. 2022. Options, Futures, and Other Derivatives. 11th ed. Pearson.