OPEN-SOURCE SCRIPT

Aurora: Order Flow Liquidity Heatshelves

15 584
Aurora — Order-Flow Liquidity Heat Shelves [GBB]

Aurora reads the volume footprint inside each bar and marks the price levels where order flow actually concentrated. Not at pivots and not at round numbers like we Traders normally like to do manually. It marks the rows where real volume traded, sorted into two honest categories and tracked across their whole life until they break.

Most "liquidity" indicators draw a box wherever volume was high and call it support. Aurora splits that into two things that behave very differently.

Absorption walls are high volume with balanced delta, printed in the extreme third of the bar. That signature is passive limit orders eating aggression. These are the levels worth calling support and resistance. Demand below, supply above.

Initiative nodes are the rows with the largest one-sided delta. That is aggressor commitment, market orders pushing a direction. It often gets defended, but it is not resting liquidity, so Aurora labels it separately and never pretends it is the same thing. If you only want the genuine walls, turn initiative detection off.

Rows are volume-gated first, then candidates are picked. A row has to clear a fraction of the bar's busiest row before it is even considered.

Levels have a lifecycle, not just a birthday

Every bar, each active shelf gets one of three verdicts:

  1. Defended. A wick enters the band and the bar closes back on the correct side. Touch count goes up, the level stays.
  2. Broken. Price closes beyond the far edge by a configurable ATR buffer. The buffer kills noise breaks and is gap proof. Closes inside the buffer stay pending, no verdict.
  3. Flipped. A broken wall retested from the other side and rejected is reborn with inverted polarity. Broken demand that starts acting as resistance becomes supply. Once per shelf.


Overlapping same-side, same-type nodes merge instead of stacking. Volume and delta accumulate, the band widens to the union, and the activity clock resets so a level that keeps getting defended outlives the memory window.

Key walls are chosen by strength divided by distance, not distance alone

A triple-defended level two ATR away can outrank a fresh weak node sitting right next to price. Spotlighted walls on the same side are forced apart by a minimum gap so two adjacent shelves cannot both burn a spotlight on the same zone. Brightness scales with the strength percentile, so the strongest shelf on screen glows hardest and the rest fall off from there.

The cockpit

Shows the nearest spotlighted supply and demand with live ATR distance, window cumulative delta, current bar delta, and the session POC. The distances re-evaluate every tick, so price running through a wall intrabar just promotes the next one rather than printing a negative number. The break and flip verdicts still wait for the bar to close.

Alerts

Four classic alertcondition hooks for new wall, defended, broken, and flipped. There is also an optional JSON webhook mode that emits one structured payload per event, built for piping into your own backend.

IMPORANT, PLEASE READ THIS:

This needs footprint data, which means a TradingView Premium or Ultimate plan. Free and Essential plans cannot access it.

`request.footprint()` reconstructs historical bars from lower timeframe data using tick-rule delta classification. That means historical shelves are approximations. Live shelves, forming in front of you, are the real thing. Treat the history as a decent estimate of where flow clustered, not as tick-exact truth. That means in replay mode Aurora will not show you the truth!

Aurora is a map of where liquidity sat and how it held up. It is not a buy or sell signal and it will not tell you direction. A defended wall can still break on the next bar. Use it for context, for where you expect reactions, and for where your stop is sitting relative to real volume.

Settings

Footprint Engine

Ticks per footprint row. The price height of each volume node, measured in ticks. Smaller values cut the bar into finer price slices and give you more precise levels, at the cost of more rows to chew through. Bump it up on high-priced or volatile symbols where one tick is tiny.

Value Area %. The share of volume counted as the value area when the footprint is built. Standard is 70. Leave it unless you know why you are changing it.

Shelf memory (bars). How many bars of inactivity a shelf can sit through before it gets dropped. This counts inactivity, not age. Every defense or merge resets the clock, so a level that keeps getting respected can live far longer than this number suggests.

Volume gate. A row has to hold at least this fraction of the bar's busiest row to be considered at all. This runs before any candidate is picked, so it is your first filter against noise. Raise it to keep only the heaviest rows, lower it to catch more.

Max shelves. A hard cap on stored shelves. When you hit it, the weakest broken shelves get evicted first, then the weakest overall. Mostly a performance guard.

Node Detection

Detect absorption walls: Turns on the genuine walls, the high volume balanced delta rows in a bar's extreme third. If you only trust passive liquidity, this is the one to keep.

Absorption max delta over volume: The strictness dial for what counts as absorption. A row qualifies only if its absolute delta divided by total volume is at or below this. Lower means stricter, demanding more balanced two-sided flow. Raise it if you are getting too few walls and want to loosen the definition.

Detect initiative nodes: Turns on the max delta rows, the aggressor commitment levels. Useful context, but remember these are not resting liquidity. Turn this off if you want a cleaner chart with walls only.

Break buffer (×ATR): How far past a band's far edge price has to close before the level is called broken, in ATR. This kills noise breaks. Closes inside the buffer stay pending with no verdict. Widen it on choppy symbols to stop premature breaks, tighten it if breaks feel too slow to register.

Allow S/R flips: Lets a broken wall that gets retested from the other side and rejected come back with inverted polarity. One flip per shelf. Turn it off if you would rather a broken level just stay dead.

Visuals

The four color inputs: set absorption demand, absorption supply, initiative buying, and initiative selling. They are kept distinct on purpose so you can read kind and side at a glance.

Key walls per side: How many walls to spotlight above and below price. These are ranked by strength divided by distance, not distance alone.

Min gap between key walls (×ATR): Spotlighted walls on the same side have to sit at least this far apart. Inside a cluster the strongest one wins the slot and the next distinct level gets promoted, so two adjacent shelves cannot both burn a spotlight on the same zone. Set it to 0 to switch this off.

Glow zone height (×ATR): The vertical size of the glow around a key wall. Pure cosmetics, set it to whatever reads well on your chart.

Max core brightness: How bright the strongest shelf's core line gets. Weaker shelves scale down from here by strength percentile, so this is really the top of the brightness range.

Show minor walls: Draws the faint background walls that did not earn a spotlight. Turn it off for a minimal chart with key walls only.

Minor wall thickness (ticks): The drawn height of those faint minor walls. Display only, it does not change detection.

Project forward (bars): How far the walls and labels extend to the right of the current bar. Set to 0 to stop at the live bar.

Hide walls beyond % from price: A render-time filter that hides walls farther than this percent from current price, so the price scale stays near the action. Set to 0 to show everything.

Fade broken walls: Draws broken walls more transparently than active ones. Off draws them at the same weight.

Alerts

Fire JSON webhook alerts: Emits one structured JSON payload per event, new wall, defended, broken, or flipped, on bar close. This is the one for piping into your own backend. The four classic alertcondition hooks fire regardless of this toggle, so leave it off if you just want plain TradingView alerts.

Dashboard

Show order-flow cockpit: Toggles the live panel showing nearest supply and demand, window and bar delta, and POC.

Text size: Sizing for the cockpit text, tiny through large.

Clause de non-responsabilité

Les informations et publications ne sont pas destinées à être, et ne constituent pas, des conseils ou recommandations financiers, d'investissement, de trading ou autres fournis ou approuvés par TradingView. Pour en savoir plus, consultez les Conditions d'utilisation.