Gamma Exposure
Calculate the dealer gamma exposure (GEX): the dollar value of shares market makers would have to buy or sell for every 1% move in the underlying to keep their option books delta-neutral. Following the common convention, dealers are assumed long the calls and short the puts that investors trade:
- Gamma Exposure = Gamma x Open Interest x 100 x Price² x 0.01
- positive for calls, negative for puts, summed over strikes and expiries
With positive exposure dealers buy dips and sell rallies, which dampens volatility; with negative exposure they trade in the direction of the move and amplify it. The gamma flip point is the price at which the total exposure changes sign.
For more information, see the following sources:
- SqueezeMetrics (2017). “Gamma Exposure (GEX).” White paper.
- Perfiliev, S. (2021). “How to Calculate Gamma Exposure (GEX) and Zero Gamma Level.” https://perfiliev.com/blog/how-to-calculate-gamma-exposure-and-zero-gamma-level/
Also known as: GEX, dealer gamma, gamma positioning, net gamma.
Gamma Exposure in Python or via the MCP
Install the Finance Toolkit with:
pip install financetoolkit -U
Then call get_gamma_exposure as shown below.
from financetoolkit import Toolkit
toolkit = Toolkit(["QQQ", "AAPL"], api_key="FINANCIAL_MODELING_PREP_KEY")
toolkit.options.get_gamma_exposure()
Or, after setting up the Finance Toolkit MCP, ask:
What is the dealer gamma exposure of QQQ and Apple options, and where is the gamma flip point?
Which returns:
| Stock Price | Call Gamma Exposure | Put Gamma Exposure | Net Gamma Exposure | Gamma Flip Point | |
|---|---|---|---|---|---|
| QQQ | 704.4 | 1.83881e+09 | -6.41458e+09 | -4.57577e+09 | 727.993 |
| AAPL | 347.73 | 7.48337e+08 | -4.80606e+08 | 2.67731e+08 | 342.412 |
Parameters
get_gamma_exposure accepts the following parameters.
| Parameter | Type | Description | Example |
|---|---|---|---|
expiration_dates | list[str] | None | The expiries to include. Defaults to None, the nearest number_of_expirations expiries. | ["2027-12-17", "2028-01-21"] |
number_of_expirations | int | The number of nearest expiries to include when no dates are given. Defaults to 6. | 4 |
by_strike | bool | Whether to return the exposure per strike instead of the totals. Defaults to False. | False |
rounding | int | None | The number of decimals to round the results to. Defaults to None, which uses the Toolkit’s rounding. | 2 |