pine-scripts

Market Pressure Scale

Two-component oscillator that separates Setup Pressure (market coiling for a move) from Impulse Pressure (active directional momentum). Both run on a 0–100 scale in the same sub-pane. A phase label, signal markers, and a Move Strength column gauge complete the picture.

TradingView: https://de.tradingview.com/script/y36Lhppi/

Why two components?

Classic volatility indicators (ATR, Bollinger Width) measure compression but go quiet right when a breakout fires. Momentum oscillators do the opposite. This indicator tracks both simultaneously so you can see the full coil-and-release cycle in one panel.

Curves

Curve Color What drives it
Setup Pressure Orange (thick) ATR compression, BB compression, S/R proximity, volume drying up
Impulse Pressure Green (thick) Range expansion vs ATR, relative volume, candle body ratio

Phases

Priority order — first match wins:

Phase Condition
Sideways / Chop Range Chop Filter active (ADX < 16, |DI+ − DI−| < 5, price mid-range)
Impulse Running Impulse > 70
Sideways / Quiet Setup < 40 and Impulse < 40
Neutral everything else

Range Chop Filter

A chop filter (ADX < 16 and DI+/DI− within 5 of each other while price sits in the middle 60% of the range) takes priority over every other phase, and gates Failed Coil and Reversal so they only evaluate at a genuine range extreme, not on coincidental compression in the middle of a dead range.

Move Strength

Blue columns (Show Columns toggle, default on), plotted behind Setup/Impulse Pressure rather than as a full-pane background so they add information without washing out the two curves. Tracks the expected magnitude of the eventual move — not whether a setup exists, but how forceful the release is likely to be once it fires. Built from compression depth (energy stored), range-edge proximity (location), and ADX (trend confirmation), and suppressed to a third of its value while the Range Chop Filter is active. Colored in 5 opacity bands (near-invisible → faint → medium → strong → near-solid blue) rather than a continuous gradient, so consecutive bars read as a clear step change instead of a near-uniform tint. Also shown as a numeric 0–100 row in the dashboard table with the same banded cell color.

Signal markers

Small labels in the oscillator panel with hover tooltips. Each marker is individually toggleable.

Label Trigger Meaning
FC red Setup drops below 52 without Impulse ever reaching 45, AND price falls back toward the middle of the range (25–75 %) Failed Coil — breakout stalled, range continues
NI red Impulse > 70, Setup drops below 40, AND ADX < 25 Naked Impulse — move without structural backing or trend confirmation
◆ green / red Reversal score crosses 60 at a range extreme, confirmed by the trigger candle’s close Reversal — Impulse fading from its own recent high + rejection wick, weighted by Setup compression

Reversal

A DMI-free counter-trend signal, built from the four-stage reversal pipeline (regime veto → exhaustion → confirmation → quality):

  • Regime veto — only active at a genuine range extreme and outside chop (reversalActive = validSetupZone and not chopMarket)
  • Exhaustion — how far Impulse Pressure has faded from its own 10-bar high (only counts if that high was itself above 50)
  • Confirmation — a rejection wick against the extreme, sized relative to the bar’s range, AND the trigger candle itself must close in the reversal’s direction (a big wick that closes back toward the extreme doesn’t count)
  • Quality — Setup Pressure (compression) reused as-is

The three scored components combine into one score per direction (exhaustionScore × 0.45 + wickRatio × 0.30 + setupPressure × 0.25), and the signal fires when that score crosses 60 on the correct side of the range with a confirming candle close (long only near the range low, short only near the range high). It never touches DMI, so it isn’t exposed to the lag a DMI-based directional read would have at actual turning points.

Dashboard table

Top-right panel (Show Table toggle, default off):

Row Content
Phase Current phase, color-coded
Setup Value / 100 + direction arrow (orange)
Impulse Value / 100 + direction arrow (green)
Bias Bullish / Bearish / Flat from configurable MA cross
Range Pos. Where close sits within the N-bar high/low range (0–100 %)
Move Str. Move Strength value / 100, blue-tinted by magnitude
Action Plain-language read (Ignore/Chop, Watch Setup, Trend Running, Long/Short Reversal, Wait) — same priority order as the phase/signals above

Inputs

Main — Normalisation window, ATR / BB lengths, BB multiplier, Volume MA, S/R Lookback

Bias — MA type (EMA / RMA / SMA / WMA / HMA / JMA), Fast length (default 9), Slow length (default 21)

Smoothing — applied to both output curves; type (EMA / RMA / SMA / WMA / HMA / JMA) + length; JMA Phase + Power

Signal Markers — master toggle + individual toggle per marker

Move Strength — Show Columns toggle (default on)

Debug — “Log Reversal Context” toggle (default off): writes the full Reversal calculation (range position, chop state, Setup/Impulse, exhaustion, both wick ratios, both direction scores) to Pine Logs on every confirmed bar at a range extreme, so a specific historical bar can be inspected for why a Reversal signal did or didn’t fire

Edit this page on GitHub