DynamicVZO Pro - V3

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 or Buy 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.

Thanks for all the details and your contribution. Will definitely take a look at it.