GEX levels on the chart: Call Wall, Zero Gamma, Put Wall
The GEX levels overlay projects the Call Wall, Zero Gamma, Put Wall and up to four ranked strikes per side from the GEX module onto a futures chart, converting index or ETF strikes to the contract price with a spot ratio. It draws nothing without a GEX snapshot.
Senzoukria · Documentation · Updated September 2026
Where to find it
- Where
- Chart → Indicators panel → group « Overlays » → « GEX levels »; aggregation Full / 0DTE / 1DTE chosen in the GEX workspace header
- Default
- On, with « Ranked levels (C2–C5 / P2–P5) » on; aggregation « Full »
- Requires
- A GEX snapshot from an options data source; the chart symbol must map to that snapshot's underlying
What it does
The GEX module computes gamma exposure on an options underlying (SPY, QQQ, IWM, DIA). The chart overlay takes that snapshot and draws horizontal lines at the Call Wall (CW, green #4ade80), Zero Gamma (ZG, amber #eab308) and Put Wall (PW, red #f87171). When the price-profile flip differs from the strike-cumulative zero gamma by more than 0.1 % of spot, or when zero gamma is missing, an extra FLIP line is drawn so the two readings are not confused.
Futures roots are mapped to their proxy underlying: ES and MES to SPY, NQ and MNQ to QQQ, RTY and M2K to IWM, YM and MYM to DIA. Contract codes such as NQU6, MNQZ25 or « MNQ 09-25 » are recognised. Strikes live in underlying prices; the renderer multiplies them by a ratio (last chart close ÷ underlying spot) computed once per snapshot and then frozen, so the levels are anchored rather than sliding tick by tick.
Converted levels carry the underlying in their label, for example « CW · QQQ », so a converted QQQ level is never presented as a native NQ level. Each level backed by a strike also carries a strength from 0 to 1 relative to the largest |net GEX| in the snapshot, which drives the line thickness.
Settings
| Setting | Default | What it changes |
|---|---|---|
| GEX levels | On | Master switch of the overlay in the Indicators panel |
| Ranked levels (C2–C5 / P2–P5) | On | Adds up to four secondary strikes per side, drawn thin, ranked by |net GEX|; strikes under 10 % of the side's best are dropped |
| Levels aggregation (GEX header) | Full | Full chain, 0DTE or 1DTE set; 0DTE/1DTE buttons are disabled when that expiry set is absent, and the tag then never says 0DTE |
| Sanity filter | ±20 % of spot | Any level further than 20 % from spot is discarded as a computation artefact rather than drawn |
How to use it
Open the GEX workspace once so a snapshot exists, then read the walls on your ES or NQ footprint as reference prices for the dealer-hedging reading described in the GEX pages. Ranked strikes are drawn discreetly: no pill and no edge pin when out of view, so they do not compete with the three major lines.
Switch the aggregation to 0DTE on expiry days when the intraday chain dominates; the label tag shows « 0DTE » only when that set really exists.
Limits and pitfalls
- GEX is conditional on an options data source; the overlay is empty without a snapshot and on charts whose symbol is not a known index future.
- The ETF proxy is an assumption: SPY options are not SPX or ES options, and the ratio conversion is a linear approximation.
- Levels refresh with the snapshot, not with the tape; a stale snapshot gives stale levels.
- Nothing here promises that price will react at a wall.
Related pages
This page in other languages
Frequently asked questions
- Why do I see both a ZG and a FLIP line?
- ZG comes from the cumulative-by-strike zero gamma published by the backend; FLIP comes from the price profile. When the two differ by more than 0.1 % of spot both are drawn, labelled differently, because they are two readings and neither replaces the other.
- Why are there no GEX levels on my CL chart?
- The overlay only maps index futures (ES, MES, NQ, MNQ, RTY, M2K, YM, MYM) to their options underlying. Crude oil has no mapped underlying, so buildGexChartLevels returns nothing.