Gamma exposure from an Alpaca chain
the formula, the sign, and the unit nobody states
Gamma exposure estimates how much option dealers must buy or sell to stay hedged as the underlying moves. Above the gamma flip they trade against the move and dampen it; below, they trade with it and amplify it. Everything you need is in an Alpaca chain — provided you get the sign convention and the units right.
The formula
GEX(strike) = gamma × open_interest × 100 × spot²
× (+1 for calls, −1 for puts)
The sign is the dealer convention, not yours. Customers predominantly buy calls and sell puts, so dealers are assumed short calls and long puts — hence calls positive and puts negative in the net. It is a modelling assumption, and it is the one every published GEX figure rests on.
spot² gives dollar gamma per $1 move. Several published trackers quote per 1% move, which is the same figure divided by 100. Neither is more correct, but comparing across sources without checking will convince you something is broken. The gamma flip is unaffected either way — it is a price, not a magnitude.
Finding the flip properly
The flip is not the strike where net GEX changes sign in the table. It is the spot price at which total net gamma would cross zero — so you have to re-price the whole book at candidate spots and find the crossing. Reading it off the strike column is an approximation that drifts exactly when it matters, on skewed books.
// Re-price at each candidate spot; report the crossing nearest the actual spot.
for (let S = spot * 0.75; S <= spot * 1.25; S += step) {
const net = positions.reduce((a, p) => a + dealerSign(p) * gammaAt(p, S) * p.oi * 100 * S * S, 0);
// ... detect sign change between successive S
}
What it is not
GEX is a positioning estimate built on an assumption about who is on which side. It does not forecast direction, it is stale the moment open interest updates, and on thin chains it is dominated by a handful of strikes. It is most informative near monthly expiry, when open interest is large and concentrated.
GreeksView computes this live from your Alpaca chain — profile, flip, call and put walls, and a daily history so you can see the level move.
Plot GEX on your chainQuestions
Can I calculate GEX with a free Alpaca account?
Yes. GEX needs gamma, open interest and spot, all available on the free iex feed. Open interest comes from the contract record rather than the snapshot.
Why does my GEX not match SpotGamma or similar sites?
Most likely units. gamma × OI × 100 × spot² is per $1 move; several trackers publish per 1% move, which is the same number divided by 100. Sign convention and which expiries are included also differ between publishers.
What is the gamma flip level?
The underlying price at which net dealer gamma crosses zero. Above it, hedging dampens moves; below it, hedging amplifies them. It is a price level, so it is unaffected by which unit you quote GEX in.
Should I read the flip off the strike with the sign change?
No. That is an approximation that breaks on skewed books. The flip requires re-pricing the whole book at candidate spot prices and finding where the total crosses zero.
Does positive GEX mean the market goes up?
No. It says dealer hedging is likely to dampen movement, which is a volatility statement, not a directional one. Nothing in the calculation predicts which way price goes.
Point it at your own Alpaca account
Full option chains, live Greeks, gamma exposure and payoff modelling — computed in your browser on your own API keys. Paper keys work identically, and nothing you hold ever reaches our server.
Start free — no card required