Weis Wave Renko - Effort vs ResultABOUT THIS SCRIPT
Weis Wave Renko – Effort vs Result indicator combines Renko price structure with Weis Wave volume analysis to help assess the relationship between market effort and price result.
This script is a fork and substantial extension of the original “Weis Wave Volume” script published by modhelius . Full credit is given to modhelius for the original Weis Wave calculation, Renko assignment methodology and histogram on which this version is based.
PURPOSE
The script was developed to support the following workflow:
Use VSA/Wyckoff analysis to identify the market background and possible exhaustion, absorption or testing activity.
Use Weis Wave volume to compare the effort behind successive buying and selling waves.
Use Renko structure to confirm changes of direction, higher lows, lower highs and sustained reversals.
Use the developing relationship between effort and result to assess whether supply or demand is strengthening, weakening or being absorbed.
Where appropriate, use a confirmed Renko reversal as part of an entry, stop-placement or trade-management process.
The script is intended to support a discretionary Wyckoff/VSA-style analysis of Renko charts.
It does not treat every Renko colour change as a trading signal. Instead, it is designed to help answer questions such as:
Is demand expanding or contracting?
Is supply expanding or contracting?
Is price rising with less apparent selling resistance?
Is price falling because support beneath the market is weak?
Is increased volume producing less price progress?
Does a high-volume wave represent a possible buying or selling climax?
Has a later lower-volume test supported or rejected that interpretation?
The underlying concept is effort versus result:
Effort = cumulative wave volume.
Result = the price movement achieved by the Renko wave.
PIVOT STATISTICS
At each completed Renko peak or trough, the script displays:
Weis Wave volume.
Number of Renko boxes contained in the wave.
The statistics box refers to the completed wave that formed that peak or trough.
The current uncompleted wave can also display a live statistics box. Live statistics remain provisional until the wave is completed by a confirmed change of direction.
WAVE COMMENTS
Each completed wave can receive a separate comment box connected to the centre of the relevant Renko leg.
The comment box may contain three distinct sections:
Structural conclusion.
Primary wave classification from the Scenario Key.
Explanation based on later price and volume behaviour.
For example:
Buying climax confirmed
Demand expanding
Next up-wave retest failed below the climax high on lower volume
The primary wave classification describes the completed wave relative to the previous wave in the same direction.
The structural conclusion may update later as additional waves complete reflecting the dynamic nature of the indicator.
PRIMARY WAVE CLASSIFICATIONS
Up-waves are compared with the preceding completed up-wave:
Demand expanding - More volume accompanied by a longer rise.
Demand contracting - Less volume accompanied by a shorter rise.
Less effort needed to rise - Similar or lower volume produced the same or greater upward progress.
Buying effort absorbed - More volume produced a shorter rise, suggesting that buying effort encountered supply.
Down-waves are compared with the preceding completed down-wave:
Supply expanding - More volume accompanied by a longer decline.
Supply contracting - Less volume accompanied by a shorter decline.
Less support beneath price - Similar or lower volume produced the same or greater downward progress.
Selling effort absorbed - More volume produced a shorter decline, suggesting that selling effort encountered demand.
No material change - Neither volume nor price result changed sufficiently to exceed the selected Material Change Threshold.
CLIMAX ANALYSIS
A large wave is not classified as a confirmed climax merely because it has high volume. The script uses a staged process:
Possible buying climax:
An up-wave becomes a buying-climax candidate.
The next down-wave must produce the selected Renko reversal confirmation, which defaults to three boxes.
The immediately following up-wave is treated as the retest.
The buying climax is confirmed only when that next up-wave: has lower volume than the original climax up-wave; produces a shorter rise; and fails below the climax high. The comment can then state:
Buying climax confirmed -
Next up-wave retest failed below the climax high on lower volume - Possible selling climax
A down-wave becomes a selling-climax candidate. The next up-wave must produce the selected Renko reversal confirmation. The immediately following down-wave is treated as the test. The selling climax is confirmed only when that next down-wave: has lower volume than the original climax down-wave; produces a shorter decline; and holds above the climax low.
The comment can then state:
Selling climax confirmed -
Next down-wave test held above the climax low on lower volume
Only the immediate next corresponding up-wave or down-wave is used for the test. The script does not search through later waves to find a result that retrospectively fits the climax interpretation.
NO SUPPLY AND NO DEMAND
Possible no supply requires a down-wave that:
has lower volume than the previous down-wave;
produces a shorter decline; and
forms a higher low.
The following up-wave must then sustain the selected number of reversal boxes.
Possible no demand requires an up-wave that:
has lower volume than the previous up-wave;
produces a shorter rise; and
forms a lower high.
The following down-wave must then sustain the selected number of reversal boxes.
These are rule-based interpretations of wave behaviour. They are not substitutes for a full Wyckoff or VSA analysis of background, location and market structure.
DEVELOPING WAVES
The current wave comment can update dynamically as volume and Renko-box count accumulate.
Developing comments use provisional wording such as:
Demand currently expanding.
Supply currently contracting.
Buying effort currently absorbed.
Possible no supply.
Possible no demand.
A developing classification can change before the wave completes.
PROJECTION BOXES/BRICKS
PulseWire can display projection boxes/bricks while the source-timeframe bar remains open.
Projection does not mean that the script is forecasting future bricks. It means that current price before the time period close has already moved far enough to meet one or more Renko thresholds during the still-open source bar.
For example, on a Daily Renko chart:
intraday price movement can produce provisional Renko bricks;
those bricks can appear before the Daily bar closes;
they can change or disappear before the close;
they become part of the confirmed historical Renko structure only after the source bar is confirmed.
The same principle applies to Weekly and other source intervals.
Live statistics and developing comments should therefore be treated as provisional.
RENKO ASSIGNMENT METHODS
Traditional: Traditional uses a fixed price-unit assignment value.
If the PulseWire chart is set to: Traditional box size = 3, the indicator should normally also be set to the same Renko Assignment Method = Traditional Value = 3
The script cannot automatically read the Renko box-size setting from the PulseWire chart.
ATR: ATR derives the assignment value from Average True Range. The Value input represents the ATR lookback period rather than a fixed number of price points. ATR adapts to volatility, but changing box/brick size make historical box-count comparisons less directly uniform than Traditional sizing.
Part of Price: The inherited Part of Price method calculates close ÷ Value
For example: Value 20 = approximately 5% of price. This is not identical to PulseWire’s Percentage LTP Renko setting.
DISPLAY AND POSITIONING
The script includes adjustable controls for:
up-wave and down-wave histogram colours;
histogram transparency;
pivot statistics placement;
statistics font size;
statistics connector lines;
adjacent statistics-label stacking;
wave-comment font size and line wrapping;
wave-comment vertical and horizontal offsets;
adjacent wave-comment stacking;
comment connector lines;
Permanent Note position and dimensions;
Scenario Key position and dimensions.
Adjacent label and chart leg comment box stacking is optional. Because Pine cannot measure the rendered pixel width or height of labels, collision avoidance is based on bar distance and price-coordinate separation rather than exact screen-pixel boundaries. The user may need to adjust these settings in the user interface panel to avoid overlapping of labels and comment boxes.
SCENARIO KEY
The Scenario Key translates observable effort-and-result combinations into the primary wave comments used by the script.
The table also explains the structural sequences used for:
climax candidates;
confirmed buying and selling climaxes;
possible no supply;
possible no demand;
failed follow-through;
provisional current-wave conclusions.
TIMEFRAME CONSIDERATIONS
Changing the PulseWire chart timeframe changes the source data used to construct the Renko chart.
A Daily Renko structure and a Weekly Renko structure are therefore separate reconstructions, not merely different zoom levels of the same sequence.
Weekly charts may be useful for broad structural background.
Daily charts may provide more responsive directional changes.
Lower source intervals generally provide greater granularity but also produce more noise and more frequent projection box/brick changes.
LIMITATIONS
Renko charts use synthetic price construction.
The apparent Renko box/brick price is not always a directly tradable execution price.
Projection boxes/bricks can repaint while the source bar is open.
Historical calculations can change when:
the chart timeframe changes;
Renko settings change;
indicator assignment settings change;
additional lower-timeframe data becomes available;
PulseWire reconstructs the Renko history.
This indicator should not be used to assume fills at ideal Renko box/brick prices.
Any strategy testing should use confirmed signals and actual market OHLC prices, with appropriate allowance for spread, slippage and execution delay.
The script provides analytical context. It does not provide financial advice or guarantee that any identified climax, test, no-supply condition, no-demand condition or Renko reversal will lead to a profitable trade.
CREDITS
Original Weis Wave Volume script and core calculation: modhelius
This version is an amended and extended fork incorporating:
Renko peak and trough statistics;
wave box counts;
dynamic wave comments;
effort-versus-result classifications;
climax and test sequencing;
no-supply and no-demand analysis;
projection-brick context;
configurable display, positioning and overlap-management controls.
DEVELOPMENT CONTEXT
The extended analytical concept implemented in this fork was developed following James Knox ’s presentation to the "To The Tick" trading group on 20/7/26 combining:
TradeGuider VSA observations;
Wyckoff concepts of effort versus result, climaxes, tests, springs, no supply and no demand;
Weis Wave volume;
Renko changes of direction and structural pivots.
The script’s classifications and dynamic comments were developed to make those relationships more easily visible directly on the Renko chart.
Indicator

Weis Wave Renko - Effort vs ResultABOUT THIS SCRIPT
Weis Wave Renko – Effort vs Result indicator combines Renko price structure with Weis Wave volume analysis to help assess the relationship between market effort and price result.
This script is a fork and substantial extension of the original “Weis Wave Volume” script published by modhelius . Full credit is given to modhelius for the original Weis Wave calculation, Renko assignment methodology and histogram on which this version is based.
PURPOSE
The script was developed to support the following workflow:
Use VSA/Wyckoff analysis to identify the market background and possible exhaustion, absorption or testing activity.
Use Weis Wave volume to compare the effort behind successive buying and selling waves.
Use Renko structure to confirm changes of direction, higher lows, lower highs and sustained reversals.
Use the developing relationship between effort and result to assess whether supply or demand is strengthening, weakening or being absorbed.
Where appropriate, use a confirmed Renko reversal as part of an entry, stop-placement or trade-management process.
The script is intended to support a discretionary Wyckoff/VSA-style analysis of Renko charts.
It does not treat every Renko colour change as a trading signal. Instead, it is designed to help answer questions such as:
Is demand expanding or contracting?
Is supply expanding or contracting?
Is price rising with less apparent selling resistance?
Is price falling because support beneath the market is weak?
Is increased volume producing less price progress?
Does a high-volume wave represent a possible buying or selling climax?
Has a later lower-volume test supported or rejected that interpretation?
The underlying concept is effort versus result:
Effort = cumulative wave volume.
Result = the price movement achieved by the Renko wave.
PIVOT STATISTICS
At each completed Renko peak or trough, the script displays:
Weis Wave volume.
Number of Renko boxes contained in the wave.
The statistics box refers to the completed wave that formed that peak or trough.
The current uncompleted wave can also display a live statistics box. Live statistics remain provisional until the wave is completed by a confirmed change of direction.
WAVE COMMENTS
Each completed wave can receive a separate comment box connected to the centre of the relevant Renko leg.
The comment box may contain three distinct sections:
Structural conclusion.
Primary wave classification from the Scenario Key.
Explanation based on later price and volume behaviour.
For example:
Buying climax confirmed
Demand expanding
Next up-wave retest failed below the climax high on lower volume
The primary wave classification describes the completed wave relative to the previous wave in the same direction.
The structural conclusion may update later as additional waves complete reflecting the dynamic nature of the indicator.
PRIMARY WAVE CLASSIFICATIONS
Up-waves are compared with the preceding completed up-wave:
Demand expanding - More volume accompanied by a longer rise.
Demand contracting - Less volume accompanied by a shorter rise.
Less effort needed to rise - Similar or lower volume produced the same or greater upward progress.
Buying effort absorbed - More volume produced a shorter rise, suggesting that buying effort encountered supply.
Down-waves are compared with the preceding completed down-wave:
Supply expanding - More volume accompanied by a longer decline.
Supply contracting - Less volume accompanied by a shorter decline.
Less support beneath price - Similar or lower volume produced the same or greater downward progress.
Selling effort absorbed - More volume produced a shorter decline, suggesting that selling effort encountered demand.
No material change - Neither volume nor price result changed sufficiently to exceed the selected Material Change Threshold.
CLIMAX ANALYSIS
A large wave is not classified as a confirmed climax merely because it has high volume. The script uses a staged process:
Possible buying climax:
An up-wave becomes a buying-climax candidate.
The next down-wave must produce the selected Renko reversal confirmation, which defaults to three boxes.
The immediately following up-wave is treated as the retest.
The buying climax is confirmed only when that next up-wave: has lower volume than the original climax up-wave; produces a shorter rise; and fails below the climax high. The comment can then state:
Buying climax confirmed -
Next up-wave retest failed below the climax high on lower volume - Possible selling climax
A down-wave becomes a selling-climax candidate. The next up-wave must produce the selected Renko reversal confirmation. The immediately following down-wave is treated as the test. The selling climax is confirmed only when that next down-wave: has lower volume than the original climax down-wave; produces a shorter decline; and holds above the climax low.
The comment can then state:
Selling climax confirmed -
Next down-wave test held above the climax low on lower volume
Only the immediate next corresponding up-wave or down-wave is used for the test. The script does not search through later waves to find a result that retrospectively fits the climax interpretation.
NO SUPPLY AND NO DEMAND
Possible no supply requires a down-wave that:
has lower volume than the previous down-wave;
produces a shorter decline; and
forms a higher low.
The following up-wave must then sustain the selected number of reversal boxes.
Possible no demand requires an up-wave that:
has lower volume than the previous up-wave;
produces a shorter rise; and
forms a lower high.
The following down-wave must then sustain the selected number of reversal boxes.
These are rule-based interpretations of wave behaviour. They are not substitutes for a full Wyckoff or VSA analysis of background, location and market structure.
DEVELOPING WAVES
The current wave comment can update dynamically as volume and Renko-box count accumulate.
Developing comments use provisional wording such as:
Demand currently expanding.
Supply currently contracting.
Buying effort currently absorbed.
Possible no supply.
Possible no demand.
A developing classification can change before the wave completes.
PROJECTION BOXES/BRICKS
PulseWire can display projection boxes/bricks while the source-timeframe bar remains open.
Projection does not mean that the script is forecasting future bricks. It means that current price before the time period close has already moved far enough to meet one or more Renko thresholds during the still-open source bar.
For example, on a Daily Renko chart:
intraday price movement can produce provisional Renko bricks;
those bricks can appear before the Daily bar closes;
they can change or disappear before the close;
they become part of the confirmed historical Renko structure only after the source bar is confirmed.
The same principle applies to Weekly and other source intervals.
Live statistics and developing comments should therefore be treated as provisional.
b]RENKO ASSIGNMENT METHODS
Traditional: Traditional uses a fixed price-unit assignment value.
If the PulseWire chart is set to: Traditional box size = 3, the indicator should normally also be set to the same Renko Assignment Method = Traditional Value = 3
The script cannot automatically read the Renko box-size setting from the PulseWire chart.
ATR: ATR derives the assignment value from Average True Range. The Value input represents the ATR lookback period rather than a fixed number of price points. ATR adapts to volatility, but changing box/brick size make historical box-count comparisons less directly uniform than Traditional sizing.
Part of Price: The inherited Part of Price method calculates close ÷ Value
For example: Value 20 = approximately 5% of price. This is not identical to PulseWire’s Percentage LTP Renko setting.
DISPLAY AND POSITIONING
The script includes adjustable controls for:
up-wave and down-wave histogram colours;
histogram transparency;
pivot statistics placement;
statistics font size;
statistics connector lines;
adjacent statistics-label stacking;
wave-comment font size and line wrapping;
wave-comment vertical and horizontal offsets;
adjacent wave-comment stacking;
comment connector lines;
Permanent Note position and dimensions;
Scenario Key position and dimensions.
Adjacent label and chart leg comment box stacking is optional. Because Pine cannot measure the rendered pixel width or height of labels, collision avoidance is based on bar distance and price-coordinate separation rather than exact screen-pixel boundaries. The user may need to adjust these settings in the user interface panel to avoid overlapping of labels and comment boxes.
SCENARIO KEY
The Scenario Key translates observable effort-and-result combinations into the primary wave comments used by the script.
The table also explains the structural sequences used for:
climax candidates;
confirmed buying and selling climaxes;
possible no supply;
possible no demand;
failed follow-through;
provisional current-wave conclusions.
TIMEFRAME CONSIDERATIONS
Changing the PulseWire chart timeframe changes the source data used to construct the Renko chart.
A Daily Renko structure and a Weekly Renko structure are therefore separate reconstructions, not merely different zoom levels of the same sequence.
Weekly charts may be useful for broad structural background.
Daily charts may provide more responsive directional changes.
Lower source intervals generally provide greater granularity but also produce more noise and more frequent projection box/brick changes.
LIMITATIONS
Renko charts use synthetic price construction.
The apparent Renko box/brick price is not always a directly tradable execution price.
Projection boxes/bricks can repaint while the source bar is open.
Historical calculations can change when:
the chart timeframe changes;
Renko settings change;
indicator assignment settings change;
additional lower-timeframe data becomes available;
PulseWire reconstructs the Renko history.
This indicator should not be used to assume fills at ideal Renko box/brick prices.
Any strategy testing should use confirmed signals and actual market OHLC prices, with appropriate allowance for spread, slippage and execution delay.
The script provides analytical context. It does not provide financial advice or guarantee that any identified climax, test, no-supply condition, no-demand condition or Renko reversal will lead to a profitable trade.
CREDITS
Original Weis Wave Volume script and core calculation: modhelius
This version is an amended and extended fork incorporating:
Renko peak and trough statistics;
wave box counts;
dynamic wave comments;
effort-versus-result classifications;
climax and test sequencing;
no-supply and no-demand analysis;
projection-brick context;
configurable display, positioning and overlap-management controls.
DEVELOPMENT CONTEXT
The extended analytical concept implemented in this fork was developed following James Knox ’s presentation to the "To The Tick" trading group on 20/7/26 combining:
TradeGuider VSA observations;
Wyckoff concepts of effort versus result, climaxes, tests, springs, no supply and no demand;
Weis Wave volume;
Renko changes of direction and structural pivots.
The script’s classifications and dynamic comments were developed to make those relationships more easily visible directly on the Renko chart. Indicator

Ease-of-Movement Flow OscillatorEase-of-Movement Flow Oscillator
A volume oscillator that measures how easily price moves — distance travelled relative to the volume required to travel it. Large travel on light volume = high ease (a frictionless drift); small travel on heavy volume = low ease (absorption — effort without result). Above zero, price advances with little resistance; below zero, it declines with little resistance. It adds an absorption warning and a plain-language forward-calibration layer, so you can tell at a glance whether a move is frictionless or being absorbed, and whether the signal has actually paid here.
Why these parts are combined (not a mashup for show). Ease of movement relates distance to the volume needed for it — a different question from "buying vs selling." A frictionless advance and an absorbed advance look identical on a price chart but behave differently next, so that's the core read. An effort-vs-result check (price making a new extreme while ease does not) flags absorption — heavy volume no longer moving price — which the raw line alone misses. Forward calibration removes blind faith: instead of assuming a cross "should" pay, it measures whether it actually has, with realistic profit/stop outcomes. Together they form one coherent volume-flow tool.
How it works. Distance moved = midpoint change; box ratio = (volume ÷ scale) ÷ range. Ease = distance ÷ box ratio, smoothed, standardized and soft-bounded to ±100 that auto-fits its own magnitude. A signal fires only when ease decisively clears a confirmation band beyond zero (filtering the constant zero-line chatter). Absorption divergence is detected from confirmed price pivots versus the ease line. Each signal is then labelled by a triple barrier — a profit target and equal stop in ATR units plus a time limit — split into in-sample and recent out-of-sample, with a confidence interval and a multiple-testing check.
How to use. Read the Verdict row (Long/Short, Absorption, or Wait) and the Conviction row, which reads "High" only when that signal type shows a positive edge that survives the test on this symbol. Green above zero = easy up, red below = easy down; shaded bands = strong ease; the faint band lines mark where signals fire. Best used with your own trend and risk plan, not alone.
What's original. The absorption (effort-vs-result) flag, auto volume scaling, a noise-filtering signal band, the forward triple-barrier calibration with an out-of-sample split, and a conviction read that openly admits when there's no proven edge.
Volume note. This needs real volume — use a futures contract such as NSE:NIFTY1!. On a cash index it reports "No volume" rather than printing noise.
Honesty & limitations. Edge figures are computed on this chart's own history with overlapping windows and no costs — context, not a guaranteed backtest; past behaviour doesn't predict the future. Volume quality varies by feed and instrument.
Disclaimer: for research and education only. Not financial advice. Trading carries risk of loss; manage your own positions. Indicator

Range Expansion Divergence OscillatorRange Expansion Divergence Oscillator
## Overview
The Range Expansion Divergence Oscillator turns **directional range expansion** - how large each bar range is versus its recent average, signed by the prevailing price direction - into a standardized, bounded oscillator, and then looks for **divergence between price and range**. The idea it tests: when price makes a new extreme on shrinking ranges, the move is "thin" and lacks effort behind it.
It is a single-pane oscillator. It needs no external data and no volume. Every data input is user-configurable, so it runs on any symbol, asset class or timeframe, in any market and on any timeframe. Defaults target NSE NIFTY index futures on intraday charts.
## What it plots
- A z-scored **range oscillator** (expanding range with the trend = up, contracting range = near zero), with a glow line and sigma-based overbought/oversold levels.
- **Extreme-zone bands** (default +/-3 sigma) with a gradient fill that deepens toward the edge.
- **Divergence lines and labels** on the oscillator - regular (reversal) and hidden (continuation), in two colors.
- **In-band reversal dots** where the oscillator turns inside an extreme zone.
- Optional **price-pane marks** at the confirmation bar (all generated by this one indicator).
- A **background-adaptive status dashboard** (oscillator value in sigma, zone, last divergence, last reversal, current range z-score).
## Why these components are combined (mashup rationale)
This script combines a **derived measure**, a **normalization stage**, a **divergence engine** and a **reversal read**, because each answers a question the others cannot and none is useful here alone:
1. **Directional range expansion (effort/participation).** Price geometry alone cannot show participation. A new high made on shrinking bar ranges is "thin"; a high on expanding ranges has effort behind it. The oscillator z-scores the bar range (high - low) versus its recent average and signs it by the net direction of price, giving the closest read to participation buildable from the bars of the instrument itself - with no volume required.
2. **Standardization (rolling z-score).** range differs in scale across instruments. The z-score expresses it in standard-deviation units, so "overbought/oversold" and the extreme bands mean the same thing on NIFTY, on a commodity future, or on a crypto instrument. Without this step the divergence thresholds would not transfer between symbols.
3. **Divergence engine.** The original payload is reading **price-versus-range disagreement at confirmed pivots**. The engine pairs each new price pivot with the oscillator value, then requires: a genuine new price extreme; the measure failing to confirm it; a minimum oscillator gap scaled to the oscillator own stdev; the two pivots within a maximum bar distance; and optionally an overbought/oversold reading at the pivot. These gates make the combination produce signal rather than noise.
4. **Reversal read.** Independently, the engine flags oscillator turns that occur inside the extreme bands - a complementary exhaustion cue.
Together the components form one pipeline: **build the signal -> make it comparable (z-score) -> surface where price and that signal disagree (divergence) and where it exhausts (reversal).** Each is incomplete alone.
## How it works (method)
bar range (high - low) is standardized to a rolling z-score, then signed by the net direction of price over the range window so that up = bullish; the result is the oscillator.
Regular and hidden divergence are detected from confirmed pivothigh/pivotlow pivots and filtered by the gates above; reversals are oscillator pivots that print inside the extreme bands. Pivots confirm a few bars after they occur, so a printed signal does not repaint. The confirmation lag equals the pivot length.
## How to use it
1. Add the indicator on any chart; no volume or external data is required.
2. Read divergence as **context, not a trigger**: a bearish divergence (price higher high, range lower high) says the new high lacks expanding range/effort; a bullish divergence says the opposite at lows. Confirm with your own structure, levels and risk process.
3. Tune the **pivot length**, **max gap** and **min oscillator gap** to your timeframe; raise them for fewer, cleaner signals.
## Originality
This is an original implementation - not a range line and not a generic divergence script, but the specific combination of range, sigma-standardization that makes the read portable across markets, a multi-gate divergence engine (magnitude + distance + extreme-zone), hidden-divergence and in-band reversal detection, and a background-adaptive dashboard. The code is written from scratch; helper functions use only their arguments and built-ins.
## Credits
Range-expansion / **effort-versus-result** analysis is a long-standing public technical-analysis approach (in the **Wyckoff** tradition). **Price/oscillator divergence** is likewise a standard, publicly documented technique. This script is not affiliated with, nor endorsed by, any third party.
## Notes / limitations
- Range is a participation proxy, not a direction call; the sign comes from a short price window, so very choppy segments can flip it.
- Divergence is descriptive context, never a guarantee of reversal.
- Confirmation lags each pivot by the pivot length.
## Disclaimer
Research and educational tool only. NOT financial advice and no guarantee of profitability or accuracy. Indicators describe past behaviour; they do not predict the future. Trading carries risk of loss. Test out-of-sample and make your own decisions. The author accepts no liability for any use of this script.
Indicator

Effort vs Result Reaction Map [AGPro Series]Effort vs Result Reaction Map
⚖️ OVERVIEW
Effort vs Result Reaction Map is a premium volume-price reaction indicator built around one of the most practical ideas from Wyckoff and Volume Spread Analysis: effort only matters when it is compared with result.
Many volume tools stop at identifying high volume, relative volume spikes, wide candles or bullish/bearish pressure. This script goes further by asking a more selective question:
Is the market actually getting progress for the effort being spent?
The indicator compares normalized participation effort, ATR-adjusted price progress, close-location quality, directional efficiency and wick behavior. The output is a clean reaction map that highlights two specific event families:
• High effort + poor result
• Low effort + strong result
That makes the script different from a simple volume spike detector, a generic pressure map, a support/resistance drawer or a full Wyckoff phase tool. It is focused on the moment where participation and progress become meaningfully disconnected.
🔬 CORE IDEA
Effort is built from two dimensions:
• Relative volume versus a rolling participation baseline
• Candle spread normalized by ATR
Result is built from:
• Price progress over a configurable number of bars
• Close-location quality in the direction of progress
• ATR-normalized movement quality
Efficiency measures the relationship between those two sides. A bar can show strong volume, but if price does not achieve directional progress, the script treats that as a potential failed-progress reaction. A bar can also move cleanly with surprisingly low effort, which can reveal ease of movement and directional acceptance.
🧭 WHAT MAKES IT DIFFERENT
Most public volume indicators answer one of these questions:
• Is volume high?
• Is relative volume expanding?
• Is price near a volume shelf?
• Is pressure bullish or bearish?
• Is a Wyckoff phase forming?
Effort vs Result Reaction Map answers a narrower and more actionable chart-reading question:
Did the market receive enough result for the effort it spent?
This keeps the tool focused and prevents it from overlapping with broader volume profile, relative volume, delta, session reaction or support/resistance scripts. It does not try to label accumulation, distribution, spring, upthrust or phase structure. Instead, it turns effort/result imbalance into a compact reaction framework that can sit cleanly on any chart.
🎯 SIGNAL TYPES
High Effort + Poor Result
This event appears when participation and spread are unusually active but price progress remains weak. The script studies wick behavior and candle direction to estimate which side attempted progress and failed. The label then expresses the opposite reaction bias:
• Failed Bull Progress
• Failed Bear Progress
Low Effort + Strong Result
This event appears when price makes strong directional progress while effort remains unusually light. This can suggest ease of movement, cleaner directional travel or a lack of opposing participation in that moment:
• Low Effort Rise
• Low Effort Drop
Each event must pass a confidence threshold and a visual cooldown before it appears on the chart. This keeps the output selective and suitable for publication-quality screenshots.
🟦 REACTION BOXES
The script can draw rectangular reaction boxes around qualified events. These boxes are not generic support and resistance zones. They are event-native reaction ranges created only when the effort/result engine finds a meaningful imbalance.
Reaction boxes help the user track whether the market later respects, revisits or ignores the area where effort and result became disconnected. The box length, padding, transparency and minimum confidence are configurable.
This gives the chart more structure without turning the indicator into another broad zone tool.
📊 PANEL
The compact panel reports:
• Effort
• Result
• Efficiency
• Reaction Bias
• Confidence
The first panel row follows the AGPro standard format: one merged blue header row containing only the script name. Panel location, panel theme and panel font size are all configurable from the settings.
⚙️ KEY SETTINGS
Engine
• Effort Baseline Length controls the volume normalization baseline.
• ATR Normalization Length controls spread, progress and object spacing.
• Result Progress Bars defines how far back the result comparison looks.
• Volume Weight In Effort balances relative volume versus candle spread.
Reaction Thresholds
• High Effort Threshold defines unusual participation.
• Low Effort Threshold defines unusually light participation.
• Poor Result Threshold filters failed-progress events.
• Strong Result Threshold filters low-effort strong-result events.
• Minimum Event Confidence controls final event selectivity.
• Visual Cooldown Bars keeps labels and boxes from clustering.
Reaction Boxes
• Box Minimum Confidence keeps boxes more selective than labels if desired.
• Box Extend Right Bars controls how long reaction ranges remain visible.
• Box ATR Padding gives boxes a clean margin around the event candle.
• Box Transparency controls chart softness.
Labels And Markers
• Event labels can be enabled or disabled.
• Label confidence can be shown or hidden; it is hidden by default for cleaner screenshots.
• Label font size defaults to Normal.
• Label offset uses ATR so labels stay away from candle bodies.
• Directional markers provide a minimal visual cue for qualified reactions.
🧠 HOW TO USE
Apply the script to a liquid market and start with the default settings.
Watch for high-effort poor-result labels when volume and spread expand but the market fails to make clean progress. These areas can be useful for studying absorption, failed pushes and short-term reaction shifts.
Watch for low-effort strong-result labels when price moves cleanly without requiring heavy participation. These events can help identify easier directional travel and cleaner movement conditions.
Use the reaction boxes as context zones created by the event itself. They are best read together with structure, trend context, liquidity areas, session behavior or your own discretionary framework.
✅ BEST USE CASES
• Spotting failed directional progress after heavy participation
• Comparing volume effort with actual price result
• Identifying clean movement when result expands on lighter effort
• Studying short-term absorption and efficiency shifts
• Adding Wyckoff/VSA-inspired logic without using a full phase detector
• Keeping a premium chart layout with selective labels and contextual boxes
🧩 LIMITATIONS AND TRANSPARENCY
Effort vs Result Reaction Map is an analytical indicator, not a strategy.
It does not classify full Wyckoff phases, does not draw generic support/resistance, and does not attempt to forecast future price. Its purpose is to organize observed effort/result behavior into a clean visual framework.
Event quality depends on symbol behavior, timeframe, volume reliability and selected thresholds. Markets with unreliable volume data may need more conservative settings.
The script is designed to be selective by default, but users can tune thresholds, confidence, cooldown, label size, panel theme and reaction box visibility to match their preferred chart style.
Indicator

VoluTility🌊 VoluTility forecasts trend exhaustion, breakout pressure, and structural inflection by measuring volatility within the effort stream. Built on the concept of ATR applied to volume, it doesn’t read raw volume — it reveals whether that volume is stable, chaotic, or compressing ahead of a move. The goal is to detect structural setups before they resolve. The lower the timeframe, the greater the alpha.
🧠 Core Logic
A zero-centered histogram shows the deviation of smoothed volume from its own volatility baseline. Positive bars indicate expansion; negative bars signal compression. Color reflects rate-of-change in volume volatility. Opacity tracks effort/result strength — showing when moves are real or hollow.
The overlaid ribbon (EMA vs HMA) highlights rhythm shifts. Orange fill signals real expansion; yellow shows decay or absorption. Together, they expose pre-breakout compression and exhaustion tails before price reacts.
🏗️ Structural Read
On the 1H BTC chart shown, price coils into a shallow pullback, compressing within a narrow range marked by shrinking candle bodies and muted wick aggression. A sudden expansion candle breaks the coil cleanly, with no immediate rejection or wick reversion. Price holds above the breakout pivot, establishing a baseline for structural acceptance and shifting bias toward continuation.
🔰 Zone Descriptions
🔴 Volatile blowout
🟠 Clean expansion
🟡 Passive or absorbed effort
🟢 Steady-state rhythm
🔵 Compression coil
🧐 Suggested Use
VoluTility is expressly designed as an overlay for sub-pane indicators, where it acts as a second-order rhythm map — exposing hidden structural pressure within volume or volatility streams. When paired with volume (like ZVOL or OBVX), it highlights when flow is expanding with intent versus fading into noise. When layered over volatility signals (like ATR Turbulence or WIRE), it reveals whether expansion has real effort behind it — or is just structural slack.
It pairs especially well with the Relative Directional Index (RDI), where its histogram and ribbon offer early exhaustion signals before traditional trend or momentum fades appear. On raw momentum tools, it acts as a filter: softening false breaks and confirming pressure-backed continuation.
Run on 15m or lower charts for early entry cues or breakout anticipation. On 1H charts, use it to validate compression resolution or detect fatigue before structure turns. It doesn’t react to price — it forecasts readiness. Indicator

ZVOL — Z-Score Volume Heatmapⓩ ZVOL transforms raw volume into a statistically calibrated heatmap using Z-score thresholds. Unlike classic volume indicators that rely on fixed MA comparisons, ZVOL calculates how many standard deviations each volume bar deviates from its mean. This makes the reading adaptive across timeframes and assets, in order to distinguish meaningful crowd behavior from random volatility.
📊 The core display is a five-zone histogram, each encoded by color and statistical depth. Optional background shading mirrors these zones across the entire pane, revealing subtle compression or structural rhythm shifts across time. By grounding the volume reading in volatility-adjusted context, ZVOL inhibits impulsive trading tactics by compelling the structure, not the sentiment, to dictate the signal.
🥵 Heatmap Coloration:
🌚 Suppressed volume — congestion, coiling phases
🩱 Stable flow — early trend or resting volume
🏀 High activity — emerging pressure
💔 Extreme — possible climax or institutional print
🎗️ A dynamic Fibonacci-based 21:34-period EMA ribbon overlays the histogram. The fill area inverts color on crossover, providing a real-time read on tempo, expansion, or divergence between price structure and crowd effort.
💡 LTF Usage Suggestions:
• Confirm breakout legs when orange or red zones align with range exits
• Fade overextended moves when red bars appear into resistance
• Watch for rising EMAs and orange volume to front-run impulsive moves
• Combine with volatility suppression (e.g. ATR) to catch compression → expansion transitions
🥂 Ideal Pairings:
• OBVX Conviction Bias — to confirm directional intent behind volume shifts
• SUPeR TReND 2.718 — for directional filters
• ATR Turbulence Ribbon — to detect compression phases
👥 The OBVX Conviction Bias adds a second dimension to ZVOL by revealing whether crowd effort is aligning with price direction or diverging beneath the surface. While ZVOL identifies statistical anomalies in raw volume, OBVX tracks directional commitment using cumulative volume and moving average cross logic. Use them together to spot fake-outs, anticipate structure-confirmed breakouts, or time pullbacks with volume-based conviction.
🔬 ZVOL isn’t just a volume filter — it’s a structural lens. It reveals when crowd effort is meaningful, when it's fading, and when something is about to shift. Designed for structure-aware traders who care about context, not noise. Indicator

RVOL Effort Matrix💪🏻 RVOL Effort Matrix is a tiered volume framework that translates crowd participation into structure-aware visual zones. Rather than simply flagging spikes, it measures each bar’s volume as a ratio of its historical average and assigns to that effort dynamic tiers, creating a real-time map of conviction , exhaustion , and imbalance —before price even confirms.
⚖️ At its core, the tool builds a histogram of relative volume (RVOL). When enabled, a second layer overlays directional effort by estimating buy vs sell volume using candle body logic. If the candle closes higher, green (buy) volume dominates. If it closes lower, red (sell) volume leads. These components are stacked proportionally and inset beneath a colored cap line—a small but powerful layer that maintains visibility of the true effort tier even when split bars are active. The cap matches the original zone color, preserving context at all times.
Coloration communicates rhythm, tempo, and potential turning points:
• 🔴 = structurally weak effort, i.e. failed moves, fake-outs or trend exhaustion
• 🟡 = neutral volume, as seen in consolidations or pullbacks
• 🟢 = genuine commitment, good for continuation, breakout filters, or early rotation signals
• 🟣 = explosive volume signaling either climax or institutional entry—beware!
Background shading (optional) mirrors these zones across the pane for structural scanning at a glance. Volume bars can be toggled between full-stack mode or clean column view. Every layer is modular—built for composability with tools like ZVOL or OBVX Conviction Bias.
🧐 Ideal Use-Cases:
• 🕰 HTF bias anchoring → LTF execution
• 🧭 Identifying when structure is being driven by real crowd pressure
• 🚫 Fading green/fuchsia bars that fail to break structure
• ✅ Riding green/fuchsia follow-through in directional moves
🍷 Recommended Pairings:
• ZVOL for statistically significant volume anomaly detection
• OBVX Conviction Bias ↔️ for directional confirmation of effort zones
• SUPeR TReND 2.718 for structure-congruent entry filtering
• ATR Turbulence Ribbon to distinguish expansion pressure from churn
🥁 RVOL Effort Matrix is all about seeing—how much pressure is behind a move, whether that pressure is sustainable, and whether the crowd is aligned with price. It's volume, but readable. It’s structure, but dynamic. It’s the difference between obeying noise and trading to the beat of the market. Indicator

Indicator

Indicator
