OPEN-SOURCE SCRIPT
Volume Ignition Oscillator

Volume Ignition Oscillator (VIO)
Volume Ignition Oscillator flags potential exhaustion points after a sharp price move by combining three conditions: a recent large price swing, price sitting at a range extreme, and volume running hot relative to its recent average. When all three line up, the oscillator "ignites" — hence the name.
How it works
Big Move Detection — the script measures the price change over a lookback window (default 5 bars) against a multiple of ATR (default 2x, 14-period ATR). A move that clears this threshold opens a "watch window" of N bars (default 8) during which the indicator is active — up-moves open a top watch, down-moves open a bottom watch.
Range Position — price's position within the recent high/low range (default 20 bars) is calculated as a 0–1 value. The oscillator only engages when price is in the top zone (default ≥75%) during a top watch, or the bottom zone (default ≤25%) during a bottom watch.
Volume Surge — current volume is compared to its moving average (default 20-period SMA). The excess volume above that average scales the signal — the more volume expands beyond normal, the stronger the reading.
These three factors combine into a raw oscillator value, which is then EMA-smoothed. A slower EMA of the oscillator acts as a signal line.
Reading the indicator
Columns above zero (shaded toward red) = potential topping pressure: a big up-move, price near the highs, and volume ignition.
Columns below zero (shaded toward teal/green) = potential bottoming pressure: a big down-move, price near the lows, and volume ignition.
Column brightness/gradient scales with the strength of the current reading relative to the last 100 bars.
Background shading shows when a watch window is active and fades out as the window expires.
Triangle markers print when the oscillator crosses the signal threshold (default ±0.15): a down-triangle at the top signals possible short/exhaustion, an up-triangle at the bottom signals possible long/exhaustion.
Info panel (top-right, optional) shows the live oscillator value, volume ratio, range position %, and current watch zone.
Suggested use
VIO is designed as a mean-reversion / exhaustion tool, not a trend-following signal. It's best used to:
Spot potential climax moves after an extended impulsive swing on rising volume
Time partial profit-taking or tightened stops on existing trend positions
Screen for reversal candidates that can then be confirmed with price action, support/resistance, or another momentum tool
It is not intended as a standalone entry system — combine it with your own risk management and confirmation criteria. Like any exhaustion/reversal tool, it can trigger repeatedly during strong sustained trends, so treat signals as alerts to watch price action rather than automatic trade triggers.
Inputs
Big Move Detection — lookback bars, ATR length, move threshold (x ATR), post-move watch window length
Volume — volume moving average length
Range Position — range lookback, top/bottom zone thresholds
Signal — oscillator smoothing length, signal trigger level
Appearance — top/bottom colors, toggle for the info panel
Alerts
Two alert conditions are built in:
VIO Short Signal — fires on a top exhaustion cross
VIO Long Signal — fires on a bottom exhaustion cross
Volume Ignition Oscillator flags potential exhaustion points after a sharp price move by combining three conditions: a recent large price swing, price sitting at a range extreme, and volume running hot relative to its recent average. When all three line up, the oscillator "ignites" — hence the name.
How it works
Big Move Detection — the script measures the price change over a lookback window (default 5 bars) against a multiple of ATR (default 2x, 14-period ATR). A move that clears this threshold opens a "watch window" of N bars (default 8) during which the indicator is active — up-moves open a top watch, down-moves open a bottom watch.
Range Position — price's position within the recent high/low range (default 20 bars) is calculated as a 0–1 value. The oscillator only engages when price is in the top zone (default ≥75%) during a top watch, or the bottom zone (default ≤25%) during a bottom watch.
Volume Surge — current volume is compared to its moving average (default 20-period SMA). The excess volume above that average scales the signal — the more volume expands beyond normal, the stronger the reading.
These three factors combine into a raw oscillator value, which is then EMA-smoothed. A slower EMA of the oscillator acts as a signal line.
Reading the indicator
Columns above zero (shaded toward red) = potential topping pressure: a big up-move, price near the highs, and volume ignition.
Columns below zero (shaded toward teal/green) = potential bottoming pressure: a big down-move, price near the lows, and volume ignition.
Column brightness/gradient scales with the strength of the current reading relative to the last 100 bars.
Background shading shows when a watch window is active and fades out as the window expires.
Triangle markers print when the oscillator crosses the signal threshold (default ±0.15): a down-triangle at the top signals possible short/exhaustion, an up-triangle at the bottom signals possible long/exhaustion.
Info panel (top-right, optional) shows the live oscillator value, volume ratio, range position %, and current watch zone.
Suggested use
VIO is designed as a mean-reversion / exhaustion tool, not a trend-following signal. It's best used to:
Spot potential climax moves after an extended impulsive swing on rising volume
Time partial profit-taking or tightened stops on existing trend positions
Screen for reversal candidates that can then be confirmed with price action, support/resistance, or another momentum tool
It is not intended as a standalone entry system — combine it with your own risk management and confirmation criteria. Like any exhaustion/reversal tool, it can trigger repeatedly during strong sustained trends, so treat signals as alerts to watch price action rather than automatic trade triggers.
Inputs
Big Move Detection — lookback bars, ATR length, move threshold (x ATR), post-move watch window length
Volume — volume moving average length
Range Position — range lookback, top/bottom zone thresholds
Signal — oscillator smoothing length, signal trigger level
Appearance — top/bottom colors, toggle for the info panel
Alerts
Two alert conditions are built in:
VIO Short Signal — fires on a top exhaustion cross
VIO Long Signal — fires on a bottom exhaustion cross
Script de código abierto
Fiel al espíritu de TradingView, el creador de este script lo ha convertido en código abierto, para que los traders puedan revisar y verificar su funcionalidad. ¡Enhorabuena al autor! Aunque puede utilizarlo de forma gratuita, recuerde que cualquier republicación del código está sujeta a nuestras Normas internas.
Exención de responsabilidad
La información y las publicaciones no constituyen, ni deben considerarse como, asesoramiento o recomendaciones financieras, de inversión, de trading u otro tipo, proporcionadas o respaldadas por TradingView. Obtenga más información en Condiciones de uso.
Script de código abierto
Fiel al espíritu de TradingView, el creador de este script lo ha convertido en código abierto, para que los traders puedan revisar y verificar su funcionalidad. ¡Enhorabuena al autor! Aunque puede utilizarlo de forma gratuita, recuerde que cualquier republicación del código está sujeta a nuestras Normas internas.
Exención de responsabilidad
La información y las publicaciones no constituyen, ni deben considerarse como, asesoramiento o recomendaciones financieras, de inversión, de trading u otro tipo, proporcionadas o respaldadas por TradingView. Obtenga más información en Condiciones de uso.