Level 10 · Lesson 7
Market Pressure
Regime
A bipolar oscillator with a 4-state classifier. RELEASE, SUPPRESSED, TRANSITION, and an off-axis TRAP state. Every state change requires 3 committed bars — no flicker, no compromise.
First — Why This Matters
The Other Oscillator
MPG taught you that oscillators can measure participation rather than momentum. MPR is a different oscillator entirely, measuring something orthogonal: pressure regime. Where MPG asks “is anyone engaged?”, MPR asks “is the market committed to releasing pressure, containing it, absorbing it, or transitioning between those?” Same sub-pane architecture, entirely different question.
The architectural innovation that separates MPR from every other oscillator you've seen is the 4-state classifier with a TRAP state sitting off-axis. Most classifiers are ordinal — states arranged along a single line (low → medium → high, or bearish → neutral → bullish). MPR's TRAP state isn't on the line. It can fire at any pressure value because it's measuring something the pressure score doesn't capture: absorption. Positive pressure + absorption = a very different market than positive pressure alone, and MPR is the indicator that flags the distinction.
The other innovation is the Persistence Contract: state changes require 3 consecutive bars of the new candidate before they commit. This is deliberately slower than bar-by-bar classification — and that slowness is the feature, not a bug. Every state reading MPR gives you is a committed reading. If you want flicker-free regime analysis, this is the mechanism that provides it.
🔎 THE MPR AXIOM
Pressure can be released, suppressed, transitioning, or absorbed — and absorption is not a pressure value, it is a separate dimension. MPR measures both simultaneously. Use the full classification, not just the score.
01 — The Four States
One Spectrum + One Off-Axis State
MPR has four states: SUPPRESSED, TRANSITION, RELEASE, and TRAP. The first three sit on the pressure spectrum from -100 to +100. TRAP doesn't. It's a separate classification that fires when the absorption signature is detected, regardless of where the pressure score is. Understanding this geometry is the foundation of MPR literacy.
💡 Why TRAP is Off-Axis
The pressure score measures direction and commitment. The stress score measures effort vs result. These are orthogonal dimensions. A market can have strongly positive pressure (price pushing up) while simultaneously showing heavy absorption (effort not producing result) — those are two different phenomena happening at once. Putting TRAP on the pressure spectrum would collapse this information; keeping it off-axis preserves both readings.
02 — Compression Score
The Pinning Proxy
The first computation. Compression = 1 - (candleRange / ATR), normalized to 0-1. When candle range is tight relative to ATR (typical of a pinned market), compression is high. When candles are expanding (breakout conditions), compression is low. Compression is the negative contribution to pressure — high compression pulls pressure toward the suppressed side.
💡 Why Inverted?
You want a number where “more pinning” = higher score. The raw range/ATR ratio has the opposite semantics (bigger = more expansion). Inverting it (1 - ratio) and normalizing gives you the clean 0-1 proxy where 1.0 means “completely pinned” and 0.0 means “fully expanded.” Small mathematical detail, large interpretive value.
03 — Follow-Through Score
Path Efficiency, Release Proxy
Same math as MPG and MAZ efficiency: |close - close[20]| / sum(|close - close[1]|, 20). Bounded 0-1. High = price moving directly (good follow-through, release conditions). Low = price wandering (no follow-through, compression conditions). This is the positive contribution to pressure — high follow-through pushes pressure toward the release side.
💡 Why 20 Bars
The lenBase default of 20 matches MPR's baseline lookback. Long enough to capture sustained moves, short enough to react to regime changes. If you tune it shorter (10-15), MPR becomes more responsive but noisier. Longer (30-40) makes it smoother but laggier. The 20-bar default is the calibrated sweet spot.
04 — Stress Score
The Trap Detector
Stress = (effort - result) × 100, clamped to -100 to +100. Effort = volume ratio (or range ratio when volume is unreliable — the Volume Fallback Doctrine in action). Result = price movement relative to ATR. When effort is high but result is low, stress spikes positive. When stress ≥ 30 AND follow-through < 0.30, MPR classifies the state as TRAP.
💡 Why Both Conditions Are Required
Stress alone isn't enough. A single bar of high effort + low result could be noise. Combining it with low follow-through (a sustained condition) filters out noise and catches specifically the pattern where effort is being absorbed over time. The AND gate is what gives TRAP its specificity — it doesn't trigger on single-bar anomalies.
05 — Composite Pressure
Follow Pulls Up, Compression Pulls Down
The pressure score is an explicit tug-of-war between two forces. Follow-through × 100 pushes pressure toward positive (release). Compression × 100 pulls pressure toward negative (suppression). The signed composite is clamped to -100 to +100. This is why pressure is bipolar — it's measuring net directional commitment, not magnitude.
💡 The Symmetry Choice
Both components are scaled to 100 before subtraction, giving them equal weight. This is a deliberate design choice — neither force dominates structurally. The asymmetries come from the market itself (real behavior favors one or the other at any given moment), not from the indicator's weighting. This keeps MPR neutral by construction.
06 — Stability Filter
How Often Does Pressure Flip?
Stability = 1 - flipRate where flipRate is the rolling average of sign changes over 20 bars. When pressure keeps flipping between positive and negative, stability is low and the tool is telling you: “the pressure signal itself is unreliable right now.” When stability drops below 0.5 (default threshold), the classifier forces TRANSITION — refusing to commit to RELEASE or SUPPRESSED even if the current pressure value would qualify.
💡 The Override Is Philosophically Important
A pressure score of +8 normally means RELEASE. But if pressure has been flipping between +12, -9, +15, -7 over the last 20 bars, that +8 is unreliable — the underlying signal is too noisy to commit to. The stability override forces TRANSITION precisely to stop you from trusting an unreliable reading. This is another manifestation of the Diagnostic Inversion principle: the tool refuses to give you a conclusion it can't defend.
07 — The Persistence Contract ⭐
Commitment Over Speed
Here's the defining design philosophy of MPR — and it runs directly counter to how most retail indicators are built. Nearly every modern oscillator is optimized for low lag: detect the state change as quickly as possible, on as few bars as possible, ideally on the bar it happens. MPR optimizes for the opposite quality: committed evidence. A state change is only reported when the candidate has been present for persistBars consecutive bars (default 3). Anything shorter is treated as flicker and discarded.
🏘 The Persistence Doctrine
Retail indicators treat low lag as an unqualified virtue. But speed has a hidden cost: flicker. Every single-bar fluctuation triggers a state change, the state change fires a signal, the signal generates an emotional trading decision. Many of those state changes are noise — they reverse on the next bar, but you've already acted. MPR chose the other side of the tradeoff explicitly. A state change is reported only when the market has committed to it for at least 3 consecutive bars. The cost is 2-3 bars of lag on regime transitions. The benefit is that every state reading is a committed reading: you can trust it, size your positions around it, and stop second-guessing every wiggle.
Three operational implications:
- 1. Don't reduce persistBars for “speed.” Setting it to 1 doesn't make MPR faster — it turns it into a different tool entirely, a noisy single-bar classifier. If you need faster, you need a different class of tool. The default of 3 encodes the entire design philosophy. Respect it.
- 2. Expect 2-3 bars of lag on transitions. When the market genuinely changes regime, MPR will report it 2-3 bars later than a bar-by-bar classifier would. This is deliberate. Those 2-3 bars are the cost of the reliability guarantee. Include them in your planning.
- 3. Trust the state when it fires. The Persistence Contract means that when MPR reports a new state, the market has actually committed to it. Unlike with low-lag tools, you don't need to second-guess every state change — the second-guessing has already been done for you by the persistence logic. Take the state at face value and trade accordingly.
08 — TRAP — The Off-Axis State
Why Positive Pressure Can Be a Lie
The TRAP state is MPR's most valuable and most misunderstood output. It encodes a specific market pathology: effort being applied without proportional result. The pressure score can be strongly positive (indicating directional release), but if TRAP conditions are simultaneously active (stress ≥ 30 AND follow < 0.3), the state becomes magenta TRAP — overriding the pressure reading.
💡 The Classifier Check Order Matters
Source logic: if isTrapCondition { rawState := STATE_TRAP } runs BEFORE the pressure threshold checks. That order is deliberate. It means trap detection has priority — even a +42 pressure reading gets classified as TRAP if absorption is detected. Magenta overrides teal. Because if effort is being absorbed, the “positive pressure” isn't real pressure; it's just visible pressure that's about to collapse.
09 — RELEASE vs SUPPRESSED
The Mirror States
RELEASE and SUPPRESSED are perfect opposites. Both are COMMITTED states on the pressure spectrum. Both persist for many bars once established. Both require the Persistence Contract to activate. RELEASE needs pressure ≥ +5 for 3 bars; SUPPRESSED needs pressure ≤ -5 for 3 bars. Reading them is mirrored in the opposite direction.
💡 The Deadband Between Them
The ±5 thresholds create a deadband between them where the state is TRANSITION. Without that deadband, pressure hovering near zero would constantly flip between RELEASE and SUPPRESSED. The deadband is how MPR keeps itself noise-free at the neutral midpoint — any pressure reading between -5 and +5 is classified as TRANSITION regardless of sign. This is hysteresis applied to regime detection.
10 — State Transitions
Common Trajectory Patterns
Over enough time, MPR cycles through all four states in recognizable patterns. SUPPRESSED → TRANSITION → RELEASE is the classic breakout pattern: compression gives way to instability, which resolves into directional release. RELEASE → TRAP is the exhaustion pattern: directional energy continues to be applied but starts being absorbed. TRAP → SUPPRESSED is the collapse pattern: absorbed effort gives up and pressure flips to pinning.
💡 Trajectory Informs Context
A current state of RELEASE means different things depending on where you came from. RELEASE from SUPPRESSED (via TRANSITION) is an emerging breakout — early stage, lots of runway. RELEASE after TRAP is a revival — can resolve either way, watch for stability. RELEASE from another RELEASE after brief TRANSITION is a trend continuation — high conviction. The state alone is only half the picture; the trajectory matters.
11 — The Oscillator Stack
MPR × MSI × MPG
For the first time in the ATLAS suite, you can stack three sub-pane oscillators on the same chart. MPG tells you if anyone is engaged. MSI tells you what regime the market is in. MPR tells you what pressure state that regime is expressing. These three together form a complete diagnostic layer for the oscillator family — and when they agree, the confluence is among the strongest in the suite.
💡 The Pane Economy
TradingView lets you stack multiple sub-panes, but pane real estate is finite. MPG + MSI + MPR all in sub-panes takes about 40-50% of your chart height. This is a lot. The pro move: keep MSI in a pane for regime confirmation, MPR in a pane for pressure state, and use MPG's status-line HUD rather than its full pane when you're short on space. You get most of MPG's value from the status line alone.
12 — Threshold Symmetry
±5 By Design
The RELEASE and SUPPRESSED thresholds are symmetric at +5 and -5 by default. This is not arbitrary. Symmetric thresholds mean MPR has no directional bias by construction — it treats upward pressure and downward pressure exactly the same. If you observe that your MPR seems to trigger RELEASE more often than SUPPRESSED, that's a property of the market you're watching, not a property of the indicator.
💡 Tuning The Thresholds
You can widen the thresholds to ±10 or ±15 for stricter regime qualification (fewer state changes, each one more significant). You can narrow to ±2 or ±3 for more sensitive detection (more state changes, each one less firm). But always keep them symmetric — asymmetric thresholds (e.g., +5 / -10) introduce directional bias that biases every subsequent state reading. The symmetry is the guarantee of neutrality.
13 — Common Mistakes
Four Ways Traders Misuse MPR
Each of these traces back to the same root: trying to use MPR as either a signal generator or a momentum oscillator, when it is neither.
Treating TRAP (magenta) as a secondary pressure state
TRAP is not part of the pressure spectrum. It is an off-axis condition that can coexist with any pressure score. A TRAP state with pressure of +42 is telling you the positive pressure is MISLEADING — effort is being absorbed. Ignore this distinction and you will systematically buy absorption patterns that fade on you.
Setting persistBars = 1 for “faster signals”
This disables the Persistence Contract and turns MPR into a noisy single-bar classifier. You trade lag for flicker — and flicker is worse. The default of 3 bars encodes the philosophical commitment to reliability over speed. If you want faster, you’re using the wrong tool (MPR is not a signal generator).
Ignoring the instability override
When stability < 0.5, MPR forces TRANSITION even if pressure crossed +5 or -5. This is not a bug; it is the tool protecting you from uncommitted pressure. If you expected RELEASE and got TRANSITION, check the stability score — the pressure signal is unreliable. Trade the TRANSITION, not the underlying score.
Using MPR as a momentum oscillator (RSI substitute)
MPR is a pressure/state oscillator, not a momentum oscillator. A reading of +60 does NOT mean overbought — it means committed release pressure. A reading of -60 does NOT mean oversold — it means committed suppression. The states encode regime commitment, not overextension. Reading with RSI logic generates systematic wrong conclusions.
14 — Cheat Sheet
MPR In One Page
Architecture
Sub-pane oscillator, bipolar histogram (-100 to +100), 4-state classifier with off-axis TRAP state.
Four States
RELEASE (teal, +1) · SUPPRESSED (grey, -1) · TRANSITION (amber, 0) · TRAP (magenta, +2 off-axis).
Core Formula
pressure = clamp100(followScore × 100 - compression × 100). Positive = release; negative = suppression.
Trap Conditions
stress ≥ 30 AND follow < 0.3. Trap is checked BEFORE pressure thresholds — it overrides the pressure reading.
Persistence Contract (★)
persistBars = 3 default. New state must appear for 3 consecutive bars before committing. Anti-flicker mechanism.
Stability Override
When stability < 0.5 (flip rate > 0.5), force TRANSITION — except when trap conditions are active.
Thresholds (Locked Symmetric)
±5 for RELEASE / SUPPRESSED. 30 for TRAP stress. 0.5 for stability. All tunable; keep pressure thresholds symmetric.
Data Window Exports
Compression · Follow-Through · Stress · Stability · Pressure · State · Per-state booleans (isRelease, isSuppressed, isTransition, isTrap).
15 — Scenario Game
Reading MPR Like a Committed State Classifier
Five scenarios testing whether you read MPR as the 4-state classifier it actually is — or whether you're still pattern-matching it as a momentum oscillator.
Round 1 of 5
Score: 0/5
Your MPR histogram just turned magenta. Pressure score reads +42 (well above +5). What is happening and what do you do?
16 — Knowledge Check
Final Quiz — 8 Questions
Question 1 of 8
Market Pressure Regime (MPR) outputs:
Question 2 of 8
The TRAP state is triggered when:
Question 3 of 8
The Persistence Contract requires:
Question 4 of 8
The composite Pressure Score is computed as:
Question 5 of 8
When hasVolume is false, MPR falls back to:
Question 6 of 8
When stability < stabilityThr (default 0.5), the state is:
Question 7 of 8
Stability score is calculated as:
Question 8 of 8
The four MPR states can be read as: