# Jump Detection

Also known as: bipower variation.
A Volatility concept (Volatility estimators) in the LuxAlgo Library, with 1 indicator implementation.

## What is Jump Detection?

Jump detection separates the discontinuous part of price movement, sudden repricings and gaps typically tied to news, from the continuous diffusion-like part. The canonical high-frequency tool is bipower variation, due to Barndorff-Nielsen and Shephard: realized variance, the sum of squared intraday returns behind [realized volatility](https://www.luxalgo.com/library/concept/realized-volatility/), captures continuous variation plus jumps, while bipower variation, built from products of absolute adjacent returns, is robust to jumps and estimates the continuous part alone. A statistically large gap between the two flags a jump.

The idea has a long pedigree in quantitative finance. Merton added a jump component to the standard diffusion model of prices in 1976, formalizing the point that some moves are discontinuities rather than fast diffusion. The econometrics of telling the two apart matured with high-frequency data: Barndorff-Nielsen and Shephard developed bipower variation in the early 2000s, and Lee and Mykland later added a widely used test that flags individual intraday returns as jumps. The CUSUM technique seen in trading implementations is older still, dating to Page's 1954 work on detecting shifts in industrial processes.

Chart-level implementations are simpler: returns beyond a volatility-scaled threshold, CUSUM-style tests for abrupt level shifts, or plain gap detection. However it is measured, the point is the same: jumps are a different risk from ordinary volatility, because price can move through a stop without ever trading at the prices in between.

The distinction matters for anything calibrated to typical conditions. Volatility estimators, band widths, and position sizes all assume tomorrow resembles a weighted average of the recent past, and a jump violates that by injecting one enormous observation into the window. It also matters for interpretation: a market whose measured volatility comes from continuous churn behaves differently from one whose variance arrives in occasional lurches, even when both print the same headline number. Separating the components tells you which market you are in, information a single [ATR](https://www.luxalgo.com/library/concept/atr/) reading blends away.

## How to spot jumps on a chart

Formal tests need intraday data, but candidate jumps are visible on any chart:

1. Flag bars whose move is a large multiple of recent typical movement, measured against average true range or a rolling standard deviation.
2. Check for discontinuity: an open printing far from the prior close, or a move so fast that price skipped levels rather than trading through them. A jump is a repricing, not merely a busy bar.
3. Distinguish it from [range expansion](https://www.luxalgo.com/library/concept/range-expansion-contraction/): expansion is a stretch of larger bars that persists; a jump is one isolated dislocation against an ordinary backdrop.
4. Look for the catalyst: genuine jumps usually align with earnings, macro releases, or surprise headlines; an apparent jump with no news deserves suspicion as a data artifact or thin print.
5. With intraday data, run the formal comparison: realized variance minus bipower variation over the day estimates the jump contribution, and a statistically large gap is the flag.

## How traders use it

- To clean volatility estimates: excluding or down-weighting identified jump days keeps one-off shocks from inflating trailing volatility and everything sized off it.
- As an event flag: detected jumps usually coincide with identifiable catalysts, so they can trigger a regime reassessment or pause systems tuned to normal conditions.
- For risk budgeting: markets that jump frequently warrant smaller size at a given measured volatility, since stops cannot be relied on to cap loss through a gap.
- As a caveat on band signals: envelope tools assume levels get reached tradeably, but a jump lands beyond a [Bollinger Band](https://www.luxalgo.com/library/concept/bollinger-bands/) or [ATR band](https://www.luxalgo.com/library/concept/atr-bands/) in one print, so tags produced across a jump bar are usually treated separately from ordinary touches.
- To keep history honest: when building a [volatility percentile](https://www.luxalgo.com/library/concept/volatility-percentile-rank/) or regime rank, flagging jump days prevents a single event from defining the high end of the distribution for weeks of subsequent comparisons.

## Jump detection vs standard volatility measures

- **Realized Volatility** (https://www.luxalgo.com/library/concept/realized-volatility/): Realized volatility totals all variation, continuous and discontinuous alike. Jump detection is the decomposition of that total; together the two say not just how much a market moves but how it moves.
- **ATR** (https://www.luxalgo.com/library/concept/atr/): ATR averages bar ranges, so one jump inflates it for the entire lookback and then drops out abruptly. Jump detection isolates exactly the observations that cause that distortion.
- **Range Expansion/contraction** (https://www.luxalgo.com/library/concept/range-expansion-contraction/): Expansion and contraction describe volatility regimes that persist for stretches; a jump is an instantaneous event. A market can jump out of a quiet regime without the regime itself changing.

## FAQ

### What is bipower variation?

An estimator of the continuous part of return variance. Instead of summing squared intraday returns, it sums products of absolute adjacent returns (with a scaling constant). A single outsized return enters each product next to an ordinary neighbor, so jumps barely move it, while they dominate squared-return measures. The difference between realized variance and bipower variation therefore estimates the jump contribution.

### Why do jumps matter for volatility estimates?

Because squaring returns lets single shocks dominate: one large jump inside a lookback window can inflate a volatility estimate for as long as it remains in the window, misrepresenting typical conditions. Separating jumps gives a cleaner estimate of ordinary volatility plus an honest count of gap events, which matter on their own because gaps can move price straight through protective stops.

### Can jumps be predicted?

Their timing sometimes, their direction and size essentially not. Scheduled catalysts such as earnings dates and macro releases tell you when jump probability is elevated, which is why event calendars are risk tools; detection methods are diagnostic, identifying jumps as or after they happen rather than forecasting them.

### What is a CUSUM test?

A cumulative-sum change detector from statistical process control, introduced by Page in 1954. It accumulates deviations from a reference level and signals when the running sum crosses a threshold, which makes it quick to catch genuine level shifts while ignoring small symmetric noise. Trading adaptations use it to flag abrupt shifts in price or volatility that fixed thresholds handle poorly.

### Do stop losses protect against jumps?

Only partially. A stop becomes a market order when touched, so a gap through the level fills at the next traded price, which can be far worse than the stop price. That slippage is precisely the risk jump detection tries to quantify, and why jump-prone instruments commonly get smaller size or option hedges rather than tighter stops.

### Which markets jump the most?

Individual stocks around earnings and binary events such as regulatory decisions are the classic case, and any market with a session close gaps by construction at the open. Nearly continuous markets like FX and crypto gap less often on the clock but still jump on surprise news, and thin weekend liquidity in crypto leaves large air pockets possible.

## Implementations in the Library

- Jump Detection (LuxAlgo): https://www.luxalgo.com/library/indicator/jump-detection/

## Related concepts

- Volatility Estimators: https://www.luxalgo.com/library/concept/volatility-estimators/
- Close-to-close Historical Volatility: https://www.luxalgo.com/library/concept/close-to-close-historical-volatility/
- EWMA Volatility: https://www.luxalgo.com/library/concept/ewma-volatility/
- Parkinson Estimator: https://www.luxalgo.com/library/concept/parkinson-estimator/
- Garman-Klass Estimator: https://www.luxalgo.com/library/concept/garman-klass-estimator/
- Rogers-Satchell Estimator: https://www.luxalgo.com/library/concept/rogers-satchell-estimator/
- Yang-Zhang Estimator: https://www.luxalgo.com/library/concept/yang-zhang-estimator/
- Garman-Klass–Yang-Zhang Hybrid: https://www.luxalgo.com/library/concept/garman-klass-yang-zhang-hybrid/
- Volatility Signature Plot: https://www.luxalgo.com/library/concept/volatility-signature-plot/
- Volatility of Volatility: https://www.luxalgo.com/library/concept/volatility-of-volatility/

---

Source: https://www.luxalgo.com/library/concept/jump-detection/ (LuxAlgo Library, the encyclopedia of trading & technical analysis). Free to use with attribution: https://www.luxalgo.com/library/license/