# Price Zone Oscillator

Price Zone Oscillator is an indicator on [Vela](https://vela.luxalgo.com/chart), our next-generation charting platform, written in Pine Script®.

Implements Khalil and Steckler's price-persistence gauge: a 14-period EMA of sign-flipped closes divided by an EMA of raw closes, plotted as a percentage swinging around zero. The authors' full zone map ships as defaults (+/-60 extremes, +/-40 trend thresholds and a +15 to -5 neutral band) with eight alerts spanning zero, threshold and zone events.

- Indicator in the LuxAlgo Library, by LuxAlgo, published Jul 23, 2026.
- Access: free.
- Concepts: [Price Zone Oscillator](https://www.luxalgo.com/library/concept/price-zone-oscillator/) (primary)
- Open on Vela: https://vela.luxalgo.com/chart?pineScriptCodeId=g9g4dqp6mozfk5tfuqciijyg
- Page: https://www.luxalgo.com/library/indicator/price-zone-oscillator/

**Price Zone Oscillator** votes every bar up or down (a close above the prior close keeps its value, anything else counts negative), then smooths the signed series with an EMA and divides by an EMA of the raw closes. The resulting percentage is the [Price Zone Oscillator](https://www.luxalgo.com/library/concept/price-zone-oscillator/): a gauge of how consistently closes have been rising or falling, where a string of small up closes weighs as heavily as a few large ones. The line colors by sign over a gradient fill, with the authors' zone map drawn as dashed extremes, dotted thresholds and a shaded neutral band.

## How to Trade the Price Zone Oscillator?

- **Cross above the Bullish Threshold (+40)**: closes have turned persistently positive, the level the authors tied to significant upside pressure, with a matching alert (mirrored at -40).
- **Overbought (+60) / Oversold (-60)**: stretched territory, faded mainly in ranges; the Fade alerts fire when the line turns back inside, the more usable event, since trends can pin extremes for long stretches.
- **Neutral band (+15 to -5)**: readings here carry little standalone meaning (the authors read them through a separate trend filter), and the zero-cross alerts mark the sign change.

## Price Zone Oscillator Settings

- **Length** (default 14): period of both EMAs; shorter trips the zones more often, longer suits position trading but delays crossings.
- **Source** (default close): the series that is signed and smoothed.
- **Overbought Level** (default 60) and **Oversold Level** (default -60): the stretch extremes.
- **Bullish Threshold** (default 40) and **Bearish Threshold** (default -40): the directional-pressure levels.
- **Neutral Zone Upper** (default 15) and **Neutral Zone Lower** (default -5): bounds of the shaded low-information band.
- **Gradient Fill** and **Neutral Zone Fill** (both on), plus color controls.

## Frequently Asked Questions

### What is the relationship with the Volume Zone Oscillator?

They were published as a pair: the [Volume Zone Oscillator](https://www.luxalgo.com/library/indicator/volume-zone-oscillator/) applies the identical signed-EMA construction to volume, and the authors' methodology reads the two together with a trend filter so price and volume persistence confirm each other. Running PZO alone uses half of the intended read.

### Why is the neutral zone asymmetric?

The +15 to -5 band comes straight from the authors' work. Like the other fixed levels it was calibrated on their test markets, so every boundary ships as an adjustable input.

### Do extreme readings mean an immediate reversal?

No. A strong trend can hold the line beyond +/-60 for a long time. That is why the fade events and +/-40 thresholds are the more actionable levels, and why the authors paired the oscillator with a trend filter.

## Related indicators

- [Oscillator Matrix](https://www.luxalgo.com/library/indicator/luxalgo-oscillator-matrix/) (Money Flow Index): markdown at https://www.luxalgo.com/library/indicator/luxalgo-oscillator-matrix.md
- [LuxAlgo - Screener (OSC)](https://www.luxalgo.com/library/indicator/luxalgo-screener-osc/) (Money Flow Index): markdown at https://www.luxalgo.com/library/indicator/luxalgo-screener-osc.md
- [Delta ZigZag](https://www.luxalgo.com/library/indicator/delta-zigzag/) (Weis Wave Volume): markdown at https://www.luxalgo.com/library/indicator/delta-zigzag.md
- [OBV Divergence](https://www.luxalgo.com/library/indicator/obv-divergence/) (Volume & Order Flow): markdown at https://www.luxalgo.com/library/indicator/obv-divergence.md
- [Smart Money Index](https://www.luxalgo.com/library/indicator/smart-money-index/) (Volume & Order Flow): markdown at https://www.luxalgo.com/library/indicator/smart-money-index.md
- [Trade Volume Index](https://www.luxalgo.com/library/indicator/trade-volume-index/) (Volume & Order Flow): markdown at https://www.luxalgo.com/library/indicator/trade-volume-index.md
- [Volume Flow Indicator](https://www.luxalgo.com/library/indicator/volume-flow-indicator/) (Volume & Order Flow): markdown at https://www.luxalgo.com/library/indicator/volume-flow-indicator.md
- [Demand Index](https://www.luxalgo.com/library/indicator/demand-index/) (Volume & Order Flow): markdown at https://www.luxalgo.com/library/indicator/demand-index.md

---

Source: https://www.luxalgo.com/library/indicator/price-zone-oscillator/ (LuxAlgo Library). Free to use with attribution: https://www.luxalgo.com/library/license/
