Volume Oscillator Strategy: Do Breakouts Need Volume?

“Never trust a breakout on low volume” is one of the oldest lines in trading. A volume oscillator strategy turns that line into a rule you can test. It takes a price breakout only when recent volume runs above its longer-term average. We tested it against the plain breakout on three years of crypto data. This time, the indicator earned its place.
The rules below are hypotheses to test, not a recommendation.
What Does the Volume Oscillator Measure?
The Volume Oscillator (VOSC) compares a short average of volume with a long average. It shows the gap as a percentage of the long average. We used 14 and 28 candles, both simple moving averages.
A positive reading means recent volume is above normal. More traders are taking part. A negative reading means activity is fading.
VOSC ignores price completely. That matters here. Most indicators we test read the same candles as price, so they often repeat what price already says. Volume is a separate input. Our Volume Oscillator guide covers the calculation and readings in full.
Turning Volume Into a Confirmation Rule
A breakout happens when price closes above a recent high. The idea is that the move may run further. The risk is a false breakout that fades straight back.
Volume confirmation tries to separate the two. A breakout with heavy participation should have more fuel behind it.
Entry and Exit Conditions
Use four-hour candles. The base rule generates a long entry signal when the close moves above the highest high of the previous 20 candles. The VOSC version adds one condition: VOSC must be above zero on the same candle.
Both versions exit on the first of two events:
- The close falls below the lowest low of the previous 10 candles.
- Price falls two times the 14-period Average True Range (ATR) below entry. ATR measures typical candle movement.
The Control
The control is the same breakout with no volume condition. That isolates one question. Does knowing volume is expanding improve the breakout, or does it just cut the number of trades?
We also ran the opposite filter, taking only breakouts with VOSC below zero. If volume matters, quiet breakouts should do worse.
What Happened on Three Years of Crypto Data?
We tested on Binance four-hour candles from 10 November 2023 to 10 November 2026. We charged 0.1% per side and filled at the signal candle’s close. Stops filled at the stop price, or at the open if price gapped through it. Indicators had six months of earlier data to warm up.
| Market, 4-hour | Control: trades per year | Control: return | Control: max drawdown | VOSC above 0: trades per year | VOSC above 0: return | VOSC above 0: max drawdown | VOSC below 0: return | Buy-and-hold |
|---|---|---|---|---|---|---|---|---|
| BTC | 34 | +1.0% | 38.9% | 20 | +46.5% | 26.6% | -9.9% | +105.2% |
| ETH | 36 | -6.0% | 46.6% | 22 | +66.1% | 31.8% | -51.5% | +0.7% |
| SOL | 35 | +12.1% | 63.7% | 25 | +18.6% | 59.8% | -37.2% | +83.0% |
Hypothetical rule tests on past data, with no slippage. They are not trading results, and past behaviour may not repeat.
The volume filter improved return and drawdown on all three markets. Max drawdown is the largest peak-to-trough fall in account value. The quiet-breakout version lost money everywhere.
That second result is the stronger evidence. It is not just that fewer trades meant fewer fees. Breakouts on fading volume were actively worse than average.
Buy-and-hold still beat every version on BTC and SOL. On ETH, where holding went nowhere, the filtered breakout returned 66%.
Adding a Trend Filter
We then required the close to sit above the 200-period exponential moving average (EMA). That keeps the rule out of downtrends.
| Market, 4-hour | Control: trades per year | Control: return | Control: max drawdown | VOSC above 0: trades per year | VOSC above 0: return | VOSC above 0: max drawdown |
|---|---|---|---|---|---|---|
| BTC | 26 | +31.6% | 27.5% | 15 | +98.2% | 18.0% |
| ETH | 26 | +70.2% | 30.0% | 18 | +85.6% | 33.9% |
| SOL | 26 | +55.9% | 48.2% | 20 | +60.6% | 42.5% |
Same assumptions as above.
The trend filter helped both versions. The volume filter still added return on every market. On ETH it came with a slightly deeper drawdown.
Is the Result Robust or Lucky?
Each filtered test took only 60 to 75 trades over three years. That is a small sample. A few large winners can swing the totals.
So we checked neighbouring settings. We reran the filtered rule with VOSC at 5/10, 7/28, 10/20 and 20/40 candles, with no trend filter.
Including the original 14/28, that gives 15 market and setting pairs. The filtered rule beat the control in 14 of them. The one miss was the fastest setting, 5/10, on BTC. A result that holds across nearby settings is less likely to be a tuning accident.
We also tried a stricter threshold of VOSC above 10. It did better on ETH and SOL and slightly worse on BTC. We tried it after seeing the first results, though, so treat it as a second guess, not a finding. Our post on the deflated Sharpe ratio explains why every extra variant raises the bar.
Where Do Volume Oscillator Backtests Go Wrong?
Mixing exchanges. Volume differs a lot between venues. Test on the same exchange whose volume your live rule will read.
Ignoring volume spikes. Listings, liquidations and news can create one huge candle. That spike lifts the short average for days afterward. A breakout right after a spike may pass the filter for the wrong reason.
Trusting thin markets. On illiquid pairs, a single large order can flip VOSC positive. The signal then reflects one trader, not the crowd.
Check the Exits Too
Testing the filter alone. VOSC is not an entry signal by itself. Volume rises in sell-offs as well as rallies. Always pair it with a direction rule like the breakout.
Assuming fills. Breakout candles often move fast. A fill at the close may be optimistic in live markets. Add a slippage allowance and see if the edge survives.
Building the Volume Oscillator Strategy in Arrow Algo
The drag-and-drop visual builder expresses the rule as a short chain of visual blocks:
- Add the exchange’s candle data and select the four-hour timeframe.
- Add a highest-high block over 20 candles. Compare the close with its previous value using a condition block.
- Connect volume to a VOSC block with 14 and 28 periods. Add a condition block that checks it is above zero.
- Join both conditions with a flat-position check using an AND condition block.
- Connect the result to a buy action block. Under your rules, that block sends a signal.
- Build the exits: the close below the 10-candle low, or a two-ATR stop below entry.
- Join the exits with an OR condition block into a sell action block.
Duplicate the strategy and delete the VOSC condition to make the control. Run both on the same data and fee settings. Add the 200 EMA as a further entry input if you want the trend-filtered version.
No deployment is needed for any of this. If you later choose to deploy, your rules signal your own exchange account. The exchange decides whether to execute each order.
What Should You Take Into Your Own Test?
- A volume oscillator strategy only takes a breakout when VOSC is above zero.
- The filter improved the breakout on BTC, ETH and SOL, with and without a trend filter.
- Breakouts on fading volume lost money on all three markets.
- The result held at most neighbouring settings, but each test had fewer than 80 trades.
- Volume adds information price does not have. Still test it against the plain rule every time.
Disclaimer: This content is for educational purposes only and does not constitute financial advice. Trading involves significant risk and you should only trade with capital you can afford to lose. Past performance is not indicative of future results. Always conduct your own research before making any trading decisions.
Ready to build your own automated trading strategies without writing a single line of code? Start for free at Arrow Algo and join thousands of traders who've made the switch to systematic trading.