GEX exposures by strike
Returns the most recent GEX exposures across all strikes for the given ticker on a given date. Calculated either with open interest or with volume.
GEX is the assumed $ value of the given greek (ie. gamma) exposure that market makers need to hedge per 1% change of the underlying stock’s price movement. A positive value is long and a negative value is short.
Investors and large funds lower risk and protect their money by selling calls and buying puts. Market makers provide the liquidity to facilitate these trades.
GEX assumes that market makers are part of every transaction and that the bulk of their transactions are buying calls and selling puts to investors hedging their portfolios.
If a market maker has one contract open with a gamma value of 0.05, then if the underlying stock price moves by 1%, that market maker is exposed to $[0.05 * 100 shares * 0.01 * stock price * underlying parameter of the greek variable (for gamma this variable is the stock price)]. The total market maker exposure is calculated by summing up the exposure of all open contracts determined by the daily open interest or by volume.
Market makers profit from the bid-ask spreads and as such, they constantly gamma hedge (they buy and sell shares to keep their positions delta neutral).
Long call positions are positive gamma - as the stock price increases and delta rises (approaches 1), market makers hedge by selling shares, and they buy shares if the stock price decreases and delta falls.
Short put positions are negative gamma - as the stock price increases and delta falls (approaches -1), market makers hedge by buying shares, and they sell shares if the stock price decreases and delta rises.
As such, in the event of large positive gamma, volatility is suppressed as market makers will hedge by buying as the stock price decreases and selling as the stock price increases. And in the event of large negative gamma, volatility is amplified as market makers will hedge by buying as the stock price increases and selling as the stock price decreases.
In the case of directionalized volume, the bid/ask spread is used when calculating the exposures. When a trade is made closer to the ask, the Market Maker would be selling the contract and when a trade is closer to the bid then the Market Maker would be buying the contract.
For example, the gamma exposure for directional volume is call_gamma_ask, and the value will be negative since a trade made at the ask means the market makers are selling/short the call.
To get the full directionalized exposure, just sum up the call ask, call bid, put ask and put bid of a greek and strike.
Summing every strike of a ticker gives approximately the ticker level values of the GEX exposures per 1 min endpoint: oi = call_oi + put_oi, vol = call_vol + put_vol and directional = call_bid + call_ask + put_bid + put_ask. The sums are not exact. Each strike uses the price at its own time, and a strike recalculation with a negative call gamma or a positive put gamma is discarded, so that strike keeps its previous values or is left out. A past date that is rebuilt from end-of-day data recalculates every strike at the close, while the per-minute values were recorded during the session.
Strikes are returned in ascending order, up to 500 per request. A ticker with a wider chain than that needs every page collected before the sums are complete, so walk page from 0 until a page comes back empty. If a page returns 503, retry that same page after the Retry-After seconds. A 503 does not end the walk. Narrowing with min_strike or max_strike leaves out the exposure of the excluded strikes.
Each strike carries the time and price of its last recalculation. A strike is recalculated when one of its contracts gets new greeks or a new trade, or when the daily open interest loads, at most once per second per ticker. A price move alone does not recalculate a strike. Strikes within one response can differ in time, possibly by hours when a strike’s contracts rarely trade or get new greeks. A book computed after the session, for example after a service restart or for a ticker first requested after the close, gives every strike the same time, no later than 15 minutes after the regular close, and the price at the moment of that computation, which can be an after-hours price. For a past date that is rebuilt from end-of-day data, every strike instead carries the regular session close as time, and as price the closing price for stocks and ETFs or, for index tickers such as SPX, the last at-the-money price estimate recorded that day.
For real time streaming of the same data, subscribe to the gex_strike:{TICKER} websocket channel, see https://api.unusualwhales.com/docs/websocket/gex.
