NinjaTrader 8 · English edition · September 2026 © 2026 TTW Trading Systems PTE. LTD. · Flow.42 Analytics · All rights reserved.

Your SpotGamma levels. On the futures chart. The decision stays yours.

Bring your own SpotGamma. This indicator ships empty. It fetches nothing, stores no SpotGamma data of its own and passes nothing on. It draws the levels from your SpotGamma subscription, which you paste in yourself. An active SpotGamma account is required.


Table of Contents

  1. What SpotGamma does
  2. Why these levels matter
  3. What you see on the chart
  4. The levels, one by one
  5. The gamma state
  6. Import: bring your own SpotGamma
  7. From index to futures
  8. Day archive, sessions and stale levels
  9. Alerts
  10. What you need
  11. All settings
  12. Good starting points
  13. Troubleshooting
  14. Glossary

1. What SpotGamma does

SpotGamma publishes a table of important price levels every day: the prices where options dealers have to hedge, and where the market therefore tends to stall, pin, speed up or turn. Those levels are quoted on the cash index (SPX) and the ETF (SPY), not on the futures you actually trade.

Flow.42 SpotGamma closes that gap. You copy the table from your SpotGamma dashboard, click SG Import, and the indicator converts the prices to ES (or NQ), rounds them to tick size and draws them on your chart: Call Wall, Put Wall, Vol Trigger, Absolute and Zero Gamma, the 1-Day Implied Move band, 0DTE GEX strikes, Key S/R strikes, SG Combo levels, plus the prior day's High, Low and Settle. It also tracks the gamma state (positive or negative), keeps a day archive so every session shows its own levels, and fires alerts at the walls and on a state flip.

Two clicks, done. One import updates every chart at once.

SpotGamma is a context tool. It shows you where the levels sit and which state the market is in. It never predicts, never recommends, never signals. The conclusion, and the trade, stay yours.

The SpotGamma dashboard levels table you copy: reference prices, Vol Trigger, walls and key strikes per symbol column

2. Why these levels matter

New to gamma levels? The short version:

Options market makers (the "dealers") buy and sell options all day. To stay neutral, they have to buy and sell futures against those options. That is called hedging. This hedging is real buying and selling, in size, at prices you can know in advance. Where a lot of hedging sits, the market behaves differently: rallies stall at a big call strike, sell-offs slow at a big put strike, and one special level, the Vol Trigger, decides whether dealers calm the market or push it.

SpotGamma works out where those prices are, every day. This indicator puts them on your futures chart, where you trade.

Flow.42 SpotGamma on an ES chart: level lines and zones with labels, prior-day lines and the gamma state badge

3. What you see on the chart

Level lines and zones. Each imported level is drawn at its converted chart price. The two big walls (Call Wall and Put Wall) and the Absolute Gamma strike are drawn as translucent zones (a band ± the zone width), because a converted strike is never tick-exact. Vol Trigger, Zero Gamma, Implied Move High/Low, 0DTE GEX, Key S/R and Combo levels are drawn as lines, each with its own color, width and style. The prior-day High, Low and Settle come as their own lines from the instrument's daily bars.

Labels. Every level carries a colored label box with its name and price, for example Call Wall 7645.25. Labels are anchored to the left, center or right chart edge (default: right, in front of the price axis). When two labels would overlap, they are moved apart automatically so they stay readable.

The gamma state badge. Top right corner: POSITIVE, NEGATIVE or a dash (undetermined). Positive means dealers dampen moves, negative means they amplify them (section 5). Hover the badge for a live day note.

Mouse-over descriptions. Hover any level line and a short explanation appears: what a Call Wall is, what the Vol Trigger means, and so on. The fastest way to learn the levels while you trade.

The additional sets. By default the chart also shows the index-derived (SPX/NDX) and ETF-derived (SPY/QQQ) level sets as thin dash-dot lines next to the primary set. The ETF walls often sit on slightly different strikes than the index walls. Seeing both is deliberate.

Focus-today dimming. Levels inside today's expected range keep full opacity; distant levels are dimmed. The Vol Trigger always stays fully visible.

The SG Import button. In the chart toolbar, next to the instrument and interval selectors. If the toolbar is not available, it appears as a small overlay button in the top right of the chart instead.

The info line (off by default). A diagnostics line in the bottom left with version, trading date and level source. Only worth turning on for a support case.

4. The levels, one by one

A level is only drawn when its display toggle is on. A level you switched off shapes nothing.

Level What it is How to read it
Call Wall The largest call-gamma strike. Resistance and upside magnet: rallies often stall or pin here. Drawn as a zone.
Put Wall The largest put-gamma strike. Major support: sell-offs often slow down here. Drawn as a zone.
Vol Trigger The gamma-state threshold. Above it dealers dampen moves, below it they amplify them. This one level decides the gamma state (section 5).
Absolute Gamma The strike with the largest total gamma. A strong intraday magnet and pin candidate. Drawn as a zone.
Zero Gamma Where dealer gamma flips sign. The border between stabilizing and accelerating hedge flows.
1-Day Implied Move High / Low The move the options market prices in for the day. The expected range for today. Also used for the focus-today dimming.
0DTE GEX positive / negative The largest positive and negative same-day-expiry gamma strikes. Positive = intraday magnet, negative = intraday acceleration zone. Typed in by hand in the import window (optional).
Key S/R strikes SpotGamma's "Key Support & Resistance Strikes". Classic dealer-driven support and resistance.
SG Combo levels Composite strikes ranked by a combined score. The top N are drawn (off by default). Higher score = stronger.
Prior High / Low / Settle The prior session's high, low and settlement. Classic reference levels, straight from the instrument itself, no import needed. The Settle shows the official exchange settlement when your feed delivers it, otherwise the daily close. US holidays are skipped: the thin Globex session of a holiday never serves as the prior day (section 8). The Settle is the strongest prior-day magnet.

5. The gamma state

One level decides the gamma state: the Vol Trigger.

The state is judged on closed bars only, and the Hysteresis setting (default 2 ticks) means it only flips after a confirmed close that many ticks beyond the line. So the state does not flicker every time price grazes the Vol Trigger.

Where you see it: the badge top right shows the live state. In the day archive, every visible trading day carries its own state tag, so you can read back how the state stood on any day. On stale levels (section 8) the badge shows a dash: no gamma statement on numbers that are no longer today's.

Hover the badge for the day note: current price and its distance to the Vol Trigger, what the state means today, and the nearest levels above and below with distances.

6. Import: bring your own SpotGamma

The indicator ships empty and never touches the network. All levels come from your own SpotGamma subscription, in two clicks.

Step 1: copy. In your SpotGamma dashboard, select the whole levels table (header row plus data rows) and copy it with Ctrl+C.

Step 2: import. Click SG Import on the chart. The import window opens. If your clipboard already holds a valid table, the window is pre-filled and shows a preview. Check it, click Import, done. Otherwise paste with Ctrl+V.

While the window is open:

One import updates all charts. The levels are saved per trading day under Documents\NinjaTrader 8\Flow42\GammaLevels\, on your machine, and every open SpotGamma instance refreshes at once.

The import window: paste the copied table, check the preview, click Import

7. From index to futures

SpotGamma quotes its levels on the cash index and the ETF. Your chart is a futures contract. The indicator handles the conversion itself and detects the instrument from the chart:

If your pasted table has a native /ES column, those prices are used directly, no conversion needed. Otherwise the index prices are shifted by the basis (the difference between the futures and the index) and the ETF prices are scaled by a factor (roughly ×10 for SPY, roughly ×41 for QQQ). The indicator reads what it needs from the reference prices in your pasted table, which is why the defaults just work for most users, no extra data subscription needed.

Basis mode. Manual (the default) uses fixed values you can set yourself. Auto measures the basis live from the index series, only useful if your data feed actually carries the index and you enabled the series.

Tick rounding. Every converted level is rounded to the instrument's tick size (ES/NQ: 0.25), so 7664.17 becomes 7664.25. Futures have no odd fractions.

8. Day archive, sessions and stale levels

Day archive. Every import is stored per trading day. Scroll back through history and each visible day shows its own levels and its own gamma tag, never one line dragged across several days. By default the newest 3 trading days render levels; older chart areas stay clean. Adjust with History (trading days).

Session window. Profile Session decides when the levels are shown: ChartTradingHours (always visible, across the whole chart), RTH, ETH, Asian, Custom (each with its own editable start and end time), or ETH_RTH (both windows together as one continuous session). This gates the display and the alerts only. Import, data and calculations run around the clock, and the prior-day High/Low/Settle stay visible at all times.

Stale levels. When the calendar has moved past the import's trading date (a weekend, a holiday, or simply a new day without a fresh import), the levels turn gray and a red re-import warning appears. That is the safety net against trading yesterday's numbers as if they were today's. Import a fresh table and everything returns to color. (A genuine look back at history, an old chart with its matching old import, stays in color. Only a chart at the live edge grays out.)

Holidays and the prior day. The prior-day High, Low and Settle always come from the last US cash trading day. Globex trades a thin, early-closing session on most US holidays, and that session used to slip in as the "prior day": the Tuesday after Labor Day showed Monday's half session instead of Friday. Since the September 2026 build the indicator skips those days by itself: the regular NYSE holidays (New Year's Day, Martin Luther King Day, Presidents' Day, Good Friday, Memorial Day, Juneteenth, Independence Day, Labor Day, Thanksgiving, Christmas, including the observed days when a holiday falls on a weekend) and every holiday of your NinjaTrader trading-hours template. NYSE half days such as Black Friday or Christmas Eve are normal trading days and stay valid references. For a one-off closure (a national day of mourning, for example), add the date under Extra holidays (section 11, group 6). When a holiday session was skipped, the prior-day label names it, and the info line lists the skipped dates.

9. Alerts

All alerts fire in real time, and only inside the active session window when the session gates the display.

All alerts are optional and each has its own toggle.

10. What you need

The stale-levels warning: no import for today yet, still showing yesterday's levels

11. All settings

Settings appear in the NinjaTrader properties panel, grouped and numbered as below. The names in the dialog are US-English; this guide names them the same way. "Default" is the value the indicator ships with.

00. Session Settings

Setting Default What it does
00. Settings Source Local Local: use the session times below. FromHub: read the session times from a Flow.42 AuctionHub on the same instrument and bar period. Set your sessions once, all Flow.42 indicators follow. Falls back to Local when no hub is found.
01. Profile Session RTH The time window the display is gated to: ChartTradingHours (always visible), RTH, ETH, Asian, Custom, or ETH_RTH (both windows as one continuous session). Prior-day High/Low/Settle stay visible around the clock either way.
02. RTH Start / 03. RTH End 15:30 / 22:00 The RTH window, in the chart/data time zone. Type 24h (16:00) or 12h (4:00 PM); both work.
04. ETH Start / 05. ETH End 22:00 / 15:30 The overnight window. Cross-midnight supported.
06. Asian Start / 07. Asian End 01:00 / 08:00 The Asian window.
08. Custom Start / 09. Custom End 15:30 / 22:00 A free window for your own schedule.
10. History (trading days) 3 How many trading days render levels, prior-day lines and gamma tags: current day plus N−1 back.

2. Data Source

Setting Default What it does
Prefer futures column (/ES) On Use the native /ES column of the pasted table when present. Index/ETF conversion is the fallback.
Round levels to tick size On Round every converted level to tick size (ES/NQ: 0.25). Recommended.

3. SPX → ES Basis

Setting Default What it does
Basis mode Manual Manual: use the fixed values below. Auto: measure live from the index series (needs the series enabled and a feed that carries it).
Load SPX index series (for Auto mode) Off Only enable if your feed provides the SPX index under the configured symbol. A missing symbol stops the indicator from loading.
Manual basis (ES − SPX) 0 The fixed futures basis. 0 = not set; the import's own reference prices are used instead.
SPX symbol (data provider) ^SPX Your provider's symbol for the S&P 500 cash index.
Load SPY series (for Auto mode) Off Enables the automatic ES/SPY factor measurement.
Manual SPY factor (ES ÷ SPY) 10.06 ES ≈ SPY × factor. Drifts slowly over time.
SPY symbol (data provider) SPY Your provider's symbol for the SPY ETF.

4. Nasdaq (NQ)

Setting Default What it does
Load NDX series (for Auto mode) Off Usually not needed: the NQ conversion works from the import itself. Only enable if your feed is entitled for the NDX index; otherwise NinjaTrader reports "no historical data" and the indicator cannot load.
Manual NDX basis (NQ − NDX) 0 0 = not set.
NDX symbol (data provider) ^NDX Your provider's symbol for the Nasdaq-100 cash index.
Load QQQ series (for Auto mode) Off Enables the automatic NQ/QQQ factor measurement. QQQ exists on most feeds.
Manual QQQ factor (NQ ÷ QQQ) 41.4 NQ ≈ QQQ × factor. Drifts slowly over time.
QQQ symbol (data provider) QQQ Your provider's symbol for the QQQ ETF.

5. Display

Setting Default What it does
Zone width (± points) 2.0 Half-height of the wall zones in points. Zones express that a converted strike is never tick-exact.
Zone opacity (%) 25 Fill opacity of the wall zones.
Show labels On Name and price as a colored label box next to each level.
Show gamma state badge On The POSITIVE/NEGATIVE badge in the top right.
Show info line Off Diagnostics line bottom left. For support cases.
Include levels in auto-scale Off Off keeps the chart scaled to price, so distant walls do not squeeze the candles. On keeps all levels in view.
Call Wall color IndianRed Zone color of the Call Wall.
Put Wall color SeaGreen Zone color of the Put Wall.
Vol Trigger color / line width / line style DarkOrange / 2 / Solid The Vol Trigger line.
Absolute Gamma color SteelBlue Zone color of the Absolute Gamma strike.
Show additional index-derived set (SPX/NDX) On The index-derived levels as thin dash-dot lines.
Show additional ETF-derived set (SPY/QQQ) On The ETF-derived levels as thin dash-dot lines.
Label font family Arial Font for labels and badge.
Label font bold Off Bold label text.
Label text color White Label text color.
Label background = level color On Each label box uses its level color as background (recommended). Off: the fixed color below.
Label background color (fixed) DimGray Used only when the option above is off.
Label position Right Label anchor: Left, Center or Right edge. Overlapping labels are staggered automatically.
Label edge margin (pixels) 110 Distance between labels and the anchored edge.
Mouse-over descriptions On Short explanation of each level on hover.
Focus today's range (dim distant levels) On Levels inside today's expected range keep full opacity; distant ones dim. The Vol Trigger never dims.
Dimmed opacity (%) 35 Opacity of the dimmed levels.
Zero Gamma color / line width / line style DimGray / 1 / Dash The Zero Gamma line.
1-Day Implied Move color / line width / line style SlateGray / 1 / Dot The Implied Move lines.
0DTE GEX positive / negative color DodgerBlue / Crimson The two 0DTE strikes.
0DTE GEX line width / line style 1 / Solid Both 0DTE lines.
Additional set line width / line style 1 / DashDot The additional index/ETF sets.

6. Prior Day Metrics

Setting Default What it does
Show prior day High/Low/Settle On Automatic from the instrument itself, no import needed. The Settle shows the official exchange settlement when your feed delivers it, otherwise the daily close. The prior day is the last US cash trading day: NYSE holidays and the holidays of your NinjaTrader trading-hours template are skipped automatically; half days count as normal days. If the daily bar for that day is missing or late, the label shows the source date.
Prior High color / line width Goldenrod / 1 The prior-day High line.
Prior Low color / line width Goldenrod / 1 The prior-day Low line.
Prior Settle color / line width Goldenrod / 2 The Settle line: heavier, it is the strongest magnet.
Prior day line style Solid Style of all three lines.
Extra holidays (yyyy-MM-dd, comma-separated) (empty) Additional days without a US cash session that the prior-day references must skip, e.g. a national day of mourning. The regular NYSE holidays are recognized automatically and do not need to be listed here. Example: 2025-01-09, 2027-03-15 (dd.MM.yyyy and M/d/yyyy work too).

7. Key Strikes & Combos

Setting Default What it does
Show Key S/R strikes On Draw the Key Support & Resistance strikes when your pasted table contains them.
Key S/R color / line width / line style Silver / 1 / Dot The Key S/R lines.
Show SG Combo levels Off Draw the top Combo levels. Off by default to keep the chart clean.
Combo color / line width / line style MediumPurple / 1 / Dash The Combo lines.
Combo count (top N by score) 5 How many Combo levels to draw, strongest first.

8. Gamma State & Alerts

Setting Default What it does
Hysteresis (ticks) 2 Anti-flicker: the state only flips after a confirmed close this many ticks beyond the Vol Trigger.
Proximity alert (ticks before zone) 8 Distance at which the wall approach alert fires.
Gamma state day note (badge mouse-over) On The live day note when hovering the badge.
Gamma state change alert On Alert on a POSITIVE/NEGATIVE flip.
Wall alerts enabled On Approach, touch and closing break of both walls, armed once per trading day.

9. Font Settings

Setting Default What it does
Marker Text Size 12 Font size of the level labels.
Overlay Text Size 13 Font size of the badge and the info line.
Tooltip Text Size 12 Font size of the mouse-over descriptions.

12. Good starting points

First run (ES or NQ). Leave everything at default. Open your SpotGamma dashboard, copy the levels table, click SG Import, check the preview, import. Within a second the walls, the Vol Trigger and the prior-day lines appear, and the badge shows the state. Most users never need to change anything else.

ES. The defaults were built for ES. If you also trade off SPY strikes, keep the additional ETF-derived set on. Those walls often sit on different prices.

NQ. Works out of the box. Do not enable the NDX series unless your feed is entitled for the index. It is not needed.

A quieter chart. Turn off the additional sets, Key S/R and Combos. Leave focus-today dimming on. Choose ChartTradingHours as Profile Session if you want the levels visible at all times.

Reading routine. First the gamma state: positive means ranges and magnets, negative means trend. Then the two walls as the day's ceiling and floor. Then the Vol Trigger as the line that decides the state. A close through it is the event that matters.

13. Troubleshooting

The chart is empty after adding the indicator. Nothing has been imported yet. Click SG Import, paste your table, import. The indicator ships empty by design.

The import window says "Already imported on …". The pasted numbers match an earlier day, almost always an old clipboard. Copy the current table fresh from your dashboard. To re-import the same numbers on purpose, tick Import anyway.

The levels are gray with a red warning. They are stale: the calendar has moved past their trading date. Import the current table and the color returns.

A level is missing. Either its display toggle is off, or the level was not in the table you pasted. Check the toggles and re-copy the complete table.

The levels only show during part of the day. That is the Profile Session window. Choose ChartTradingHours to keep them visible across the whole chart.

NQ: the indicator will not load / "no historical data". Load NDX series is on but your feed is not entitled for the NDX index. Turn it off. It is not needed.

The converted levels look shifted by a few points. Make sure you copied the complete table, including its reference-price row. That is what the conversion works from. As a fallback, set a correct Manual basis, or paste a table that has the /ES column.

Labels overlap or sit on the price axis. Change Label position or increase Label edge margin.

Distant walls squeeze the candles. Include levels in auto-scale is on. Turn it off (the default).

Alerts do not fire. Check the alert toggles, check that the levels are not stale (stale levels arm no alerts), and check that you are inside the session window. Wall alerts arm only once per trading day.

No SG Import button. It normally sits in the chart toolbar; without a toolbar it appears as a small overlay button top right. If neither shows, right-click the chart → Reload NinjaScript.

The prior-day lines show the wrong day after a holiday. Since the September 2026 build US holidays are skipped automatically (section 8). If your chart still shows a holiday session as the prior day, you are on an older build. For an unusual closure that is not a regular holiday, add the date under Extra holidays.

14. Glossary

Call Wall / Put Wall: the largest call- and put-gamma strikes; the day's typical ceiling and floor. Drawn as zones.

Vol Trigger: the level that decides the gamma state: above it positive, below it negative.

Absolute Gamma: the strike with the largest total gamma; a strong intraday magnet. Drawn as a zone.

Zero Gamma: the price where dealer gamma flips sign.

Gamma state: POSITIVE (dealers dampen; ranges, magnets), NEGATIVE (dealers amplify; trend, volatility) or a dash (undetermined / stale). Decided at the Vol Trigger, on closed bars, with hysteresis.

Implied Move High / Low: the range the options market prices in for the day.

0DTE GEX: the largest same-day-expiry gamma strikes; intraday magnet and acceleration zones. Typed in by hand.

Key S/R strikes: SpotGamma's Key Support & Resistance strikes.

SG Combo levels: composite strikes ranked by a combined score; the top N are drawn.

Basis / factor: how an index or ETF price becomes a futures price: index plus a difference (basis), ETF times a ratio (factor).

Prior High / Low / Settle: the prior session's high, low and settlement, from the instrument itself. The Settle is the strongest prior-day magnet.

Stale levels: levels whose trading date lies in the past; drawn gray with a re-import warning.

Day archive: every import stored per trading day, so each visible day shows its own levels.

Profile Session: the time window that gates display and alerts. ChartTradingHours means always visible.

AuctionHub: an invisible Flow.42 helper indicator. Set your session times once in the hub; every Flow.42 indicator with Settings Source = FromHub follows them.


Flow.42 SpotGamma is a context and visualization tool. It draws the dealer-positioning levels from your own SpotGamma subscription and the gamma state derived from them; it does not provide automated trade signals or trading advice. The conclusion stays yours. Trade less. Trade better. Trade with clarity.

© 2026 TTW Trading Systems PTE. LTD. · Flow.42 Analytics · All rights reserved.