I’d like to introduce my new Volume Zone Oscillator with dynamic window sizing.
This indicator includes the classic VZO, a cyclical CVD (Cumulative Volume Delta) line (calculated using either a fixed-length or a dynamic window), and a strength heatmap based on the momentum of the dynamic VZO signal. You can find it a puvlic indicator at this link Tradovate
1. Displayed Lines: Meaning, Calculation, and Trading Implications
The indicator plots three main lines:
- VZO (white line): A classical Volume Zone Oscillator computed using a regression over directional volumes. It quantifies buying/selling pressure as a percentage of total volume. Readings above +60/+100 typically suggest overbought zones; below -60/-100 suggest oversold conditions.
- Dynamic VZO (purple line): A more reactive variant of the VZO computed over a dynamic lookback window, which adapts to prevailing volume trends. It eliminates much of the noise of static-period indicators, providing cleaner trend signals.
- Cyclic CVD (yellow line, optional): Based on the Cumulative Volume Delta, normalized to [-100, +100] against the absolute volume. It highlights the imbalance between aggressive buyers and sellers and can be computed over a fixed or dynamically-sized window.
Threshold lines at +100, +70, -70, and -100 are used to identify significant trading zones. Crossovers back into these zones often trigger Buy/Sell Strong signals, marked as triangle shapes.
2. Dynamic Range: Problem Solved and Implementation
The dynamic window mechanism solves a key problem in fixed-length oscillators: the edge effects that occur when outdated data exits the window. In a fixed window, when a bar drops out and a new one enters, their impact can be opposite and asymmetrical, causing spurious changes in the indicator’s output.
Instead, the dynamic range logic maintains the current subwindow if it retains or improves the directional consistency (in volume vs. total volume).
Otherwise, at the next bar, the window extends to include the new bar but does not shift its left edge forward unless necessary — effectively making the window asymmetric and adaptive.
In other words, this approach minimizes unwanted edge effects by controlling the moment when older data is excluded, which would otherwise produce large, often contrarian distortions in the signal.
3. Strength Heatmap: Calculation, Meaning, and Turning Points
The strength heatmap consists of three vertically stacked rectangles below the indicator:
- Up Strength (green, top): Indicates the price move strength during an uptrend, calculated as ΔPrice / ΔDynamicVZO since the last local minimum of Dynamic VZO.
- Down Strength (red, bottom): Indicates the strength of the previous downtrend, measured from the last maximum of Dynamic VZO to the current bar.
- Delta Strength (gray–green–red, middle): The difference between Up and Down Strength. A bright green or red shows strong trend dominance; gray means balance or indecision.
The local turning points are detected when the Dynamic VZO has a local maximum or minimum two bars ago, i.e., the value two bars ago is higher/lower than both the previous and current bar. This defines the start of the trend, and strength is measured from that anchor.
The heatmap thus confirms whether price movement is backed by growing momentum or divergence — offering early warning for trend continuation or weakness.
4. Regression Types and Their Impact
The indicator supports three regression modes for computing both VZO and cyclic CVD lines:
- Linear (lin): A standard least-squares linear regression. Simple, stable, and fast — suitable for most use cases.
- Weighted Linear (wlr): Weights recent bars more heavily. This makes the indicator more responsive to short-term moves while still smoothing noise.
- Polynomial (poly): A 2nd-degree polynomial regression (quadratic). It captures curvature in the trend and may provide earlier inflection detection, though at the cost of higher volatility.
The regression type influences how sensitive the indicator is to small volume shifts and how quickly it reacts to reversals. wlr
is recommended for a good balance.
5. Parameters: Definitions, Ranges, and Effects
Parameter | Meaning | Typical Range | Applies To |
---|---|---|---|
length |
Base lookback for VZO and regressions | 10–50 | All lines |
zoneThreshold1 |
Warning threshold (±) | 50–90 | VZO overbought/oversold zone |
zoneThreshold2 |
Extreme threshold (±) | 70–120 | VZO strong signal zone |
bandLength |
Max stored values | 100–300 | Historical buffers |
noiseThreshold |
Noise filter for VZO | 2–10 | VZO final line |
dynamicNoiseThreshold |
Threshold for Dynamic VZO zeroing | 2–10 | Dynamic VZO line |
zeroNoiseFilter |
Whether to zero-out low values | true/false | VZO/Cyclic CVD |
rangeZoneWidth |
Reserved for future enhancements | - | - |
regressionType |
Regression model | lin , wlr , poly |
All regressions |
repaint |
Use recursive EMA (repaints) | true/false | VZO smoothing |
enableCvdVzo |
Enable cyclic CVD line | true/false | cyclic CVD |
cvdvzoDynamicRange |
Use dynamic window for cyclic CVD | true/false | cyclic CVD |
smoothingLengthDerivatives |
Smoothing length for derivative | 5–20 | cyclic CVD Derivative |
smoothingLengthAfterDerivative |
Post-smoothing of derivative | 2–10 | cyclic CVD Derivative |
6. Trading Ideas
The indicator supports several strategies:
- Trend reversal confirmation: Act on a local inversion of the Dynamic VZO only if the deltaStrength is aligned. For example, enter long when the Dynamic VZO starts rising and deltaStrength is positive (green). This filters out weak or false reversals.
- Divergence spotting: Watch for price making new highs while the Dynamic VZO or heatmap strength weakens — a classic bearish divergence. Same logic applies in reverse for bullish setups.
- Breakout exhaustion: Use
Sell Strong
orBuy Strong
signals when VZO exits extreme zones. They often align with temporary pullbacks or volatility bursts.
This indicator is best used in confluence with price action, volatility metrics, and support/resistance zones. Anyway a way of usage is shown in the below screenshot.
We enter a new trade when the dynamic VZO changes direction and the delta strength is aligned with that direction. We exit when the dynamic VZO changes direction again. This approach may cause us to miss some good trades, but it increases our confidence by selecting those with stronger momentum with respect to the volume effort.