Gamma exposure (GEX): what the levels mean and how to test them
Gamma exposure (GEX) estimates how much option dealers must buy or sell in the index for each 1% move. It describes a hedging flow, not a forecast. The one testable use for a futures trader is a day-by-day regime label, computed from the previous close, that decides which rule family a strategy runs.
By Soren Huang · Published · updated · Editorial policy
Contents
- What is gamma exposure, in plain words?
- Why does dealer hedging move the price?
- What is the difference between positive and negative gamma regimes?
- How are GEX levels computed, and what are the data limits?
- How do you turn GEX into a testable filter?
- What does the backtest evidence look like?
- Frequently asked questions
- References
What is gamma exposure, in plain words?
Gamma exposure (GEX) is an estimate of how much option dealers must buy or sell in the index for each 1% move, computed from open interest. It describes a hedging flow, not a forecast. The testable use is a regime label, set before the session opens, that decides which rule family your futures strategy runs.
Three terms carry the whole topic. An option dealer is a market maker who buys and sells options to customers and hedges the risk instead of betting on direction. Delta is the amount an option's price changes when the index moves one point. Gamma is how fast that delta changes as the index moves. GEX adds up the gamma of every open option contract, with a sign for who is assumed to hold it, and converts the total into index exposure.
Everyday comparison: delta is the speed of a car, gamma is how hard the accelerator is pressed. GEX tells you how much the whole fleet of dealers will have to speed up or brake when the road tilts. It does not tell you which way the road tilts.
For a systematic trader this gives GEX one honest role. A regime label is a tag on each trading day, such as positive or negative, that a strategy reads before the day starts and that changes which rules are active. GEX can be that tag because the inputs (open interest, strikes, expiries) are published after each close, so the label for tomorrow exists tonight. Most published GEX series describe S&P 500 index options and are used with ES or MES futures, but the method applies to any index with a liquid option chain and published open interest.
Why does dealer hedging move the price?
Dealers keep their option books delta-neutral, and gamma decides whether their hedge trades push against the market or with it. Delta-neutral means the dealer's total position gains or loses nothing from a small index move. Every index move changes the deltas of the options they hold, by an amount set by gamma, so they must trade the index futures or the cash basket to get back to zero. That trade is mechanical. It happens whether or not the dealer has an opinion.
The direction of the hedge follows the sign of the dealer's gamma:
- Dealer long gamma. A rally makes the book's delta more positive. The dealer sells futures to return to neutral. A dip makes the delta more negative, so the dealer buys. The hedge pushes against the move.
- Dealer short gamma. A rally makes the book's delta more negative. The dealer must buy futures. A dip forces a sale. The hedge pushes with the move.
Think of a thermostat. A long-gamma dealer is a normal thermostat: when the room warms, it turns the heat down. A short-gamma dealer is a thermostat wired backwards: when the room warms, it adds more heat. The flow is added on top of the normal order flow from everyone else, so it does not control the price, but it changes how far a move tends to travel before it meets resistance.
What is the difference between positive and negative gamma regimes?
A positive gamma regime dampens intraday moves and points to mean-reversion rules, while a negative gamma regime amplifies moves and points to breakout or trend rules. A gamma regime is the sign of net GEX on a given day. Positive means dealers are assumed to be net long gamma and hedge against the move. Negative means they are assumed to be net short gamma and hedge with the move.
| Positive gamma | Negative gamma | |
|---|---|---|
| Dealer hedge on a rally | Sell futures | Buy futures |
| Dealer hedge on a dip | Buy futures | Sell futures |
| Effect on intraday range | Compressed | Expanded |
| Typical price path | Oscillates inside a band | Trends, gaps, fast reversals |
| Rule family to test first | Mean reversion | Breakout or trend following |
The table says "test first", not "trade". The regime tells you which family of rules has a mechanical reason to fit the day's price behaviour. A mean reversion strategy fades a move and needs the move to stall; a dealer selling into rallies helps it stall. A breakout rule needs the move to continue; a dealer buying into rallies helps it continue. Whether either family earned enough after costs on the days with that label is a question only a backtest can answer, and the answer is specific to the market, the bar size and the years tested.
How are GEX levels computed, and what are the data limits?
A GEX level is a sum across every strike and expiry of open interest, gamma, the contract multiplier and the spot price, with calls counted positive and puts negative, and three assumptions inside that sum decide how much to trust it. Open interest is the number of option contracts that are open, in other words sold by someone and held by someone else. The contract multiplier is the number of index units one option contract controls; for S&P 500 index options it is 100 at the time of writing. Exchanges can change contract specifications, so confirm the multiplier on the exchange's contract specifications page before computing.
The one formula, written in words:
GEX at one strike = sign × open interest × gamma × multiplier × spot, where sign is +1 for calls and −1 for puts, open interest is the open contracts at that strike, gamma is the gamma of one option at that strike, multiplier is the contract size, and spot is the current index level. The result is the dollar amount of delta exposure that changes for each one-point move in the index. Net GEX is the total of all strikes. Many published versions multiply once more by 1% of spot so that the result reads as dollars of hedging per 1% move.
Hypothetical example
Take one call strike with open interest of 500 contracts, a gamma of 0.002 per index point, a multiplier of 100 and a spot level of 5,000. GEX at that strike is +1 × 500 × 0.002 × 100 × 5,000 = half a million dollars of delta exposure per index point. A put strike with the same numbers contributes minus half a million dollars per index point. Add every strike and expiry in the chain and the total is the day's net GEX. If the total is positive, the day is labelled positive gamma.
The gamma flip is the index level at which net GEX would change sign if the index moved there. Above it dealers are assumed net long gamma; below it net short gamma. Because gamma is largest for strikes close to the current index level (near the money), the flip usually sits close to a cluster of put open interest below the market, and it moves when the index moves or when large expiries drop out.
Three limits are built into every GEX number:
- The sign is assumed. Public data shows how many contracts are open, not who holds them. The standard convention assumes dealers are long the calls (customers sell covered calls) and short the puts (customers buy protection). On days when this is wrong for a large strike, the sign of the whole level can be wrong.
- Open interest is not a position. Two dealers can hold offsetting positions in the same strike. Open interest counts both; the net hedging need is zero.
- It is a once-a-day snapshot. Open interest is published after the close. Intraday option trading, especially in options that expire the same day, changes the real book without changing the published number until the next report.
How do you turn GEX into a testable filter?
GEX becomes testable when the label for each trading day is computed from the previous day's option chain, fixed before the session opens, and used to split the trades of one unchanged futures strategy into two groups. A filter is a condition that decides whether a strategy is allowed to trade on a given day. The filter here is the GEX label. Everything else, the entry rules, the exits, the fees, the slippage and the execution timing, stays identical for both groups, so any difference between the groups comes from the label and nothing else.
- Take the option chain at the close of day T. You need, for every strike and expiry, the open interest and enough data to compute gamma (strike, expiry, the index level, and either the option price or its implied volatility, which is the volatility number that makes an option pricing model match that price).
- Compute GEX per strike with the formula above and the standard sign convention.
- Sum to net GEX and find the gamma flip for day T.
- Label day T+1. Either positive or negative from the sign of net GEX, or above or below the flip from where the T close sits relative to the flip level. Write the label into a date table.
- Run the futures strategy over the full history with the same fees, slippage and next-bar execution. Next-bar execution means a decision made at a bar's close is filled at the next bar, never at the price that produced the signal.
- Split the trades by the label of their entry day and compare the two groups: trade count, average trade after costs, worst trade, and how the groups behave year by year.
The timing rule matters more than any other detail. Open interest for day T is reported after day T has closed. If your date table assigns the GEX of day T to day T itself, every label knows how that day's options were traded, which includes information about how the index moved. That is a look-ahead leak and it inflates the result in a way that looks like skill. Shift the label forward by one session, always. If your strategy also trades the night session, decide in advance whether the label applies from the night open or the day open, and keep that choice fixed.
Two further settings keep the comparison fair:
- Include commission and slippage in both groups from the first run. A regime filter that cuts the trade count can look better simply by trading less; costs are the only way to see whether the remaining trades are worth taking.
- Run both groups with the same data resolution and session definition. AlphaPrime (Valynox) applies fees, slippage, next-bar execution and the trading session uniformly in backtesting, so the regime split does not accidentally change the execution model.
What does the backtest evidence look like?
A useful result is one where the average trade after costs differs clearly between the two regimes in most years and across several neighbouring threshold values, while a difference that appears for one exact threshold or one year is selection noise. A threshold is the GEX value that separates the two groups; zero is the natural choice, but testing a few values on either side shows whether the effect is stable or an accident of one cut-off. Periodic performance in AlphaPrime's performance report splits results by period, which shows whether the gap between the two regimes holds in most years or comes from just one.
Hypothetical example
A breakout strategy on an index future is split by GEX sign. Robust case: on negative-gamma days the average trade after costs is +12 points and on positive-gamma days it is −3 points, and the gap stays between 10 and 18 points when the threshold moves from −2 billion to +2 billion dollars of net GEX and when each year is checked separately. Fragile case: at a threshold of exactly +1 billion dollars the gap is +20 points, at zero it is +2 points, and at +2 billion dollars it reverses to −6 points. The second result is the kind that disappears the moment it is traded.
Three checks separate the two cases:
- Neighbourhood. Move the threshold a little in both directions. A real effect degrades slowly; a fitted one collapses.
- Years. Count how many calendar years show the gap in the same direction. One strong year can carry a ten-year average.
- Trade count. A group with few trades has a noisy average. Compare the groups only when both contain enough trades to mean something, and report the worst trade as well as the mean.
The reason for this discipline is documented in the research on data snooping. White (2000) showed that when many rules are tested on the same data, the best one will look significant by chance, and gave a method to correct for the number of rules tried. Sullivan, Timmermann and White (1999) applied this to technical trading rules and found that much of their apparent performance did not survive the correction. Bailey and co-authors (2014) describe the same problem for backtests in general: the more variants you compare, the higher the best backtest looks, even when none has an edge. A GEX filter with its threshold, its label timing and its rule family is a set of variants, and the best combination you find has already been selected.
The standard answer is to let the selection happen on one part of the history and judge it on another. Walk-forward analysis does exactly this: choose the threshold and rule settings on an in-sample window, freeze them, test on the window that follows, move forward and repeat. If the regime gap is present in the joined out-of-sample segments, it was not created by the choice of threshold.
What this means if you use AlphaPrime: compute the GEX labels yourself from the previous close, run the strategy with the same costs and execution settings for both groups, and use strategy validation with walk-forward analysis and your own thresholds so the regime split is judged on data the threshold choice never saw.
Frequently asked questions
Is gamma exposure a buy or sell signal?
No. GEX estimates how option dealers must hedge when the index moves, so it describes the likely character of a day (compressed or expanded range), not its direction. The testable use is as a filter that decides which rule family is active, with the entry and exit signals coming from the strategy itself.
What is the gamma flip level?
The gamma flip is the index level where net GEX would change sign if the index moved there. Above it dealers are assumed to be net long gamma and hedge against moves; below it they are assumed net short gamma and hedge with moves. It is computed from open interest under the standard dealer-position convention, so it carries the same assumptions as net GEX.
Where do GEX levels come from, and when are they updated?
GEX is computed from the option chain, mainly open interest per strike and expiry, which exchanges and clearing houses publish after each close. That makes GEX a once-a-day number. Some data vendors publish a ready-made series; whichever source you use, the value computed after day T may only be used to label day T+1 in a backtest.
Can GEX be used for TAIEX futures or other index futures?
The method applies to any index that has a liquid option chain with published open interest. TAIEX options trade on TAIFEX alongside TAIEX futures, so the same computation and the same next-session labelling rule can be applied there. The regime effect, if any, must be tested separately for each market, bar size and period.
Why does the GEX filter need the previous day's data?
Open interest for a trading day is reported after that day closes, so the GEX for day T is only known in the evening of day T. If a backtest uses it on day T, the label contains information from the session it is supposed to filter, which inflates the result. Shifting the label forward one session removes this look-ahead.
References
- White, H. (2000). A Reality Check for Data Snooping. Econometrica, 68(5), 1097–1126.
- Sullivan, R., Timmermann, A., & White, H. (1999). Data-Snooping, Technical Trading Rule Performance, and the Bootstrap. The Journal of Finance, 54(5), 1647–1691.
- Bailey, D. H., Borwein, J., López de Prado, M., & Zhu, Q. J. (2014). Pseudo-Mathematics and Financial Charlatanism: The Effects of Backtest Overfitting on Out-of-Sample Performance. Notices of the American Mathematical Society, 61(5), 458–471.

