Strasmore Research
Deep Dives · Matt ConnorBy Matt Connor ·

gamma exposure GEX dealer hedging calculation

Gamma exposure (GEX) na wetin dealers dey hedge as price move. See how dem calculate am, di assumptions behind am, and why free GEX numbers differ.

Gamma exposure, wey dem dey call GEX for short, na wetin dem dey use estimate how much stock or futures hedging wey options dealers need to do for every one percent wey di underlying move. Na positioning statistic wey dem build from three tins: open contracts, option pricing model, and one big assumption about who dey for each side of every trade. Dis page go walk di calculation, state di assumptions plain, and measure di tape underneath am for one pinned July 2026 session.

Wetin gamma exposure (GEX) dey measure

Start from one level down. Delta na how option dey react to di underlying price: delta of 0.40 mean di contract go gain roughly 40 cents for every dollar wey di stock add. Gamma na di rate wey delta itself dey change. Contract wey get high gamma, im delta go swing fast as di underlying dey travel across di strike, and our option gamma explainer dey trace dat curve on real contracts.

Dealer wey sell option and hedge am, e dey hold position for di underlying and re-size dat position as di price dey move. Gamma dey set how much re-sizing each dollar of movement dey ask for. Gamma exposure dey scale dat per-contract number up to market-wide dollar figure. Di standard recipe:

  1. For every listed strike and expiry, take open interest, di count of contracts wey still dey outstanding.
  2. Compute each contract gamma from option pricing model, usually Black-Scholes, wey dem feed with di underlying price, di strike, time to expiry, interest rate, and implied volatility.
  3. Multiply gamma by open interest, by di 100-share contract multiplier, and by di square of di underlying price, then divide by 100. Di output na dollars of stock per 1% move.
  4. Attach sign under di convention wey dealers dey hold calls long and puts short, then sum across every strike and expiry.

One obviously hypothetical worked example: 10,000 open contracts wey carry gamma of 0.05, on $100 underlying, give 10,000 times 0.05 times 100 times 100 squared, divided by 100, wey be $5,000,000 of stock per 1% move. Published index-level readings dey run into billions on dis same arithmetic.

Positive gamma and negative gamma regimes

Di sign dey carry di whole reading.

Positive (long) gamma. Di dealer book dey gain delta as di underlying dey rise and dey shed delta as e dey fall. To keep di hedge flat mean dey sell shares into strength and buy shares into weakness, so di hedging flow dey run opposite to di move.

Negative (short) gamma. Di book dey shed delta as di underlying dey rise and dey gain delta as e dey fall. To keep di hedge flat mean dey buy into strength and sell into weakness, and dat flow dey run with di move.

Practitioners dey call di first one dampening or pinning condition and di second one accelerant condition, and dem dey call di level where di aggregate estimate cross zero gamma flip point. Each of dose labels dey describe hedging rulebook, never forecast. Dealer hedging na one flow among many for market wey dey trade billions of shares per session, and di estimate no fit see di rest of dem. For wetin di hedging desk dey actually do all day, see how market makers make money.

Where di contracts actually dey sit

Gamma per contract dey peak near di money and near expiry, so strikes wey dey closest to spot dey carry most of di arithmetic. Here na dat concentration on di tape: every same-day SPY contract wey trade on Monday, July 6, 2026, wey dem group by im strike and rank by contracts wey trade.

QuerySPY contracts wey expire same day, sorted by strike: di ten wey get highest action, July 6, 2026
The exact SQL behind every number
SELECT strike_label AS strike,
       round(sumIf(contracts, opt_type = 'C') / 1e3, 1) AS call_contracts_k,
       round(sumIf(contracts, opt_type = 'P') / 1e3, 1) AS put_contracts_k,
       round(sum(contracts) / 1e3, 1)                   AS total_contracts_k
FROM (
    SELECT substring(ticker, length(ticker) - 8, 1)              AS opt_type,
           toUInt32OrZero(substring(ticker, length(ticker) - 7, 8)) AS strike_thousandths,
           toString(intDiv(strike_thousandths, 1000))            AS strike_label,
           sum(toFloat64(volume))                                AS contracts
    FROM global_markets.options_minute_aggs
    WHERE window_start >= toDateTime('2026-07-06 08:00:00')
      AND window_start <  toDateTime('2026-07-07 04:00:00')
      AND startsWith(ticker, 'O:SPY260706')
    GROUP BY ticker, opt_type, strike_thousandths, strike_label
)
GROUP BY strike_label
ORDER BY sum(contracts) DESC
LIMIT 10
Run this yourself

Di busiest strike of di session na $751, wey carry 1817.5 thousand contracts, wey split 1082.3 thousand calls against 735.2 thousand puts. Di next strike down di list, $750, take 1725.9 thousand. By di tenth-ranked strike, di count dey sit at 159.6 thousand. Ten strikes, handful of dollars wide, dey hold di bulk of di day activity for one $700-plus instrument.

Di call and put mix dey flip across spot, wey be di tilt wey signed GEX calculation dey try to capture. For $753, above di money, calls lead puts 587.8 thousand to 74.8 thousand. For $748, below am, puts lead, 457.4 thousand against 107 thousand.

One caveat wey di panel make visible: dis na volume, di count of contracts wey dey change hands, no be open interest, di count wey still dey outstanding after di bell. GEX dey build on di second one. Options volume vs open interest dey separate di two.

Front-dated contracts dey dominate di tape

QueryJuly 6, 2026: whole-tape options volume, wey dem group by days to expiry
The exact SQL behind every number
SELECT multiIf(dte = 0, '0 (expires today)',
               dte = 1, '1 day',
               dte <= 7, '2-7 days',
               dte <= 30, '8-30 days',
               '31+ days') AS days_to_expiry,
       round(sum(volume) / 1e6, 2) AS contracts_mm,
       round(100.0 * sum(volume) / sum(sum(volume)) OVER (), 1) AS pct_of_volume
FROM (
    SELECT toFloat64(volume) AS volume,
           dateDiff('day',
                    toDate(toTimeZone(window_start, 'America/New_York')),
                    toDateOrNull(concat('20', substring(ticker, length(ticker) - 14, 6)))) AS dte
    FROM global_markets.options_minute_aggs
    WHERE window_start >= toDateTime('2026-07-06 08:00:00')
      AND window_start <  toDateTime('2026-07-07 04:00:00')
      AND toDate(toTimeZone(window_start, 'America/New_York')) = toDate('2026-07-06')
)
WHERE dte >= 0
GROUP BY days_to_expiry
ORDER BY min(dte)
Run this yourself

Contracts wey dey expire dat same afternoon na 38.8% of all US options volume for di session, 23.52 million of dem, against 18.6% for everything wey dey more dan one month out. Di gamma per contract dey largest for exactly dat front bucket, and e be di bucket wey open interest dey turn over fastest. GEX figure wey dem build on di prior evening clearing file dey describe book wey don already move. Zero days to expiry dey cover di same-day contract for detail.

Di estimate dey cluster for handful of products

QueryJuly 6, 2026: top roots wey get highest same-day-expiry options volume
The exact SQL behind every number
SELECT root AS underlying,
       round(sum(volume) / 1e6, 2) AS zero_dte_contracts_mm,
       round(100.0 * sum(volume) / sum(sum(volume)) OVER (), 1) AS pct_of_zero_dte_volume
FROM (
    SELECT substring(ticker, 3, length(ticker) - 17) AS root,
           toFloat64(volume) AS volume
    FROM global_markets.options_minute_aggs
    WHERE window_start >= toDateTime('2026-07-06 08:00:00')
      AND window_start <  toDateTime('2026-07-07 04:00:00')
      AND toDate(toTimeZone(window_start, 'America/New_York')) = toDate('2026-07-06')
      AND toDateOrNull(concat('20', substring(ticker, length(ticker) - 14, 6))) = toDate(toTimeZone(window_start, 'America/New_York'))
)
WHERE root != 'SPCX'
GROUP BY root
ORDER BY sum(volume) DESC
LIMIT 8
Run this yourself

Same-day flow dey concentrate hard: SPY take 36.1% of am, QQQ another 21.2%, and SPXW, di weekly cash-settled S&P 500 root, 11.3%. Published GEX series dey quote on dis same short list of underlyings, wey be di chains wey deep enough for strike-by-strike sum to carry much meaning. Single-name GEX on thinly traded ticker na arithmetic wey dem perform on handful of contracts.

Di assumptions wey GEX dey rest on

Open interest no carry side. Exchanges dey publish how many contracts dey outstanding for each strike and never publish who dey long and who dey short. Di convention wey dealers dey hold calls long and puts short come from generalisation about customer behaviour, wey say retail dey buy calls and institutions dey buy puts for protection. E be heuristic, and for individual strikes on individual days e dey simply wrong.

Gamma come out of model. Black-Scholes need implied volatility per strike, rate, and dividend assumption. Change di volatility surface and every gamma for di sum go change with am.

Open interest dey stale by construction. E dey publish once per session from clearing data after di close, so intraday GEX print dey anchored to yesterday book.

Di product boundary na choice. SPX index options, SPY ETF options and E-mini futures options all dey reference di S&P 500 at different multipliers. Include or exclude any of dem dey move di total by billions of dollars.

Why two GEX numbers dey disagree

Two dashboards fit read di same market and print totals wey dey far apart, and every source of di gap dey for di list above: which products dem include, which volatility surface feed di model, whether di figure dey quote per 1% move or per one index point, whether di dealer sign dem apply per strike or to di aggregate, and how expiry-day contracts dem handle. Level from one publisher wey dem measure against threshold wey another quote na comparison of two different statistics. Reading one source series against im own history dey keep di units consistent.

Max pain, di neighbouring statistic

Max pain na di strike where di largest total dollar value of open contracts go expire worthless. Dem compute am from open interest alone, with no volatility model and no dealer-side assumption, and e dey name price instead of sizing flow. Di two dey get quote side by side around monthly expiries and dey answer different questions: max pain dey point at strike, gamma exposure dey size hedging bill.

Wetin practitioners actually dey use

Open-source GEX and positioning dashboards dey common for code-sharing sites, and reading one na di fastest way to see dese assumptions make concrete. Di chain snapshot, di model inputs, di sign convention and di aggregation step all dey sit for few hundred lines. As of July 2026, several such projects dey actively maintained, and di ones wey worth di time dey state dia volatility source and dia dealer-side convention up front. Number wey dem no publish im derivation no fit check. Traders wey dey read GEX alongside flow often dey pair am with unusual options activity and di wider option Greeks.

Gamma exposure FAQ

Wetin positive gamma exposure mean?

Positive GEX dey describe estimated dealer book wey dey gain delta as di underlying dey rise and dey shed am as di underlying dey fall. To keep dat book hedged mean dey sell into strength and buy into weakness. Practitioners dey describe di condition as dampening or pinning; e be description of hedging rulebook, no be price forecast.

Wetin be di gamma flip point?

Di gamma flip na di underlying price where GEX model aggregate estimate dey cross from positive to negative. Above am, di modelled hedging flow dey run opposite to di move; below am, di flow dey run with di move. Di level dey move anytime di open interest, di volatility surface, or di model assumptions dey change, so two publishers rarely quote di same flip.

Where di open interest behind GEX dey come from?

Open interest dey publish once per trading session from clearing data after di close: di number of contracts wey dey outstanding for each strike and expiry. E no carry indication of which counterparty dey long or short, wey be di single largest assumption for any GEX calculation.

Gamma exposure be di same as gamma squeeze?

No. Gamma exposure na standing estimate of hedging sensitivity across whole book. Gamma squeeze na narrative wey dem apply to specific episode of rapid buying for single name where hedging flow be one of di moving parts. GEX na measurement attempt; di squeeze label na description of event after di fact.

Dem fit calculate GEX for single stock?

Mechanically yes, di same sum dey run on any listed chain. Di estimate dey get noisy fast for thin chains, where small number of strikes and wide implied-volatility marks dey dominate di total. For di July 2026 session wey dey above, same-day volume outside di index products fall away quick past di top few single-name roots.


Every panel wey dey above na stored query with im SQL one click away. Run di same scan over any chain on di Strasmore terminal.