MTF RSI Synchrony | Rainbow MatrixGENERAL OVERVIEW
The MTF RSI Synchrony is a multi-timeframe RSI fusion oscillator that aggregates five independent RSI readings — one per Fibonacci-spaced timeframe — into a single weighted Master Line. Each per-timeframe RSI is also plotted as a "ghost line" that fades by distance to the Master: when the five timeframes align, the rainbow renders solid; when they diverge, the ghost lines spread visibly across the pane, making synchrony itself a visible density property rather than a number to compute.
The main goal of this indicator is to give traders a single integrated read of RSI across multiple horizons — without flipping between charts, mentally averaging values, or guessing which timeframe's RSI matters at the current decision point. Every line, color, and divergence event on the pane was derived from real RSI calculations on each native timeframe, not approximated from the current chart's resolution.
It computes the Master Line from five timeframes via Fibonacci-proportioned weights (peak weight on the macro middle TFs), classifies the result through an adaptive Fibonacci channel that builds Z-Breathing / Z-Alert / Z-Exhaustion / Black Swan zones around the Master, and runs a classic price↔RSI divergence engine on each of the 5 TFs plus the Master line independently. A 5-column MTF Legend Table surfaces every TF's state at a glance, with an antenna marker (📡) flagging the row whose timeframe matches the chart's native resolution.
This indicator was developed for traders who already understand RSI and divergence concepts and want to see them across multiple timeframes in a single visual, with automatic synchrony detection and an integrated classic divergence layer.
WHAT IS THE THEORY BEHIND THIS INDICATOR?
Most RSI implementations on PulseWire operate on a single timeframe. They show you a value between 0 and 100 for the current chart and leave the multi-timeframe assessment to manual work — flipping between charts, sketching trendlines, or stacking multiple instances of the indicator on different intervals. This treats each timeframe as an isolated decision space.
The problem: institutional momentum is not isolated to one timeframe. The participants operating on the daily horizon see different RSI conditions than those operating on the weekly or 4-hour horizon. When the 15-minute RSI flips above 70 but the daily RSI is still neutral, the overbought signal is local — likely a counter-trend bounce. When the 15-minute RSI flips above 70 and the daily RSI also approaches the upper zone, the overbought signal is structurally agreed across horizons — far more likely to mark a multi-horizon exhaustion.
This indicator addresses that by extracting RSI from five user-configured timeframes simultaneously via request.security, fusing them via canonical Fibonacci weights (peak weight on the macro middle TFs), and rendering both the integrated Master signal and each contributing TF's individual reading on the same pane. The math of the per-TF extraction is standard RSI on the native bars — what makes it useful is doing it across five timeframes at once, weighting them by structural significance, and surfacing both the alignment and the per-TF divergences in a single visual.
The classic divergence layer addresses a parallel problem: textbook regular divergence (price↔RSI on the same timeframe) is a well-known reversal cue, but traders typically watch it on one timeframe at a time. By running pivot-based divergence detection independently on each of the 5 TFs and on the Master line, the indicator surfaces local divergences (on fast TFs — often noise) versus structural divergences (on slow TFs — often precede major reversals) in the same table view, with the Master line acting as the integrated read drawn directly on the chart.
MTF RSI SYNCHRONY FEATURES
The indicator includes 7 main features:
◇ Multi-Timeframe RSI Fusion Engine
◇ Adaptive Fibonacci Channel (Master Volatility Envelope)
◇ Hybrid Black Swan Zone (static or dynamic)
◇ Classic Divergence Detection Engine (per-TF + Master)
◇ MTF Legend Table with antenna marker
◇ Per-Timeframe RSI Length Customization
◇ Multilingual interface (5 languages) and full visual customization
MULTI-TIMEFRAME RSI FUSION ENGINE
🔹 What It Does
The core of the indicator. For each of the five configured timeframes, an independent RSI reading is extracted at its native resolution. The five readings are then fused into a single Master Line via canonical Fibonacci-proportioned weights.
🔹 Method
The extraction runs via request.security with lookahead=barmerge.lookahead_off to prevent repainting. Per-timeframe RSI uses Wilder's standard formulation. The Master is computed as a weighted average with the following Fibonacci weights:
◇ TF1 (Trigger, default 5m): 0.15
◇ TF2 (Intraday, default 15m): 0.20
◇ TF3 (Macro 1, default 60m): 0.25 (peak weight)
◇ TF4 (Macro 2, default 240m): 0.25 (peak weight)
◇ TF5 (Base, default Daily): 0.15
The peak weight sits on the macro middle TFs (TF3 + TF4), where institutional decisions consolidate. The Master is clamped to the 0–100 RSI range.
🔹 Ghost Line Rendering
Each per-timeframe RSI is plotted as a ghost line with transparency inversely proportional to its absolute distance from the Master. The fade sensitivity is configurable (default 3.5): at distance 0 the line is solid (transparency 20), at ~20 RSI points away it becomes effectively invisible. Synchrony emerges as a visible density property — when the five lines collapse toward the Master, the rainbow is solid; when they spread, the pane fills with translucent ghosts.
ADAPTIVE FIBONACCI CHANNEL
🔹 What It Does
The Master Line is wrapped in an adaptive volatility channel built from its own highest/lowest over a configurable lookback (default 50), EMA-smoothed (default 10). From the channel envelope, four Fibonacci-proportioned zones are derived above and below the channel midpoint:
◇ Z-Breathing (1.50σ proportion) — yellow (high) / green (low)
◇ Z-Alert (1.85σ anchor) — orange (high) / teal (low)
◇ Z-Exhaustion (2.75σ proportion) — red (high) / blue (low)
◇ Black Swan (3.85σ proportion) — purple (high) / aqua (low)
🔹 Why It Matters
The 30/50/70 lines of classic RSI are static — they don't adapt to the volatility regime of the current instrument or timeframe. The Fibonacci channel does. In a low-volatility regime, the Z-Exhaustion zone tightens and the script flags exhaustion at lower thresholds; in a high-volatility regime, the channel widens and only genuine outliers reach the extreme zones. The Master's position within the channel — color-coded continuously — is a regime-aware read on momentum saturation that the fixed 30/70 lines cannot provide.
HYBRID BLACK SWAN ZONE
🔹 What It Does
The Black Swan threshold operates in hybrid mode:
◇ OFF (default): classic 80/20 RSI extremes — the conventional Wilder oversold/overbought boundaries.
◇ ON: dynamic Fibonacci 3.85σ proportion of the Master channel — adapts to current volatility.
🔹 Method
When dynamic mode is enabled, the Black Swan High becomes osc_up4 = dyn_mid + (dist_up × 3.85/1.85), and the Low becomes dyn_mid − (dist_dn × 3.85/1.85). Both are clamped to . The threshold breathes with the channel — wider in volatile regimes, tighter in calm ones.
🔹 Visual Design
Black Swan zones render as a line + proximity-based glow only — NO fill is drawn underneath, by design. This is a hard rule of the indicator's visual grammar: every other zone (Breathing, Alert, Exhaustion) has a fill; Black Swan is line + glow only, making the extreme zone visually distinct from the gradient zones below it.
CLASSIC DIVERGENCE DETECTION ENGINE
🔹 What It Does
Regular divergence (price↔RSI on the same timeframe) is detected independently on each of the 5 timeframes and on the Master line:
◇ Bear divergence (top): price made higher high + RSI made lower high — momentum failing to confirm the new price peak; exhaustion warning.
◇ Bull divergence (bottom): price made lower low + RSI made higher low — momentum failing to confirm the new price trough; accumulation signal.
🔹 Method
Pivot detection runs via ta.pivothigh and ta.pivotlow with a configurable lookback (default 5 bars before and after). For each timeframe, the previous pivot and current pivot are compared on both price and RSI. A divergence is flagged when price and RSI move in opposite directions across the two pivots, gated by na guards to handle cold-start conditions.
🔹 Two Layers of Output
The detection produces two complementary outputs:
◇ Per-TF divergence flags are rendered in the Legend Table 'Div' column (🔺 bull / 🔻 bear / — none, color-coded). This gives granular per-horizon insight: which exact timeframe is showing divergence right now.
◇ Master divergence — the integrated MTF signal — is additionally drawn on the indicator pane as a line connecting the two pivots, with a "🔺 Bull Div Master" or "🔻 Bear Div Master" label at the second pivot. An alert is available (toggleable, ON by default).
🔹 Why Two Layers
Per-TF divergences answer "where is the divergence forming?" — fast TFs (TF1, TF2) often catch local noise; slow TFs (TF4, TF5) catch structurally significant turns. Master divergence answers "is the integrated MTF view showing exhaustion?" — Master fuses all five TFs into one signal weighted by significance, so its divergence is the consolidated read. The strongest setups occur when both layers agree: Master divergence drawn on the chart + multiple Legend Table 'Div' cells lighting up in the same direction.
MTF LEGEND TABLE
🔹 What It Shows
A compact 5-column table renders inside the indicator pane (force_overlay=false for mobile readability), with 8 rows:
◇ Row 0: title header (multilingual)
◇ Rows 1–5: per-timeframe data — color-coded RSI value, timeframe resolution, trend arrow (▲ rising / ▼ falling / ▬ flat with ±0.5 RSI point deadzone to avoid flicker), and classic divergence cell (🔺/🔻/—)
◇ Row 6: Master row — displays "🌈 Master (~XhYm)" where XhYm is the geometric weighted mean of the 5 active timeframes (e.g. ~1h11m for the default 5/15/60/240/D set), with the Master's RSI value, trend arrow, and divergence state
◇ Row 7: MTF Divergence status row — tracks RSI alignment between TF1 and TF5
🔹 Antenna Marker
An antenna marker (📡) appears at the end of the timeframe label on the row whose timeframe matches the chart's native resolution. Start the read at the antenna row — that's your chart's RSI — then scan up to faster TFs and down to slower TFs to see whether they confirm or contradict the current read.
🔹 MTF Divergence Status Row (TF1 ↔ TF5)
Separate from the classic per-TF divergence: the status row at the bottom tracks RSI alignment between the fastest and slowest configured timeframes:
◇ Aligned (TF1 and TF5 in the same zone): trend continuation, no MTF divergence.
◇ Strong Divergence (TF1 ≥ 70 vs TF5 ≤ 30, or mirrored): fast and slow timeframes telling completely opposite stories. Common at major turning points.
◇ Moderate Divergence (TF1 ≥ 65 vs TF5 ≤ 40, or mirrored): partial misalignment between fast and slow.
PER-TIMEFRAME RSI LENGTH CUSTOMIZATION
🔹 What It Does
RSI period defaults to 14 globally — Wilder's canonical setting. Each of the 5 timeframes has an optional length override: zero means inherit the global default, any positive integer means use that period for that timeframe only.
🔹 Why It Helps
Real-world strategies often want different RSI sensitivities at different horizons. Scalpers use 7-9 on the trigger TF for fast signals while keeping 14 on slower TFs for stability. Swing traders use 14-21 on intraday TFs and 21+ on the daily for smoother reads. Connors-style strategies use 2 on the trigger for mean-reversion. The hybrid pattern keeps the settings panel clean for casual users (one input controls all) while letting power users specialize per TF when needed.
MULTILINGUAL INTERFACE
The indicator supports five languages for the HUD display, Legend Table headers, and alert messages: English (default), Português, Español, Русский, and 中文 (Chinese). Code, comments, and configuration tooltips remain in English regardless of the selected language. Tech abbreviations (RSI, MTF, HTF, TF) stay Latin in all language contexts — they are universally recognized in trading and translation would add noise.
For reference, the multilingual coverage includes:
◇ HUD title and all row labels
◇ Trend arrows (universal: ▲▼▬)
◇ Divergence cells (universal: 🔺🔻—)
◇ MTF Divergence status row (Aligned / Strong / Moderate, with Top/Bottom directional labeling)
◇ All alert messages including the new classic divergence alerts
HOW TO USE
This indicator is not a signal generator. It is a structural map: it tells you where RSI sits across multiple horizons, how aligned (or divergent) those horizons are, and where classic price↔RSI divergence is forming.
🔹 Reading the Rainbow
◇ Solid rainbow + Master near equilibrium (30–70 zone): no clear signal. Trending behavior absent.
◇ Solid rainbow + Master in Z-Alert (orange/teal): trend in motion across all horizons. Look for follow-through confirmation.
◇ Solid rainbow + Master in Z-Exhaustion (red/blue): elevated probability of mean reversion. Multiple horizons agreeing on saturation.
◇ Master touches Black Swan (purple/aqua glow): statistically rare overshoot. High-probability reversal setup, especially when the MTF Divergence row also fires Strong.
◇ Ghost lines visibly spread far from Master: synchrony breakdown. Wait for re-convergence before high-conviction entries.
🔹 Reading the Legend Table
◇ Antenna row (📡): your chart's native TF. Start there.
◇ Scan above the antenna: faster TFs. If they're in extremes opposite to the antenna, the local signal is conflicted.
◇ Scan below the antenna: slower TFs. If they're aligned with the antenna, the structural bias confirms.
◇ Master row: the integrated read. The "~XhYm" label tells you where Master sits in the TF spectrum.
🔹 Reading the Classic Divergence Layer
◇ Single TF lit up (e.g. only TF2 shows 🔻): local divergence. Often noise on fast TFs.
◇ Multiple TFs lit up in the same direction: structurally significant. Confluence of divergence across horizons.
◇ Master divergence drawn on chart + 2 or more TFs in same direction: high-conviction reversal setup. The strongest signal this indicator produces.
◇ Divergence appearing on slow TFs (TF4 / TF5) while fast TFs are quiet: often precedes major reversals — slow-horizon participants are pulling away before fast-horizon ones notice.
🔹 Tactical Reading
◇ Master in Z-Alert + MTF status Aligned: with-trend continuation setup.
◇ Master in Z-Exhaustion + Bear Div drawn on chart + 2 TFs 🔻: short setup with multi-horizon confirmation.
◇ Master at Black Swan Low + Bull Div drawn on chart + Strong MTF Divergence (TF1 ≤ 30 vs TF5 ≥ 70 mirrored): rare confluence of multiple exhaustion signals.
INPUTS EXPLAINED
🔹 System Language
Display language for the HUD and alert messages. Options: English (default), Português, Español, Русский, 中文 (Chinese).
🔹 Multi-Timeframe (TF1 to TF5)
Configure each of the five timeframes to scan. Defaults: 5m / 15m / 60m / 240m / Daily. Plus AI Auto-Sync option that adjusts the 5 TFs based on chart resolution.
🔹 Default RSI Length + 5 Per-TF Overrides
Default 14 applied globally; per-TF override is 0 by default (inherit). Set override > 0 to specialize per TF.
🔹 Dynamic Black Swan Mode
OFF (default): static 80/20 thresholds. ON: dynamic Fibonacci 3.85σ proportion of the Master channel.
🔹 Dynamic Channel Lookback + Smoothing
Lookback for highest/lowest of Master (default 50). EMA smoothing applied to the channel envelope (default 10).
🔹 Divergence Pivot Lookback
Lookback (bars before/after) for the classic divergence pivot detection. Default 5 — matches most community divergence indicators.
🔹 TF Colors + Show/Hide Toggles
Color and visibility for each of the 5 ghost lines. Hiding a TF does NOT remove it from the Master fusion — the calculation continues; visibility is purely visual.
🔹 Ghost Fade Sensitivity
Higher = ghost lines fade more aggressively as they diverge from the Master. Default 3.5 (invisible at ~20 RSI points apart).
🔹 Show Master Line / Fills / Black Swan / Channel / Legend Table / Static Levels / Div Column / Div Chart Line
Independent toggles for each visual layer.
🔹 Legend Table Position + Font Sizes
Position of the table (four corners) and separate font sizes for data rows and label rows.
🔹 Alert Toggles
Master crosses Black Swan High / Low — fires when Master crosses the threshold.
Strong MTF Divergence — fires when TF1 vs TF5 enter opposite extremes.
Master enters Z-Exhaustion — fires when Master enters the red/blue zone (OFF by default to avoid overlap with Black Swan alerts).
Master Classic Divergence — fires when classic bear or bull divergence is detected on the Master line (ON by default).
IMPORTANT NOTES
The MTF RSI Synchrony works on any timeframe. The default radar configuration (5m/15m/60m/240m/D) is calibrated for intraday and swing trading on liquid instruments. For position trading or scalping, the radar timeframes can be reconfigured to scan longer or shorter horizons respectively, or AI Auto-Sync can be enabled to let the engine pick automatically.
The script makes 10 request.security calls in total (5 for the RSI extraction + 5 for the per-TF divergence detection). On low-volatility chart resolutions or weaker hardware, chart load may take a moment longer than for a single-TF RSI; this is expected and normal.
Alerts fire once per confirmed bar (alert.freq_once_per_bar + barstate.isconfirmed gating). Historical bars never repaint after they close. The live bar updates intra-bar as expected for a real-time indicator.
The Fibonacci channel calibration (ratios 1.50 / 1.85 / 2.75 / 3.85) is the canonical Rainbow Matrix ratio set, also used in other portfolio scripts for consistency.
Pine Script v6. Open-source under Mozilla Public License 2.0.
UNIQUENESS
The MTF RSI Synchrony is unique in three ways. First, it performs RSI extraction across five timeframes simultaneously via request.security with Fibonacci-proportioned weights — the integrated Master Line is not a smoothed version of one TF but a true weighted fusion of five independent RSIs, with peak weight on the macro middle TFs where institutional decisions consolidate. Second, the per-timeframe RSIs are rendered as fade-by-distance ghost lines around the Master, transforming synchrony itself into a visible density property — when the timeframes align the rainbow is solid, when they diverge the ghost lines spread visibly across the pane, without requiring the trader to read numbers. Third, the classic divergence detection runs in parallel on each of the 5 timeframes plus the Master line, producing two complementary outputs: a per-TF Legend Table column for granular per-horizon insight and a Master-line chart visual (line connecting pivots + label) for the integrated MTF signal. The combination of weighted multi-timeframe fusion, density-based synchrony visualization, and two-layer divergence detection produces a structural map of RSI behavior that single-timeframe RSI indicators cannot provide — particularly at decision points where multiple horizons converge or where slow-horizon divergences emerge before they reach fast-horizon attention. Indicator

Imperium FlowImperium Flow is a market flow indicator designed to evaluate the quality behind price movement. It analyzes pressure, volume participation, candle behavior, wick rejection, Money Flow, and effort versus result to help traders understand whether a move is supported, stretched, weakening, or starting to rotate.
The indicator is built for confirmation and market context. It does not predict price. Its purpose is to help identify when buyers or sellers have stronger control, when continuation remains healthy, and when market conditions are becoming less efficient.
Main Features
Exhaustion Zones;
Money Flow;
Price Pressure;
Price Effort;
Exhaustion Warnings;
Reversal Warnings;
Divergence.
Each section is designed to give a different view of market quality, from participation and pressure to exhaustion, consolidation, and possible rotation.
Exhaustion Zones
Exhaustion Zones highlight areas where directional pressure has become stretched.
Reaching these zones does not mean price must reverse. Strong trends can continue through them. The zones simply warn that late entries may carry more risk because continuation can become less efficient.
They are most useful when combined with pressure shifts, candle rejection, absorption, fading Money Flow, or nearby market structure.
Money Flow
Money Flow shows whether buying or selling participation is stronger.
When Money Flow is above zero, buyer participation is stronger. When it is below zero, seller participation is stronger.
Rising or stable Money Flow can support bullish continuation. Falling or weak Money Flow can support bearish continuation. When price keeps moving in one direction while Money Flow starts fading or improving against it, the move may be losing quality.
High positive or deep negative readings can also show stretched market conditions.
Price Pressure
Price Pressure shows the active balance between bullish and bearish pressure.
Positive pressure suggests stronger buyer control. Negative pressure suggests stronger seller control.
Pressure is most useful when compared with price movement. When pressure supports the direction of price, the move has better confirmation. When pressure starts moving against price, continuation may be losing quality.
The pressure momentum columns help show acceleration, fading pressure, absorption, rejection, or early rotation near key market areas.
Price Effort
Price Effort is the main directional read of Imperium Flow.
It shows whether price movement is supported by strong effort and meaningful follow-through, or whether the move is becoming weak, inefficient, or exhausted.
When Price Effort is above zero and in a bullish state, buyers have stronger control. When it is below zero and in a bearish state, sellers have stronger control. When it turns neutral, the market may be losing direction or entering consolidation.
The strongest continuation conditions usually appear when Price Effort, Price Pressure, and Money Flow support the same direction. When these readings begin to separate, the move should be treated with more caution.
Exhaustion Warnings
Exhaustion warnings are shown with ✦ symbols.
They appear when a strong move may be starting to lose quality. These warnings are not designed to mark the exact top or bottom. They are caution markers showing that the current direction may be becoming more vulnerable.
An exhaustion warning can appear when pressure fades, Money Flow becomes stretched, candles show rejection, volume produces weaker follow-through, or absorption forms against the active move.
The warning is more useful after an extended move or near important market structure, liquidity areas, previous highs or lows, support, or resistance. If price continues with strong pressure after the warning, the trend may remain valid. If it is followed by weak continuation, rejection, or a shift in Price Effort, the market may be preparing for a pullback or rotation.
Reversal Warnings
Reversal warnings are shown with ▼ and ▲ symbols.
They appear when an extended move begins to show stronger rotation evidence. These are not automatic buy or sell signals. They highlight moments where the active side may be losing control and the opposite side is starting to react.
A reversal warning can form after rejection from an extreme area, a pressure shift against the active move, fading Money Flow, or a turn in Price Effort from stretched conditions.
The signal is strongest when it appears after exhaustion, near important market structure, or after a failed continuation attempt. If price ignores the warning and continues with strong pressure, the trend may still remain active.
Divergence
Divergence highlights when price continues to extend, but Imperium Flow no longer confirms the move with the same strength.
This can help traders spot moments where momentum, pressure, or participation may be weakening behind the current price movement.
Divergence does not mean price must reverse immediately. It should be checked together with market structure, support, resistance, liquidity areas, rejection, exhaustion, and Price Effort behavior.
Divergence signals are confirmed after the swing confirmation period, so they can appear a few candles after the actual high or low. They are best used as context, not as standalone entry signals.
Practical Use
Imperium Flow is best used to evaluate whether the current move has strong confirmation or is starting to lose quality.
The main read is Price Effort. Price Pressure and Money Flow should be used as supporting confirmation.
When all three support the same direction, continuation conditions are usually stronger. When they separate, fade, or conflict, traders may choose to become more selective with entries, exits, and trade management.
Mixed or unstable readings usually mean the market does not have clear directional control.
Important Notes
Exhaustion is a caution signal, not a guaranteed reversal;
Reversal warnings are for context and should not be treated as automatic buy or sell signals;
Divergence can appear before price reacts, especially during strong trends;
Money Flow, Price Pressure, and Price Effort should be read together;
Mixed readings usually mean the move lacks clear confirmation;
Readings may be less reliable on symbols with missing, unreliable, or illiquid volume;
Non-standard chart types may produce different readings because candle structure and volume behavior can be altered;
The indicator analyzes current and recent market behavior. It does not predict future price movement.
Imperium Flow is intended for structured market analysis and confirmation. It should be used as part of a broader trading process that includes market structure, execution rules, invalidation, and risk management. Indicator

Liquidity Surge Forecast with Markov Chains [TechnicalZen]Clear direction from Markov Chains confirmed projections.
Publishing this v3 with all the enhancements users desired and more. Thank you for your feedback.
What This Is
A 3D liquidity-and-momentum visualization that tells you where the market is heading right now, how long the current state is likely to hold, and when the next regime change is expected — all backed by a 2nd-order Markov chain that learns from your chart's own history.
Two independent systems — Money Flow (MFI-driven) and Price Current (Hull-VWMA or signed-ADX) — render as layered dotted carpets inside a bounded 3D box. When both systems agree on direction AND the Markov chain confirms, a whale surfaces — 🐳 bullish, 🐋 bearish. Chop gets a shark 🦈. Sideways drift gets a crab 🦀. And when the Markov chain predicts an imminent regime transition, a small hatchling whale appears before confluence forms.
The Current State row tells you, in one line, exactly what to expect next.
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Built On
Money Flow Dynamics Forecaster 3D — the original 3D layered-terrain architecture, MFI/RSI momentum carpet, Hull-VWMA price current carpet, slope-extrapolated forecast, rider + whale system.
Same 3D engine. Same dual-system confluence as the foundation. Then: regime classification, Markov statistical learning, current-state intelligence, and a live win-rate scoreboard on top.
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Clear Direction — At A Glance
Most indicators show you lines and ask you to interpret. This one tells you plainly, in a single dashboard row:
What regime you're in right now — 🐳 Bull, 🐋 Bear, 🦈 Chop-zone, or 🦀 Sideways
How long it's been held — in bars
Whether the regime is BALANCED or IMBALANCED — based on the Markov chain's next-bar probabilities
When the next regime change is expected — in bars, computed from the stay-probability
Which direction the market leans next — the highest-probability non-current state
Example readouts:
"Current State: 🐳 Bull held 5b · IMBALANCED — stay 68%, change expected in ~3b · next lean: 🦀 Sideways"
"Current State: 🦀 Sideways held 12b · BALANCED — change imminent · next lean: 🐳 Bull"
"Current State: 🐋 Bear held 2b · IMBALANCED — stay 82%, change expected in ~5b · next lean: 🦀 Sideways"
No interpretation required. You read the line, you know where you are, you know what to expect.
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
New Features — And Why Each Exists
1. Current State intelligence row
Why: Confluence indicators tell you WHEN a signal fires. They don't tell you "how solid is the current regime," "is a change coming," or "how long do I have before conditions flip." The Current State row answers all three in one glance.
The balanced / imbalanced distinction matters most:
BALANCED — the three next-bar probabilities are close to 1/3 each. No clear direction. A regime change is imminent (could go anywhere). Trade lighter, wait for resolution.
IMBALANCED — one direction dominates. Regime has a preferred path. The stay-probability tells you how long it's likely to persist; the next-lean tells you which direction it will tilt when it does flip.
The expected-bars-to-change is a geometric distribution mean: 1 / (1 − P(stay)). If a regime has 80% stay probability, it's expected to persist ~5 more bars. If 33%, it's expected to flip in ~1.5 bars.
2. 2nd-order Markov chain regime predictor
Why: the original whale logic was reactive — it fires after confluence forms. Markov is predictive — it learns your instrument's transition habits and uses them to gate and anticipate whale signals.
Pure statistics, no black box:
2nd-order — predicts the next regime from the pair of previous regimes, not just one. Captures patterns like "Chop → Sideways → 68% Bull next" that a 1st-order chain would miss.
Laplace smoothing (α=1) — every transition count gets a +1 pseudocount before normalization. Prevents "never observed → 0% forever" failure. Standard in real statistics.
Exponential recency decay — newer transitions count more than old ones (default 0.995/bar). Markets drift; stale history shouldn't dominate current prediction.
Duration conditioning — separate transition matrices for "current state held <5 bars" vs "held ≥5 bars." Regimes behave differently after they've been running. Real statistical sub-populations.
Confidence gating — if the current context has fewer than 10 observations, predictions are flagged low-n . No fabricated probabilities.
Maximum useful substance without gimmick. 3rd-order Markov would need thousands of regime transitions per cell to converge — doesn't happen on typical charts. 2nd-order is the ceiling before diminishing returns.
3. Dual-layer regime classification — Chop-zone 🦈 vs Sideways 🦀
Why: prior versions treated "not trending" as a single category. But there are two fundamentally different kinds of non-trending market:
🦈 Chop-zone — violent range-bound circling. Detected via classic Choppiness Index . Often precedes a sharp breakout.
🦀 Sideways — slow drift, flat angles across close/high/low at both short and long periods. Detected via angle consensus . Often indicates accumulation or distribution.
Showing them separately lets you read which kind of non-trending you're in. Different implications, different decisions.
4. Hatchling whales — pre-signal pre-whales
Why: the Markov chain lets us anticipate confluence before it forms. When the current state is Sideways AND Markov predicts Bull (or Bear) with confidence above the hatchling threshold, a small whale appears at the mid-forecast position — a heads-up that confluence is probabilistically coming.
Full whale (size.huge at forecast edge) = confluence is here now.
Hatchling whale (size.small at forecast mid) = confluence is probably coming soon.
Better entries on regime changes.
5. Markov-gated whale confirmation
Why: sometimes projected-confluence fires, but the instrument's historical pattern says "from this context, the opposite is more likely." That's exactly the setup a trader wants the indicator to filter out .
The gate is permissive — Markov blocks a whale only if it's confident AND its argmax points the opposite direction. Uncertainty or agreement = pass through. Reduces false confluence without over-filtering.
6. Regime-aware 4-column win-rate dashboard
Why: knowing how much time the instrument actually spends in each regime is as actionable as the signals themselves.
Four parallel columns:
🐳 Bull — confluence signals and win rate
🐋 Bear — same, opposite direction
🦈 Chop-zone — CI chop events and % of bars
🦀 Sideways — angle-sideways events and % of bars
If your instrument spends 80% of bars in Chop/Sideways, confluence will be rare — adjust timeframe or instrument. If Markov shows low-n on most bars, the matrix isn't populated yet — wait for more history before trusting predictions.
7. Session-aware for futures
Why: NQ, ES, CL and other overnight-session futures stamp their daily bar at session start , which is the previous calendar evening. Naive `dayofweek(time)` reads NQ's "Friday session" as Thursday. The indicator uses `time_close("D")` — the close of the daily bar, always on the trading date — so regime classification is correct for both cash equities (TSLA, SPY) and overnight futures (NQ, ES). Same indicator, any asset class.
8. Honest evaluation — next-signal MFE or directional close
Why: "close-at-N-bars" is dishonest. Price can move 2×ATR favorably then retrace — close-at-N logs that as a loss. MFE logs it as what it actually was.
Each signal is held pending until the next signal fires. It's a win if either:
The close at next-signal bar was directionally favorable vs entry, OR
The Maximum Favorable Excursion between the two signals reached the ATR-scaled threshold (default 0.5×ATR at entry bar)
Either qualifies. Transparent. Computed live. Disclaimer embedded in the dashboard footer.
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
How to Read the Dashboard
┌────────────────────────────────────────────────┐
│ Liquidity Surge + Markov · Win Rate │
├────────┬────────┬─────────────┬───────────────┤
│🐳 Bull │🐋 Bear │🦈 Chop-zone │🦀 Sideways │
│42 sigs │38 sigs │7 events │12 events │
│31 wins │24 wins │120 bars │45 bars │
│73.8% │63.2% │23% │8.6% │
├────────────────────────────────────────────────┤
│Markov Forecast Next: 🐳 52% · 🦀 31% · 🐋 17% │
├────────────────────────────────────────────────┤
│Current State: 🐳 Bull held 5b · IMBALANCED │
│ stay 68%, change expected in ~3b · next: 🦀 │
├────────────────────────────────────────────────┤
│⚠ Not financial advice · Learned on chart hist │
└────────────────────────────────────────────────┘
Reading order:
Column data — how Bull/Bear signals have performed, how much time is spent in each regime
Markov Forecast Next — next-bar regime probabilities (with sample-size confidence)
Current State — the single-line answer to "where am I and what's next"
Footer — disclaimer + config
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
How to Use
Load with defaults.
Wait for ~100-200 bars of history. The Markov matrix needs observations to learn.
Read Current State first. It tells you what to expect.
If BALANCED → expect a regime change, trade light.
If IMBALANCED + change in ~N bars → plan around that window.
Watch for 🐳 / 🐋 full whales at the forecast edge — confluence + Markov confirmed.
Watch for small hatchling whales at forecast mid-point — Markov's early prediction of confluence coming.
Respect 🦈 (chop-zone) and 🦀 (sideways). Don't fight the regime.
Tune Hatchling Threshold and Win Threshold (×ATR) to your instrument and style.
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Best Paired With Smart Candle Structures
This indicator answers whether and when to trust the flow. Smart Candle Structures answers where to act. Together: right place, right moment, measurable conviction, regime-aware.
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Key Settings
Time Span — past bars rendered + forecast horizon (default 15)
Momentum Source — MFI (default) or RSI
Oscillator Type — Hull-VWMA (default) or signed-ADX
Slope Lookback — bars for slope that fires whales (default 4)
Evaluation Window — bars after a signal to measure MFE (default 5)
Win Threshold (× ATR) — minimum favorable excursion as a multiple of ATR (default 0.5)
Gate Whale by Choppiness — master toggle for 🦈 / 🦀 filter
CI Length / CI Threshold — classic Choppiness Index tuning
Angle Short / Long Period — angle-based sideways lookbacks
Angle Trend / Sideways Threshold — angle degrees defining trending vs sideways
Use Markov Predictor — master toggle for the 2nd-order chain
Count Decay per Bar — recency weighting for Markov counts (default 0.995)
Hatchling Threshold — minimum Markov probability to fire pre-whale (default 55%)
Dashboard Text Size — Tiny / Small / Normal / Large / Huge
Camera — yaw / pitch / scales for the 3D view
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Disclaimer
This is a visualization and analytical tool, not financial advice or a signal service. The Markov chain is trained on your chart's history — it describes what has happened on this instrument at this timeframe, not what will happen. Regime transition probabilities are learned estimates; past frequencies do not guarantee future outcomes. Markets are reflexive and can transition in ways the chain has never observed. Hatchlings, whales, sharks and crabs are visualizations of mathematical predictions — they do not constitute buy or sell recommendations. Trade with your own risk management. Every trade can lose.
The indicator echoes this disclaimer in its dashboard footer so you see it every time you read the chart. It's always there because it's always true.
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Clear direction from learned regimes.
— TechnicalZen
Indicator

_Trinity Matrix_
Short description
A structured multi-layer oscillator built around a refined Trinity Wave core, MFI regime columns, confidence scoring, divergence filtering, and TF / HTF context.
Full publication description
Trinity Matrix is a multi-layer oscillator designed to read continuation, reversal quality, regime strength, and divergence context inside a single panel.
It combines a refined Trinity Wave core, MFI regime structure, confidence scoring, mode-based signal filtering, divergence logic, and a compact TF / HTF dashboard into a unified workflow.
The name is a nod to layered market context: not a single signal, but a structured matrix of wave state, regime strength, confidence, and divergence.
Core Structure
Trinity Wave core with additional smoothing and soft limiting to reduce extreme spikes while preserving directional character
MFI Columns to separate baseline participation from stronger expansion phases
Strong zone highlighting to visually distinguish stronger bullish and bearish regime expansion
Confidence engine that blends Trinity Wave continuation and MFI continuation into a normalized directional score
Signal modes for different levels of selectivity: None, Early, Standard, and Strict
ATR-gated divergence filtering for cleaner divergence structures
TF / HTF confidence dashboard for comparing active timeframe conviction against a selected higher timeframe
Built-in alerts for buy, strong buy, elite buy, sell, strong sell, and elite sell conditions
How to Read It
Trinity Wave is the main directional layer. Green indicates bullish state, red indicates bearish state.
MFI Columns show regime participation.
White columns = baseline MFI flow
Shiny white columns = stronger bullish expansion
Orange columns = stronger bearish expansion
Average MFI bands help show where positive or negative regime strength is building relative to recent memory.
Confidence Dashboard summarizes directional conviction on both the active timeframe and the selected higher timeframe.
Row 1 = TF / HTF labels
Row 2 = confidence percentage
Row 3 = qualitative tag: Weak / Moderate / Strong
Signal Modes
None hides signal output
Early is faster and more aggressive
Standard is more balanced
Strict applies the strongest filtering and usually produces the fewest signals
Divergence Module
The divergence layer uses Trinity Wave turning points, confidence filtering, pivot distance control, and optional ATR gate filtering.
It can draw on the oscillator and, if enabled, on price as well.
The goal is not to maximize divergence count, but to keep the structures more selective and readable.
Alerts
This script includes separate alert conditions for:
TW Buy
TW Buy Strong
TW Buy Elite
TW Sell
TW Sell Strong
TW Sell Elite
Suggested Use
Trinity Matrix works best as a structured reading tool rather than a one-click decision engine.
A practical workflow is:
Read Trinity Wave direction and location
Check whether MFI is in baseline flow or strong expansion
Use confidence and HTF context to judge continuation or reversal quality
Use signal mode based on your desired aggressiveness
Use divergence as a contextual filter, not as a standalone trigger
Important Notes
Signal frequency changes significantly with the selected signal mode
HTF confidence reflects the live state of the selected higher timeframe
Divergence output is intentionally filtered and selective
This is an indicator framework, not a full trading strategy
Attribution
Core WaveTrend-style formulation was adapted from the open-source WaveTrend Oscillator by LazyBear, then extended with additional smoothing, soft limiting, MFI regime logic, confidence scoring, divergence filtering, dashboard structure, and alert workflow.
Acknowledgement
Built through many rounds of testing, refinement, and iteration — with a little help from ChatGPT and CodeGPT along the way.
Disclaimer
For educational and analytical use only. Not financial advice. Indicator

Smart Money Flow Oscillator [MarkitTick]💡This script introduces a sophisticated method for analyzing market liquidity and institutional order flow. Unlike traditional volume indicators that treat all market activity equally, the Smart Money Flow Oscillator (SMFO) employs a Logic Flow Architecture (LFA) to filter out market noise and "churn," focusing exclusively on high-impact, high-efficiency price movements. By synthesizing price action, volume, and relative efficiency, this tool aims to visualize the accumulation and distribution activities that are often attributed to "smart money" participants.
✨ Originality and Utility
Standard indicators like On-Balance Volume (OBV) or Money Flow Index (MFI) often suffer from noise because they aggregate volume based simply on the close price relative to the previous close, regardless of the quality of the move. This script differentiates itself by introducing an "Efficiency Multiplier" and a "Momentum Threshold." It only registers volume flow when a price move is considered statistically significant and structurally efficient. This creates a cleaner signal that highlights genuine supply and demand imbalances while ignoring indecisive trading ranges. It combines the trend-following nature of cumulative delta with the mean-reverting insights of an In/Out ratio, offering a dual-mode perspective on market dynamics.
🔬 Methodology
The underlying calculation of the SMFO relies on several distinct quantitative layers:
• Efficiency Analysis
The script calculates a "Relative Efficiency" ratio for every candle. This compares the current price displacement (body size) per unit of volume against the historical average.
If price moves significantly with relatively low volume, or proportional volume, it is deemed "efficient."
If significant volume occurs with little price movement (churn/absorption), the efficiency score drops.
This score is clamped between a user-defined minimum and maximum (Efficiency Cap) to prevent outliers from distorting the data.
• Momentum Thresholding
Before adding any data to the flow, the script checks if the current price change exceeds a volatility threshold derived from the previous candle's open-close range. This acts as a gatekeeper, ensuring that only "strong" moves contribute to the oscillator.
• Variable Flow Calculation
If a move passes the threshold, the script calculates the flow value by multiplying the Typical Price and Volume (Money Flow) by the calculated Efficiency Multiplier.
Bullish Flow: Strong upward movement adds to the positive delta.
Bearish Flow: Strong downward movement adds to the negative delta.
Neutral: Bars that fail the momentum threshold contribute zero flow, effectively flattening the line during consolidation.
• Calculation Modes
Cumulative Delta Flow (CDF): Sums the flow values over a rolling period. This creates a trend-following oscillator similar to OBV but smoother and more responsive to real momentum.
In/Out Ratio: Calculates the percentage of bullish inflow relative to the total absolute flow over the period. This oscillates between 0 and 100, useful for identifying overextended conditions.
📖 How to Use
Traders can utilize this oscillator to identify trend strength and potential reversals through the following signals:
• Signal Line Crossovers
The indicator plots the main Flow line (colored gradient) and a Signal line (grey).
Bullish (Green Cloud): When the Flow line crosses above the Signal line, it suggests rising buying pressure and efficient upward movement.
Bearish (Red Cloud): When the Flow line crosses below the Signal line, it suggests dominating selling pressure.
• Divergences
The script automatically detects and plots divergences between price and the oscillator:
Regular Divergence (Solid Lines): Suggests a potential trend reversal (e.g., Price makes a Lower Low while Oscillator makes a Higher Low).
Hidden Divergence (Dashed Lines): Suggests a potential trend continuation (e.g., Price makes a Higher Low while Oscillator makes a Lower Low).
"R" labels denote Regular, and "H" labels denote Hidden divergences.
• Dashboard
A dashboard table is displayed on the chart, providing real-time metrics including the current Efficiency Multiplier, Net Flow value, and the active mode status.
• In/Out Ratio Levels
When using the Ratio mode:
Values above 50 indicate net buying pressure.
Values below 50 indicate net selling pressure.
Approaching 70 or 30 can indicate overbought or oversold conditions involving volume exhaustion.
⚙️ Inputs and Settings
Calculation Mode: Choose between "Cumulative Delta Flow" (Trend focus) or "In/Out Ratio" (Oscillator focus).
Auto-Adjust Period: If enabled, automatically sets the lookback period based on the chart timeframe (e.g., 21 for Daily, 52 for Weekly).
Manual Period: The rolling lookback length for calculations if Auto-Adjust is disabled.
Efficiency Length: The period used to calculate the average body and volume for the efficiency baseline.
Eff. Min/Max Cap: Limits the impact of the efficiency multiplier to prevent extreme skewing during anomaly candles.
Momentum Threshold: A factor determining how much price must move relative to the previous candle to be considered a "strong" move.
Show Dashboard/Divergences: Toggles for visual elements.
🔍 Deconstruction of the Underlying Scientific and Academic Framework
This indicator represents a hybrid synthesis of academic Market Microstructure theory and classical technical analysis. It utilizes an advanced algorithm to quantify "Price Impact," leveraging the following theoretical frameworks:
• 1. The Amihud Illiquidity Ratio (2002)
The core logic (calculating body / volume) functions as a dynamic implementation of Yakov Amihud’s Illiquidity Ratio. It measures price displacement per unit of volume. A high efficiency score indicates that "Smart Money" has moved the price significantly with minimal resistance, effectively highlighting liquidity gaps or institutional control.
• 2. Kyle’s Lambda (1985) & Market Depth
Drawing from Albert Kyle’s research on market microstructure, the indicator approximates Kyle's Lambda to measure the elasticity of price in response to order flow. By analyzing the "efficiency" of a move, it identifies asymmetries—specifically where price reacts disproportionately to low volume—signaling potential manipulation or specific Market Maker activity.
• 3. Wyckoff’s Law of Effort vs. Result
From a classical perspective, the algorithm codifies Richard Wyckoff’s "Effort vs. Result" logic. It acts as an oscillator that detects anomalies where "Effort" (Volume) diverges from the "Result" (Price Range), predicting potential reversals.
• 4. Quantitative Advantage: Efficiency-Weighted Volume
Unlike linear indicators such as OBV or Chaikin Money Flow—which treat all volume equally—this indicator (LFA) utilizes Efficiency-Weighted Volume. By applying the efficiency_mult factor, the algorithm filters out market noise and assigns higher weight to volume that drives structural price changes, adopting a modern quantitative approach to flow analysis.
● Disclaimer
All provided scripts and indicators are strictly for educational exploration and must not be interpreted as financial advice or a recommendation to execute trades. I expressly disclaim all liability for any financial losses or damages that may result, directly or indirectly, from the reliance on or application of these tools. Market participation carries inherent risk where past performance never guarantees future returns, leaving all investment decisions and due diligence solely at your own discretion. Indicator

ATAI Volume analysis with price action V 1.00ATAI Volume Analysis with Price Action
1. Introduction
1.1 Overview
ATAI Volume Analysis with Price Action is a composite indicator designed for PulseWire. It combines per‑side volume data —that is, how much buying and selling occurs during each bar—with standard price‑structure elements such as swings, trend lines and support/resistance. By blending these elements the script aims to help a trader understand which side is in control, whether a breakout is genuine, when markets are potentially exhausted and where liquidity providers might be active.
The indicator is built around PulseWire’s up/down volume feed accessed via the PulseWire/ta/10 library. The following excerpt from the script illustrates how this feed is configured:
import PulseWire/ta/10 as tvta
// Determine lower timeframe string based on user choice and chart resolution
string lower_tf_breakout = use_custom_tf_input ? custom_tf_input :
timeframe.isseconds ? "1S" :
timeframe.isintraday ? "1" :
timeframe.isdaily ? "5" : "60"
// Request up/down volume (both positive)
= tvta.requestUpAndDownVolume(lower_tf_breakout)
Lower‑timeframe selection. If you do not specify a custom lower timeframe, the script chooses a default based on your chart resolution: 1 second for second charts, 1 minute for intraday charts, 5 minutes for daily charts and 60 minutes for anything longer. Smaller intervals provide a more precise view of buyer and seller flow but cover fewer bars. Larger intervals cover more history at the cost of granularity.
Tick vs. time bars. Many trading platforms offer a tick / intrabar calculation mode that updates an indicator on every trade rather than only on bar close. Turning on one‑tick calculation will give the most accurate split between buy and sell volume on the current bar, but it typically reduces the amount of historical data available. For the highest fidelity in live trading you can enable this mode; for studying longer histories you might prefer to disable it. When volume data is completely unavailable (some instruments and crypto pairs), all modules that rely on it will remain silent and only the price‑structure backbone will operate.
Figure caption, Each panel shows the indicator’s info table for a different volume sampling interval. In the left chart, the parentheses “(5)” beside the buy‑volume figure denote that the script is aggregating volume over five‑minute bars; the center chart uses “(1)” for one‑minute bars; and the right chart uses “(1T)” for a one‑tick interval. These notations tell you which lower timeframe is driving the volume calculations. Shorter intervals such as 1 minute or 1 tick provide finer detail on buyer and seller flow, but they cover fewer bars; longer intervals like five‑minute bars smooth the data and give more history.
Figure caption, The values in parentheses inside the info table come directly from the Breakout — Settings. The first row shows the custom lower-timeframe used for volume calculations (e.g., “(1)”, “(5)”, or “(1T)”)
2. Price‑Structure Backbone
Even without volume, the indicator draws structural features that underpin all other modules. These features are always on and serve as the reference levels for subsequent calculations.
2.1 What it draws
• Pivots: Swing highs and lows are detected using the pivot_left_input and pivot_right_input settings. A pivot high is identified when the high recorded pivot_right_input bars ago exceeds the highs of the preceding pivot_left_input bars and is also higher than (or equal to) the highs of the subsequent pivot_right_input bars; pivot lows follow the inverse logic. The indicator retains only a fixed number of such pivot points per side, as defined by point_count_input, discarding the oldest ones when the limit is exceeded.
• Trend lines: For each side, the indicator connects the earliest stored pivot and the most recent pivot (oldest high to newest high, and oldest low to newest low). When a new pivot is added or an old one drops out of the lookback window, the line’s endpoints—and therefore its slope—are recalculated accordingly.
• Horizontal support/resistance: The highest high and lowest low within the lookback window defined by length_input are plotted as horizontal dashed lines. These serve as short‑term support and resistance levels.
• Ranked labels: If showPivotLabels is enabled the indicator prints labels such as “HH1”, “HH2”, “LL1” and “LL2” near each pivot. The ranking is determined by comparing the price of each stored pivot: HH1 is the highest high, HH2 is the second highest, and so on; LL1 is the lowest low, LL2 is the second lowest. In the case of equal prices the newer pivot gets the better rank. Labels are offset from price using ½ × ATR × label_atr_multiplier, with the ATR length defined by label_atr_len_input. A dotted connector links each label to the candle’s wick.
2.2 Key settings
• length_input: Window length for finding the highest and lowest values and for determining trend line endpoints. A larger value considers more history and will generate longer trend lines and S/R levels.
• pivot_left_input, pivot_right_input: Strictness of swing confirmation. Higher values require more bars on either side to form a pivot; lower values create more pivots but may include minor swings.
• point_count_input: How many pivots are kept in memory on each side. When new pivots exceed this number the oldest ones are discarded.
• label_atr_len_input and label_atr_multiplier: Determine how far pivot labels are offset from the bar using ATR. Increasing the multiplier moves labels further away from price.
• Styling inputs for trend lines, horizontal lines and labels (color, width and line style).
Figure caption, The chart illustrates how the indicator’s price‑structure backbone operates. In this daily example, the script scans for bars where the high (or low) pivot_right_input bars back is higher (or lower) than the preceding pivot_left_input bars and higher or lower than the subsequent pivot_right_input bars; only those bars are marked as pivots.
These pivot points are stored and ranked: the highest high is labelled “HH1”, the second‑highest “HH2”, and so on, while lows are marked “LL1”, “LL2”, etc. Each label is offset from the price by half of an ATR‑based distance to keep the chart clear, and a dotted connector links the label to the actual candle.
The red diagonal line connects the earliest and latest stored high pivots, and the green line does the same for low pivots; when a new pivot is added or an old one drops out of the lookback window, the end‑points and slopes adjust accordingly. Dashed horizontal lines mark the highest high and lowest low within the current lookback window, providing visual support and resistance levels. Together, these elements form the structural backbone that other modules reference, even when volume data is unavailable.
3. Breakout Module
3.1 Concept
This module confirms that a price break beyond a recent high or low is supported by a genuine shift in buying or selling pressure. It requires price to clear the highest high (“HH1”) or lowest low (“LL1”) and, simultaneously, that the winning side shows a significant volume spike, dominance and ranking. Only when all volume and price conditions pass is a breakout labelled.
3.2 Inputs
• lookback_break_input : This controls the number of bars used to compute moving averages and percentiles for volume. A larger value smooths the averages and percentiles but makes the indicator respond more slowly.
• vol_mult_input : The “spike” multiplier; the current buy or sell volume must be at least this multiple of its moving average over the lookback window to qualify as a breakout.
• rank_threshold_input (0–100) : Defines a volume percentile cutoff: the current buyer/seller volume must be in the top (100−threshold)%(100−threshold)% of all volumes within the lookback window. For example, if set to 80, the current volume must be in the top 20 % of the lookback distribution.
• ratio_threshold_input (0–1) : Specifies the minimum share of total volume that the buyer (for a bullish breakout) or seller (for bearish) must hold on the current bar; the code also requires that the cumulative buyer volume over the lookback window exceeds the seller volume (and vice versa for bearish cases).
• use_custom_tf_input / custom_tf_input : When enabled, these inputs override the automatic choice of lower timeframe for up/down volume; otherwise the script selects a sensible default based on the chart’s timeframe.
• Label appearance settings : Separate options control the ATR-based offset length, offset multiplier, label size and colors for bullish and bearish breakout labels, as well as the connector style and width.
3.3 Detection logic
1. Data preparation : Retrieve per‑side volume from the lower timeframe and take absolute values. Build rolling arrays of the last lookback_break_input values to compute simple moving averages (SMAs), cumulative sums and percentile ranks for buy and sell volume.
2. Volume spike: A spike is flagged when the current buy (or, in the bearish case, sell) volume is at least vol_mult_input times its SMA over the lookback window.
3. Dominance test: The buyer’s (or seller’s) share of total volume on the current bar must meet or exceed ratio_threshold_input. In addition, the cumulative sum of buyer volume over the window must exceed the cumulative sum of seller volume for a bullish breakout (and vice versa for bearish). A separate requirement checks the sign of delta: for bullish breakouts delta_breakout must be non‑negative; for bearish breakouts it must be non‑positive.
4. Percentile rank: The current volume must fall within the top (100 – rank_threshold_input) percent of the lookback distribution—ensuring that the spike is unusually large relative to recent history.
5. Price test: For a bullish signal, the closing price must close above the highest pivot (HH1); for a bearish signal, the close must be below the lowest pivot (LL1).
6. Labeling: When all conditions above are satisfied, the indicator prints “Breakout ↑” above the bar (bullish) or “Breakout ↓” below the bar (bearish). Labels are offset using half of an ATR‑based distance and linked to the candle with a dotted connector.
Figure caption, (Breakout ↑ example) , On this daily chart, price pushes above the red trendline and the highest prior pivot (HH1). The indicator recognizes this as a valid breakout because the buyer‑side volume on the lower timeframe spikes above its recent moving average and buyers dominate the volume statistics over the lookback period; when combined with a close above HH1, this satisfies the breakout conditions. The “Breakout ↑” label appears above the candle, and the info table highlights that up‑volume is elevated relative to its 11‑bar average, buyer share exceeds the dominance threshold and money‑flow metrics support the move.
Figure caption, In this daily example, price breaks below the lowest pivot (LL1) and the lower green trendline. The indicator identifies this as a bearish breakout because sell‑side volume is sharply elevated—about twice its 11‑bar average—and sellers dominate both the bar and the lookback window. With the close falling below LL1, the script triggers a Breakout ↓ label and marks the corresponding row in the info table, which shows strong down volume, negative delta and a seller share comfortably above the dominance threshold.
4. Market Phase Module (Volume Only)
4.1 Concept
Not all markets trend; many cycle between periods of accumulation (buying pressure building up), distribution (selling pressure dominating) and neutral behavior. This module classifies the current bar into one of these phases without using ATR , relying solely on buyer and seller volume statistics. It looks at net flows, ratio changes and an OBV‑like cumulative line with dual‑reference (1‑ and 2‑bar) trends. The result is displayed both as on‑chart labels and in a dedicated row of the info table.
4.2 Inputs
• phase_period_len: Number of bars over which to compute sums and ratios for phase detection.
• phase_ratio_thresh : Minimum buyer share (for accumulation) or minimum seller share (for distribution, derived as 1 − phase_ratio_thresh) of the total volume.
• strict_mode: When enabled, both the 1‑bar and 2‑bar changes in each statistic must agree on the direction (strict confirmation); when disabled, only one of the two references needs to agree (looser confirmation).
• Color customisation for info table cells and label styling for accumulation and distribution phases, including ATR length, multiplier, label size, colors and connector styles.
• show_phase_module: Toggles the entire phase detection subsystem.
• show_phase_labels: Controls whether on‑chart labels are drawn when accumulation or distribution is detected.
4.3 Detection logic
The module computes three families of statistics over the volume window defined by phase_period_len:
1. Net sum (buyers minus sellers): net_sum_phase = Σ(buy) − Σ(sell). A positive value indicates a predominance of buyers. The code also computes the differences between the current value and the values 1 and 2 bars ago (d_net_1, d_net_2) to derive up/down trends.
2. Buyer ratio: The instantaneous ratio TF_buy_breakout / TF_tot_breakout and the window ratio Σ(buy) / Σ(total). The current ratio must exceed phase_ratio_thresh for accumulation or fall below 1 − phase_ratio_thresh for distribution. The first and second differences of the window ratio (d_ratio_1, d_ratio_2) determine trend direction.
3. OBV‑like cumulative net flow: An on‑balance volume analogue obv_net_phase increments by TF_buy_breakout − TF_sell_breakout each bar. Its differences over the last 1 and 2 bars (d_obv_1, d_obv_2) provide trend clues.
The algorithm then combines these signals:
• For strict mode , accumulation requires: (a) current ratio ≥ threshold, (b) cumulative ratio ≥ threshold, (c) both ratio differences ≥ 0, (d) net sum differences ≥ 0, and (e) OBV differences ≥ 0. Distribution is the mirror case.
• For loose mode , it relaxes the directional tests: either the 1‑ or the 2‑bar difference needs to agree in each category.
If all conditions for accumulation are satisfied, the phase is labelled “Accumulation” ; if all conditions for distribution are satisfied, it’s labelled “Distribution” ; otherwise the phase is “Neutral” .
4.4 Outputs
• Info table row : Row 8 displays “Market Phase (Vol)” on the left and the detected phase (Accumulation, Distribution or Neutral) on the right. The text colour of both cells matches a user‑selectable palette (typically green for accumulation, red for distribution and grey for neutral).
• On‑chart labels : When show_phase_labels is enabled and a phase persists for at least one bar, the module prints a label above the bar ( “Accum” ) or below the bar ( “Dist” ) with a dashed or dotted connector. The label is offset using ATR based on phase_label_atr_len_input and phase_label_multiplier and is styled according to user preferences.
Figure caption, The chart displays a red “Dist” label above a particular bar, indicating that the accumulation/distribution module identified a distribution phase at that point. The detection is based on seller dominance: during that bar, the net buyer-minus-seller flow and the OBV‑style cumulative flow were trending down, and the buyer ratio had dropped below the preset threshold. These conditions satisfy the distribution criteria in strict mode. The label is placed above the bar using an ATR‑based offset and a dashed connector. By the time of the current bar in the screenshot, the phase indicator shows “Neutral” in the info table—signaling that neither accumulation nor distribution conditions are currently met—yet the historical “Dist” label remains to mark where the prior distribution phase began.
Figure caption, In this example the market phase module has signaled an Accumulation phase. Three bars before the current candle, the algorithm detected a shift toward buyers: up‑volume exceeded its moving average, down‑volume was below average, and the buyer share of total volume climbed above the threshold while the on‑balance net flow and cumulative ratios were trending upwards. The blue “Accum” label anchored below that bar marks the start of the phase; it remains on the chart because successive bars continue to satisfy the accumulation conditions. The info table confirms this: the “Market Phase (Vol)” row still reads Accumulation, and the ratio and sum rows show buyers dominating both on the current bar and across the lookback window.
5. OB/OS Spike Module
5.1 What overbought/oversold means here
In many markets, a rapid extension up or down is often followed by a period of consolidation or reversal. The indicator interprets overbought (OB) conditions as abnormally strong selling risk at or after a price rally and oversold (OS) conditions as unusually strong buying risk after a decline. Importantly, these are not direct trade signals; rather they flag areas where caution or contrarian setups may be appropriate.
5.2 Inputs
• minHits_obos (1–7): Minimum number of oscillators that must agree on an overbought or oversold condition for a label to print.
• syncWin_obos: Length of a small sliding window over which oscillator votes are smoothed by taking the maximum count observed. This helps filter out choppy signals.
• Volume spike criteria: kVolRatio_obos (ratio of current volume to its SMA) and zVolThr_obos (Z‑score threshold) across volLen_obos. Either threshold can trigger a spike.
• Oscillator toggles and periods: Each of RSI, Stochastic (K and D), Williams %R, CCI, MFI, DeMarker and Stochastic RSI can be independently enabled; their periods are adjustable.
• Label appearance: ATR‑based offset, size, colors for OB and OS labels, plus connector style and width.
5.3 Detection logic
1. Directional volume spikes: Volume spikes are computed separately for buyer and seller volumes. A sell volume spike (sellVolSpike) flags a potential OverBought bar, while a buy volume spike (buyVolSpike) flags a potential OverSold bar. A spike occurs when the respective volume exceeds kVolRatio_obos times its simple moving average over the window or when its Z‑score exceeds zVolThr_obos.
2. Oscillator votes: For each enabled oscillator, calculate its overbought and oversold state using standard thresholds (e.g., RSI ≥ 70 for OB and ≤ 30 for OS; Stochastic %K/%D ≥ 80 for OB and ≤ 20 for OS; etc.). Count how many oscillators vote for OB and how many vote for OS.
3. Minimum hits: Apply the smoothing window syncWin_obos to the vote counts using a maximum‑of‑last‑N approach. A candidate bar is only considered if the smoothed OB hit count ≥ minHits_obos (for OverBought) or the smoothed OS hit count ≥ minHits_obos (for OverSold).
4. Tie‑breaking: If both OverBought and OverSold spike conditions are present on the same bar, compare the smoothed hit counts: the side with the higher count is selected; ties default to OverBought.
5. Label printing: When conditions are met, the bar is labelled as “OverBought X/7” above the candle or “OverSold X/7” below it. “X” is the number of oscillators confirming, and the bracket lists the abbreviations of contributing oscillators. Labels are offset from price using half of an ATR‑scaled distance and can optionally include a dotted or dashed connector line.
Figure caption, In this chart the overbought/oversold module has flagged an OverSold signal. A sell‑off from the prior highs brought price down to the lower trend‑line, where the bar marked “OverSold 3/7 DeM” appears. This label indicates that on that bar the module detected a buy‑side volume spike and that at least three of the seven enabled oscillators—in this case including the DeMarker—were in oversold territory. The label is printed below the candle with a dotted connector, signaling that the market may be temporarily exhausted on the downside. After this oversold print, price begins to rebound towards the upper red trend‑line and higher pivot levels.
Figure caption, This example shows the overbought/oversold module in action. In the left‑hand panel you can see the OB/OS settings where each oscillator (RSI, Stochastic, Williams %R, CCI, MFI, DeMarker and Stochastic RSI) can be enabled or disabled, and the ATR length and label offset multiplier adjusted. On the chart itself, price has pushed up to the descending red trendline and triggered an “OverBought 3/7” label. That means the sell‑side volume spiked relative to its average and three out of the seven enabled oscillators were in overbought territory. The label is offset above the candle by half of an ATR and connected with a dashed line, signaling that upside momentum may be overextended and a pause or pullback could follow.
6. Buyer/Seller Trap Module
6.1 Concept
A bull trap occurs when price appears to break above resistance, attracting buyers, but fails to sustain the move and quickly reverses, leaving a long upper wick and trapping late entrants. A bear trap is the opposite: price breaks below support, lures in sellers, then snaps back, leaving a long lower wick and trapping shorts. This module detects such traps by looking for price structure sweeps, order‑flow mismatches and dominance reversals. It uses a scoring system to differentiate risk from confirmed traps.
6.2 Inputs
• trap_lookback_len: Window length used to rank extremes and detect sweeps.
• trap_wick_threshold: Minimum proportion of a bar’s range that must be wick (upper for bull traps, lower for bear traps) to qualify as a sweep.
• trap_score_risk: Minimum aggregated score required to flag a trap risk. (The code defines a trap_score_confirm input, but confirmation is actually based on price reversal rather than a separate score threshold.)
• trap_confirm_bars: Maximum number of bars allowed for price to reverse and confirm the trap. If price does not reverse in this window, the risk label will expire or remain unconfirmed.
• Label settings: ATR length and multiplier for offsetting, size, colours for risk and confirmed labels, and connector style and width. Separate settings exist for bull and bear traps.
• Toggle inputs: show_trap_module and show_trap_labels enable the module and control whether labels are drawn on the chart.
6.3 Scoring logic
The module assigns points to several conditions and sums them to determine whether a trap risk is present. For bull traps, the score is built from the following (bear traps mirror the logic with highs and lows swapped):
1. Sweep (2 points): Price trades above the high pivot (HH1) but fails to close above it and leaves a long upper wick at least trap_wick_threshold × range. For bear traps, price dips below the low pivot (LL1), fails to close below and leaves a long lower wick.
2. Close break (1 point): Price closes beyond HH1 or LL1 without leaving a long wick.
3. Candle/delta mismatch (2 points): The candle closes bullish yet the order flow delta is negative or the seller ratio exceeds 50%, indicating hidden supply. Conversely, a bearish close with positive delta or buyer dominance suggests hidden demand.
4. Dominance inversion (2 points): The current bar’s buyer volume has the highest rank in the lookback window while cumulative sums favor sellers, or vice versa.
5. Low‑volume break (1 point): Price crosses the pivot but total volume is below its moving average.
The total score for each side is compared to trap_score_risk. If the score is high enough, a “Bull Trap Risk” or “Bear Trap Risk” label is drawn, offset from the candle by half of an ATR‑scaled distance using a dashed outline. If, within trap_confirm_bars, price reverses beyond the opposite level—drops back below the high pivot for bull traps or rises above the low pivot for bear traps—the label is upgraded to a solid “Bull Trap” or “Bear Trap” . In this version of the code, there is no separate score threshold for confirmation: the variable trap_score_confirm is unused; confirmation depends solely on a successful price reversal within the specified number of bars.
Figure caption, In this example the trap module has flagged a Bear Trap Risk. Price initially breaks below the most recent low pivot (LL1), but the bar closes back above that level and leaves a long lower wick, suggesting a failed push lower. Combined with a mismatch between the candle direction and the order flow (buyers regain control) and a reversal in volume dominance, the aggregate score exceeds the risk threshold, so a dashed “Bear Trap Risk” label prints beneath the bar. The green and red trend lines mark the current low and high pivot trajectories, while the horizontal dashed lines show the highest and lowest values in the lookback window. If, within the next few bars, price closes decisively above the support, the risk label would upgrade to a solid “Bear Trap” label.
Figure caption, In this example the trap module has identified both ends of a price range. Near the highs, price briefly pushes above the descending red trendline and the recent pivot high, but fails to close there and leaves a noticeable upper wick. That combination of a sweep above resistance and order‑flow mismatch generates a Bull Trap Risk label with a dashed outline, warning that the upside break may not hold. At the opposite extreme, price later dips below the green trendline and the labelled low pivot, then quickly snaps back and closes higher. The long lower wick and subsequent price reversal upgrade the previous bear‑trap risk into a confirmed Bear Trap (solid label), indicating that sellers were caught on a false breakdown. Horizontal dashed lines mark the highest high and lowest low of the lookback window, while the red and green diagonals connect the earliest and latest pivot highs and lows to visualize the range.
7. Sharp Move Module
7.1 Concept
Markets sometimes display absorption or climax behavior—periods when one side steadily gains the upper hand before price breaks out with a sharp move. This module evaluates several order‑flow and volume conditions to anticipate such moves. Users can choose how many conditions must be met to flag a risk and how many (plus a price break) are required for confirmation.
7.2 Inputs
• sharp Lookback: Number of bars in the window used to compute moving averages, sums, percentile ranks and reference levels.
• sharpPercentile: Minimum percentile rank for the current side’s volume; the current buy (or sell) volume must be greater than or equal to this percentile of historical volumes over the lookback window.
• sharpVolMult: Multiplier used in the volume climax check. The current side’s volume must exceed this multiple of its average to count as a climax.
• sharpRatioThr: Minimum dominance ratio (current side’s volume relative to the opposite side) used in both the instant and cumulative dominance checks.
• sharpChurnThr: Maximum ratio of a bar’s range to its ATR for absorption/churn detection; lower values indicate more absorption (large volume in a small range).
• sharpScoreRisk: Minimum number of conditions that must be true to print a risk label.
• sharpScoreConfirm: Minimum number of conditions plus a price break required for confirmation.
• sharpCvdThr: Threshold for cumulative delta divergence versus price change (positive for bullish accumulation, negative for bearish distribution).
• Label settings: ATR length (sharpATRlen) and multiplier (sharpLabelMult) for positioning labels, label size, colors and connector styles for bullish and bearish sharp moves.
• Toggles: enableSharp activates the module; show_sharp_labels controls whether labels are drawn.
7.3 Conditions (six per side)
For each side, the indicator computes six boolean conditions and sums them to form a score:
1. Dominance (instant and cumulative):
– Instant dominance: current buy volume ≥ sharpRatioThr × current sell volume.
– Cumulative dominance: sum of buy volumes over the window ≥ sharpRatioThr × sum of sell volumes (and vice versa for bearish checks).
2. Accumulation/Distribution divergence: Over the lookback window, cumulative delta rises by at least sharpCvdThr while price fails to rise (bullish), or cumulative delta falls by at least sharpCvdThr while price fails to fall (bearish).
3. Volume climax: The current side’s volume is ≥ sharpVolMult × its average and the product of volume and bar range is the highest in the lookback window.
4. Absorption/Churn: The current side’s volume divided by the bar’s range equals the highest value in the window and the bar’s range divided by ATR ≤ sharpChurnThr (indicating large volume within a small range).
5. Percentile rank: The current side’s volume percentile rank is ≥ sharp Percentile.
6. Mirror logic for sellers: The above checks are repeated with buyer and seller roles swapped and the price break levels reversed.
Each condition that passes contributes one point to the corresponding side’s score (0 or 1). Risk and confirmation thresholds are then applied to these scores.
7.4 Scoring and labels
• Risk: If scoreBull ≥ sharpScoreRisk, a “Sharp ↑ Risk” label is drawn above the bar. If scoreBear ≥ sharpScoreRisk, a “Sharp ↓ Risk” label is drawn below the bar.
• Confirmation: A risk label is upgraded to “Sharp ↑” when scoreBull ≥ sharpScoreConfirm and the bar closes above the highest recent pivot (HH1); for bearish cases, confirmation requires scoreBear ≥ sharpScoreConfirm and a close below the lowest pivot (LL1).
• Label positioning: Labels are offset from the candle by ATR × sharpLabelMult (full ATR times multiplier), not half, and may include a dashed or dotted connector line if enabled.
Figure caption, In this chart both bullish and bearish sharp‑move setups have been flagged. Earlier in the range, a “Sharp ↓ Risk” label appears beneath a candle: the sell‑side score met the risk threshold, signaling that the combination of strong sell volume, dominance and absorption within a narrow range suggested a potential sharp decline. The price did not close below the lower pivot, so this label remains a “risk” and no confirmation occurred. Later, as the market recovered and volume shifted back to the buy side, a “Sharp ↑ Risk” label prints above a candle near the top of the channel. Here, buy‑side dominance, cumulative delta divergence and a volume climax aligned, but price has not yet closed above the upper pivot (HH1), so the alert is still a risk rather than a confirmed sharp‑up move.
Figure caption, In this chart a Sharp ↑ label is displayed above a candle, indicating that the sharp move module has confirmed a bullish breakout. Prior bars satisfied the risk threshold — showing buy‑side dominance, positive cumulative delta divergence, a volume climax and strong absorption in a narrow range — and this candle closes above the highest recent pivot, upgrading the earlier “Sharp ↑ Risk” alert to a full Sharp ↑ signal. The green label is offset from the candle with a dashed connector, while the red and green trend lines trace the high and low pivot trajectories and the dashed horizontals mark the highest and lowest values of the lookback window.
8. Market‑Maker / Spread‑Capture Module
8.1 Concept
Liquidity providers often “capture the spread” by buying and selling in almost equal amounts within a very narrow price range. These bars can signal temporary congestion before a move or reflect algorithmic activity. This module flags bars where both buyer and seller volumes are high, the price range is only a few ticks and the buy/sell split remains close to 50%. It helps traders spot potential liquidity pockets.
8.2 Inputs
• scalpLookback: Window length used to compute volume averages.
• scalpVolMult: Multiplier applied to each side’s average volume; both buy and sell volumes must exceed this multiple.
• scalpTickCount: Maximum allowed number of ticks in a bar’s range (calculated as (high − low) / minTick). A value of 1 or 2 captures ultra‑small bars; increasing it relaxes the range requirement.
• scalpDeltaRatio: Maximum deviation from a perfect 50/50 split. For example, 0.05 means the buyer share must be between 45% and 55%.
• Label settings: ATR length, multiplier, size, colors, connector style and width.
• Toggles : show_scalp_module and show_scalp_labels to enable the module and its labels.
8.3 Signal
When, on the current bar, both TF_buy_breakout and TF_sell_breakout exceed scalpVolMult times their respective averages and (high − low)/minTick ≤ scalpTickCount and the buyer share is within scalpDeltaRatio of 50%, the module prints a “Spread ↔” label above the bar. The label uses the same ATR offset logic as other modules and draws a connector if enabled.
Figure caption, In this chart the spread‑capture module has identified a potential liquidity pocket. Buyer and seller volumes both spiked above their recent averages, yet the candle’s range measured only a couple of ticks and the buy/sell split stayed close to 50 %. This combination met the module’s criteria, so it printed a grey “Spread ↔” label above the bar. The red and green trend lines link the earliest and latest high and low pivots, and the dashed horizontals mark the highest high and lowest low within the current lookback window.
9. Money Flow Module
9.1 Concept
To translate volume into a monetary measure, this module multiplies each side’s volume by the closing price. It tracks buying and selling system money default currency on a per-bar basis and sums them over a chosen period. The difference between buy and sell currencies (Δ$) shows net inflow or outflow.
9.2 Inputs
• mf_period_len_mf: Number of bars used for summing buy and sell dollars.
• Label appearance settings: ATR length, multiplier, size, colors for up/down labels, and connector style and width.
• Toggles: Use enableMoneyFlowLabel_mf and showMFLabels to control whether the module and its labels are displayed.
9.3 Calculations
• Per-bar money: Buy $ = TF_buy_breakout × close; Sell $ = TF_sell_breakout × close. Their difference is Δ$ = Buy $ − Sell $.
• Summations: Over mf_period_len_mf bars, compute Σ Buy $, Σ Sell $ and ΣΔ$ using math.sum().
• Info table entries: Rows 9–13 display these values as texts like “↑ USD 1234 (1M)” or “ΣΔ USD −5678 (14)”, with colors reflecting whether buyers or sellers dominate.
• Money flow status: If Δ$ is positive the bar is marked “Money flow in” ; if negative, “Money flow out” ; if zero, “Neutral”. The cumulative status is similarly derived from ΣΔ.Labels print at the bar that changes the sign of ΣΔ, offset using ATR × label multiplier and styled per user preferences.
Figure caption, The chart illustrates a steady rise toward the highest recent pivot (HH1) with price riding between a rising green trend‑line and a red trend‑line drawn through earlier pivot highs. A green Money flow in label appears above the bar near the top of the channel, signaling that net dollar flow turned positive on this bar: buy‑side dollar volume exceeded sell‑side dollar volume, pushing the cumulative sum ΣΔ$ above zero. In the info table, the “Money flow (bar)” and “Money flow Σ” rows both read In, confirming that the indicator’s money‑flow module has detected an inflow at both bar and aggregate levels, while other modules (pivots, trend lines and support/resistance) remain active to provide structural context.
In this example the Money Flow module signals a net outflow. Price has been trending downward: successive high pivots form a falling red trend‑line and the low pivots form a descending green support line. When the latest bar broke below the previous low pivot (LL1), both the bar‑level and cumulative net dollar flow turned negative—selling volume at the close exceeded buying volume and pushed the cumulative Δ$ below zero. The module reacts by printing a red “Money flow out” label beneath the candle; the info table confirms that the “Money flow (bar)” and “Money flow Σ” rows both show Out, indicating sustained dominance of sellers in this period.
10. Info Table
10.1 Purpose
When enabled, the Info Table appears in the lower right of your chart. It summarises key values computed by the indicator—such as buy and sell volume, delta, total volume, breakout status, market phase, and money flow—so you can see at a glance which side is dominant and which signals are active.
10.2 Symbols
• ↑ / ↓ — Up (↑) denotes buy volume or money; down (↓) denotes sell volume or money.
• MA — Moving average. In the table it shows the average value of a series over the lookback period.
• Σ (Sigma) — Cumulative sum over the chosen lookback period.
• Δ (Delta) — Difference between buy and sell values.
• B / S — Buyer and seller share of total volume, expressed as percentages.
• Ref. Price — Reference price for breakout calculations, based on the latest pivot.
• Status — Indicates whether a breakout condition is currently active (True) or has failed.
10.3 Row definitions
1. Up volume / MA up volume – Displays current buy volume on the lower timeframe and its moving average over the lookback period.
2. Down volume / MA down volume – Shows current sell volume and its moving average; sell values are formatted in red for clarity.
3. Δ / ΣΔ – Lists the difference between buy and sell volume for the current bar and the cumulative delta volume over the lookback period.
4. Σ / MA Σ (Vol/MA) – Total volume (buy + sell) for the bar, with the ratio of this volume to its moving average; the right cell shows the average total volume.
5. B/S ratio – Buy and sell share of the total volume: current bar percentages and the average percentages across the lookback period.
6. Buyer Rank / Seller Rank – Ranks the bar’s buy and sell volumes among the last (n) bars; lower rank numbers indicate higher relative volume.
7. Σ Buy / Σ Sell – Sum of buy and sell volumes over the lookback window, indicating which side has traded more.
8. Breakout UP / DOWN – Shows the breakout thresholds (Ref. Price) and whether the breakout condition is active (True) or has failed.
9. Market Phase (Vol) – Reports the current volume‑only phase: Accumulation, Distribution or Neutral.
10. Money Flow – The final rows display dollar amounts and status:
– ↑ USD / Σ↑ USD – Buy dollars for the current bar and the cumulative sum over the money‑flow period.
– ↓ USD / Σ↓ USD – Sell dollars and their cumulative sum.
– Δ USD / ΣΔ USD – Net dollar difference (buy minus sell) for the bar and cumulatively.
– Money flow (bar) – Indicates whether the bar’s net dollar flow is positive (In), negative (Out) or neutral.
– Money flow Σ – Shows whether the cumulative net dollar flow across the chosen period is positive, negative or neutral.
The chart above shows a sequence of different signals from the indicator. A Bull Trap Risk appears after price briefly pushes above resistance but fails to hold, then a green Accum label identifies an accumulation phase. An upward breakout follows, confirmed by a Money flow in print. Later, a Sharp ↓ Risk warns of a possible sharp downturn; after price dips below support but quickly recovers, a Bear Trap label marks a false breakdown. The highlighted info table in the center summarizes key metrics at that moment, including current and average buy/sell volumes, net delta, total volume versus its moving average, breakout status (up and down), market phase (volume), and bar‑level and cumulative money flow (In/Out).
11. Conclusion & Final Remarks
This indicator was developed as a holistic study of market structure and order flow. It brings together several well‑known concepts from technical analysis—breakouts, accumulation and distribution phases, overbought and oversold extremes, bull and bear traps, sharp directional moves, market‑maker spread bars and money flow—into a single Pine Script tool. Each module is based on widely recognized trading ideas and was implemented after consulting reference materials and example strategies, so you can see in real time how these concepts interact on your chart.
A distinctive feature of this indicator is its reliance on per‑side volume: instead of tallying only total volume, it separately measures buy and sell transactions on a lower time frame. This approach gives a clearer view of who is in control—buyers or sellers—and helps filter breakouts, detect phases of accumulation or distribution, recognize potential traps, anticipate sharp moves and gauge whether liquidity providers are active. The money‑flow module extends this analysis by converting volume into currency values and tracking net inflow or outflow across a chosen window.
Although comprehensive, this indicator is intended solely as a guide. It highlights conditions and statistics that many traders find useful, but it does not generate trading signals or guarantee results. Ultimately, you remain responsible for your positions. Use the information presented here to inform your analysis, combine it with other tools and risk‑management techniques, and always make your own decisions when trading.
Indicator

Indicator

Degen Dominator - (Crypto Dominance Tool) - [mutantdog]A fairly simple one this time. Another crypto dominance tool, consider it a sequel to Dominion if you will. Ready to go out-of-the-box with a selection of presets at hand.
The premise is straightforward, rather than viewing the various marketcap dominance indexes as their standard percentage values, here we have them represented as basic oscillators. This allows for multiple indexes to be viewed in one pane and gives a decent overview of their relative changes and thus the flow of capital within the overall crypto market. As a general rule-of-thumb, when a plot is above zero then the dominance is climbing, thus capital is likely flowing in that direction. The inverse applies when below zero. When the market is quiet, all will be close to zero. Basic overbought/oversold conditions can also be inferred too.
Active as default are:
Bitcoin (0range): CRYPTOCAP:BTC.D
Ethereum (Blue): CRYPTOCAP:ETH.D
Stablecoins (Red): CRYPTOCAP:USDT.D + CRYPTOCAP:USDC.D
Altcoins (Green): 100 - (all of the above)
These are plotted according to the selected oscillator preset and it's length parameter. The default is set to 'EMA Centre'. An optional RMA(3) smoothing filter is also included and active as default. Each index plot has its own colour and opacity settings available on the main page.
Additionally, the following are also available (deactivated as default):
Total DeFi : CRYPTOCAP:TOTALDEFI.D
Current Symbol : Will try to match corresponding dominance index for the chart symbol if available.
Custom Input : Manual text input, will try to match if available.
-------------
The included presets determine the oscillator type used, all are fairly simple and easy to interpret:
EMA Centre
SMA Centre
Median Centre
Midrange Centre
The first 4 are all variations on the same theme, simply calculated as the difference between the actual value and its respective average. EMA is the default and is my personal preference, if you generally favour using an SMA then perhaps that would be your better choice. Like the two MAs, median and midrange are also dependant on the length parameter. Midrange is calculated from the difference between highest and lowest values within the length period, with a little extra smoothing from an RMA(3).
Simple Delta
Weighted Delta
Running Delta
Often referred to as momentum, delta is just change over time. 'Simple' is the most basic of these, the difference between the current value and the value (length) bars prior. A more long-winded way of calculating this would be to take the difference between each bar and its previous then average them with an SMA which results in the same value. 'Weighted' adopts that principle but instead uses a WMA, likewise 'Running' is the same but using an RMA. The latter is actually the basis of RSI calculations before any normalisation is applied, as you can see in the next preset.
RSI
CMO
RSI really should not need explaining, it is however applied a little differently here to the usual, in this case centred around 0. The x100 multiplication factor has been dropped too for the sake of consistency. The same principle applies with CMO, which is basically a 'Simple Delta' version of RSI.
Hard Floor
Soft Floor
These last two are a little different but both can provide useful interpretations. The floor here is simply the lowest value within the chosen length period. 'Hard' plots the difference between the current value and the floor, thus giving a value that is always above 0. In this case, focus should be given to the relative heights of each with a simple interpretation that capital is flowing into those that are climbing and out of those descending. 'Soft' is essentially the same except that the floor is smoothed with an RMA(3), the result being that when new lows are made, the plot will break below 0 before the floor corrects a few bars later. This soft break provides additional information to that given by 'Hard' so is probably the more useful of the two.
------------
To finish it off, a bunch of preset alerts are included for the various 0 crossings.
So that just about covers everything then, all quite straightforward really. Future updates may include some extra stuff, the composition of the stablecoin index may change if necessary too. While this is not really a tweaker's tool like some of my other projects, there's still some room for experimentation here. The 'current' and 'custom' indexes can provide some useful data for compatible altcoins and the possibility to compare inter-related tokens (eg: Doge vs Shib). While i introduced this as a sort of sequel to Dominion, it is not intended as a replacement but more of a companion. This initially started as a feature intended for that one but it quickly grew into its own thing. Both the oscillator view here and the more traditional view have merits, i personally use this one primarily now but frequently refer to Dominion for confirmations etc.
That's it for now anyway. As always, feedback is welcome below. Enjoy!
Indicator

Aggregated Chaikin Money Flow - InFinitoModified Version of In-Built Chaikin Money Flow Indicator. Aggregated Volume is used for it's calculation + a couple of other features.
Aggregation code originally from Crypt0rus
***The indicator can be used for any coin/symbol to aggregate volume , but it has to be set up manually***
***The indicator can be used with specific symbol data only by disabling the aggregation option, which allows for it to be used on any symbol***
- Calculated based on Aggregated Volume instead of by symbol volume. Using aggregated data makes it more accurate and allows to compare volume flow between different kinds of markets (Spot, Futures , Perpetuals, Futures+Perpetuals and All Volume ).
- As well, in order to make the data as accurate as possible, the data from each exchange aggregated is normalized to report always in terms of 1 BTC. In case this indicator is used for another symbol, the calculations can be adjusted manually to make it always report data in terms of 1 contract/coin.
- Added Moving Average ( SMA , EMA , WMA , RMA, VWMA) that can be plotted to the CMF
- Changed 0 line to a small range which tends to be more relevant than the 0 line. This range can be manually modified
Things to look for:
- Divergences: Can be a very good reversal signal
- MA crossovers: Can be a very good confluent Buy/Sell signal
- Center range retests: CMF is normally defined as bullish above 0 and bearish below 0. In this case it is above or below the middle range. Even if the start of the move was missed. The retest of the middle range can give very good entries.
- Confluence of the latter
Indicator

Money Flow Index With Bullish & Bearish SignalsMONEY FLOW INDEX WITH BULLISH AND BEARISH SIGNALS
Money Flow Index shows whether money is coming into the market or going out of the market. This can be used to gauge market sentiment and whether people are buying or selling at the current price.
***HOW TO USE***
If the MFI line is green, it is above the 50 line and in a bullish trend.
If the MFI line is red, it is below the 50 line and in a bearish trend.
If the background color is green, Money Flow is in a bullish trend, holding above the 50 line.
If the background color is red, Money Flow is in a bearish trend, holding below the 50 line.
If the MFI is above the 75 level it indicates a possible top or overbought conditions.
If the MFI is below the 25 level it indicates a possible bottom or oversold conditions.
***BULLISH/BEARISH LABELS***
There is also a label on the right side that tells you whether the overall trend is bullish or bearish, if there is a possible bottom or top and if the current money flow index is going up or down. This table updates in real time and changes colors so you can get an easy, quick interpretation of the current money flow without having to look at the data so you can make faster decisions on whether to enter or exit a trade. The flashing from red to green or the opposite also grabs your attention so you know immediately if there is a change in trend. The table changes colors in sync with the MFI line and it's trends and bottom/top areas. Green means money is coming in. Red means money is going out. Blue means a neutral amount of money flow.
***MARKETS***
This indicator can be used as a signal on all markets, including stocks, crypto, futures and forex.
***TIMEFRAMES***
This Money Flow Index indicator can be used on all timeframes.
***TIPS***
Try using numerous indicators of ours on your chart so you can instantly see the bullish or bearish trend of multiple indicators in real time without having to analyze the data. Some of our favorites are our Auto Fibonacci, DMI, Momentum, Auto Support And Resistance and Volume Profile in combination with this Money Flow Index. They all have real time Bullish and Bearish labels as well so you can immediately understand each indicator's trend.
Indicator

Indicator

Indicator
