Volume Spike Accumulation TradingView Indicator

A volume spike on its own tells you little. Also, volume Spike Accumulation, a volume spike indicator TradingView traders can add in seconds, asks where that spike closed. The script flags any bar trading at least 1.8 times its 20-bar volume average. Then it reads the close position inside that bar’s own range. A close in the top third reads as accumulation. Indeed, a close in the bottom third reads as distribution.

It is free and open source. Still, you can add it to any chart from the Volume Spike Accumulation script page on TradingView, and the full Pine source is published there for you to read.

What Volume Spike Accumulation plots on the price chart

The chart carries a 9-bar EMA that changes colour with the active bias: green while accumulation holds, red while distribution holds, grey when flat. Thus, a faint background tint carries the same bias. Classified spike bars get painted directly, so you spot them without a volume pane. Hence, entries print a three-layer label marked VSA below or above the bar. An eight-row dashboard reports state, relative volume, close position as a percentage, bias, spike count, position and bars since the last signal. Next, the script plots no volume histogram.

How Volume Spike Accumulation is built

Classifying the spike

The baseline is a 20-bar simple moving average of volume. Then, a bar counts as a spike when its volume reaches 1.8 times that average. You can push the multiplier from 1.0 up to 6.0. Yet, the dashboard shows the live figure as relative volume, so 2.4x means the bar traded 2.4 times the 20-bar norm.

Classification then uses close minus low, divided by high minus low. Truly, that returns 0 at the low and 1 at the high. A spike closing at 0.66 or higher counts as accumulation, since demand absorbed the supply that arrived. Plainly, a spike closing at 0.34 or lower counts as distribution. One input sets both edges, because the distribution side mirrors your value. Also, spikes landing between the two get no label. The dashboard calls them a neutral spike.

From bias to entry

A classified spike does not fire a trade. It latches a bias instead. Accumulation sets the bias long, distribution sets it short, and the bias holds until the opposite spike appears. Indeed, that latch is why the background tint can run for dozens of bars after a single spike.

Entries then time off a 9-bar EMA. In a long bias, the script waits for a close crossing above that EMA. In a short bias, it waits for a close crossing below. Still, turn on Spike-Only Mode and the entry moves back to the classified spike bar itself, which produces far fewer signals.

Three gates finish the job. Thus, the position state must sit flat or opposite, so the script never stacks two longs in a row. Five bars must have passed since the last signal. Hence, and the bar must close, because every signal checks the confirmed-bar flag. An optional session window can restrict signals to hours you set. Next, it defaults to 0000-2400, which lets everything through.

How to read the signals

Start with the state row. Then, ACCUMULATION with relative volume near 3x and a close position above 80 percent describes a bar where demand met heavy supply and won. The same 3x spike closing at 20 percent says the opposite.

The EMA colour tells you what the script waits for next. Yet, green means it wants a close above the line. Red means it wants a close below. Truly, grey means no classified spike has fired yet in the loaded history.

Signals arrive one bar after the cross completes. Plainly, that delay is the cost of not repainting. Size positions with the next bar’s range in mind, since your fill sits at that open rather than at the cross itself.

Every Volume Spike Accumulation setting explained

The script exposes 15 inputs, grouped in the settings panel exactly as shown below. Defaults are the published values.

Volume

SettingWhat it doesDefaultRange
Volume MA LengthBaseline the spike is measured against.205 to 100
Spike x Volume-MAVolume must exceed k x its MA to count as a spike.1.81.0 to 6.0
Close Position ThreshSpike close in top (1-x) of range = accumulation; bottom = distribution.0.660.5 to 0.95
ATR LengthSets the atr length used in the calculation.145 to 50

Signal Logic

SettingWhat it doesDefaultRange
Entry Reclaim EMAAfter a spike sets a bias, a close-cross of this EMA in that direction times the entry.92 to 50
Spike-Only ModeOn = fire strictly on the classified spike bar. Off = EMA reclaim inside the active spike bias (more signals).offon / off
Cooldown BarsSets the cooldown bars used in the calculation.51 to 40

Filters

SettingWhat it doesDefaultRange
Restrict to SessionToggles restrict to session on the chart.offon / off
Session WindowControls session window.0000-2400

Visual

SettingWhat it doesDefaultRange
Show DashboardToggles show dashboard on the chart.onon / off
Show 3-Layer GlowToggles show 3-layer glow on the chart.onon / off
Show Reclaim EMAToggles show reclaim ema on the chart.onon / off
Buy ColorColour used for buy color.#34e89e
Sell ColorColour used for sell color.#ff5f7e
Dashboard BGColour used for dashboard bg.color.new(#04140f, 14)

Alerts built into Volume Spike Accumulation

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.

  • VSA Buy
  • VSA Sell
  • VSA Any Signal
  • VSA Accumulation
  • VSA Distribution
  • VSA Volume Spike
  • VSA Classified
  • VSA EMA Up
  • VSA EMA Down
  • VSA Bias Bull
  • VSA Bias Bear
  • VSA Spike Tick

Other markets and timeframes

The two core tests both stay relative. Indeed, volume gets compared to its own 20-bar average, and the close gets measured inside the bar’s own range. Neither uses pip values or lot sizes, so the defaults carry to gold, indices, crypto and stocks. Still, the catch is the volume feed. Spot forex reports broker tick volume, not exchange volume, so a spike there means many price updates rather than many contracts. On futures and equities the same code reads real traded size.

Limitations worth knowing

This tool classifies bars. Thus, it is not a trade plan. The script sets no stop, no target and no risk model, and it never closes a position. Hence, it also carries no view on higher-timeframe trend.

The bias latch has no expiry. Next, one accumulation spike can hold the bias long after the move it described has finished. Only an opposite spike clears it, so on quiet stretches the EMA colour may describe stale information.

The ATR Length input sits in the panel, yet the signal path never uses it. Then, volume drives everything else, so charts without a volume feed produce no spikes at all. And a spike closing in the middle of its range gets no classification, even when it clearly mattered.

Get Volume Spike Accumulation on TradingView

Open Volume Spike Accumulation 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. Yet, 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. Truly, 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

Frequently asked questions

Does Volume Spike Accumulation repaint?

The arrows do not. Plainly, every buy and sell checks barstate.isconfirmed, so they print after the bar closes and then stay put. The bar painting and the background bias tint read the forming bar, so those two can still change until it closes.

What counts as a volume spike here?

Volume at or above 1.8 times its 20-bar simple moving average, using the default. Also, raise the multiplier toward 6.0 for rarer, larger events. Lower it toward 1.0 and the script classifies far more bars.

Why did an obvious accumulation spike produce no arrow?

Default mode waits for the EMA reclaim, not the spike. Indeed, the bar must also clear the 5-bar cooldown, the position state must not already sit long, and the bar must close. Switch on Spike-Only Mode to fire on the spike bar itself.

Does it work on spot forex?

Yes, with one caveat. Still, your broker reports tick volume rather than exchange volume, so relative volume measures update activity. The ratio still serves as a proxy, though the same chart on two brokers can classify slightly different bars.

How much should I rely on this indicator?

Treat it as one input, not a decision. Thus, 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.

Dominic Walsh - Forex trader and MT4/MT5 developer

About the author

Written by Dominic Walsh, a Forex trader and MT4/MT5 indicator, Expert Advisor and script developer. Every tool on forexmt4systems.com is tested on live charts before release and ships with ready-to-use compiled MT4 (.ex4) and MT5 (.ex5) files. Learn more about the trader and developer behind this site.

Leave a Comment