OPEN-SOURCE SCRIPT
Aktualisiert Absorption Shelf Dwell-Coil Reversal Levels

█ OVERVIEW
Absorption Shelf finds reversal LEVELS the opposite way round from a pivot or a profile POC: it starts from TIME. A price band becomes a "shelf" because price DWELT there — an anomalous amount of occupation time — while its range COILED (volatility compressed). Only then do orthogonal order-flow lenses CONFIRM whether that shelf is genuinely ABSORBING flow rather than merely balancing, and a confirmed close back out of the band is treated as the reversal. It asserts no signal and no win-rate; it shows, honestly and past-only, how often price has actually rejected off these shelves versus a matched base rate.
█ HOW IT WORKS
Substrate — one lower-timeframe stream (request.security_lower_tf) supplies a per-bar buy/sell split (BVC-Normal / Tick / Geometry) for delta and signed order flow; it falls back to the chart bar when no intrabar data exists. The method in force is shown (REAL / EST).
Dwell field (the level generator) — a rolling, fixed-tick OCCUPATION-TIME map: each confirmed bar adds time to every price level its range covers, and the bar leaving the window subtracts it exactly (a reversible ring buffer). Levels at or above a self-set percentile κ are "hot"; adjacent hot levels merge into candidate BANDS.
Coil + containment (the stall trigger) — a band is promoted to an ACTIVE shelf only when compression (1 − ATRfast/ATRslow) clears a threshold AND enough recent closes sat inside the band. Dwell + coil together are what make a quiet band a shelf — this is the part a pivot- or profile-based level does not have.
Confirmation lenses (on the band only) — Effort-vs-Result √-law residual (E: heavy volume, little price result = absorption), localized Kyle-λ collapse (K: price barely moves per unit signed flow), Dwell-decay (D: the band has stopped accreting time = primed to release), Rejection-wick clustering (W: Wilson-floored), and CVD divergence (V). Each abstains cleanly on missing data.
Fusion — the active lenses combine by correlation-aware Bayesian log-odds: each is reliability-shrunk by its own past edge and Kish-decorrelated so the absorption family (E, K, D) contributes about one lens' worth, not three, then squashed to P_abs → BALANCE / ABSORBING / PRIMED. Shelves are down-weighted in strong trend (a built-in efficiency-ratio regime gauge, or a consumed external one).
Flip + lifecycle — a confirmed close out of the band against the approach is the reversal (a ▲ bullish or ▼ bearish flip, coloured by direction). Shelves carry a lifecycle: forming → active → flipped → spent → naked (kept until retested).
Reject calibration (honesty layer) — when price first touches an active shelf, the script forward-tests whether it REJECTS (turns back by k·ATR) BEFORE it CONTINUES through by k·ATR, versus the matched unconditional reject-vs-continue base rate: reject% (n, Wilson 95% lower bound) vs base% → edge, broken out by tag (does PRIMED out-reject ABSORBING out-reject BALANCE?), split in-sample / out-of-sample, and Bonferroni-deflated. Past-only, non-repaint.
█ HOW TO USE
Read the shelves as context, not as entries. A teal band below price is a support shelf (price is being held from below); a red band above is a resistance shelf. Brightness tracks how strongly the band was dwelt. The tag tells you what the flow says about it — BALANCE is just a quiet level, ABSORBING and PRIMED mean the lenses agree a wall is soaking flow there. A ▲/▼ flip marks where price actually closed back out of a shelf against its approach. The calibration line is the honest part: it tells you, on this symbol and timeframe, how often tagging a shelf has preceded a real rejection versus random — and shows nothing when the sample is small. A flat read with no active shelf is a genuine "no location here", not a broken one. The dashboard defaults to Compact (shelf, tag, dwell %, flip); switch it to Pro for the lens-by-lens glyphs and the calibration breakout. Horizon and holding are yours to decide; it emits no orders.
█ INPUTS
01 · Data & Trade-Side — LTF granularity, classifier, BVC sharpness.
02 · Dwell Field — ticks-per-level, dwell window, hot-level percentile κ, band merge gap, min band width.
03 · Coil & Stall — fast/slow ATR, minimum coil to promote, containment lookback / fraction / buffer.
04 · Confirmation Lenses — enable E / K / D / W / V and their sensitivities.
05 · Fusion — Kish decorrelation, self-set tag percentiles (absorbing / primed).
06 · Flip & Lifecycle — flip distance (×ATR), ghost retention, max shelves tracked.
07 · Regime & Self-Cal — trend down-weight (built-in efficiency ratio, or consume an external regime).
08 · Calibration — reject size (×ATR), horizon, Bonferroni, in/out-of-sample split.
09 · Microstructure Links (optional) — consume external Toxicity or Kyle λ; never recomputed.
10 · Display — bands, how far back to draw, badge, lens glyphs, flip markers, naked shelves, dwell heat spine, dashboard detail (Compact default / Pro).
11 · Style — Auto / Dark / Light theme.
12 · Exports — shelf levels, tag, P_abs, dwell percentile, coil, flip direction, naked levels, reject edge, active lenses.
█ HONESTY & LIMITATIONS
Descriptive, not predictive. Order-flow side is an OHLCV ESTIMATE (BVC / tick / geometry), not a Level-2 book; on symbols with no volume the flow lenses (E, K, V) abstain and the shelf runs on dwell + coil + wick alone, stated in the dashboard. Coil is measured chart-wide (ATR ratio) while containment is per band. The reject calibration is a past-only, first-touch two-barrier (reject-vs-continue) forward test against a matched base rate with a Wilson lower bound, tag buckets, an in/out-of-sample split and a Bonferroni deflation; a small sample is discounted automatically and no edge shown means honest, not broken. Non-repaint by construction: dwell and coil accrue on confirmed bars, shelves promote from confirmed history, the flip fires on a confirmed close, calibration events resolve only after the horizon, and the render recomputes once per confirmed bar. For runtime the script processes the most recent ~5000 bars and gates the calibration engine behind its own toggle. It prints no verdict and no win-rate.
█ ORIGINALITY
One coherent object: a reversal level whose EXISTENCE comes from occupation time plus volatility compression, with order flow demoted to confirmation on that band. This is deliberately distinct from a volume/footprint profile (those build the level from volume-at-price and fire sweeps event-by-event), from pivot- or kernel-based support/resistance (those build the level from swing geometry), and from a potential-well or mean-reversion model (those are price-dynamics with no time-at-price). The dwell-time + coil "absorption shelf" as the level generator, the dwell-decay lens that only this occupation field makes possible, and the correlation-aware fusion that explicitly discounts absorption-lens redundancy are the specific original contributions. Every block was written from scratch for this tool; the lenses feed one decision (is this band absorbing?) rather than being independent indicators stapled together.
█ CREDITS
Occupation-time / TPO at price — Steidlmayer / Market Profile. Price-impact λ (delta-response) — Kyle (1985). Square-root market-impact law — Almgren; Tóth, Bouchaud et al. Bulk Volume Classification — Easley, López de Prado & O'Hara. Trade-side tick rule — Lee & Ready (1991). Two-barrier / triple-barrier forward test — López de Prado. Wilson score interval — Wilson (1927). Design-effect / effective sample — Kish (1965). Code written from scratch; no external script reused.
This script is for analysis and education. It is not financial advice.
Absorption Shelf finds reversal LEVELS the opposite way round from a pivot or a profile POC: it starts from TIME. A price band becomes a "shelf" because price DWELT there — an anomalous amount of occupation time — while its range COILED (volatility compressed). Only then do orthogonal order-flow lenses CONFIRM whether that shelf is genuinely ABSORBING flow rather than merely balancing, and a confirmed close back out of the band is treated as the reversal. It asserts no signal and no win-rate; it shows, honestly and past-only, how often price has actually rejected off these shelves versus a matched base rate.
█ HOW IT WORKS
Substrate — one lower-timeframe stream (request.security_lower_tf) supplies a per-bar buy/sell split (BVC-Normal / Tick / Geometry) for delta and signed order flow; it falls back to the chart bar when no intrabar data exists. The method in force is shown (REAL / EST).
Dwell field (the level generator) — a rolling, fixed-tick OCCUPATION-TIME map: each confirmed bar adds time to every price level its range covers, and the bar leaving the window subtracts it exactly (a reversible ring buffer). Levels at or above a self-set percentile κ are "hot"; adjacent hot levels merge into candidate BANDS.
Coil + containment (the stall trigger) — a band is promoted to an ACTIVE shelf only when compression (1 − ATRfast/ATRslow) clears a threshold AND enough recent closes sat inside the band. Dwell + coil together are what make a quiet band a shelf — this is the part a pivot- or profile-based level does not have.
Confirmation lenses (on the band only) — Effort-vs-Result √-law residual (E: heavy volume, little price result = absorption), localized Kyle-λ collapse (K: price barely moves per unit signed flow), Dwell-decay (D: the band has stopped accreting time = primed to release), Rejection-wick clustering (W: Wilson-floored), and CVD divergence (V). Each abstains cleanly on missing data.
Fusion — the active lenses combine by correlation-aware Bayesian log-odds: each is reliability-shrunk by its own past edge and Kish-decorrelated so the absorption family (E, K, D) contributes about one lens' worth, not three, then squashed to P_abs → BALANCE / ABSORBING / PRIMED. Shelves are down-weighted in strong trend (a built-in efficiency-ratio regime gauge, or a consumed external one).
Flip + lifecycle — a confirmed close out of the band against the approach is the reversal (a ▲ bullish or ▼ bearish flip, coloured by direction). Shelves carry a lifecycle: forming → active → flipped → spent → naked (kept until retested).
Reject calibration (honesty layer) — when price first touches an active shelf, the script forward-tests whether it REJECTS (turns back by k·ATR) BEFORE it CONTINUES through by k·ATR, versus the matched unconditional reject-vs-continue base rate: reject% (n, Wilson 95% lower bound) vs base% → edge, broken out by tag (does PRIMED out-reject ABSORBING out-reject BALANCE?), split in-sample / out-of-sample, and Bonferroni-deflated. Past-only, non-repaint.
█ HOW TO USE
Read the shelves as context, not as entries. A teal band below price is a support shelf (price is being held from below); a red band above is a resistance shelf. Brightness tracks how strongly the band was dwelt. The tag tells you what the flow says about it — BALANCE is just a quiet level, ABSORBING and PRIMED mean the lenses agree a wall is soaking flow there. A ▲/▼ flip marks where price actually closed back out of a shelf against its approach. The calibration line is the honest part: it tells you, on this symbol and timeframe, how often tagging a shelf has preceded a real rejection versus random — and shows nothing when the sample is small. A flat read with no active shelf is a genuine "no location here", not a broken one. The dashboard defaults to Compact (shelf, tag, dwell %, flip); switch it to Pro for the lens-by-lens glyphs and the calibration breakout. Horizon and holding are yours to decide; it emits no orders.
█ INPUTS
01 · Data & Trade-Side — LTF granularity, classifier, BVC sharpness.
02 · Dwell Field — ticks-per-level, dwell window, hot-level percentile κ, band merge gap, min band width.
03 · Coil & Stall — fast/slow ATR, minimum coil to promote, containment lookback / fraction / buffer.
04 · Confirmation Lenses — enable E / K / D / W / V and their sensitivities.
05 · Fusion — Kish decorrelation, self-set tag percentiles (absorbing / primed).
06 · Flip & Lifecycle — flip distance (×ATR), ghost retention, max shelves tracked.
07 · Regime & Self-Cal — trend down-weight (built-in efficiency ratio, or consume an external regime).
08 · Calibration — reject size (×ATR), horizon, Bonferroni, in/out-of-sample split.
09 · Microstructure Links (optional) — consume external Toxicity or Kyle λ; never recomputed.
10 · Display — bands, how far back to draw, badge, lens glyphs, flip markers, naked shelves, dwell heat spine, dashboard detail (Compact default / Pro).
11 · Style — Auto / Dark / Light theme.
12 · Exports — shelf levels, tag, P_abs, dwell percentile, coil, flip direction, naked levels, reject edge, active lenses.
█ HONESTY & LIMITATIONS
Descriptive, not predictive. Order-flow side is an OHLCV ESTIMATE (BVC / tick / geometry), not a Level-2 book; on symbols with no volume the flow lenses (E, K, V) abstain and the shelf runs on dwell + coil + wick alone, stated in the dashboard. Coil is measured chart-wide (ATR ratio) while containment is per band. The reject calibration is a past-only, first-touch two-barrier (reject-vs-continue) forward test against a matched base rate with a Wilson lower bound, tag buckets, an in/out-of-sample split and a Bonferroni deflation; a small sample is discounted automatically and no edge shown means honest, not broken. Non-repaint by construction: dwell and coil accrue on confirmed bars, shelves promote from confirmed history, the flip fires on a confirmed close, calibration events resolve only after the horizon, and the render recomputes once per confirmed bar. For runtime the script processes the most recent ~5000 bars and gates the calibration engine behind its own toggle. It prints no verdict and no win-rate.
█ ORIGINALITY
One coherent object: a reversal level whose EXISTENCE comes from occupation time plus volatility compression, with order flow demoted to confirmation on that band. This is deliberately distinct from a volume/footprint profile (those build the level from volume-at-price and fire sweeps event-by-event), from pivot- or kernel-based support/resistance (those build the level from swing geometry), and from a potential-well or mean-reversion model (those are price-dynamics with no time-at-price). The dwell-time + coil "absorption shelf" as the level generator, the dwell-decay lens that only this occupation field makes possible, and the correlation-aware fusion that explicitly discounts absorption-lens redundancy are the specific original contributions. Every block was written from scratch for this tool; the lenses feed one decision (is this band absorbing?) rather than being independent indicators stapled together.
█ CREDITS
Occupation-time / TPO at price — Steidlmayer / Market Profile. Price-impact λ (delta-response) — Kyle (1985). Square-root market-impact law — Almgren; Tóth, Bouchaud et al. Bulk Volume Classification — Easley, López de Prado & O'Hara. Trade-side tick rule — Lee & Ready (1991). Two-barrier / triple-barrier forward test — López de Prado. Wilson score interval — Wilson (1927). Design-effect / effective sample — Kish (1965). Code written from scratch; no external script reused.
This script is for analysis and education. It is not financial advice.
Versionshinweise
v1.1 — VSA bar-event confluence on the shelves. Additive; the dwell-coil engine, the five fusion lenses and the reject-calibration harness are byte-for-byte v1.0.The tool locates absorption shelves from occupation time and volatility coil, then grades them with its five lenses. This update adds the missing bar-level read: what the individual bars doing the absorbing are saying. Because the shelf is already the level, a named Wyckoff bar-event landing on that level is high-quality confluence for the flip.
What's new
Named VSA / Wyckoff bar events, marked on the chart. Effort-vs-result classifications on each bar — Upthrust (new high rejected on volume → bearish trap), Shakeout (new low reclaimed → bullish trap), Stopping Volume (wide down-bar closing off its low → demand stepping in), and Buying / Selling Climax (peak-volume wide bars → exhaustion). Optionally also the low-volume No-Demand / No-Supply events. They print as small tagged markers (UT / SO / SV / BC / SC) — using plotshape only, so the label and box pools the shelf bands draw from are completely untouched.
Why they pair with the shelves. An Upthrust into a resistance shelf, or Stopping Volume on a support shelf, is exactly the bar-by-bar evidence that the shelf is doing its job — a reason to trust the flip. The events read the same effort-vs-result vocabulary the shelf's own lenses use.
Optional time-of-day volume baseline. When on, "high volume" is judged against the same wall-clock slot on prior sessions rather than a flat window — so a normal-for-the-open bar isn't flagged as a false climax, and a genuinely heavy-for-lunch bar is caught. Default off; state-safe (no repainting ta.*).
New export EXP_VSABias (+1 bullish / −1 bearish / 0) and alerts for the trap, stopping and climax events. The whole layer toggles off in group 13.
What is unchanged. The occupation-time dwell field, the coil/containment promotion, the five confirmation lenses (Effort-vs-Result, Kyle-λ collapse, Dwell-decay, Rejection-wick, CVD-divergence), the correlation-aware Bayesian fusion, the flip lifecycle, and the Wilson-bounded first-touch reject-vs-continue calibration with its IS/OOS split are all byte-for-byte v1.0. The VSA events are read-only bar classifications; they feed nothing back into the shelf detection, fusion, or calibration.
Still a study, not a signal service — it asserts no buy/sell and no win-rate. Order-flow side from OHLCV is an estimate (method shown; lenses abstain on no-volume). Non-repainting: everything accrues on confirmed bars and calibration resolves only after its horizon. Concept credits unchanged (Steidlmayer occupation time; Kyle λ; √-law impact — Almgren, Tóth-Bouchaud; BVC — Easley-López de Prado-O'Hara; Lee-Ready; two-barrier test — López de Prado; Wilson; Kish); the VSA taxonomy is the standard Wyckoff/Volume-Spread-Analysis vocabulary. Research/education only, not financial advice.
Open-source Skript
Ganz im Sinne von TradingView hat dieser Autor sein/ihr Script als Open-Source veröffentlicht. Auf diese Weise können nun auch andere Trader das Script rezensieren und die Funktionalität überprüfen. Vielen Dank an den Autor! Sie können das Script kostenlos verwenden, aber eine Wiederveröffentlichung des Codes unterliegt unseren Hausregeln.
Haftungsausschluss
Die Informationen und Veröffentlichungen sind nicht als Finanz-, Anlage-, Handels- oder andere Arten von Ratschlägen oder Empfehlungen gedacht, die von TradingView bereitgestellt oder gebilligt werden, und stellen diese nicht dar. Lesen Sie mehr in den Nutzungsbedingungen.
Open-source Skript
Ganz im Sinne von TradingView hat dieser Autor sein/ihr Script als Open-Source veröffentlicht. Auf diese Weise können nun auch andere Trader das Script rezensieren und die Funktionalität überprüfen. Vielen Dank an den Autor! Sie können das Script kostenlos verwenden, aber eine Wiederveröffentlichung des Codes unterliegt unseren Hausregeln.
Haftungsausschluss
Die Informationen und Veröffentlichungen sind nicht als Finanz-, Anlage-, Handels- oder andere Arten von Ratschlägen oder Empfehlungen gedacht, die von TradingView bereitgestellt oder gebilligt werden, und stellen diese nicht dar. Lesen Sie mehr in den Nutzungsbedingungen.