QF-Learn

Option Greeks explained: delta, gamma, vega, theta and rho

The option Greeks measure how an option’s price changes when one thing changes and everything else stays the same. Delta is the change for a move in the stock, gamma is how fast delta itself changes, vega is the change for a move in volatility, theta is the change as a day passes, and rho is the change for a move in interest rates.

Traders use the Greeks to see what risk they are carrying and to hedge it. Each one is a partial derivative of the Black-Scholes price, so you can compute all five from the same five inputs.

The five Greeks at a glance

These are the values for a one-year at-the-money option: stock 100, strike 100, 5% rate, 20% volatility.

GreekMeasuresCallPut
Delta (Δ)Price change per 1.00 move in the stock0.6368-0.3632
Gamma (Γ)Delta change per 1.00 move in the stock0.01880.0188
Vega (ν)Price change per 1 point of volatility0.37520.3752
Theta (Θ)Price change per calendar day-0.0176-0.0045
Rho (ρ)Price change per 1 point of interest rate0.5323-0.4189

Delta: exposure to the stock

Delta is how much the option’s price moves for a 1.00 move in the stock. A call delta of 0.64 means the call gains about 0.64 when the stock rises from 100 to 101, so a holder of one call is exposed like an owner of 0.64 shares.

Call deltas run from 0 to 1 and put deltas from −1 to 0. Deep in-the-money options behave like the stock (delta near 1 or −1), far out-of-the-money options barely move (delta near 0). Delta is also the hedge ratio: selling 0.64 shares against each call makes the position flat to small moves, which is what “delta hedging” means.

Call delta against the stock priceCall delta rises from 0 to 1 as the stock moves from below to above the strike of 100. With one week to expiry the curve is almost a step; with one year it is gentle.00.20.40.60.816080100120140StrikeStock price (S)Call delta1 year to expiry3 months1 week
Close to expiry, delta snaps from 0 to 1 around the strike. That steepness is gamma.

Gamma: how fast delta changes

Gamma is the change in delta for a 1.00 move in the stock. It is the same for a call and a put with the same strike and expiry, and it is always positive for an option you own. Gamma is largest for at-the-money options close to expiry, which is why those positions need re-hedging most often.

Gamma against the stock priceGamma peaks near the strike. The one-week option has a tall, narrow peak; the one-year option a low, wide one.00.050.10.156080100120140StrikeStock price (S)Gamma1 year to expiry3 months1 week

Vega: exposure to volatility

Vega is the change in price for a one-point change in volatility, for example from 20% to 21%. Our option has a vega of 0.38, so it gains about 0.38 if volatility rises by one point. Vega is the same for calls and puts, largest at the money, and larger for longer-dated options. It is how traders think about implied volatility: buying options is buying vega.

Theta: the cost of time

Theta is how much value an option loses as one day passes. Our call’s theta of -0.0176 means it loses about 1.8 cents a day with nothing else changing. Theta is the price of holding gamma: long options lose value daily and win when the stock moves, short options earn the decay and lose when it moves. It accelerates in the last weeks before expiry for at-the-money options.

Rho: exposure to interest rates

Rho is the change in price for a one-point change in the risk-free rate. Calls have positive rho (higher rates make the strike you pay later cheaper today) and puts negative rho. It matters most for long-dated options; for options a few weeks out it is usually the smallest of the five.

Computing the Greeks in Python

Each Greek has a closed form under Black-Scholes. This code computes the table above:

Python
from math import exp, log, sqrt, pi
from statistics import NormalDist

nd = NormalDist()
N, n = nd.cdf, nd.pdf


def greeks(S, K, T, r, sigma):
    d1 = (log(S / K) + (r + 0.5 * sigma**2) * T) / (sigma * sqrt(T))
    d2 = d1 - sigma * sqrt(T)
    disc = exp(-r * T)
    return {
        "call delta": N(d1),
        "put delta": N(d1) - 1,
        "gamma": n(d1) / (S * sigma * sqrt(T)),
        "vega (per 1 vol point)": S * n(d1) * sqrt(T) / 100,
        "call theta (per day)": (-S * n(d1) * sigma / (2 * sqrt(T)) - r * K * disc * N(d2)) / 365,
        "put theta (per day)": (-S * n(d1) * sigma / (2 * sqrt(T)) + r * K * disc * N(-d2)) / 365,
        "call rho (per 1% rate)": K * T * disc * N(d2) / 100,
        "put rho (per 1% rate)": -K * T * disc * N(-d2) / 100,
    }


for name, value in greeks(S=100, K=100, T=1, r=0.05, sigma=0.20).items():
    print(f"{name:24s} {value: .4f}")
Output
call delta                0.6368
put delta                -0.3632
gamma                     0.0188
vega (per 1 vol point)    0.3752
call theta (per day)     -0.0176
put theta (per day)      -0.0045
call rho (per 1% rate)    0.5323
put rho (per 1% rate)    -0.4189

To see the Greeks change as you move the inputs, use the Black-Scholes calculator. For options with early exercise, the Greeks come from a binomial tree instead, by repricing with small changes in each input.

Learn this on your phone, one short lesson at a time

QF-Learn turns topics like this into five-minute lessons with quizzes, finance games and certificates. It is free, and it is coming to Android and iOS. Leave your email and you will be first to get it.