VWATR Node

Volume-Weighted Average True Range

VolumeVolatilityATR Variant

Overview

The VWATR (Volume-Weighted Average True Range) Node is a volume-adjusted variant of the classic ATR. While standard ATR gives equal weight to each bar's true range, VWATR weights each bar's true range by its volume — so high-volume bars contribute more to the volatility estimate than low-volume bars.

This produces a more market-realistic measure of volatility, since large price moves on thin volume are less significant than the same move on heavy volume. VWATR values are in price units (same as ATR), always positive, and warm up over the specified period. It is particularly useful for setting adaptive stop-loss levels and position sizing in volume-driven markets.

Algorithm

TR[i] = max(high − low, |high − prevClose|, |low − prevClose|)
VWATR[i] = Σ(TR[j] × volume[j], j=i-period+1 to i) / Σ(volume[j], j=i-period+1 to i)
Output: VWATR in price units (positive). Warm-up: period bars.
High-volume bars are weighted more heavily in the volatility estimate.

Parameters

ParameterDefaultDescription
period14Look-back window for computing the volume-weighted average of TR

Inputs & Outputs

SlotDirectionTypeDescription
inputInputOHLCVStandard OHLCV price and volume data
valuesOutput(number | null)[]VWATR in price units (positive, volume-weighted volatility)
timestampsOutputnumber[]Unix timestamps aligned to input

Use Cases

Volume-Adaptive Stop Losses

Use VWATR instead of standard ATR for stop-loss placement. A stop set at 2× VWATR naturally widens during high-volume volatile periods and tightens during quiet, low-volume periods — giving your trade more room when the market is actively moving and tighter protection when it isn't.

Breakout Range Qualification

A breakout is only meaningful if it exceeds the typical range. Compare the breakout bar's true range to the current VWATR: if the bar's TR is significantly larger than VWATR, the breakout has an unusual range (relative to volume-weighted history) and is more likely to be a genuine directional move.

Position Sizing with Volume Context

Use VWATR for position sizing: risk = account_risk / (VWATR × multiplier). This sizes positions smaller when market-moving volatility (heavy-volume ranges) is high and larger when only thin-volume noise is present — a more risk-aware sizing approach than standard ATR-based sizing.

Tips & Best Practices

VWATR vs ATR: When They Diverge

VWATR > ATR means recent large ranges came on heavy volume (genuinely significant volatility). VWATR < ATR means large ranges came on light volume (potentially noise or manipulation). Monitor the VWATR/ATR ratio as a volatility quality signal — divergence between the two is itself informative.

Window vs Wilder Smoothing

VWATR uses a rolling window sum (not Wilder's exponential smoothing like standard ATR). This means a very high-volume spike bar drops off abruptly after period bars, causing a step-down in VWATR. Use a slightly longer period (21) to smooth out the window-edge effect if this is problematic.

Zero Volume Bars

If all bars in the window have zero volume (trading halts), VWATR would produce a divide-by-zero. The node handles this by returning null in such cases. Ensure your data source filters out non-trading periods (weekends, holidays) before feeding into VWATR for most accurate results.

Related Indicators