Rolling VWAP + Volume Profile by Flip On DipRolling VWAP + Volume Profile draws a volume weighted average over a moving window of trading days, and a separate volume profile for each of the last few sessions.
🔁 The VWAP here is not anchored. Instead of resetting at the open it holds a sliding window of the last N sessions, so the line carries through the open and over the weekend without jumping. Two deviation bands sit either side, built from the volume weighted standard deviation rather than a plain one, so they widen when size trades away from the mean instead of just following range.
🕐 Session length is measured off the chart rather than assumed. A 6.5 hour stock day, a 23 hour gold day and a 24 hour crypto day all count as one day, so a 7 day window really is seven sessions on any symbol at any timeframe.
📊 Each session gets its own profile, built from a candle step you set. That step is independent of your chart, so the same 5m profile shows up whether you're looking at a 1m or a 1h chart and switching timeframes won't change the shape. Volume from each candle is spread across every level it touches, weighted by how much of the candle's range falls inside each one, instead of being dumped at the close. Point of control and value area are marked, and the session in progress rebuilds as it fills.
On that last point, worth being clear about what moves and what doesn't. The session in progress is live and will keep changing until it closes, roughly once a minute as volume comes in. That's the whole idea of a developing profile. Once a session ends its profile is drawn once and never touched again, so nothing behind you shifts around. The VWAP behaves the same way: it updates on the current bar like any average does, and past values stay where they were.
Two horizons. Micro gives daily profiles with a week long VWAP, Macro switches to weekly profiles with a fortnight long VWAP across a longer stretch of history. Each one keeps its own settings, so flipping between them doesn't cost you your tuning.
⚠️ Not every ticker reports real volume, and that changes what a profile means. Spot gold, most FX and index feeds publish nothing at all, while forex and CFD tickers that do publish are usually counting ticks rather than contracts. The indicator checks and tells you which one you're on. Where there's no volume it falls back to counting time spent at each price, which is still a useful map of where the market lingered, and the panel says so rather than leaving you to work out why the shape looks odd.
The panel in the corner handles the rest of it. Active horizon, VWAP window, profile step, and whether volume on this ticker is traded, tick only or missing. If something is quietly limiting the drawing, the chart timeframe being wrong for the horizon, the 500 box platform limit, not enough history loaded for the window you asked for, it writes it out in plain words with what to change.
There's also an optional fixed step for the VWAP itself, which makes the line identical on every timeframe. Off by default, since the chart bars are what most people expect.
⚡ Nothing is calculated outside the visible window, and every box and line is allocated once and reused instead of being deleted and redrawn, so panning around stays smooth even on long intraday history.
Three colour presets, Default, Light and Dark, or Custom to set every colour and transparency yourself. Row spacing and width, gradients, borders, POC and VAH/VAL lines, the 3D shadow, price labels and the panel are all configurable.
Open source, free to study or extend. Indicator

Smart SR Zones [JOAT]SMART SR ZONES
Support / resistance done properly. Most public SR scripts paint a horizontal line at every pivot, which produces wallpaper, not analysis. Smart SR Zones does the opposite — pivots are first detected with a volatility-aware engine, then clustered into zones, then scored by volume and touches, then filtered by spacing and distance. What ends up on the chart is the small handful of levels that actually matter for the current market state.
Pivot detection — preset-driven
A single Strength Preset selects the personality of the pivot engine:
Scalp — 4 left / 2 right, 0.4× ATR clustering tolerance, 4-bar minimum spacing. For 1–5m charts.
Local — 6 / 4, 0.5×, 8-bar. Tight zones from recent structure.
Swing — 15 / 8, 0.9×, 20-bar. The balanced default.
Major — 35 / 15, 1.4×, 50-bar. Wide macro zones.
Custom — every parameter is exposed for manual tuning.
The preset abstraction means you do not need to refit anything across timeframes — pick the read you want and the engine does the rest.
Clustering, not stacking
When two pivots fall within Cluster Tolerance × ATR of each other they are merged into a single zone, with the box span widened to cover both extremes. This is the difference between a "level" and a "zone": a level pretends price is precise, a zone respects the fact that liquidity sits in a band. The cluster tolerance is ATR-relative so the same setting works across symbols.
Touch counting, properly gated
A pivot must contribute to a cluster from a minimum bar spacing (preset-driven). Without this filter a chop within a zone gets counted as ten separate touches and inflates the strength score. With it, a zone earns its touch count from genuinely independent visits.
Volume-weighted strength + star rating
Each cluster accumulates the bar volume at every contributing pivot. The aggregate is converted to a 1–3 star rating relative to the strongest zone currently on the chart, and is shown in the zone label alongside the touch count. Zones can optionally be coloured by volume share so the visually loudest box is the one carrying the most demonstrated activity.
Zone of Interest (ZOI) — the headline filter
A zone earns the ZOI badge when all of these are true at the same time:
It has met the minimum-touches threshold (so it is real structure).
Its volume share is above the ZOI volume threshold (so it is meaningfully active).
It has not been touched recently — at least ZOI Quiet bars since the most-recent touch.
In other words, a ZOI is a high-quality level that the market is conspicuously not testing — and these are usually the next levels that matter. The ZOI gets a bright burlywood border with an optional animated pulse so it visually separates from the rest of the SR stack.
Distance hiding
A "Hide zones farther than %" input drops anything whose centre price is too far from current — so when you scroll into history the chart does not get cluttered with macro zones from another era. Set to 0 to keep everything visible.
Broken zones and dropped zones
Two optional historical layers:
Broken — zones that were physically closed through. Renders in a desaturated palette so you can see where structure failed without confusing it for active level.
Dropped — zones that were removed not by a break but by reorganisation, because newer / stronger pivots reshuffled the cluster set.
Both are off by default so a working chart stays clean.
Optional signal layer
Three small markers (all off by default) for traders who want execution hints rather than just structure:
Successful test — circle on bars that touched an active zone and rejected.
Retest — diamond when price returns to a broken zone from the opposite side, inside a configurable window.
Zone reaction — small diamond on a touch-with-hold, plus a text label on physical break events.
A configurable cooldown prevents back-to-back markers from the same zone.
Dashboard
A compact diagnostic table, positionable to any of nine corners, monospaced. Shows nearest support / resistance with distance, current ZOI status, active zone count per side, and the preset in use. A compact mode hides descriptions for narrow layouts.
Alerts
A single high-signal alert is exposed: Zone of Interest activation — fires on the first bar a zone qualifies as a ZOI. The other layers are visual diagnostics, not alert-grade; this is intentional, because the ZOI rule is the strongest filter in the script and is what you actually want to be notified about.
How to read it
Look at the chart and ignore everything except the ZOI-tagged zones and the stars. The stars tell you which historical levels have the most demonstrated activity; the ZOI badge tells you which of those have been deliberately avoided recently. The intersection — a star-rated ZOI close to price — is the cleanest level read this script can produce. Use the volume score and the touch count as a tiebreaker when multiple ZOIs are in play.
Suggested settings
Default Swing preset works well from 1H through 1D on liquid futures, FX, and crypto. Drop to Local for intraday execution and Scalp for tape-reading on minute charts. Major is for weekly / monthly macro reads. The ZOI volume threshold (70%) is intentionally strict — drop it to 50–60% if you want more frequent ZOI candidates.
Originality / what's reused
The vocabulary (pivot, cluster, touch count, broken zone, retest) is public-domain market-structure language. The implementation — the preset-driven engine, the ATR-clustering, the volume-weighted star rating, the ZOI rule (touches + volume share + quiet-period), the dropped-zone reorganisation logic, and the volume-share intensity colouring — is JOAT-original and tuned together as a single system. No third-party code reused.
Open source
Published open-source under the default Mozilla Public License 2.0. The source is fully documented inline — every helper is sectioned, every input has a tooltip, and the structural layers are separable so you can learn from any specific piece. Forks welcome with credit.
Limitations
SR is structural context, not a signal generator. Smart SR Zones does not print buy / sell labels — it prints zones, ratings, and a single high-quality ZOI alert. On extremely illiquid instruments the volume-share rankings will be noisy and the ZOI rule will fire less often; that is the right behaviour. Zones beyond the Pivot Memory horizon are dropped to stay under PulseWire's 500-object cap.
—
-made with passion by jackofalltrades
Indicator

Volume Drift Profile [JOAT]Volume Drift Profile
Introduction
Volume Drift Profile is an open-source trend detection indicator that derives directional bias from rolling pivot averages rather than fixed moving averages, and visualizes volume directly on the drift lines themselves as a histogram. The volume histogram coloring adapts to three modes — delta (buy-sell pressure gradient), trend (directional mono-color), and spike-highlighted — making the volume context immediately readable without a separate volume panel.
Most trend indicators separate the price trend line from the volume analysis. The trend line tells you the direction; you look at a separate volume bar panel to interpret whether that direction is supported. Volume Drift Profile overlaps both by rendering volume bars along the drift lines themselves, so the relationship between trend level and volume support is visually immediate.
Core Concepts
1. Pivot Drift Line Calculation
The upper drift line is the rolling average of the most recent N confirmed pivot highs. The lower drift line is the rolling average of the most recent N confirmed pivot lows. This produces smoothed, structurally-anchored reference levels that adapt as new pivots confirm, rather than a fixed-period moving average that treats all bars equally.
if not na(ph)
phArr.push(ph)
if phArr.size() > avgCount : phArr.shift()
upperDrift := phArr.avg()
Trend flips when price crosses above the upper drift (bull) or below the lower drift (bear).
2. Volume Normalization
Volume is normalized by its 200-bar standard deviation, capped at 4. This z-score-like measure produces a 0-4 scale where 4 represents an extreme volume spike. The step height of each volume bar on the drift line is proportional to this normalized value, so spike bars visually dominate the histogram.
3. Three Volume Coloring Modes
Delta mode computes a buy ratio from (close - low) / (high - low) and maps it through color.from_gradient() between the bear and bull theme colors. Bars with higher closes relative to their range appear in bull color; lower closes in bear color. Volume intensity is further modulated by the normalized volume level.
Trend mode uses a single directional color with intensity modulated by normalized volume.
Spike mode uses trend color normally but switches to a dedicated spike color for bars where normalized volume reaches the extreme level.
4. Absorption Detection
An absorption bar is identified when volume exceeds twice the 20-bar average (high institutional participation) while the body-to-range ratio is below 30% (price closes near where it opened). This pattern suggests large volume without directional price movement — potential institutional accumulation or distribution.
5. Volume-Weighted Momentum
A running Volume-Weighted Momentum reading tracks cumulative signed volume weighted by price change, normalized to a readable scale. This reading reflects directional institutional bias — rising VWM during an uptrend suggests genuine buying pressure supports the move.
Features
Pivot drift lines: Upper and lower drift from rolling average of last N confirmed pivot highs and lows
Volume histogram on drift lines: Volume bars rendered along the active drift line, sized by normalized volume
Three volume coloring modes: Delta (buy-sell gradient), Trend (directional mono), Spikes (trend + spike highlights)
Gradient fill between drift and price: Translucent fill between the active drift line and current price
Candle volume coloring: Optional bar coloring by volume intensity and trend direction simultaneously
Spike detection and highlighting: Bars with extreme normalized volume shown in dedicated spike color
Absorption detection: High-volume, small-body bars marked as potential institutional absorption events
Volume-Weighted Momentum display: VWM reading normalized and displayed in dashboard
Trend flip labels: Clean text labels at trend reversal points with direction indicator
Non-repainting: Pivot detection uses standard confirmed pivot functions with symmetric lookback
Dashboard: 8-row table with trend direction, volume mode, volume intensity, absorption state, spike state, bars in trend, and VWM
Input Parameters
Drift Structure:
Pivot Lookback: Bars required on each side for pivot confirmation (default: 8)
Pivot Avg Count: Number of pivots to average for drift line (default: 3)
Volume:
Volume Color Mode: Delta / Trend / Spikes
Histogram Height: Scale of volume bars on drift line (default: 0.3)
Show Volume Histogram toggle
Color Price Bars toggle
Show Drift Fill toggle
Spike Color
Absorption:
Show Absorption Dots toggle
Absorption Volume Multiple (default: 2.0)
Max Body Ratio for absorption detection (default: 0.3)
How to Use This Indicator
Step 1: Read the Drift Line Direction
The active drift line (lower drift in uptrend, upper drift in downtrend) is the primary trend reference. When price is above the lower drift, the trend is bullish. When price crosses the upper drift downward, the trend flips bearish.
Step 2: Interpret Volume Histogram Color
In Delta mode, teal/bull-colored bars represent buying pressure dominating that bar; bear-colored bars represent selling pressure. When large volume bars appear in the trend direction, it confirms the drift.
Step 3: Monitor Absorption Events
Absorption dots mark bars where institutional participants may be accumulating. Large absorption bars at drift line levels are particularly significant — they suggest the drift level is actively defended.
Step 4: Use VWM as Direction Confirmer
Rising VWM during an uptrend means volume-weighted momentum supports price movement. Flat or declining VWM during an uptrend flags weak participation — a potential warning of trend exhaustion.
Indicator Limitations
Drift lines require at least N confirmed pivots to begin rendering. In early bars of a new chart, the lines will be absent
The volume histogram renders along the drift line. In periods of very high drift line slope, the histogram may visually overlap the price range
Absorption detection uses volume relative to a 20-bar average. In low-liquidity environments, the threshold may trigger on routine trading activity
The pivot lookback introduces a lag between when a pivot forms and when the drift line updates
Originality Statement
Rendering a volume histogram directly along pivot drift lines — rather than in a separate panel — as a real-time visualization that integrates trend level and volume support in a single overlay is an original approach
Three independently selectable volume coloring modes driven by a normalized volume z-score, combined with buy-ratio gradient coloring in delta mode, is not replicated in existing open-source pivot drift indicator publications
Disclaimer
This indicator is provided for educational and informational purposes only. It is not financial advice. Trading involves substantial risk of loss. The author accepts no responsibility for trading losses resulting from use of this indicator.
Made with passion by jackofalltrades
Indicator

Volume Weighted RSI PRO | AnonycryptousVolume Weighted RSI Pro | Anonycryptous
Description & user manual
Why this indicator is different
Standard RSI treats every bar equally. A bar where 100 lots traded and a bar where 100,000 lots traded produce the same RSI value if the price change was the same. That is a fundamental problem. Price moves on low volume are noise. Price moves on high volume are institutional participation. RSI cannot tell the difference.
Volume Weighted RSI Pro fixes this at the calculation level.
Instead of averaging raw price changes, every gain and loss is multiplied by its relative volume before entering the RSI calculation. A strong move on elevated volume pushes the oscillator harder than the same move on thin participation. A drift in price on below-average volume barely registers. The result is an RSI that reflects who was actually behind the move — not just that a move happened.
But volume-weighted RSI alone is one perspective. The indicator adds a second independent layer through the Money Flow Index — a separate oscillator that weights typical price by volume rather than price change. When both VW RSI and MFI agree on an extreme reading, the confluence is structurally different from either line alone. One can be driven by a single large candle. Two separate calculation methods arriving at the same conclusion is harder to dismiss.
And then there are the liquidity levels.
Most RSI-based indicators live in isolation from price structure. They show you when the oscillator is extended, but not where on the price chart that extension corresponds to meaningful levels. Volume Weighted RSI Pro draws the nearest swing highs and lows directly on the price chart — the levels where stops cluster, where institutions defend positions, and where reversals tend to form. Each level shows the volume ratio at the moment it was created. Each level disappears automatically when price closes through it, and the indicator immediately identifies the next relevant level below or above.
The divergence engine connects oscillator behavior with price structure by drawing lines, endpoint markers, and a highlighted box on the price chart that spans the exact bars involved. Not just a signal — a spatial map of what happened and where.
This is an RSI indicator that knows where it is on the chart.
Important notice
Volume Weighted RSI Pro generates signals based on oscillator behavior, volume analysis, and price structure detection.
These signals are not financial advice.
They do not predict future price movement.
They do not guarantee profitability.
All trading decisions are made entirely by the user.
Always manage your own risk. Always apply your own judgment.
1. Overview
Volume Weighted RSI Pro is a multi-layer oscillator built around a volume-weighted RSI calculation. It combines momentum analysis, divergence detection, volume flow confirmation, and liquidity level mapping in a single indicator across both the oscillator pane and the price chart.
What it includes:
- Volume weighted RSI using relative volume to scale price change contributions
- Money Flow Index as a second independent momentum layer
- EMA signal line with configurable length and crossover markers
- Divergence detection with RSI pane lines and mainchart box visualization
- Liquidity level lines on the price chart from confirmed swing highs and lows
- Volume ratio label per liquidity level showing institutional activity at formation
- Automatic level mitigation: levels disappear when price closes through them
- OB/OS zone boxes with per-zone volume intensity tracking
- Gradient glow fill between the RSI line and midline
- OB/OS exit signals and signal line crossover markers
- Bar coloring and mainchart background based on RSI position
- Live dashboard with RSI value, volume ratio, zone, divergence, signal, and liquidity levels
- Seven alerts covering divergence, exits, and signal line crossovers
2. Core calculation
2.1 Volume weighted RSI
Standard RSI sums gains and losses over a lookback period using Wilder's smoothing (RMA). Volume Weighted RSI Pro applies the same structure but multiplies each bar's price change by its relative volume — the ratio of bar volume to the smoothed volume average — before the RMA smoothing step.
A bar with twice the average volume contributes twice as much to the gain or loss accumulation. A bar with half the average volume contributes half as much. This means the oscillator level reflects participation quality, not just price displacement. In practical terms: trending moves on rising volume push the oscillator to extremes faster. Pullbacks on thin volume barely move it. This creates a cleaner, more institutionally-aware reading than standard RSI.
The volume weighted mode can be toggled off to revert to standard RSI behavior for direct comparison.
2.2 Standard RSI reference line
A standard RSI line is plotted as a secondary reference in the same pane. Its color and width are configurable. Divergence between the volume weighted and standard lines reveals moments where volume is distorting the picture — a large move on thin participation that standard RSI registers but the VW version largely ignores, or vice versa.
2.3 Signal line
An EMA of the volume weighted RSI value acts as a signal line, similar in concept to the signal line in a MACD. The default length is 9. When the VW RSI crosses above the signal line, momentum is accelerating to the upside. When it crosses below, momentum is decelerating. Crossover markers appear at the exact cross point and can be toggled on or off. The signal line is most useful as a filter — only take a setup if the RSI and signal line agree on direction.
2.4 Money Flow Index
The MFI is calculated using typical price ((high + low + close) / 3) multiplied by volume, producing separate positive and negative money flow sums that are then converted to an index between 0 and 100. It shares the same scale as the VW RSI, making direct visual comparison possible.
The MFI responds differently from VW RSI because it weights price level rather than price change. Elevated MFI without elevated VW RSI suggests buying pressure at current levels without strong directional momentum. Both indicators in overbought territory simultaneously is a stronger condition than either alone.
3. Divergence detection
Divergence is detected by comparing pivots in the volume weighted RSI against pivots in price over a configurable lookback window
Bearish divergence: price makes a higher high while VW RSI makes a lower high. Momentum is weakening as price extends — a structural warning.
Bullish divergence: price makes a lower low while VW RSI makes a higher low. Selling pressure is exhausting even as price continues lower — a structural opportunity.
Sensitivity controls the pivot lookback window:
- High: 3-bar pivots. More signals, more false positives.
- Medium: 5-bar pivots. Balanced default.
- Low: 10-bar pivots. Fewer signals, higher quality.
When a divergence confirms, two things are drawn simultaneously. In the RSI pane: a solid line connecting the two pivot RSI values. On the price chart: a box spanning the full price range of the bars involved in the divergence. This makes the spatial relationship between the oscillator event and the price structure immediately visible.
The divergence box does not confirm a trade. It confirms that a structural disagreement between price and momentum occurred, and where on the chart it happened.
4. Liquidity levels
Liquidity levels are drawn on the price chart at confirmed swing highs and lows using a pivot detection engine. They represent the price levels where stop orders are likely to cluster — below swing lows for buy stops and above swing highs for sell stops. These are the levels that institutional participants use as targets when running liquidity.
Each level is a horizontal line that starts at the pivot bar and extends to the right in real time. The nearest level is fully opaque. Additional levels fade with distance from current price.
Each level displays a volume ratio label at its origin — the bar's volume at the time of pivot formation relative to the recent average. A level formed on 2.1x average volume is more institutionally significant than one formed on 0.7x volume. This context is part of reading the level.
When price closes through a level, it is removed immediately. The indicator repopulates from the remaining valid pivots. There is no manual cleanup and no visual clutter from levels that have already been swept.
The detail level setting controls how aggressively levels are detected:
- Minimal: wide pivot lookback, only the most significant structural highs and lows qualify.
- Standard: balanced detection, practical default across most timeframes.
- Full: tighter pivot lookback, more levels are identified.
The dashboard shows the nearest bull side level (BSL) and bear side level (SSL) by price, updated in real time.
5. OB/OS zone tracking
When the VW RSI enters overbought or oversold territory, the indicator begins accumulating the total volume transacted during that period. When price exits the zone, a filled box is drawn over the duration of the zone on the RSI pane.
The box includes a volume intensity label showing how the average volume inside the zone compared to the baseline average. A zone with 1.8x average volume indicates elevated institutional activity during the extreme reading — the extension was not just price drift but active participation. A zone below 1.0x is thin and less meaningful.
OB/OS zones are off by default.
6. Visual guide
RSI pane elements:
- Bright green/red RSI line — volume weighted RSI, color intensity increases toward OB/OS extremes
- Grey reference line — standard RSI, configurable color and width
- Gold line — signal line (EMA of VW RSI)
- Purple line — MFI
- Gradient glow fill — color intensity increases from midline toward the RSI line, creating a visual depth effect that reflects how extended the oscillator is
- OB/OS background — deepens in red or green when RSI is in extreme territory
- ▲ marker — RSI exiting oversold territory
- ▼ marker — RSI exiting overbought territory
- ✕ marker — RSI/signal line crossover (when enabled)
- Divergence line — solid colored line between the two pivot RSI values
Mainchart elements:
- Horizontal lines — liquidity levels, color and opacity by distance from current price
- Volume label at origin — volume ratio at pivot formation bar
- Divergence box — spans the full price range of the divergence bars
- Background color — subtle green above RSI 50, subtle red below
- Bar coloring — gradient intensity based on RSI position
7. Dashboard reference
The dashboard is positioned bottom right by default and updates on every bar close.
VW RSI — current VW RSI value, colored by position.
Vol ratio — current bar volume relative to the smoothed average. Values above 1.5x are highlighted in gold.
Zone — current RSI zone: overbought, oversold, or neutral.
Divergence — active divergence state if detected on the most recent pivot.
Signal — most recent signal condition.
— Liquidity —
Near BSL — nearest bull side liquidity level below current price.
Near SSL — nearest sell side liquidity level above current price.
Liq levels — count of active levels on each side.
Mode — VW (volume weighted) or STD (standard RSI mode).
Anonycryptous — indicator brand and version.
8. Alerts
Seven alert conditions are available:
- Bullish divergence: price lower low with VW RSI higher low confirmed.
- Bearish divergence: price higher high with VW RSI lower high confirmed.
- OS exit signal: RSI crosses back above the oversold level.
- OB exit signal: RSI crosses back below the overbought level.
- Any divergence: fires on either divergence type.
- Signal cross up: VW RSI crosses above the signal line.
- Signal cross down: VW RSI crosses below the signal line.
9. Settings reference
9.1 RSI settings
- RSI length: lookback period for the VW RSI calculation. Default 14.
- Volume smoothing: lookback for the volume moving average. Default 14.
- Volume weighted mode: toggle between volume weighted and standard RSI.
- Show signal line: toggle the EMA signal line.
- Signal line length: EMA period for the signal line. Default 9.
- Show signal crossovers: toggle ✕ markers at signal line crossovers. Default off.
- Show MFI line: toggle the Money Flow Index line.
- MFI length: lookback for MFI calculation. Default 14.
- MFI color: default brand purple.
- MFI line width: 1 to 4. Default 2.
- Overbought level: threshold for OB signals and zone tracking. Default 70.
- Oversold level: threshold for OS signals and zone tracking. Default 30.
9.2 Divergence
- Sensitivity: pivot lookback window — high (3), medium (5), low (10).
- Show bullish divergence.
- Show bearish divergence.
- Divergence box on mainchart: draws the price range box on the price chart.
- Div line width: stroke weight of divergence lines. 1 to 4. Default 2.
9.3 Liquidity levels
- Show liquidity levels: toggle all liquidity lines on the price chart.
- Detail level: minimal, standard, or full pivot sensitivity.
- Pivot lookback: swing detection window. Default 10.
- Max levels each side: maximum lines shown above and below current price. Default 2.
9.4 OB/OS zones
- Show OB/OS zones: toggle zone boxes in the RSI pane. Default off.
- Volume intensity label: show per-zone volume ratio label.
- Zone transparency: fill opacity for OB/OS zone boxes.
9.5 Visuals
- Bull color: primary bull color across all elements.
- Bear color: primary bear color across all elements.
- Bull div color: color for bullish divergence lines and box.
- Bear div color: color for bearish divergence lines and box.
- Std RSI color: color of the standard RSI reference line.
- Std RSI width: stroke weight of the reference line.
- Bar coloring: gradient bar color based on RSI position.
- Signal size: size of OB/OS exit markers — tiny, small, or normal.
- Show background color: subtle mainchart background based on RSI direction.
- Background transparency: opacity of the mainchart background.
9.6 Dashboard
- Show dashboard.
- Position: top left, top right, bottom left, or bottom right.
- Size: tiny, small, or normal.
10. How to use
10.1 Reading divergence
Divergence is not a signal to enter immediately. It is a warning that the relationship between momentum and price is breaking down. The most effective approach is to wait for the divergence box to appear on the price chart and then look for a second confirmation — a signal line crossover, an OB/OS exit marker, or a price reaction at a nearby liquidity level — before treating the setup as actionable.
Divergence on its own can persist for many bars before price reacts. Use it as directional context, not as a trigger.
10.2 Using liquidity levels
The liquidity lines show where the market has unfinished business — swing levels that formed on meaningful volume and have not yet been revisited. When the VW RSI is approaching overbought or showing bearish divergence and price is simultaneously approaching a sell-side liquidity level above, those two conditions are pointing at the same structural event from different angles.
The volume ratio label at each level is particularly useful. A level formed on 0.6x average volume is a weak level that may not generate a meaningful reaction. A level formed on 2.5x average volume suggests a move was initiated or defended with institutional size. Treat these differently.
10.3 Using VW RSI and MFI together
When both lines are in overbought territory simultaneously, the condition is stronger than either alone. VW RSI is extended on momentum. MFI confirms that money flow at current price levels is also elevated. The two calculations are independent — their agreement is not trivial.
When they diverge — VW RSI overbought while MFI is not — one of the components is not confirming the other. This does not mean the move is wrong, but the confluence is weaker.
10.4 OB/OS zone volume
When the zone volume label shows above 1.5x, the extreme RSI reading occurred during elevated participation. That tells you the extension was not just mechanical drift — there was active buying or selling pressure behind it. An exit from that zone after a high-volume OB/OS period carries more weight than an exit from a thin zone.
10.5 Illustrative bull scenario
Educational example only. Not a trading recommendation.
VW RSI drops into oversold on above-average volume. A bull-side liquidity level sits 0.8% below current price, formed three sessions ago on 2.1x volume. VW RSI begins making a higher low while price makes a lower low — bullish divergence is confirmed. A divergence box appears on the price chart. The RSI crosses back above the oversold level, firing a ▲ marker. The signal line crossover fires shortly after. Three separate conditions align: oversold exit, bullish divergence, and signal line confirmation.
10.6 Illustrative bear scenario
Educational example only. Not a trading recommendation.
Price rallies into a sell-side liquidity level visible on the chart at 2.2x formation volume. VW RSI is in overbought territory while MFI is also elevated. Price makes a higher high but VW RSI makes a lower high — bearish divergence is drawn on the RSI pane and a box appears on the price chart covering the divergence range. RSI crosses back below overbought. A ▼ marker fires. The setup has divergence, OB exit, and a liquidity level all at the same location.
11. Tips
The volume ratio in the dashboard is one of the most underused readings. A vol ratio below 0.7 means current price action is thin — institutions are not participating. Signals that fire on low volume ratio are less reliable than those that fire on 1.5x or above.
Signal line crossovers are most useful as filters. Toggle them on during active sessions to see where momentum flips are occurring relative to the rest of the setup. Too many crossovers on a given session usually means the market is ranging — reduce position size or wait for the RSI to expand toward an extreme before taking the cross seriously.
The standard RSI reference line reveals when volume weighting is changing the picture. If the VW RSI is significantly above the standard line, it means recent price movement was driven by above-average volume. If the VW RSI is below the standard line, price moved on thin participation — the market did not commit to the direction.
Liquidity level count in the dashboard tells you how many valid structural references remain. When the count drops — because levels are being swept — it means the market is clearing stops. That is meaningful context for the direction of the current move.
12. Disclaimer
This indicator is provided for educational and informational purposes only. Nothing in this document or in the indicator output constitutes financial advice or any form of recommendation. Trading financial instruments involves substantial risk of loss. Past performance is not indicative of future results. You may lose all of your invested capital.
Anonycryptous accepts no responsibility or liability for any losses incurred as a result of using this indicator. Indicator

Liquidity Matrix | AnonycryptousLiquidity Matrix | Anonycryptous
Description & user manual
**Credits**
The sweep detection engine in Liquidity Matrix draws conceptual inspiration from the Liquidity Sweep Filter by AlgoAlpha. The approach to identifying swing-based stop hunts, classifying sweeps by volume significance, and filtering by trend direction is based on ideas first demonstrated in their open-source script, author: AlgoAlpha (pulsewire.com/u/AlgoAlpha)
---
Why this indicator is different;
Most liquidity indicators show you one thing. A zone. A sweep marker. A supply box. A trendline. Each tool tries to solve one problem, and if you want to understand the full picture, you stack five or six indicators on the same chart until it becomes unreadable.
Liquidity Matrix works differently.
It is not a signal indicator. It does not tell you when to buy or sell. It does not score your trades or track your win rate. What it does is something more fundamental: it maps the full landscape of liquidity around price, across ten independent engines, all configurable, all in one overlay.
The core idea is that liquidity drives price. Retail traders place stops at predictable locations — below swing lows, above swing highs, at equal highs and lows, at structural pivots, inside fair value gaps. Institutional participants know this. They move price to those locations, collect that liquidity, and then move in the direction they were always going. If you understand where the liquidity is, where it has already been taken, and what levels are still sitting unmitigated, you understand the context before you place a trade.
Liquidity Matrix gives you that map.
What makes it different from other multi-engine indicators is that every engine is genuinely independent. You can run just the liquidity zones. Or just the voids and HTF levels. Or every engine at once and build your own confluence system. There is no forced reading. There is no house view on what the market is doing. You bring your methodology. The indicator gives you the context to apply it.
It also does something no single-purpose tool does: it shows you the volume behind every level. Not just where the stop clusters are — but how much liquidity was there when they formed. A zone created on 2.4M volume is not the same as a zone created on 58K. The indicator makes that difference visible.
Important notice
Liquidity Matrix does not generate trading signals.
It does not tell you when to buy or sell.
It does not predict market direction.
It does not guarantee any outcome.
All trading decisions remain entirely with the user.
Always apply your own judgment and manage your own risk.
1. Overview
Liquidity Matrix is a multi-engine liquidity context indicator built around one idea: before you place a trade, understand where the liquidity is.
What it includes:
- Liquidity zones: probability-scored pivot clusters with volume intensity rendering
- Equal highs and equal lows: zones where retail stops stack at matching price levels
- Trend engine: directional band with accumulated sweep volume tracking
- Sweep detection: swing-level stop hunt identification with safe stop placement
- HTF liquidity levels: higher timeframe high/low levels as horizontal reference lines
- Dynamic trendlines: automatically detected diagonal support and resistance with touch volume
- Supply and demand zones: SMC-based structural zones with BOS conversion
- Weekend gap: Friday close reference with gap fill tracking
- Liquidity voids: fair value gaps with gradient layer fill tracking
- RSI divergence: price chart divergence detection with candle coloring and optional trailing stop
- Dashboard: live market context across all active engines
2. Liquidity zones
2.1 How they form
Liquidity zones are identified at confirmed pivot highs and lows. A pivot forms when a price extreme holds for a configurable number of bars on both sides. Each zone is scored using a probability model that weighs four factors: distance from current price, age of the zone, whether it is still fresh (untested), and the volume present at formation.
The result is a probability score from 0 to 100 displayed on the chart. A score above 70 appears in green. Between 40 and 70 it appears in gold. Below 40 it appears in red.
The fill intensity of each zone box scales automatically with the normalized volume at formation. Higher volume at creation means a fuller, more opaque box. This makes the visual weight of each zone reflect its actual significance without requiring manual evaluation.
Zones above price are BSL — buy side liquidity. These are where long stops and breakout orders sit. Zones below price are SSL — sell side liquidity. These are where short stops and breakdown orders sit.
2.2 Sweep markers
When price breaks through the bottom of a demand zone or the top of a supply zone, a circle marker appears on the chart — above the candle for a supply zone break (bearish), below the candle for a demand zone break (bullish). The zone fades to indicate the liquidity has been consumed. This is distinct from the swing sweep detection engine, which operates independently.
2.3 Settings
Pivot left and right bars control detection sensitivity. Fewer bars on the right produces faster confirmation but reduces accuracy. The volume filter removes zones that formed on below-average activity. Fresh zones only hides tested zones to keep the chart clean. Max zones controls how many active zones are held at once. The swept zone transparency and show swept toggle control what remains visible after a zone is consumed.
2.4 In practice
Look for price approaching an unmitigated zone with a high probability score on high-volume context. The higher the score and the more opaque the box, the more likely institutional interest was present at formation. When multiple zones stack closely — visible as a cluster — that price area has concentrated stop density. When a zone is swept and the circle marker appears, the liquidity at that level has been cleared. Stops are gone. The level loses its significance as a target.
Volume note: all volume values in Liquidity Matrix are expressed in the base currency of the trading pair. On BTC/USDT, the value shown is in BTC. On SOL/USDT, it is in SOL. To convert to USD equivalent, multiply by the current price. This applies to every volume label across all engines.
3. Equal highs and equal lows
3.1 How they form
Equal highs and equal lows (EQH/EQL) are zones where price has tested the same level on two or more separate occasions without closing through it. These represent areas where retail stop orders have accumulated in a predictable way. Matching swing highs create a resistance cluster with long stops resting above. Matching swing lows create a support cluster with short stops resting below.
The zones are rendered as filled boxes using a linefill between two lines. The box spans from the lower of the two matching pivots to the higher, creating a clearly visible area of concentrated liquidity.
3.2 Settings
Tolerance (ATR×) controls how precisely two pivots must match to qualify as equal. A lower tolerance requires a near-exact match. A higher tolerance allows approximate levels to be grouped. The minimum age prevents recent, unconfirmed pivots from forming zones too early. The removal mode determines whether a zone is removed when price touches the wick, the body, or the body at twice ATR distance.
3.3 In practice
An EQH/EQL zone directly above or below price is a high-probability target for a liquidity sweep. When price approaches such a level, consider whether the move has the characteristics of a stop hunt: a spike through the level, a strong close back inside, and a reversal. The volume label on each zone shows the total volume from both matching pivots combined — giving you a sense of how much liquidity is sitting there.
4. Trend engine
4.1 How it works
The trend engine calculates a rolling volatility band using ATR. When price is above the upper band, the trend direction is bullish. When price is below the lower band, it is bearish. The band tracks the dominant directional bias and changes color accordingly.
As the trend unfolds, peak and valley levels form at local turning points within the band. The engine accumulates the volume from sweep events at each of these turning points and displays it as a label on the band. The label shows the total volume cleared at that inflection point — a direct measure of how much liquidity was consumed as the trend moved through that level.
4.2 In practice
The trend direction is shown in the dashboard as bull or bear. Use this as your macro bias filter. Look for setups in the direction of the trend. The volume labels along the band show where the significant sweeps occurred — these points represent former liquidity levels that have already been consumed and are unlikely to act as targets again. The current edge of the band is where the next sweep may occur.
5. Sweep detection
5.1 How it works
The sweep detection engine monitors rolling swing highs and lows using a configurable lookback. When price spikes through a swing level on the wick and closes back inside, a sweep event is recorded. The wick must penetrate the level by at least a minimum ATR multiple. The close must reject with a minimum strength relative to the candle range. An optional EMA filter and cooldown period reduce false triggers.
Sweeps are classified as major or minor based on normalized volume. A sweep on above-average volume is marked with a solid triangle. A below-average sweep is marked with a hollow triangle.
When a sweep fires, a safe stop line is drawn at the sweep extreme — the wick tip. This is the correct location for a stop loss after a sweep, because the liquidity that was resting there has already been consumed. Placing a stop beyond a consumed sweep is placing it where no further stop hunt is likely to occur.
5.2 Settings
The wick minimum ATR multiple and minimum rejection percentage filter out weak sweeps. The EMA filter aligns sweeps with the broader trend. The cooldown prevents repeated triggers from the same level. Major sweep threshold (normalized volume) separates significant events from minor ones.
5.3 In practice
A major sweep on a significant EQH or liquidity zone is one of the cleanest setups in the indicator. Price took the liquidity, volume confirms the institutional event, and the safe stop line gives you a clear invalidation level. The smaller the distance between current price and the safe stop line, the more attractive the risk structure.
6. HTF liquidity levels
6.1 How they form
Higher timeframe high and low levels represent the largest clusters of resting liquidity on the chart. Monthly, weekly, daily, previous day, 4-hour, and 1-hour levels are supported. Each level is drawn as a horizontal line starting at the bar time of the HTF candle that created it and extending a configurable number of bars to the right.
The volume of the HTF candle is shown as a label at the right edge of the line. Higher volume on the HTF candle means more institutional activity was present when that level formed. Monthly levels have the highest opacity. Opacity decreases progressively as timeframe decreases, so the relative significance is immediately visible.
6.2 Settings
Each timeframe is individually toggleable. Line style (solid, dashed, dotted), width, and color are configurable. Extend bars controls how far the line projects to the right. The liquidity label can be hidden if a cleaner chart is preferred.
6.3 In practice
HTF levels are major liquidity magnets. Price tends to move toward unmitigated monthly and weekly highs and lows before reversing. When a HTF level aligns with a liquidity zone or EQH/EQL cluster, the confluence strengthens the case for a sweep at that level. The dashboard shows the nearest HTF level above and below current price so you can read the closest target without examining every line on the chart.
7. Dynamic trendlines
7.1 How they form
The trendline engine scans historical pivot highs and lows and finds the best-fit diagonal line across multiple touch points. A valid trendline requires at least two confirmed touches with minimal deviation, a score that weighs touch count, recency, tightness of touches, and span. The highest-scoring line for both support and resistance is drawn automatically every bar.
Volume accumulates at each confirmed touch point. The label at the end of the line shows the total accumulated volume across all touches — the more volume that has interacted with the trendline, the more significant it is as a structural level.
A channel fill renders between the support and resistance lines and changes color based on whether price is in the upper or lower half of the channel.
7.2 Settings
Pivot length controls detection sensitivity. Lookback bars limits how far back the engine searches. ATR length controls the volatility smoothing used for touch tolerance. Max violations allows lines to remain valid after a small number of wick pierces. Touch tolerance and max distance filter noise. Extend bars projects the lines forward.
7.3 In practice
A trendline with high accumulated volume and multiple tight touches is a strong structural level. When price approaches it from inside the channel, it is approaching a level where multiple institutional interactions have occurred. The volume label tells you how much. A break and retest of such a line — particularly with a sweep marker — is a high-quality location for a trade idea.
8. Supply and demand zones
8.1 How they form
Supply and demand zones are identified using structural pivot points. When a new swing high forms, a supply zone is created at that level. When a new swing low forms, a demand zone is created. Zones are sized using an ATR-based width multiplier. An overlap filter prevents duplicate zones from stacking in the same price area.
When price breaks through a zone boundary, the zone converts to a BOS line — a thin horizontal marker showing where market structure was broken. This mirrors the SMC (smart money concepts) approach where a broken supply zone confirms bullish structure, and a broken demand zone confirms bearish structure.
8.2 Settings
Swing length controls how many bars are required on each side of a pivot for zone formation. Zone width scales the height of each box relative to ATR. The midline (POI) can be toggled to show the point of interest at the center of each zone. History to keep limits the total number of visible zones. HH/LH/HL/LL labels mark each swing point with its structural context. BOS color is configurable separately from zone colors.
8.3 In practice
Supply and demand zones show you where price left an imbalance after a structural break. When a demand zone holds and price bounces from it, the zone remains valid. When price breaks through it, the BOS line marks where that structure was invalidated. These zones work best in combination with the liquidity zone engine — when both a liquidity zone and a demand zone overlap in the same price area, the confluence raises the probability of a significant reaction.
Note on terminology: liquidity zones and supply/demand zones are different concepts. Liquidity zones mark where stop orders are likely to be resting based on pivot volume and probability scoring. Supply and demand zones mark structural imbalances where price left quickly. Both can occur at the same level, but they represent different phenomena.
9. Weekend gap
9.1 How it works
The weekend gap engine records the last confirmed Friday close price and tracks whether price returns to fill that level during the following weekend and early week. On assets that trade continuously (crypto, 24/7 markets), the gap fill tracks whether price has revisited the Friday close since the weekend began.
The Friday close is drawn as a horizontal reference line extending forward into the week. The gap fill zone renders between the Friday close and price during the relevant window. A bullish gap (price above Friday close) renders in green. A bearish gap (price below Friday close) renders in red. When the gap is filled, it clears automatically.
9.2 Settings
Line style, width, and color are configurable. Extend days controls how far the Friday close line remains visible. Bull and bear gap colors are independently adjustable.
9.3 In practice
The Friday close acts as a liquidity magnet for early week price action. Markets frequently return to fill the weekend gap before continuing in the dominant direction. The dashboard shows the gap status (open, percentage, or filled) so you can monitor it without keeping the line visible on all timeframes. On CME futures charts, the gap window is literal — the market was closed and the gap in data is visible. On crypto charts, the market was open but institutional behavior around the weekly close creates the same magnetic effect.
10. Liquidity voids
10.1 How they form
A liquidity void (also called a fair value gap or imbalance) forms when price moves quickly in one direction across three consecutive candles, leaving a gap between the wick of the first candle and the wick of the third candle. No trading occurred in that gap area. Price tends to return to fill these zones as the market seeks balance.
The void is rendered as a gradient of 13 layers. Each layer fills individually as price touches it, changing to the filled color. This gives a precise view of how much of the void has been mitigated and how much remains unvisited. A volume label shows the total volume from the bars that created the void.
10.2 Settings
Mode controls whether all historical voids are shown or only the most recent N bars. Threshold (ATR×) sets the minimum gap size relative to ATR(144) — smaller values detect more voids, larger values filter to only significant imbalances. Bullish and bearish colors are independently configurable. The filled void color can be adjusted or filled voids can be removed entirely by toggling the show filled setting.
10.3 In practice
Unfilled voids below price are areas where no transactions occurred during an upward move. They act as potential support and pullback targets. Unfilled voids above price are areas where no transactions occurred during a downward move. They act as potential resistance and rally targets. When a void aligns with a liquidity zone or HTF level, the overlap represents an area with both structural significance and a gap to fill. The volume label on each void gives you a sense of how much liquidity was consumed when the void was created — larger voids on higher volume represent more significant imbalances.
11. RSI divergence
11.1 How it works
RSI divergence occurs when price and RSI move in opposite directions at swing points. A bullish divergence forms when price makes a lower low while RSI makes a higher low — momentum is increasing even though price is still falling, which often precedes a reversal upward. A bearish divergence forms when price makes a higher high while RSI makes a lower high — momentum is weakening even though price is still rising, which often precedes a reversal downward.
The engine detects these events mechanically using pivot-based RSI analysis. When a divergence is confirmed, a box is drawn directly on the price chart spanning all candles between the two pivot points. Circle markers appear at each pivot on the price candle. This keeps the divergence signal on the chart where the price action is, rather than requiring a separate RSI pane below.
Candle coloring reflects RSI momentum continuously. When RSI is above 50 and below the overbought level, candles are colored green — the gradient becomes more intense as RSI approaches the overbought threshold. The closer RSI is to overbought, the stronger the green. When RSI crosses the overbought level, coloring stops entirely — momentum is at an extreme and the gradient no longer adds information.
The same logic applies in reverse below 50. Candles are colored red with increasing intensity as RSI approaches the oversold level. When RSI crosses below the oversold threshold, coloring stops.
This means the gradient is always telling you how much room is left in the current momentum move — fully colored means RSI is just above 50 with a long runway ahead, faded means RSI is approaching an extreme. When the color disappears, the move is at full extension.
An optional trailing stop activates after a divergence is confirmed by an RSI 50 crossover. For a bullish divergence, the stop activates when RSI crosses back above 50 and trails below price using ATR distance. It closes when price breaks the stop level or RSI reaches the overbought threshold. For a bearish divergence, the stop activates on an RSI cross below 50 and trails above price until price breaks through or RSI reaches oversold.
Note: if the RSI divergence engine is disabled while a trailing stop is active, the stop line will disappear immediately without triggering a close. Do not disable the engine mid-trade while relying on the trailing stop as an active risk tool.
11.2 Settings
RSI length — period for the RSI calculation. Default 14.
Sensitivity — controls the pivot detection window. High detects more divergences using smaller pivots. Medium is the default. Low requires larger structural pivots and produces fewer but stronger signals.
Show bullish / show bearish — each direction can be toggled independently so you only see what is relevant to your current bias.
Bullish color / bearish color — the color used for the divergence box, circle markers, candle gradient, and trailing stop line.
RSI candle coloring — toggle the gradient candle coloring on or off without affecting divergence detection.
Overbought level — RSI level at which candle coloring stops on the upside. Default 70. Raise this to 80 for assets that tend to stay overbought for extended periods.
Oversold level — RSI level at which candle coloring stops on the downside. Default 30. Raise this to 20 for assets that tend to stay oversold for extended periods.
Trailing stop — toggle the trailing stop line on or off independently.
ATR length / ATR multiplier — control the sensitivity of the trailing stop. A higher multiplier gives the stop more room and reduces premature exits on volatile assets.
11.3 In practice
Use the divergence engine as a momentum context layer on top of the liquidity engines. A bullish divergence forming at an unmitigated liquidity zone or demand zone adds significant weight to the expectation of a reversal. A bearish divergence forming just below a major HTF level or supply zone suggests the move upward may be losing momentum before reaching that target.
The dashboard row shows the current divergence state — none, bullish, or bearish — so you can monitor it without inspecting the chart.
The candle gradient is the most immediately useful visual element. Watch for candles that are deeply colored — RSI has momentum but has not yet reached an extreme. When the gradient begins fading, RSI is extending. When it disappears entirely, RSI has crossed the overbought or oversold threshold and the move is at full extension. This is often where divergence begins to form on the next cycle.
For overbought and oversold levels: on assets like BTC or ETH that can sustain strong trends, consider raising the overbought level to 75 or 80 and lowering the oversold level to 20 or 25. This prevents the coloring from stopping too early during genuine momentum moves. On more volatile altcoins where RSI whipsaws frequently around the extremes, the default 70/30 setting works well.
12. Dashboard
The dashboard displays a live summary of all active engine data in one panel. It updates every bar.
Rows shown:
Header — indicator name and timeframe label.
Trend — current direction from the trend engine: bull, bear, or ranging.
Liq zones — count of active BSL and SSL zones in view.
Nearest BSL — closest buy side liquidity level above current price.
Nearest SSL — closest sell side liquidity level below current price.
Top zone — highest probability unmitigated zone and its score.
Safe SL — current safe stop level from the sweep detection engine.
ATR (14) — current ATR value for context.
HTF — section divider for higher timeframe levels.
HTF above — nearest higher timeframe level above price.
HTF below — nearest higher timeframe level below price.
Market — section divider for market context rows.
Gap — weekend gap status: off, open (direction and percentage), or filled.
TL dist — distance from the nearest active trendline in ATR multiples.
BOS/CHoCH — whether the supply/demand structure engine is active.
EQH/EQL — count of active equal high and equal low zones.
Engines — total number of active engines.
Divergence — current RSI divergence state: none, bullish, or bearish.
Anonycryptous — version reference.
Dashboard position and text size are configurable.
13. Settings overview
Liquidity zones
- Enable/disable master toggle
- Pivot left and right bars
- Volume filter threshold
- Dynamic zone width
- Show fresh only
- Show swept zones
- Swept zone transparency
- Max zones
- Bull and bear zone colors
- Midline toggle and color
- Swept zone circle marker toggle, colors, and size
Equal highs and equal lows
- Enable/disable master toggle
- Pivot lookback length
- Tolerance (ATR×)
- Minimum age
- Removal mode (wick, body, body×2)
- EQH and EQL zone colors
- Show volume label
- Show accumulated sweep volume
Trend engine
- Enable/disable master toggle
- Trend band length
- Bull and bear band colors
- Show major/minor sweep volume labels
- Major sweep normalized volume threshold
Sweep detection
- Enable/disable master toggle
- Swing lookback
- Minimum wick ATR multiple
- Minimum rejection percentage
- EMA filter toggle, length, and timeframe
- Cooldown bars
- Major sweep normalized volume threshold
- Volume filter toggle
- Bull and bear colors
- Marker size
Safe stop line
- Line style, color, and extension bars
- Glow toggle
- Auto-remove after N bars
HTF liquidity levels
- Enable/disable master toggle
- Individual toggles for monthly, weekly, daily, previous day, 4H, P4H, 1H, P1H
- Line style, width, and color
- Extend bars
- Show liquidity label
Dynamic trendlines
- Enable/disable master toggle
- Pivot length
- Lookback bars
- ATR length
- Max violations
- Touch tolerance (ATR×)
- Max slope (degrees)
- Max distance (ATR×)
- Extend bars
- Show channel fill
- Show volume on touch
- Support and resistance colors
- Line width and style
Supply and demand zones
- Enable/disable (controls zones and BOS simultaneously)
- Swing length
- Zone width (ATR×0.1)
- History to keep
- Supply and demand colors and outlines independently
- Show midline (POI)
- Midline color
- Show HH/LH/HL/LL labels
- BOS color and line width
Weekend gap
- Enable/disable master toggle
- Show gap fill and show Friday close line independently
- Extend line (days)
- Bull and bear gap colors
- Friday close line color, width, and style
Liquidity voids
- Enable/disable master toggle
- Mode (present / historical)
- Lookback bars (for present mode)
- Void threshold (ATR×)
- Bullish and bearish void colors
- Show filled voids
- Filled void color
- Show volume label
RSI divergence
- Enable/disable master toggle
- RSI length
- Sensitivity (high, medium, low)
- Show bullish and bearish independently
- Bullish and bearish colors
- RSI candle coloring toggle
- Overbought level (default 70)
- Oversold level (default 30)
- Trailing stop toggle
- ATR length and multiplier for trailing stop
Dashboard
- Enable/disable
- Position
- Size
14. How to use
The indicator does not prescribe a method. It provides context. How you use that context depends on your own approach. The following describes the logic behind combining the engines effectively.
Start with bias. The dashboard trend row shows the current directional bias. The nearest HTF levels above and below give you the macro targets. If the weekly high is the nearest HTF above price, the market may be running toward that level before reversing.
Identify the nearest liquidity. The nearest BSL and SSL rows in the dashboard show the closest unmitigated zones. These are the most likely near-term targets for price. A high-probability zone score adds weight to the expectation that price will visit that level.
Look for confluence. When a liquidity zone, an EQH/EQL cluster, an HTF level, and a void all align at the same price area, the confluence is significant. Price has multiple reasons to move to that location. Once it arrives, multiple forms of liquidity can be consumed in one move.
Read the sweep markers. When a sweep triangle fires, liquidity was taken. The safe stop line shows the consumed level. If the sweep occurred at a high-probability zone with volume confirmation, the conditions for a reversal are in place. The triangle type (solid for major, hollow for minor) tells you how significant the volume event was.
Use the gap. In the early part of the week, the weekend gap status is visible on the dashboard. If the gap is open and price is below the Friday close, price has a tendency to return to that level. This can serve as a short-term directional bias early in the week.
Check the voids. Unfilled voids represent areas the market has not yet returned to. If price is approaching an unfilled void from outside, it is approaching a zone of imbalance that the market may seek to fill. A void aligned with a swept zone or an EQH/EQL cluster adds structural weight to the expected reaction.
15. Notes
- Liquidity Matrix is a context indicator. It maps where liquidity is, where it has been taken, and what levels remain unmitigated. It does not generate entry signals.
- All volume values are in the base currency of the trading pair. BTC/USDT shows volume in BTC. SOL/USDT shows volume in SOL. Multiply by price to approximate USD value.
- The sweep detection engine uses swing-based pivots. The supply/demand BOS engine uses a separate pivot. These are independent systems with independent lookback settings.
- On lower timeframes, more engines running simultaneously increases computation. If the indicator is slow to load, reduce the number of active engines or lower lookback values.
- HTF levels require the chart timeframe to be lower than the HTF being referenced. A daily chart will not show daily HTF levels accurately.
- The dynamic trendline engine runs every bar. On very long chart histories with tight tolerances, this may produce slightly longer load times.
- The liquidity void threshold is relative to ATR(144). On assets with low average volatility, the default threshold may produce very few voids. Reduce the threshold to increase sensitivity.
- Weekend gap tracking works on all assets. On CME futures, the gap is a literal data gap. On crypto and 24/7 assets, the gap reflects the Friday close level as an institutional reference.
16. Disclaimer
This indicator by Anonycryptous is provided for educational and informational purposes only.
All outputs are based on historical price and volume data.
Past behavior does not guarantee future results.
Trading involves substantial risk of loss.
Use at your own discretion.
Indicator

Indicator

VWRSI Crossovers & Extremes [The AI Trading Desk]VWRSI Crossovers & Extremes
By integrating real volume into the RSI calculation, this engine surfaces only the moves that have money behind them. The hype-driven wiggles get filtered. The conviction moves stand out.
And then it tells you exactly what to do.
Two clear ways to act — no guesswork:
🔥 Extreme Release Signals — the RSI mistake most traders make
Most traders are taught RSI wrong. They sell the second it crosses 70 and buy the second it crosses 30 — and then they watch the market keep ripping in the same direction without them, or worse, against them. Here's the truth: RSI can stay in extreme zones far longer than you expect. Selling overbought into a strong trend is how accounts bleed.
This indicator doesn't fire when RSI enters an extreme zone. It fires when VWRSI comes back out of one. An orange flash and a labeled Up or Dn triangle mark the exact bar where momentum returns to normal range — meaning the extreme is resolving, not building. You're not fighting the trend. You're acting once the move has cooled and momentum has rotated back to your side.
How to use it:
Wait for the orange flash + triangle — don't act when VWRSI hits 70 or 30, act when it leaves
Down triangle (Dn) at the top — overbought is resolving, momentum cooling, look for short setups or trim longs
Up triangle (Up) at the bottom — oversold is resolving, momentum reviving, look for long setups or cover shorts
Best paired with structure — confluence with key levels, prior swing points, or trendlines tightens the edge
🌊 Crossover Confirmation — the answer to chop and fake-outs
Raw VWRSI crosses happen all day. Most are noise. The trick is waiting for the VWRSI to cross its signal moving average — that's the moment when short-term momentum has shifted decisively against the smoothed average, not just twitched.
The fill color flips with the cross — green for bullish momentum, red for bearish. By waiting for this confirmed cross instead of acting on every wiggle, you skip the chop, dodge the fake-outs, and only enter when the regime has actually changed. It's slower, on purpose. That's the point.
How to use it:
Watch the cloud color — green means VWRSI is above its MA (bullish bias); red means below (bearish bias)
Enter on the flip — when the color changes, momentum has rotated. Trend traders take entries with the new direction.
Stay in until it flips back — exits trigger when the cloud color reverses, signaling the regime has changed again
Skip the in-between — when VWRSI is hugging the MA closely (thin cloud), the market is undecided. Wait for separation.
Why this hits different:
Volume integrated into momentum calculation — high-volume bars influence momentum more than low-volume drift. Real moves stand out.
Both tops AND bottoms flagged — most VWRSI tools only catch one side. This catches both, with equal clarity.
No mystery readings — every signal has a name and a job. If you can't explain what your indicator is telling you, you can't trust it.
Calm when the market is calm — no constant red clouds during chop. The line stays quiet so you don't overtrade.
Built for traders who are tired of:
Selling tops too early and watching the trend keep running
Buying every dip into oversold and getting steamrolled
Indicators that fire constantly but rarely matter
Beautiful clouds that look great in screenshots but trick you into bad entries
Two trade types. Three visual cues. Zero guesswork.
Defaults: VWRSI 14, MA 9, OB 70, OS 30 — fully customizable.
Built by The AI Trading Desk. Indicator

Indicator

SMT Oscillator: Smarter Money Divergence Detector [PhenLabs]📊Phenlabs - SMT Oscillator: Smarter Money Divergence Detector
Version: PineScript™v6
📌Description
The SMT Oscillator is a sophisticated tool designed to identify smart money divergence between two correlated assets. By analyzing the momentum and volume-weighted price action of a primary and secondary symbol, traders can spot subtle shifts in market dynamics that often precede significant price movements. This indicator is built to provide a clearer, more filtered view of inter-market relationships, solving the common problem of false signals and market noise. Its primary purpose is to equip traders with a quantifiable edge in detecting potential reversals or continuations that are not obvious on a standard price chart.
🚀Points of Innovation
Dual-Symbol Divergence Core: Directly compares momentum (RSI or MACD) between two user-selected symbols to pinpoint true SMT divergence.
Volume-Weighted Analysis: Integrates volume delta into the divergence calculation, giving more weight to moves backed by significant market participation.
Entropy Filter for Noise Reduction: Employs an entropy calculation to filter out low-quality signals during choppy or consolidating market conditions.
Predictive Forecast Line: Utilizes a linear regression model to project the oscillator’s future trajectory, offering a forward-looking glimpse of potential momentum shifts.
Customizable Signal Sensitivity: Allows fine-tuning of overbought and oversold levels to adapt to different market volatilities and trading styles.
Integrated Signal Alerts: Provides built-in alerts for bullish/bearish zero crosses and overbought/oversold conditions.
🔧Core Components
Momentum Engine: The user can select either RSI or MACD as the underlying engine for the divergence calculation, allowing for flexibility in analysis.
Normalization Function: Price data from both symbols is normalized using percentage change to ensure a true “apples-to-apples” comparison, regardless of their nominal price differences.
Divergence Calculator: The core algorithm that subtracts the secondary symbol’s momentum from the primary’s and normalizes the result using the combined standard deviation.
Smoothing Mechanism: An Exponential Moving Average (EMA) is applied to the raw oscillator output to reduce choppiness and provide a clearer signal line.
🔥Key Features
Multi-Asset Comparison: Go beyond single-asset analysis by comparing correlated pairs like ES/NQ or BTC/ETH to uncover hidden trading opportunities.
Heatmap Visualization: An optional heatmap mode provides an intuitive visual representation of divergence strength, making it easier to gauge market sentiment at a glance.
Configurable Lookback and Timeframe: Adjust the lookback period and analysis timeframe to suit your specific strategy, from short-term scalping to long-term trend analysis.
Signal Markers: Visual markers are plotted directly on the chart for bullish and bearish zero-line crossovers, providing clear entry and exit signals.
🎨Visualization
SMT Oscillator Line: The primary visual element, colored blue for bullish (positive) divergence and orange for bearish (negative) divergence.
Zero Line: A solid horizontal line at the zero level, indicating the equilibrium point between the two assets. Crossovers of this line signal a shift in relative strength.
Overbought/Oversold Zones: Dotted lines at the +80 and -80 levels (customizable) that highlight extreme divergence readings, often indicating potential exhaustion points.
Forecast Line: A predictive line that plots the anticipated path of the oscillator, giving traders an advanced warning of potential changes in momentum.
📖Usage Guidelines
Setting Categories
Primary Symbol
Default: (Chart Symbol)
Description: The main asset you are analyzing. Leave blank to use the symbol currently on your chart.
Secondary Symbol
Default: CME_MINI:ES1! (used with NASDAQ futures due to inherent heavy correlation
Description: The asset to compare against the primary symbol.
Lookback Period
Default: 14
Range: 8-100
Description: Controls the calculation window for momentum (RSI/MACD). Higher values result in a smoother, less sensitive oscillator.
Divergence Type
Default: RSI
Options: RSI, MACD
Description: Choose the momentum indicator to use for the divergence calculation.
Enable Volume Weighting
Default: true
Description: When enabled, gives more weight to divergence signals that are accompanied by significant volume.
✅Best Use Cases
Identifying high-probability reversal points by spotting divergence in overbought or oversold territory.
Confirming the strength of a trend by observing sustained positive or negative divergence.
Pairs trading by taking a long position on the outperforming asset and a short position on the underperforming one during a divergence.
Risk management by recognizing when a current trend is losing its underlying momentum.
⚠️Limitations
Requires Correlated Assets: The indicator’s effectiveness is highly dependent on the selection of two assets with a known correlation (e.g., ES and NQ).
Not a Standalone System: Divergence signals should be used in conjunction with other forms of analysis (price action, market structure) and not as a complete trading system.
Lagging by Nature: As it is based on moving averages and past price data, the oscillator is inherently lagging and may not capture all rapid price changes.
💡What Makes This Unique
Combined Momentum & Volume: Unlike standard oscillators, it fuses momentum with volume delta for a more robust “Smart Money” perspective.
Noise-Filtering Mechanism: The proprietary entropy filter is a unique feature designed to weed out insignificant market chatter and focus on high-conviction signals.
🔬How It Works
Data Normalization:
The script first normalizes the price data of the two selected symbols into percentage changes. This ensures that the comparison is fair, regardless of the difference in their price scales.
Momentum Calculation:
It then calculates the chosen momentum value (either RSI or MACD histogram) for each of the normalized price series.
Divergence Computation:
The core of the indicator lies in subtracting the momentum of the secondary symbol from the primary one. This raw divergence is then optionally weighted by volume and filtered for market noise (entropy) to produce the final oscillator value.
💡Note:
For best results, use this indicator on adequate timeframes to filter out market noise. Always confirm signals with price action analysis before entering a trade. Indicator

Rolling VWAP Channel [LuxAlgo]The Rolling VWAP Channel indicator creates a channel by analyzing a large number of Volume Weighted Average Prices (VWAPs) and determining a Channel based on percentile linear interpolation throughout the VWAPs.
🔶 USAGE
In this indicator, we have formed a Channel by first calculating multiple VWAPs, each with their respective anchor, then locating prices using "Percentile Linear Interpolation".
Note: Percentile Linear Interpolation locates the price point at which a specified percentage of VWAPs fall below it.
For example, a percentile of 50% would mean that 50% of the VWAP values fall below this price.
This method of analysis is important since the VWAPs are not often evenly distributed; therefore, we are able to draw importance to different levels by analyzing in percentiles.
When visualized, there is typically clustering of the VWAP values, which occurs at any given time, as seen below.
The channel can be tailored to each individual, with full control of each percentile represented in the channel. That being said, a general concept is that these clustered areas are clear results of sideways price action, which would lead us to believe that after interactions at these levels, we should expect to see a directional decision made by the market closely after.
🔶 DETAILS
The Rolling VWAP calculation calculates a user-specified number of VWAPs (up to 500), each anchored to a unique starting point in the chart based on the start of a new timeframe.
Each new timeframe that occurs causes a new VWAP to initialize. When the total number of desired VWAPs is reached, the oldest VWAP is removed and re-initialized, anchored to the current bar. Hence, the name " Rolling " VWAPs
This method allows us to automatically generate and manage large amounts of VWAPs without the need for user interaction.
After we have generated these VWAPs, we are able to run analyses on their returned values, such as the "Percentile Linear Interpolation" mentioned in the section above.
🔶 SETTINGS
Anchor Period: Choose which time period to use as the anchor point to initialize new VWAPs from.
VWAP Source: Choose the source for your VWAPs to calculate.
VWAP Amount: Sets the number of VWAPs to use. After this amount is on the chart, the oldest will be rolled.
🔹 Channel Lines
Toggle: Enable the associated VWAP Channel percentile line.
Percentile: Adjust each line's percentile independently for your needs.
Width: Adjust the width of the associated percentile line.
🔹 Calculation
Calculated Bars: Tells the indicator how many bars to calculate on, for faster calculations with less history, use a lower value. Setting this to 0 will remove the bar constraint.
Indicator

Elastic Volume-Weighted Student-T TensionOverview
The Elastic Volume-Weighted Student-T Tension Bands indicator dynamically adapts to market conditions using an advanced statistical model based on the Student-T distribution. Unlike traditional Bollinger Bands or Keltner Channels, this indicator leverages elastic volume-weighted averaging to compute real-time dispersion and location parameters, making it highly responsive to volatility changes while maintaining robustness against price fluctuations.
This methodology is inspired by incremental calculation techniques for weighted mean and variance, as outlined in the paper by Tony Finch:
📄 "Incremental Calculation of Weighted Mean and Variance" .
Key Features
✅ Adaptive Volatility Estimation – Uses an exponentially weighted Student-T model to dynamically adjust band width.
✅ Volume-Weighted Mean & Dispersion – Incorporates real-time volume weighting, ensuring a more accurate representation of market sentiment.
✅ High-Timeframe Volume Normalization – Provides an option to smooth volume impact by referencing a higher timeframe’s cumulative volume, reducing noise from high-variability bars.
✅ Customizable Tension Parameters – Configurable standard deviation multipliers (σ) allow for fine-tuned volatility sensitivity.
✅ %B-Like Oscillator for Relative Price Positioning – The main indicator is in form of a dedicated oscillator pane that normalizes price position within the sigma ranges, helping identify overbought/oversold conditions and potential momentum shifts.
✅ Robust Statistical Foundation – Utilizes kurtosis-based degree-of-freedom estimation, enhancing responsiveness across different market conditions.
How It Works
Volume-Weighted Elastic Mean (eμ) – Computes a dynamic mean price using an elastic weighted moving average approach, influenced by trade volume, if not volume detected in series, study takes true range as replacement.
Dispersion (eσ) via Student-T Distribution – Instead of assuming a fixed normal distribution, the bands adapt to heavy-tailed distributions using kurtosis-driven degrees of freedom.
Incremental Calculation of Variance – The indicator applies Tony Finch’s incremental method for computing weighted variance instead of arithmetic sum's of fixed bar window or arrays, improving efficiency and numerical stability.
Tension Calculation – There are 2 dispersion custom "zones" that are computed based on the weighted mean and dynamically adjusted standard student-t deviation.
%B-Like Oscillator Calculation – The oscillator normalizes the price within the band structure, with values between 0 and 1:
* 0.00 → Price is at the lower band (-2σ).
* 0.50 → Price is at the volume-weighted mean (eμ).
* 1.00 → Price is at the upper band (+2σ).
* Readings above 1.00 or below 0.00 suggest extreme movements or possible breakouts.
Recommended Usage
For scalping in lower timeframes, it is recommended to use the fixed α Decay Factor, it is in raw format for better control, but you can easily make a like of transformation to N-bar size window like in EMA-1 bar dividing 2 / decayFactor or like an RMA dividing 1 / decayFactor.
The HTF selector catch quite well Higher Time Frame analysis, for example using a Daily chart and using as HTF the 200-day timeframe, weekly or monthly.
Suitable for trend confirmation, breakout detection, and mean reversion plays.
The %B-like oscillator helps gauge momentum strength and detect divergences in price action if user prefer a clean chart without bands, this thanks to pineScript v6 force overlay feature.
Ideal for markets with volume-driven momentum shifts (e.g., futures, forex, crypto).
Customization Parameters
Fixed α Decay Factor – Controls the rate of volume weighting influence for an approximation EWMA approach instead of using sum of series or arrays, making the code lightweight & computing fast O(1).
HTF Volume Smoothing – Instead of a fixed denominator for computing α , a volume sum of the last 2 higher timeframe closed candles are used as denominator for our α weight factor. This is useful to review mayor trends like in daily, weekly, monthly.
Tension Multipliers (±σ) – Adjusts sensitivity to dispersion sigma parameter (volatility).
Oscillator Zone Fills – Visual cues for price positioning within the cloud range.
Posible Interpretations
As market within indicators relay on each individual edge, this are just some key ideas to glimpse how the indicator could be interpreted by the user:
📌 Price inside bands – Market is considered somehow "stable"; price is like resting from tension or "charging batteries" for volume spike moves.
📌 Price breaking outer bands – Potential breakout or extreme movement; watch for reversals or continuation from strong moves. Market is already in tension or generating it.
📌 Narrowing Bands – Decreasing volatility; expect contraction before expansion.
📌 Widening Bands – Increased volatility; prepare for high probability pull-back moves, specially to the center location of the bands (the mean) or the other side of them.
📌 Oscillator is just the interpretation of the price normalized across the Student-T distribution fitting "curve" using the location parameter, our Elastic Volume weighted mean (eμ) fixed at 0.5 value.
Final Thoughts
The Elastic Volume-Weighted Student-T Tension indicator provides a powerful, volume-sensitive alternative to traditional volatility bands. By integrating real-time volume analysis with an adaptive statistical model, incremental variance computation, in a relative price oscillator that can be overlayed in the chart as bands, it offers traders an edge in identifying momentum shifts, trend strength, and breakout potential. Think of the distribution as a relative "tension" rubber band in which price never leave so far alone.
DISCLAIMER:
The Following indicator/code IS NOT intended to be a formal investment advice or recommendation by the author, nor should be construed as such. Users will be fully responsible by their use regarding their own trading vehicles/assets.
The following indicator was made for NON LUCRATIVE ACTIVITIES and must remain as is, following PulseWire's regulations. Use of indicator and their code are published for work and knowledge sharing. All access granted over it, their use, copy or re-use should mention authorship(s) and origin(s).
WARNING NOTICE!
THE INCLUDED FUNCTION MUST BE CONSIDERED FOR TESTING. The models included in the indicator have been taken from open sources on the web and some of them has been modified by the author, problems could occur at diverse data sceneries, compiler version, or any other externality. Indicator

RawCuts_01Library "RawCuts_01"
A collection of functions by:
mutantdog
The majority of these are used within published projects, some useful variants have been included here aswell.
This is volume one consisting mainly of smaller functions, predominantly the filters and standard deviations from Weight Gain 4000.
Also included at the bottom are various snippets of related code for demonstration. These can be copied and adjusted according to your needs.
A full up-to-date table of contents is located at the top of the main script.
WEIGHT GAIN FILTERS
A collection of moving average type filters with adjustable volume weighting.
Based upon the two most common methods of volume weighting.
'Simple' uses the standard method in which a basic VWMA is analogous to SMA.
'Elastic' uses exponential method found in EVWMA which is analogous to RMA.
Volume weighting is applied according to an exponent multiplier of input volume.
0 >> volume^0 (unweighted), 1 >> volume^1 (fully weighted), use float values for intermediate weighting.
Additional volume filter switch for smoothing of outlier events.
DIVA MODULAR DEVIATIONS
A small collection of standard and absolute deviations.
Includes the weightgain functionality as above.
Basic modular functionality for more creative uses.
Optional input (ct) for external central tendency (aka: estimator).
Can be assigned to alternative filter or any float value. Will default to internal filter when no ct input is received.
Some other useful or related functions included at the bottom along with basic demonstration use.
weightgain_sma(src, len, xVol, fVol)
Simple Moving Average (SMA): Weight Gain (Simple Volume).
Parameters:
src (float) : Source input.
len (int) : Length (number of bars).
xVol (float) : Volume exponent multiplier (0 = unweighted, 1 = fully weighted).
fVol (bool) : Volume smoothing filter.
Returns: Standard Simple Moving Average with Simple Weight Gain applied.
weightgain_hsma(src, len, xVol, fVol)
Harmonic Simple Moving Average (hSMA): Weight Gain (Simple Volume).
Parameters:
src (float) : Source input.
len (int) : Length (number of bars).
xVol (float) : Volume exponent multiplier (0 = unweighted, 1 = fully weighted).
fVol (bool) : Volume smoothing filter.
Returns: Harmonic Simple Moving Average with Simple Weight Gain applied.
weightgain_gsma(src, len, xVol, fVol)
Geometric Simple Moving Average (gSMA): Weight Gain (Simple Volume).
Parameters:
src (float) : Source input.
len (int) : Length (number of bars).
xVol (float) : Volume exponent multiplier (0 = unweighted, 1 = fully weighted).
fVol (bool) : Volume smoothing filter.
Returns: Geometric Simple Moving Average with Simple Weight Gain applied.
weightgain_wma(src, len, xVol, fVol)
Linear Weighted Moving Average (WMA): Weight Gain (Simple Volume).
Parameters:
src (float) : Source input.
len (int) : Length (number of bars).
xVol (float) : Volume exponent multiplier (0 = unweighted, 1 = fully weighted).
fVol (bool) : Volume smoothing filter.
Returns: Basic Linear Weighted Moving Average with Simple Weight Gain applied.
weightgain_hma(src, len, xVol, fVol)
Hull Moving Average (HMA): Weight Gain (Simple Volume).
Parameters:
src (float) : Source input.
len (int) : Length (number of bars).
xVol (float) : Volume exponent multiplier (0 = unweighted, 1 = fully weighted).
fVol (bool) : Volume smoothing filter.
Returns: Basic Hull Moving Average with Simple Weight Gain applied.
diva_sd_sma(src, len, xVol, fVol, ct)
Standard Deviation (SD SMA): Diva / Weight Gain (Simple Volume)
Parameters:
src (float) : Source input.
len (int) : Length (number of bars).
xVol (float) : Volume exponent multiplier (0 = unweighted, 1 = fully weighted).
fVol (bool) : Volume smoothing filter.
ct (float) : Central tendency (optional, na = bypass). Internal: weightgain_sma().
Returns:
diva_sd_wma(src, len, xVol, fVol, ct)
Standard Deviation (SD WMA): Diva / Weight Gain (Simple Volume).
Parameters:
src (float) : Source input.
len (int) : Length (number of bars).
xVol (float) : Volume exponent multiplier (0 = unweighted, 1 = fully weighted).
fVol (bool) : Volume smoothing filter.
ct (float) : Central tendency (optional, na = bypass). Internal: weightgain_wma().
Returns:
diva_aad_sma(src, len, xVol, fVol, ct)
Average Absolute Deviation (AAD SMA): Diva / Weight Gain (Simple Volume).
Parameters:
src (float) : Source input.
len (int) : Length (number of bars).
xVol (float) : Volume exponent multiplier (0 = unweighted, 1 = fully weighted).
fVol (bool) : Volume smoothing filter.
ct (float) : Central tendency (optional, na = bypass). Internal: weightgain_sma().
Returns:
diva_aad_wma(src, len, xVol, fVol, ct)
Average Absolute Deviation (AAD WMA): Diva / Weight Gain (Simple Volume) .
Parameters:
src (float) : Source input.
len (int) : Length (number of bars).
xVol (float) : Volume exponent multiplier (0 = unweighted, 1 = fully weighted).
fVol (bool) : Volume smoothing filter.
ct (float) : Central tendency (optional, na = bypass). Internal: weightgain_wma().
Returns:
weightgain_ema(src, len, xVol, fVol)
Exponential Moving Average (EMA): Weight Gain (Elastic Volume).
Parameters:
src (float) : Source input.
len (int) : Length (number of bars).
xVol (float) : Volume exponent multiplier (0 = unweighted, 1 = fully weighted).
fVol (bool) : Volume smoothing filter.
Returns: Exponential Moving Average with Elastic Weight Gain applied.
weightgain_dema(src, len, xVol, fVol)
Double Exponential Moving Average (DEMA): Weight Gain (Elastic Volume).
Parameters:
src (float) : Source input.
len (int) : Length (number of bars).
xVol (float) : Volume exponent multiplier (0 = unweighted, 1 = fully weighted).
fVol (bool) : Volume smoothing filter.
Returns: Double Exponential Moving Average with Elastic Weight Gain applied.
weightgain_tema(src, len, xVol, fVol)
Triple Exponential Moving Average (TEMA): Weight Gain (Elastic Volume).
Parameters:
src (float) : Source input.
len (int) : Length (number of bars).
xVol (float) : Volume exponent multiplier (0 = unweighted, 1 = fully weighted).
fVol (bool) : Volume smoothing filter.
Returns: Triple Exponential Moving Average with Elastic Weight Gain applied.
weightgain_rma(src, len, xVol, fVol)
Rolling Moving Average (RMA): Weight Gain (Elastic Volume).
Parameters:
src (float) : Source input.
len (int) : Length (number of bars).
xVol (float) : Volume exponent multiplier (0 = unweighted, 1 = fully weighted).
fVol (bool) : Volume smoothing filter.
Returns: Rolling Moving Average with Elastic Weight Gain applied.
weightgain_drma(src, len, xVol, fVol)
Double Rolling Moving Average (DRMA): Weight Gain (Elastic Volume).
Parameters:
src (float) : Source input.
len (int) : Length (number of bars).
xVol (float) : Volume exponent multiplier (0 = unweighted, 1 = fully weighted).
fVol (bool) : Volume smoothing filter.
Returns: Double Rolling Moving Average with Elastic Weight Gain applied.
weightgain_trma(src, len, xVol, fVol)
Triple Rolling Moving Average (TRMA): Weight Gain (Elastic Volume).
Parameters:
src (float) : Source input.
len (int) : Length (number of bars).
xVol (float) : Volume exponent multiplier (0 = unweighted, 1 = fully weighted).
fVol (bool) : Volume smoothing filter.
Returns: Triple Rolling Moving Average with Elastic Weight Gain applied.
diva_sd_ema(src, len, xVol, fVol, ct)
Standard Deviation (SD EMA): Diva / Weight Gain: (Elastic Volume).
Parameters:
src (float) : Source input.
len (int) : Length (number of bars).
xVol (float) : Volume exponent multiplier (0 = unweighted, 1 = fully weighted).
fVol (bool) : Volume smoothing filter.
ct (float) : Central tendency (optional, na = bypass). Internal: weightgain_ema().
Returns:
diva_sd_rma(src, len, xVol, fVol, ct)
Standard Deviation (SD RMA): Diva / Weight Gain: (Elastic Volume).
Parameters:
src (float) : Source input.
len (int) : Length (number of bars).
xVol (float) : Volume exponent multiplier (0 = unweighted, 1 = fully weighted).
fVol (bool) : Volume smoothing filter.
ct (float) : Central tendency (optional, na = bypass). Internal: weightgain_rma().
Returns:
weightgain_vidya_rma(src, len, xVol, fVol)
VIDYA v1 RMA base (VIDYA-RMA): Weight Gain (Elastic Volume).
Parameters:
src (float) : Source input.
len (int) : Length (number of bars).
xVol (float) : Volume exponent multiplier (0 = unweighted, 1 = fully weighted).
fVol (bool) : Volume smoothing filter.
Returns: VIDYA v1, RMA base with Elastic Weight Gain applied.
weightgain_vidya_ema(src, len, xVol, fVol)
VIDYA v1 EMA base (VIDYA-EMA): Weight Gain (Elastic Volume).
Parameters:
src (float) : Source input.
len (int) : Length (number of bars).
xVol (float) : Volume exponent multiplier (0 = unweighted, 1 = fully weighted).
fVol (bool) : Volume smoothing filter.
Returns: VIDYA v1, EMA base with Elastic Weight Gain applied.
diva_sd_vidya_rma(src, len, xVol, fVol, ct)
Standard Deviation (SD VIDYA-RMA): Diva / Weight Gain: (Elastic Volume).
Parameters:
src (float) : Source input.
len (int) : Length (number of bars).
xVol (float) : Volume exponent multiplier (0 = unweighted, 1 = fully weighted).
fVol (bool) : Volume smoothing filter.
ct (float) : Central tendency (optional, na = bypass). Internal: weightgain_vidya_rma().
Returns:
diva_sd_vidya_ema(src, len, xVol, fVol, ct)
Standard Deviation (SD VIDYA-EMA): Diva / Weight Gain: (Elastic Volume).
Parameters:
src (float) : Source input.
len (int) : Length (number of bars).
xVol (float) : Volume exponent multiplier (0 = unweighted, 1 = fully weighted).
fVol (bool) : Volume smoothing filter.
ct (float) : Central tendency (optional, na = bypass). Internal: weightgain_vidya_ema().
Returns:
weightgain_sema(src, len, xVol, fVol)
Parameters:
src (float)
len (simple int)
xVol (float)
fVol (bool)
diva_sd_sema(src, len, xVol, fVol)
Parameters:
src (float)
len (simple int)
xVol (float)
fVol (bool)
diva_mad_mm(src, len, ct)
Median Absolute Deviation (MAD MM): Diva (no volume weighting).
Parameters:
src (float) : Source input.
len (int) : Length (number of bars).
ct (float) : Central tendency (optional, na = bypass). Internal: ta.median()
Returns:
source_switch(slct, aux1, aux2, aux3, aux4)
Custom Source Selector/Switch function. Features standard & custom 'weighted' sources with additional aux inputs.
Parameters:
slct (string) : Choose from custom set of string values.
aux1 (float) : Additional input for user-defined source, eg: standard input.source(). Optional, use na to bypass.
aux2 (float) : Additional input for user-defined source, eg: standard input.source(). Optional, use na to bypass.
aux3 (float) : Additional input for user-defined source, eg: standard input.source(). Optional, use na to bypass.
aux4 (float) : Additional input for user-defined source, eg: standard input.source(). Optional, use na to bypass.
Returns: Float value, to be used as src input for other functions.
colour_gradient_ma_div(ma1, ma2, div, bull, bear, mid, mult)
Colour Gradient for plot fill between two moving averages etc, with seperate bull/bear and divergence strength.
Parameters:
ma1 (float) : Input for fast moving average (eg: bullish when above ma2).
ma2 (float) : Input for slow moving average (eg: bullish when below ma1).
div (float) : Input deviation/divergence value used to calculate strength of colour.
bull (color) : Colour when ma1 above ma2.
bear (color) : Colour when ma1 below ma2.
mid (color) : Neutral colour when ma1 = ma2.
mult (int) : Opacity multiplier. 100 = maximum, 0 = transparent.
Returns: Colour with transparency (according to specified inputs) Library

CMF and Scaled EFI OverlayCMF and Scaled EFI Overlay Indicator
Overview
The CMF and Scaled EFI Overlay indicator combines the Chaikin Money Flow (CMF) and a scaled version of the Elder Force Index (EFI) into a single chart. This allows traders to analyze both indicators simultaneously, facilitating better insights into market momentum and volume dynamics , specifically focusing on buying/selling pressure and momentum , without compromising the integrity of either indicator.
Purpose
Chaikin Money Flow (CMF): Measures buying and selling pressure by evaluating price and volume over a specified period. It indicates accumulation (buying pressure) when values are positive and distribution (selling pressure) when values are negative.
Elder Force Index (EFI): Combines price changes and volume to assess the momentum behind market moves. Positive values indicate upward momentum (prices rising with strong volume), while negative values indicate downward momentum (prices falling with strong volume).
By scaling the EFI to match the amplitude of the CMF, this indicator enables a direct comparison between pressure and momentum , preserving their shapes and zero crossings. Traders can observe the relationship between price movements, volume, and momentum more effectively, aiding in decision-making.
Understanding Pressure vs. Momentum
Chaikin Money Flow (CMF):
- Indicates the level of demand (buying pressure) or supply (selling pressure) in the market based on volume and price movements.
- Accumulation: When institutional or large investors are buying significant amounts of an asset, leading to an increase in buying pressure.
- Distribution: When these investors are selling off their holdings, increasing selling pressure.
Elder Force Index (EFI):
- Measures the strength and speed of price movements, indicating how forceful the current trend is.
- Positive Momentum: Prices are rising quickly, indicating a strong uptrend.
- Negative Momentum: Prices are falling rapidly, indicating a strong downtrend.
Understanding the difference between pressure and momentum is crucial. For example, a market may exhibit strong buying pressure (positive CMF) but weak momentum (low EFI), suggesting accumulation without significant price movement yet.
Features
Overlay of CMF and Scaled EFI: Both indicators are plotted on the same chart for easy comparison of pressure and momentum dynamics.
Customizable Parameters: Adjust lengths for CMF and EFI calculations and fine-tune the scaling factor for optimal alignment.
Preserved Indicator Integrity: The scaling method preserves the shape and zero crossings of the EFI, ensuring accurate analysis.
How It Works
CMF Calculation:
- Calculates the Money Flow Multiplier (MFM) and Money Flow Volume (MFV) to assess buying and selling pressure.
- CMF is computed by summing the MFV over the specified length and dividing by the sum of volume over the same period:
CMF = (Sum of MFV over n periods) / (Sum of Volume over n periods)
EFI Calculation:
- Calculates the EFI using the Exponential Moving Average (EMA) of the price change multiplied by volume:
EFI = EMA(n, Change in Close * Volume)
Scaling the EFI:
- The EFI is scaled by multiplying it with a user-defined scaling factor to match the CMF's amplitude.
Plotting:
- Both the CMF and the scaled EFI are plotted on the same chart.
- A zero line is included for reference, aiding in identifying crossovers and divergences.
Indicator Settings
Inputs
CMF Length (`cmf_length`):
- Default: 20
- Description: The number of periods over which the CMF is calculated. A higher value smooths the indicator but may delay signals.
EFI Length (`efi_length`):
- Default: 13
- Description: The EMA length for the EFI calculation. Adjusting this value affects the sensitivity of the EFI to price changes.
EFI Scaling Factor (`efi_scaling_factor`):
- Default: 0.000001
- Description: A constant used to scale the EFI to match the CMF's amplitude. Fine-tuning this value ensures the indicators align visually.
How to Adjust the EFI Scaling Factor
Start with the Default Value:
- Begin with the default scaling factor of `0.000001`.
Visual Inspection:
- Observe the plotted indicators. If the EFI appears too large or small compared to the CMF, proceed to adjust the scaling factor.
Fine-Tune the Scaling Factor:
- Increase or decrease the scaling factor incrementally (e.g., `0.000005`, `0.00001`, `0.00005`) until the amplitudes of the CMF and EFI visually align.
- The optimal scaling factor may vary depending on the asset and timeframe.
Verify Alignment:
- Ensure that the scaled EFI preserves the shape and zero crossings of the original EFI.
- Overlay the original EFI (if desired) to confirm alignment.
How to Use the Indicator
Analyze Buying/Selling Pressure and Momentum:
- Positive CMF (>0): Indicates accumulation (buying pressure).
- Negative CMF (<0): Indicates distribution (selling pressure).
- Positive EFI: Indicates positive momentum (prices rising with strong volume).
- Negative EFI: Indicates negative momentum (prices falling with strong volume).
Look for Indicator Alignment:
- Both CMF and EFI Positive:
- Suggests strong bullish conditions with both buying pressure and upward momentum.
- Both CMF and EFI Negative:
- Indicates strong bearish conditions with selling pressure and downward momentum.
Identify Divergences:
- CMF Positive, EFI Negative:
- Buying pressure exists, but momentum is negative; potential for a bullish reversal if momentum shifts.
- CMF Negative, EFI Positive:
- Selling pressure exists despite rising prices; caution advised as it may indicate a potential bearish reversal.
Confirm Signals with Other Analysis:
- Use this indicator in conjunction with other technical analysis tools (e.g., trend lines, support/resistance levels) to confirm trading decisions.
Example Usage
Scenario 1: Bullish Alignment
- CMF Positive: Indicates accumulation (buying pressure).
- EFI Positive and Increasing: Shows strengthening upward momentum.
- Interpretation:
- Strong bullish signal suggesting that buyers are active, and the price is likely to continue rising.
- Action:
- Consider entering a long position or adding to existing ones.
Scenario 2: Bearish Divergence
- CMF Negative: Indicates distribution (selling pressure).
- EFI Positive but Decreasing: Momentum is positive but weakening.
- Interpretation:
- Potential bearish reversal; price may be rising but underlying selling pressure suggests caution.
- Action:
- Be cautious with long positions; consider tightening stop-losses or preparing for a possible trend reversal.
Tips
Adjust for Different Assets:
- The optimal scaling factor may differ across assets due to varying price and volume characteristics.
- Always adjust the scaling factor when analyzing a new asset.
Monitor Indicator Crossovers:
- Crossings above or below the zero line can signal potential trend changes.
Watch for Divergences:
- Divergences between the CMF and EFI can provide early warning signs of trend reversals.
Combine with Other Indicators:
- Enhance your analysis by combining this overlay with other indicators like moving averages, RSI, or Ichimoku Cloud.
Limitations
Scaling Factor Sensitivity:
- An incorrect scaling factor may misalign the indicators, leading to inaccurate interpretations.
- Regular adjustments may be necessary when switching between different assets or timeframes.
Not a Standalone Indicator:
- Should be used as part of a comprehensive trading strategy.
- Always consider other market factors and indicators before making trading decisions.
Disclaimer
No Guarantee of Performance:
- Past performance is not indicative of future results.
- Trading involves risk, and losses can exceed deposits.
Use at Your Own Risk:
- This indicator is provided for educational purposes.
- The author is not responsible for any financial losses incurred while using this indicator.
Code Summary
//@version=5
indicator(title="CMF and Scaled EFI Overlay", shorttitle="CMF & Scaled EFI", overlay=false)
cmf_length = input.int(20, minval=1, title="CMF Length")
efi_length = input.int(13, minval=1, title="EFI Length")
efi_scaling_factor = input.float(0.000001, title="EFI Scaling Factor", minval=0.0, step=0.000001)
// --- CMF Calculation ---
ad = high != low ? ((2 * close - low - high) / (high - low)) * volume : 0
mf = math.sum(ad, cmf_length) / math.sum(volume, cmf_length)
// --- EFI Calculation ---
efi_raw = ta.ema(ta.change(close) * volume, efi_length)
// --- Scale EFI ---
efi_scaled = efi_raw * efi_scaling_factor
// --- Plotting ---
plot(mf, color=color.green, title="CMF", linewidth=2)
plot(efi_scaled, color=color.red, title="EFI (Scaled)", linewidth=2)
hline(0, color=color.gray, title="Zero Line", linestyle=hline.style_dashed)
- Lines 4-6: Define input parameters for CMF length, EFI length, and EFI scaling factor.
- Lines 9-11: Calculate the CMF.
- Lines 14-16: Calculate the EFI.
- Line 19: Scale the EFI by the scaling factor.
- Lines 22-24: Plot the CMF, scaled EFI, and zero line.
Feedback and Support
Suggestions: If you have ideas for improvements or additional features, please share your feedback.
Support: For assistance or questions regarding this indicator, feel free to contact the author through PulseWire.
---
By combining the CMF and scaled EFI into a single overlay, this indicator provides a powerful tool for traders to analyze market dynamics more comprehensively. Adjust the parameters to suit your trading style, and always practice sound risk management.
Indicator

Indicator

Consolidation VWAP's [QuantVue]Introducing the Consolidation VWAP's Indicator , a powerful tool designed to identify consolidation periods in stock advance and automatically anchor three distinct VWAPs to key points within the consolidation.
Consolidation Period Identification:
The indicator automatically detects periods of consolidation or areas on the chart where a stock's price moves sideways within a defined range. This period can be seen as the market taking a "breather" as it digests the previous gains. Consolidations are important because they often act as a base for the next move, either continuing the previous uptrend or reversing direction.
Consolidation requirements can be customized by the user to match your instrument and timeframe.
Maximum Consolidation Depth
Minimum Consolidation Length
Maximum Consolidation Length
Prior Uptrend Amount
Anchored VWAP, or Anchored Volume-Weighted Average Price, is a technical analysis tool used to determine the average price of a stock weighted by volume, starting from a specific point in time chosen by the analyst.
Unlike traditional VWAP, which starts at the beginning of the trading session, the anchored VWAP allows traders to select any point on the chart, such as a significant event, price low, high, or a breakout, to begin the calculation.
VWAP incorporates price and volume in a weighted average and can be used to identify areas of support and resistance on the chart.
VWAP Anchored to Consolidation High: This VWAP is anchored at the highest price point within the identified consolidation period. It helps traders understand the
average price paid by buyers who entered at the peak of the consolidation.
VWAP Anchored to Consolidation Low: This VWAP is anchored at the lowest price point within the consolidation. It provides insights into the average price paid by
buyers who entered at the lowest point of the consolidation.
VWAP Anchored to Highest Volume in the Consolidation: This VWAP is anchored at the price level with the highest trading volume during the consolidation. It reflects the average price at
which the most trading activity occurred, often indicating a key support or resistance level.
The indicator also allows the trader to see past consolidation areas and previous anchored VWAP's.
Give this indicator a BOOST and COMMENT your thoughts!
We hope you enjoy.
Cheers! Indicator

VWAP LEVELS [PRO]32 VWAP levels with labels and a table to help you identify quickly where current price is in relation to your favorite VWAP pivot levels. To help reduce cognitive load, 4 colors are used to show you where price is in relation to a VWAP level as well as the strength of that respective level. Ultimately, VWAP can be an invaluable source of support and resistance; in other words you'll often see price bounce off of a level (whether price is increasing or decreasing) once or multiple times and that could be an indication of a price's direction. Another way that you could utilize this indicator is to use it in confluence with other popular signals, such as an EMA crossover. Many traders will wait till a bar's close on the 5m or 10m time frame above a VWAP level (developing 1D VWAP would be a popular choice) before making a decision on a potential trade especially if price is rising above the 1D VWAP *and* there's been a recent 100 EMA cross UP of the 200 EMA. These are 2 bullish signals that you could look for before possibly entering in to a trade.
I've made this indicator extremely customizable:
⚡Each VWAP level has 2 labels: 1 "at level" and 1 "at right", each label and price can be disabled
⚡Each VWAP label has its own input for label padding. The "at right" label padding input allows you to zoom in and out of a chart without the labels moving along their respective axis. However, the "at level" label padding input doesn't work the same way once you move the label out of the "0" input. The label will move slightly when you zoom in and out
⚡Both "current" and "previous" VWAP levels have their own plot style that can be changed from circles, crosses and lines
⚡Significant figures input allows you to round a price up or down
⚡A price line that allows you to identify where price is in relation to a VWAP level
⚡A table that's color coded the same way as the labels. The labels and table cells change to 1 of 4 colors when "OC Check Mode" is enabled. This theory examines if the VWAP from the Open is above or below the VWAP from Close and if price is above or below normal VWAP (HLC3). This way we have 4 states:
Red = Strong Downtrend
Light Red = Weak Downtrend
Light = Weak Uptrend
Green = Strong Uptrend
Something to keep in mind: At the start of a new year, week or month, some levels will converge and they'll eventually diverge slowly or quickly depending on the level and/or time frame. You could add a few labels "at level" to show which levels are converging at the time. Since we're at the beginning of a new year, you'll see current month, 2 month, 3 month etc converge in to one level.
🙏Thanks to (c)MartinWeb for the inspiration behind this indicator.
🙏Thanks to (c)SimpleCryptoLife for the libraries and code to help create the labels. Indicator

Machine Learning: STDEV Oscillator [YinYangAlgorithms]This Indicator aims to fill a gap within traditional Standard Deviation Analysis. Rather than its usual applications, this Indicator focuses on applying Standard Deviation within an Oscillator and likewise applying a Machine Learning approach to it. By doing so, we may hope to achieve an Adaptive Oscillator which can help display when the price is deviating from its standard movement. This Indicator may help display both when the price is Overbought or Underbought, and likewise, where the price may face Support and Resistance. The reason for this is that rather than simply plotting a Machine Learning Standard Deviation (STDEV), we instead create a High and a Low variant of STDEV, and then use its Highest and Lowest values calculated within another Deviation to create Deviation Zones. These zones may help to display these Support and Resistance locations; and likewise may help to show if the price is Overbought or Oversold based on its placement within these zones. This Oscillator may also help display Momentum when the High and/or Low STDEV crosses the midline (0). Lastly, this Oscillator may also be useful for seeing the spacing between the High and Low of the STDEV; large spacing may represent volatility within the STDEV which may be helpful for seeing when there is Momentum in the form of volatility.
Tutorial:
Above is an example of how this Indicator looks on BTC/USDT 1 Day. As you may see, when the price has parabolic movement, so does the STDEV. This is due to this price movement deviating from the mean of the data. Therefore when these parabolic movements occur, we create the Deviation Zones accordingly, in hopes that it may help to project future Support and Resistance locations as well as helping to display when the price is Overbought and Oversold.
If we zoom in a little bit, you may notice that the Support Zone (Blue) is smaller than the Resistance Zone (Orange). This is simply because during the last Bull Market there was more parabolic price deviation than there was during the Bear Market. You may see this if you refer to their values; the Resistance Zone goes to ~18k whereas the Support Zone is ~10.5k. This is completely normal and the way it is supposed to work. Due to the nature of how STDEV works, this Oscillator doesn’t use a 1:1 ratio and instead can develop and expand as exponential price action occurs.
The Neutral (0) line may also act as a Support and Resistance location. In the example above we can see how when the STDEV is below it, it acts as Resistance; and when it’s above it, it acts as Support.
This Neutral line may also provide us with insight as towards the momentum within the market and when it has shifted. When the STDEV is below the Neutral line, the market may be considered Bearish. When the STDEV is above the Neutral line, the market may be considered Bullish.
The Red Line represents the STDEV’s High and the Green Line represents the STDEV’s Low. When the STDEV’s High and Low get tight and close together, this may represent there is currently Low Volatility in the market. Low Volatility may cause consolidation to occur, however it also leaves room for expansion.
However, when the STDEV’s High and Low are quite spaced apart, this may represent High levels of Volatility in the market. This may mean the market is more prone to parabolic movements and expansion.
We will conclude our Tutorial here. Hopefully this has given you some insight into how applying Machine Learning to a High and Low STDEV then creating Deviation Zones based on it may help project when the Momentum of the Market is Bullish or Bearish; likewise when the price is Overbought or Oversold; and lastly where the price may face Support and Resistance in the form of STDEV.
If you have any questions, comments, ideas or concerns please don't hesitate to contact us.
HAPPY TRADING! Indicator

Machine Learning: VWAP [YinYangAlgorithms]Machine Learning: VWAP aims to use Machine Learning to Identify the best location to Anchor the VWAP at. Rather than using a traditional fixed length or simply adjusting based on a Date / Time; by applying Machine Learning we may hope to identify crucial areas which make sense to reset the VWAP and start anew. VWAP’s may act similar to a Bollinger Band in the sense that they help to identify both Overbought and Oversold Price locations based on previous movements and help to identify how far the price may move within the current Trend. However, unlike Bollinger Bands, VWAPs have the ability to parabolically get quite spaced out and also reset. For this reason, the price may never actually go from the Lower to the Upper and vice versa (when very spaced out; when the Upper and Lower zones are narrow, it may bounce between the two). The reason for this is due to how the anchor location is calculated and in this specific Indicator, how it changes anchors based on price movement calculated within Machine Learning.
This Indicator changes the anchor if the Low < Lowest Low of a length of X and likewise if the High > Highest High of a length of X. This logic is applied within a Machine Learning standpoint that likewise amplifies this Lookback Length by adding a Machine Learning Length to it and increasing the lookback length even further.
Due to how the anchor for this VWAP changes, you may notice that the Basis Line (Orange) may act as a Trend Identifier. When the Price is above the basis line, it may represent a bullish trend; and likewise it may represent a bearish trend when below it. You may also notice what may happen is when the trend occurs, it may push all the way to the Upper or Lower levels of this VWAP. It may then proceed to move horizontally until the VWAP expands more and it may gain more movement; or it may correct back to the Basis Line. If it corrects back to the basis line, what may happen is it either uses the Basis Line as a Support and continues in its current direction, or it will change the VWAP anchor and start anew.
Tutorial:
If we zoom in on the most recent VWAP we can see how it expands. Expansion may be caused by time but generally it may be caused by price movement and volume. Exponential Price movement causes the VWAP to expand, even if there are corrections to it. However, please note Volume adds a large weighted factor to the calculation; hence Volume Weighted Average Price (VWAP).
If you refer to the white circle in the example above; you’ll be able to see that the VWAP expanded even while the price was correcting to the Basis line. This happens due to exponential movement which holds high volume. If you look at the volume below the white circle, you’ll notice it was very large; however even though there was exponential price movement after the white circle, since the volume was low, the VWAP didn’t expand much more than it already had.
There may be times where both Volume and Price movement isn’t significant enough to cause much of an expansion. During this time it may be considered to be in a state of consolidation. While looking at this example, you may also notice the color switch from red to green to red. The color of the VWAP is related to the movement of the Basis line (Orange middle line). When the current basis is > the basis of the previous bar the color of the VWAP is green, and when the current basis is < the basis of the previous bar, the color of the VWAP is red. The color may help you gauge the current directional movement the price is facing within the VWAP.
You may have noticed there are signals within this Indicator. These signals are composed of Green and Red Triangles which represent potential Bullish and Bearish momentum changes. The Momentum changes happen when the Signal Type:
The High/Low or Close (You pick in settings)
Crosses one of the locations within the VWAP.
Bullish Momentum change signals occur when :
Signal Type crosses OVER the Basis
Signal Type crosses OVER the lower level
Bearish Momentum change signals occur when:
Signal Type crosses UNDER the Basis
Signal Type Crosses UNDER the upper level
These signals may represent locations where momentum may occur in the direction of these signals. For these reasons there are also alerts available to be set up for them.
If you refer to the two circles within the example above, you may see that when the close goes above the basis line, how it mat represents bullish momentum. Likewise if it corrects back to the basis and the basis acts as a support, it may continue its bullish momentum back to the upper levels again. However, if you refer to the red circle, you’ll see if the basis fails to act as a support, it may then start to correct all the way to the lower levels, or depending on how expanded the VWAP is, it may just reset its anchor due to such drastic movement.
You also have the ability to disable Machine Learning by setting ‘Machine Learning Type’ to ‘None’. If this is done, it will go off whether you have it set to:
Bullish
Bearish
Neutral
For the type of VWAP you want to see. In this example above we have it set to ‘Bullish’. Non Machine Learning VWAP are still calculated using the same logic of if low < lowest low over length of X and if high > highest high over length of X.
Non Machine Learning VWAP’s change much quicker but may also allow the price to correct from one side to the other without changing VWAP Anchor. They may be useful for breaking up a trend into smaller pieces after momentum may have changed.
Above is an example of how the Non Machine Learning VWAP looks like when in Bearish. As you can see based on if it is Bullish or Bearish is how it favors the trend to be and may likewise dictate when it changes the Anchor.
When set to neutral however, the Anchor may change quite quickly. This results in a still useful VWAP to help dictate possible zones that the price may move within, but they’re also much tighter zones that may not expand the same way.
We will conclude this Tutorial here, hopefully this gives you some insight as to why and how Machine Learning VWAPs may be useful; as well as how to use them.
Settings:
VWAP:
VWAP Type: Type of VWAP. You can favor specific direction changes or let it be Neutral where there is even weight to both. Please note, these do not apply to the Machine Learning VWAP.
Source: VWAP Source. By default VWAP usually uses HLC3; however OHLC4 may help by providing more data.
Lookback Length: The Length of this VWAP when it comes to seeing if the current High > Highest of this length; or if the current Low is < Lowest of this length.
Standard VWAP Multiplier: This multiplier is applied only to the Standard VWMA. This is when 'Machine Learning Type' is set to 'None'.
Machine Learning:
Use Rational Quadratics: Rationalizing our source may be beneficial for usage within ML calculations.
Signal Type: Bullish and Bearish Signals are when the price crosses over/under the basis, as well as the Upper and Lower levels. These may act as indicators to where price movement may occur.
Machine Learning Type: Are we using a Simple ML Average, KNN Mean Average, KNN Exponential Average or None?
KNN Distance Type: We need to check if distance is within the KNN Min/Max distance, which distance checks are we using.
Machine Learning Length: How far back is our Machine Learning going to keep data for.
k-Nearest Neighbour (KNN) Length: How many k-Nearest Neighbours will we account for?
Fast ML Data Length: What is our Fast ML Length? This is used with our Slow Length to create our KNN Distance.
Slow ML Data Length: What is our Slow ML Length? This is used with our Fast Length to create our KNN Distance.
If you have any questions, comments, ideas or concerns please don't hesitate to contact us.
HAPPY TRADING! Indicator

Indicator

Moving Average Based Zig ZagMoving Average Based Zig Zag differs from the traditional Zig Zag indicator in that pivot points are determined by a moving average, Volume Weighted Hull Moving Average, rather than looking for the highest or lowest point in a left / right period.
Settings
Source: the source for the pivot points.
Moving Average Length: the length of the Volume Weighted Hull Moving Average, increase for longer zig zags, decrease for shorter zig zags.
Usage
Like all Zig Zag indicators, the Moving Average Based Zig Zag is not intended to be used as a live trading tool. This indicator is intended to be an alternative way of determining pivot points on your chart. Pivot points can be used for a multitude of different analytical techniques. One may use pivot points in order to draw potential support and resistance lines, trend lines or chart patterns. Additionally, pivot points can be used to determine variations of highs and lows important to market structure analysis such as break of structure or change of character.
Details
The moving average used is a Volume Weighted Hull Moving Average, this particular moving average was used due to it's relatively low-lag characteristics when compared to an Exponential Moving Average, additionally by considering volume in the moving average calculation, insignificant pivot points can be further filtered.
Rather than using built-in functions `ta.pivothigh()` and `ta.pivotlow()` to determine pivot points, this indicator waits for the moving average to pivot then searches for the highest or lowest value from the bar index of the moving average pivot to the bar index of the previous found price pivot. This method of determining pivots provides a more dynamic approach to determining pivot points. Indicator

Volume Weighted Reversal BandsThis is a vwap & vwma hybrid with upper & lower deviation bands that provide excellent price channels and reversal areas. It can be used on lower & higher timeframes, just increase the deviation % for higher timeframes. Try out the 1 minute timeframe with .5% deviation for great scalping levels.
Here is the calculation used for the main line.
(VWMA100 + VWMA500 + VWMA1000 + VWAP) / 4
So it combines 3 VWMAs with the VWAP and divides that number by 4 to give us a moving average. Then we add new levels above and below that moving average to get our channels. The channels are separated by the % deviation you choose in the settings. For tighter bands, lower the percentage deviation and for wider bands, increase the percentage deviation.
The fattest line in the middle is the main moving average and you can expect price to regularly return to this level. The thick lines are the main moving average plus or minus the percentage deviation you have set. There are 10 levels in each direction from the main moving average. The is also a thin short term moving average as well with a custom calculation. It takes 4 different length moving averages that are weighted and 4 more that are volume weighted and divides the total by 8.The lines will be green when price is above the line and red when price is below the line. The thin white line is the VWAP on its own.
These lines will act as dynamic support and resistance so you can scalp them back and forth. These levels work so well because they are volume weighted and the algos hedge their positions back and forth constantly.
For best results, use this indicator on tickers with the highest volume and trading action as the price will stick to these levels better when the big money players are hedging. Some great tickers for this indicator are APPL, SPY, BTC, ETH.
All colors and linewidths can be customized in the settings easily as well as turning off the VWAP or short moving average and adjusting the percentage deviation for the channels.
***MARKETS***
This indicator can be used on all markets, including stocks, crypto, futures and forex.
***TIMEFRAMES***
This indicator can be used on all timeframes.
***TIPS***
Try using numerous indicators of ours on your chart for extra confirmation. Our favorites to pair with these bands are the Scalper Ribbon and Trend Friend Signals. The 3 combined give you a lot of extra confirmation on whether the market is going to reverse at these levels. Indicator

Weight Gain 4000 - (Adjustable Volume Weighted MA) - [mutantdog]Short Version:
This is a fairly self-contained system based upon a moving average crossover with several unique features. The most significant of these is the adjustable volume weighting system, allowing for transformations between standard and weighted versions of each included MA. With this feature it is possible to apply partial weighting which can help to improve responsiveness without dramatically altering shape. Included types are SMA, EMA, WMA, RMA, hSMA, DEMA and TEMA. Potentially more will be added in future (check updates below).
In addition there are a selection of alternative 'weighted' inputs, a pair of Bollinger-style deviation bands, a separate price tracker and a bunch of alert presets.
This can be used out-of-the-box or tweaked in multiple ways for unusual results. Default settings are a basic 8/21 EMA cross with partial volume weighting. Dev bands apply to MA2 and are based upon the type and the volume weighting. For standard Bollinger bands use SMA with length 20 and try adding a small amount of volume weighting.
A more detailed breakdown of the functionality follows.
Long Version:
ADJUSTABLE VOLUME WEIGHTING
In principle any moving average should have a volume weighted analogue, the standard VWMA is just an SMA with volume weighting for example. Actually, we can consider the SMA to be a special case where volume is a constant 1 per bar (the value is somewhat arbitrary, the important part is that it's constant). Similar principles apply to the 'elastic' EVWMA which is the volume weighted analogue of an RMA. In any case though, where we have standard and weighted variants it is possible to transform one into the other by gradually increasing or decreasing the weighting, which forms the basis of this system. This is not just a simple multiplier however, that would not work due to the relative proportions being the same when set at any non zero value. In order to create a meaningful transformation we need to use an exponent instead, eg: volume^x , where x is a variable determined in this case by the 'volume' parameter. When x=1, the full volume weighting applies and when x=0, the volume will be reduced to a constant 1. Values in between will result in the respective partial weighting, for example 0.5 will give the square root of the volume.
The obvious question here though is why would you want to do this? To answer that really it is best to actually try it. The advantages that volume weighting can bring to a moving average can sometimes come at the cost of unwanted or erratic behaviour. While it can tend towards much closer price tracking which may be desirable, sometimes it needs moderating especially in markets with lower liquidity. Here the adjustability can be useful, in many cases i have found that adding a small amount of volume weighting to a chosen MA can help to improve its responsiveness without overpowering it. Another possible use case would be to have two instances of the same MA with the same length but different weightings, the extent to which these diverge from each other can be a useful indicator of trend strength. Other uses will become apparent with experimentation and can vary from one market to another.
THE INCLUDED MODES
At the time of publication, there are 7 included moving average types with plans to add more in future. For now here is a brief explainer of what's on offer (continuing to use x as shorthand for the volume parameter), starting with the two most common types.
SMA: As mentioned above this is essentially a standard VWMA, calculated here as sma(source*volume^x,length)/sma(volume^x,length). In this case when x=0 then volume=1 and it reduces to a standard SMA.
RMA: Again mentioned above, this is an EVWMA (where E stands for elastic) with constant weighting. Without going into detail, this method takes the 1/length factor of an RMA and replaces it with volume^x/sum(volume^x,length). In this case again we can see that when x=0 then volume=1 and the original 1/length factor is restored.
EMA: This follows the same principle as the RMA where the standard 2/(length+1) factor is replaced with (2*volume^x)/(sum(volume^x,length)+volume^x). As with an RMA, when x=0 then volume=1 and this reduces back to the standard 2/(length+1).
DEMA: Just a standard Double EMA using the above.
TEMA: Likewise, a standard Triple EMA using the above.
hSMA: This is the same as the SMA except it uses harmonic mean calculations instead of arithmetic. In most cases the differences are negligible however they can become more pronounced when volume weighting is introduced. Furthermore, an argument can be made that harmonic mean calculations are better suited to downtrends or bear markets, in principle at least.
WMA: Probably the most contentious one included. Follows the same basic calculations as for the SMA except uses a WMA instead. Honestly, it makes little sense to combine both linear and volume weighting in this manner, included only for completeness and because it can easily be done. It may be the case that a superior composite could be created with some more complex calculations, in which case i may add that later. For now though this will do.
An additional 'volume filter' option is included, which applies a basic filter to the volume prior to calculation. For types based around the SMA/VWMA system, the volume filter is a WMA-4, for types based around the RMA/EVWMA system the filter is a RMA-2.
As and when i add more they will be listed in the updates at the bottom.
WEIGHTED INPUTS
The ohlc method of source calculations is really a leftover from a time when data was far more limited. Nevertheless it is still the method used in charting and for the most part is sufficient. Often the only important value is 'close' although sometimes 'high' and 'low' can be relevant also. Since we are volume weighting however, it can be useful to incorporate as much information as possible. To that end either 'hlc3' or 'hlcc4' tend to be the best of the defaults (in the case of 24/7 charting like crypto or intraday trading, 'ohlc4' should be avoided as it is effectively the same as a lagging version of 'hlcc4'). There are many other (infinitely many, in fact) possible combinations that can be created, i have included a few here.
The premise is fairly straightforward, by subtracting one value from another, the remaining difference can act as a kind of weight. In a simple case consider 'hl2' as simply the midrange ((high+low)/2), instead of this using 'high+low-open' would give more weight to the value furthest from the open, providing a good estimate of the median. An even better estimate can be achieved by combining that with 'high+low-close' to give the included result 'hl-oc2'. Similarly, 'hlc3' can be considered the basic mean of the three significant values, an included weighted version 'hlc2-o2' combines a sum with subtraction of open to give an estimated mean that may be more accurate. Finally we can apply a similar principle to the close, by subtracting the other values, this one potentially gets more complex so the included 'cc-ohlc4' is really the simplest. The result here is an overbias of the close in relation to the open and the midrange, while in most cases not as useful it can provide an estimate for the next bar assuming that the trend continues.
Of the three i've included, hlc2-o2 is in my opinion the most useful especially in this context, although it is perhaps best considered to be experimental in nature. For that reason, i've kept 'hlcc4' as the default for both MAs.
Additionally included is an 'aux input' which is the standard TV source menu and, where possible, can be set as outputs of other indicators.
THE SYSTEM
This one is fairly obvious and straightforward. It's just a moving average crossover with additional deviation (bollinger) bands. Not a lot to explain here as it should be apparent how it works.
Of the two, MA1 is considered to be the fast and MA2 is considered to be the slow. Both can be set with independent inputs, types and weighting. When MA1 is above, the colour of both is green and when it's below the colour of both is red. An additional gradient based fill is there and can be adjusted along with everything else in the visuals section at the bottom. Default alerts are available for crossover/crossunder conditions along with optional marker plots.
MA2 has the option for deviation bands, these are calculated based upon the MA type used and volume weighted according to the main parameter. In the case of a unweighted SMA being used they will be standard Bollinger bands.
An additional 'source direct' price tracker is included which can be used as the basis for an alert system for price crossings of bands or MAs, while taking advantage of the available weighted inputs. This is displayed as a stepped line on the chart so is also a good way to visualise the differences between input types.
That just about covers it then. The likelihood is that you've used some sort of moving average cross system before and are probably still using one or more. If so, then perhaps the additional functionality here will be of benefit.
Thanks for looking, I welcome any feedack
Indicator

Indicator
