Standard momentum treats every bar the same. This one does not. Volume Weighted Momentum works as a rate of change indicator TradingView traders can weight by participation. Also, the script measures the 10-bar change in price, multiplies each reading by that bar’s volume, then averages the result over 20 bars. Moves made on heavy volume therefore count more than moves made on thin volume. Indeed, the sign of the result sets the momentum regime.
It is free and open source. Still, you can add it to any chart from the Volume Weighted Momentum script page on TradingView, and the full Pine source is published there for you to read.
What Volume Weighted Momentum plots on the price chart
This one plots less than you expect. Thus, the oscillator itself never appears on the chart. Instead a 9-bar EMA sits over price and takes the regime colour: mint while the reading holds above zero, pink while it holds below, grey at exactly zero. Hence, a faint background tint carries the same regime. Entries print a three-layer triangle marked VWM under or over the bar, and paint that bar. Next, an eight-row dashboard carries the numbers: regime, raw reading, reading divided by ATR, the magnitude gate, both lengths, position and bars since the last signal.

How Volume Weighted Momentum is built
The volume-weighted average
The rate of change here is a plain price difference. Then, the script takes close minus close 10 bars ago, so the output arrives in price units rather than percent. It multiplies that difference by the bar’s volume, then sums the products over 20 bars. Yet, a second sum adds raw volume across the same 20 bars. Dividing the first sum by the second gives a true volume-weighted average of recent momentum.
Because the divisor is total volume, the weights add to one. Truly, a single heavy bar can dominate the reading, which is the point. The output still carries price units, so 0.0042 on EURUSD is not comparable to the same number on gold. Plainly, the dashboard fixes that with a second row that divides the reading by the 14-bar ATR. Read that normalised figure whenever you compare instruments.
Regime, gate and entry
The regime is simply the sign. Also, above zero reads MOMENTUM UP, below zero reads MOMENTUM DOWN, and exactly zero reads FLAT. No dead band applies and no extra smoothing runs on top. Indeed, so near zero the regime can flip several bars in a row.
Entries then need a close crossing the 9-bar EMA in the regime direction. Still, zero-Cross-Only Mode swaps that for the zero-line cross itself, which usually fires earlier and more often. An optional magnitude gate demands the absolute reading reach a multiple of ATR before anything fires. Thus, it ships at 0.00, so it stays off until you raise it.
Three standard gates close the path. Hence, the position state must sit flat or opposite. Five bars must have passed since the last signal. Next, and the bar must close, because the code tests the confirmed-bar flag. An optional session filter can narrow signals to set hours, and it defaults to 0000-2400.
How to read the signals
The VWM against ATR row is the row that travels. Then, a reading of 0.80 says recent volume-weighted momentum equals eight tenths of an average bar’s range. Near 0.05 the regime sign means very little, however green the background looks.
The colour of the EMA tells you which side the script will accept. Yet, mint means it wants a close above the line. Pink means it wants a close below. Truly, that line is only a 9-bar EMA, so it hugs price and crosses often.
Turn the magnitude gate on when the chart chops. Plainly, setting Min VWM x ATR to 0.30 or 0.50 blocks entries while momentum stays small. The cost is entering later on the moves that do run.

Every Volume Weighted Momentum setting explained
The script exposes 15 inputs, grouped in the settings panel exactly as shown below. Defaults are the published values.
Momentum
| Setting | What it does | Default | Range |
|---|---|---|---|
| ROC Length | Bars over which the rate of change is measured. | 10 | 1 to 60 |
| VW Average Window | Window the volume-weighted ROC is averaged over. | 20 | 3 to 100 |
| Min |VWM| x ATR | Optional minimum |VWM| (ATR units) to allow entries. | 0.0 | 0.0 to 3.0 |
| ATR Length | Sets the atr length used in the calculation. | 14 | 5 to 50 |
Signal Logic
| Setting | What it does | Default | Range |
|---|---|---|---|
| Entry Reclaim EMA | After VWM sets a bias, a close-cross of this EMA in that direction times the entry. | 9 | 2 to 50 |
| Zero-Cross-Only Mode | On = fire on the VWM zero-line cross itself. Off = EMA reclaim inside the active VWM bias (more signals). | off | on / off |
| Cooldown Bars | Sets the cooldown bars used in the calculation. | 5 | 1 to 40 |
Filters
| Setting | What it does | Default | Range |
|---|---|---|---|
| Restrict to Session | Toggles restrict to session on the chart. | off | on / off |
| Session Window | Controls session window. | 0000-2400 |
Visual
| Setting | What it does | Default | Range |
|---|---|---|---|
| Show Dashboard | Toggles show dashboard on the chart. | on | on / off |
| Show 3-Layer Glow | Toggles show 3-layer glow on the chart. | on | on / off |
| Show Reclaim EMA | Toggles show reclaim ema on the chart. | on | on / off |
| Buy Color | Colour used for buy color. | #80ffdb | |
| Sell Color | Colour used for sell color. | #ff7096 | |
| Dashboard BG | Colour used for dashboard bg. | color.new(#04161a, 14) |

Alerts built into Volume Weighted Momentum
The script ships 15 alert conditions. Also, open the alert dialog on the chart, pick the indicator as the condition source, then choose the event you want. Alerts fire on the close of the bar, so they follow the same confirmed-bar rule the on-chart signals use.
- VWM Buy
- VWM Sell
- VWM Any Signal
- VWM Zero Up
- VWM Zero Down
- VWM Bull Regime
- VWM Bear Regime
- VWM EMA Up
- VWM EMA Down
- VWM Strong
- VWM Regime Flip
- VWM Any Zero Cross
Other markets and timeframes
The logic transfers, with one caveat about scale. Indeed, every gate stays relative: the regime uses a sign, the magnitude filter uses ATR multiples, and the entry uses a close against an EMA. Nothing depends on pip value. Still, the raw reading, though, sits in the instrument’s own price units, so a threshold you tune on EURUSD makes no sense on the Nasdaq. Use the ATR-normalised row for cross-market work. Thus, volume weighting also assumes a usable volume feed, which spot forex supplies as broker tick counts.

Limitations worth knowing
The tool grades and times momentum. It runs no trade management. There is no stop, no target, no sizing and no exit rule anywhere in the script.
The oscillator never plots, so you cannot see its shape, its history or any divergence. Hence, you read one number in the dashboard for the current bar. Anyone who wants a curve has to rebuild it in a separate pane.
The regime uses a bare sign with no dead band. Next, around zero it flips easily, and each flip changes the direction the script will accept. The weighting also inherits the feed. On a symbol with no volume the divisor falls to zero, the reading pins at zero, and no signal ever fires.
Get Volume Weighted Momentum on TradingView
Open Volume Weighted Momentum on TradingView
If you also trade MetaTrader, the MT4 and MT5 indicator library is available below.
Get the complete indicator library
One email unlocks the full MT4 and MT5 indicator library. Then, this TradingView script stays free on TradingView – the button above adds it to your chart.
Using it alongside MetaTrader
Adding a script on TradingView takes one click, so there is no install step here. Yet, if you want the same idea on MetaTrader, the MT4 and MT5 indicator installation guide walks through copying files into the data folder and attaching them to a chart. You can also browse the full MetaTrader indicator library, the MT4 indicators section, or the other free TradingView scripts published on this profile. For related chart tools see the MT5 indicators section and the forex trading strategies guides.
External references
- Momentum (finance) on Wikipedia
- Momentum at Investopedia
- New 52 Week Highs And Lows For Exchanges at StockCharts ChartSchool
Frequently asked questions
Does Volume Weighted Momentum repaint?
The arrows do not. Truly, each buy and sell checks barstate.isconfirmed, so a triangle prints only once the bar closes. The regime background tint reads the forming bar, so that shading can change until the close.
How does this differ from a normal ROC?
A standard rate of change treats a quiet bar and a heavy bar equally. Plainly, this version multiplies each 10-bar change by that bar’s volume before averaging over 20 bars. Heavy participation therefore pulls the reading further.
What units does the reading use?
Price units of the instrument, because the rate of change is close minus close 10 bars back. Also, use the VWM against ATR row for a figure you can compare across symbols.
Which mode should I use?
Default mode waits for a 9-bar EMA reclaim inside the active regime, which filters more. Indeed, zero-Cross-Only Mode fires on the zero-line cross itself and reacts sooner. Neither mode changes the 5-bar cooldown or the closed-bar rule.
How much should I rely on this indicator?
Treat it as one input, not a decision. Still, it is a chart analysis tool, not trading advice. Test it on your own markets and timeframes before relying on it. Results are not guaranteed; past performance is not indicative of future results.
