Auction Shelf Ledger TradingView Indicator

Levels drawn by hand drift. This support resistance indicator TradingView script builds them from data instead. It clusters confirmed swing pivots that sit within half an ATR of each other into a single shelf, then counts how often price returns. A shelf with two or more touches becomes tradable. Signals fire when price tests that shelf, rejects it, and then reclaims a fast EMA in the same direction.

It is free and open source. You can add it to any chart from the Auction Shelf Ledger script page on TradingView, and the full Pine source is published there for you to read.

What Auction Shelf Ledger plots on the price chart

Everything renders on the price chart. A two-pixel horizontal line marks the shelf that price just rejected. The script paints it in the buy or sell color and extends it twelve bars to the right. Only the most recent rejection line stays on screen. Signal bars carry a three-layer circle marker with the text ASL, below the bar for longs and above it for shorts. The background tints green or pink while a directional bias holds, and grey while price sits inside a shelf zone. An eight-row dashboard reports the ledger state.

How Auction Shelf Ledger is built

Clustering pivots into shelves

The engine watches pivot highs and pivot lows with six bars on each side. A pivot only exists after six later bars close, so the ledger never uses unconfirmed swings. Each confirmed pivot then passes into a register function.

That function scans the existing shelves. If the new pivot sits within 0.5 x ATR(14) of a stored shelf price, the two merge. The merge raises the touch count by one and adds the bar volume to that shelf’s running total. It also moves the shelf price to the midpoint of the old level and the new pivot.

A pivot outside every tolerance band creates a fresh shelf with one touch. The ledger holds eight shelves by default. When a ninth arrives, the oldest entry drops off the front. Both the cluster tolerance and the shelf cap are inputs, so you can widen the bands on noisy symbols.

From rejection to entry

On every bar the script finds the nearest shelf that already holds at least two touches. It then applies a buffer of 0.15 x ATR. Price counts as at the shelf when the bar low sits below shelf plus buffer and the bar high sits above shelf minus buffer.

A rejection up needs that contact, a close above shelf plus buffer, and a close above the open. A rejection down mirrors it. Each rejection latches a directional bias, and that bias holds until the opposite rejection replaces it.

Entry timing depends on the mode. In the default mode the script waits for a close cross of the 9-period EMA inside the active bias. Switch on Rejection-Only Mode and it fires on the rejection bar itself, which is rarer. A position state blocks repeat signals in the same direction, a five-bar cooldown spaces them out, and barstate.isconfirmed keeps every marker on closed bars. It does not repaint.

How to read the signals

Read the dashboard first. State cycles through NO TEST, AT SHELF, REJECTED UP and REJECTED DOWN. Nearest Shelf gives the exact price the engine is defending. Shelf Touches shows how well proven that level is. Two touches meet the default bar, while four or five carry more history.

The background tint is the bias, not the signal. Green means the last rejection pushed price up, pink means the opposite. Markers appear inside that tint when price crosses the 9 EMA in the same direction. A tint with no marker means the entry trigger has not arrived yet.

Shelves Tracked shows how full the ledger is. When it sits at the cap of eight, the oldest levels are already rolling off. Raise Max Shelves Tracked on higher timeframes where you want older structure retained. Raise Min Touches when the chart prints too many weak levels.

Every Auction Shelf Ledger setting explained

The script exposes 17 inputs, grouped in the settings panel exactly as shown below. Defaults are the published values.

Shelves

SettingWhat it doesDefaultRange
Pivot LengthSets the pivot length used in the calculation.62 to 30
Cluster Tol x ATRPivots within k x ATR merge into the same shelf.0.50.1 to 3.0
Min Touches (strong)Touches required for a shelf to be tradable.22 to 10
Max Shelves TrackedSets the max shelves tracked used in the calculation.82 to 20
Reject Buffer x ATRSets the reject buffer x atr used in the calculation.0.150.0 to 2.0
ATR LengthSets the atr length used in the calculation.145 to 50

Signal Logic

SettingWhat it doesDefaultRange
Entry Reclaim EMAAfter a shelf rejects price, a close-cross of this EMA in the rejection direction times the entry.92 to 50
Rejection-Only ModeOn = fire strictly on the shelf-rejection bar (rarer, classic). Off = EMA reclaim inside the active rejection bias (more signals).offon / off
Cooldown BarsSets the cooldown bars used in the calculation.51 to 40

Filters

SettingWhat it doesDefaultRange
Restrict to SessionToggles restrict to session on the chart.offon / off
Session WindowControls session window.0000-2400

Visual

SettingWhat it doesDefaultRange
Show Shelf LinesToggles show shelf lines on the chart.onon / off
Show DashboardToggles show dashboard on the chart.onon / off
Show 3-Layer GlowToggles show 3-layer glow on the chart.onon / off
Buy ColorColour used for buy color.#4ade80
Sell ColorColour used for sell color.#f472b6
Dashboard BGColour used for dashboard bg.color.new(#0c1810, 16)

Alerts built into Auction Shelf Ledger

The script ships 14 alert conditions. Open the alert dialog on the chart, pick the indicator as the condition source, then choose the event you want. Alerts fire on the close of the bar, so they follow the same confirmed-bar rule the on-chart signals use.

  • ASL Buy
  • ASL Sell
  • ASL Any Signal
  • ASL Shelf Test
  • ASL Reject Up
  • ASL Reject Down
  • ASL New High Pivot
  • ASL New Low Pivot
  • ASL Strong Shelf
  • ASL Ledger Full
  • ASL At Shelf
  • ASL Webhook JSON

Other markets and timeframes

The maths uses no fixed price distances. Cluster tolerance, reject buffer and shelf width all scale with ATR, so the engine rescales itself between EURUSD, gold, an index future and a crypto pair. Volume enters the ledger as a running sum per shelf, yet it never gates a signal, so thin volume feeds break nothing. On very fast intraday charts, shorten the pivot length from six, because clean six-bar swings grow scarce there.

Limitations worth knowing

The pivot rule imposes a delay. A swing only registers six bars after it forms, so the newest high or low is never in the ledger yet. Levels forming at the hard right edge of the chart appear only once confirmation catches up.

The ledger is shallow by design. Eight shelves fit at default, and the oldest drops out when a new one arrives. Long-standing levels can vanish from the list simply because the market printed several fresh pivots elsewhere.

The volume column accumulates but does nothing. Only touch count decides whether a shelf is tradable. The script also draws one shelf line at a time, offers no targets or stops, and filters nothing beyond the optional session window.

Get Auction Shelf Ledger on TradingView

Open Auction Shelf Ledger on TradingView

If you also trade MetaTrader, the MT4 and MT5 indicator library is available below.

Get the complete indicator library

One email unlocks the full MT4 and MT5 indicator library. This TradingView script stays free on TradingView – the button above adds it to your chart.

Using it alongside MetaTrader

Adding a script on TradingView takes one click, so there is no install step here. If you want the same idea on MetaTrader, the MT4 and MT5 indicator installation guide walks through copying files into the data folder and attaching them to a chart. You can also browse the full MetaTrader indicator library, the MT4 indicators section, or the other free TradingView scripts published on this profile. For related chart tools see the MT5 indicators section and the forex trading strategies guides.

External references

Frequently asked questions

Does the Auction Shelf Ledger repaint?

No. Pivots confirm after six bars on each side, and every signal requires barstate.isconfirmed. Markers print on closed bars and stay put.

What makes a shelf strong?

Touch count. Each pivot that lands within 0.5 x ATR of an existing shelf raises that shelf’s touch count and nudges the stored price to the midpoint. The default Min Touches setting is 2, and you can raise it to 10 for stricter levels.

What is the difference between the two signal modes?

Rejection-Only Mode fires on the rejection bar itself, the classic and rarer version. The default mode arms a bias on rejection, then waits for a close cross of the 9-period EMA in that direction. The default gives more entries with a slight delay.

Is it multi-timeframe?

No. The script reads only the chart timeframe and makes no request.security calls, so shelves reflect the chart you have open. Load the same script on a higher timeframe in a second pane for wider structure. Trading carries risk, and past performance does not indicate future results.

How much should I rely on this indicator?

Treat it as one input, not a decision. It is a chart analysis tool, not trading advice. Test it on your own markets and timeframes before relying on it. Results are not guaranteed; past performance is not indicative of future results.

Dominic Walsh - Forex trader and MT4/MT5 developer

About the author

Written by Dominic Walsh, a Forex trader and MT4/MT5 indicator, Expert Advisor and script developer. Every tool on forexmt4systems.com is tested on live charts before release and ships with ready-to-use compiled MT4 (.ex4) and MT5 (.ex5) files. Learn more about the trader and developer behind this site.

Leave a Comment