Jump-Robust Volatility Estimation with Bipower Variation

Stochastic Processes · Hard · Free problem

Suppose the efficient log-price $X_t$ follows a semimartingale of the form

$dX_t = \mu_t \, dt + \sigma_t \, dW_t + J_t \, dN_t$

where $\sigma_t$ is a stochastic volatility process, $W_t$ is a Brownian motion, and $N_t$ is a finite-activity jump process (Poisson with intensity $\lambda$) with jump sizes $J_t$. You observe the price at $n$ equally spaced times over $[0, 1]$ (one trading day), so the sampling interval is $\Delta = 1/n$. There is no microstructure noise.

Define the log-returns $r_i = X_{i\Delta} - X_{(i-1)\Delta}$ for $i = 1, \ldots, n$.

  1. Define realized variance $RV_n$ and bipower variation $BV_n$. Show that $BV_n$ converges in probability to integrated variance $IV = \int_0^1 \sigma_t^2 \, dt$ even when jumps are present, while $RV_n$ does not.
  1. Using $RV_n$ and $BV_n$, construct a test statistic for the null hypothesis $H_0$: no jumps occurred during the day. State the asymptotic distribution of your test under $H_0$ and explain how you would set the rejection threshold for a given significance level $\alpha$.
  1. Describe a practical procedure for estimating daily integrated variance $IV$ and jump variation $JV$ from one day of tick data, including how you handle the test outcome from part (2).

Hints

  1. Think about what happens when you multiply two adjacent absolute returns: if a jump hits one of them, what is the order of magnitude of that product as sampling frequency increases?
  2. The key identity is $E[|Z|] = \sqrt{2/\pi}$ for $Z \sim N(0,1)$. Use this to find the right scaling constant so that the sum of products of adjacent absolute returns targets $\int_0^1 \sigma_t^2 \, dt$.
  3. For the jump test, consider the difference $RV_n - BV_n$: it converges to zero under no jumps and to $\sum (\Delta X_s)^2 > 0$ under jumps. Standardize this difference using a jump-robust estimator of integrated quarticity to get an asymptotically standard normal test statistic.

Worked Solution

How to Think About It: The core issue is that realized variance -- the sum of squared returns -- captures both continuous volatility and jumps. If you are a trader or risk manager, you need to separate the two: integrated variance tells you about diffusive risk (which you can hedge), while jump variation tells you about tail risk (which you mostly cannot). Bipower variation is the clever workaround: by multiplying adjacent absolute returns instead of squaring each return, you exploit the fact that jumps are rare (finite activity). A jump can hit one return, but it is extremely unlikely to hit two consecutive returns. So the product of neighbors is robust to jumps.

Part (i): Definitions and Consistency

Realized variance is the sum of squared returns:

$RV_n = \sum_{i=1}^{n} r_i^2$

By quadratic variation theory, as $n \to \infty$:

$RV_n \xrightarrow{p} \int_0^1 \sigma_t^2 \, dt + \sum_{s \leq 1} (\Delta X_s)^2 = IV + JV$

So $RV_n$ is contaminated by jumps -- it converges to integrated variance *plus* the sum of squared jump sizes.

Bipower variation replaces squaring with the product of adjacent absolute returns:

$BV_n = \frac{\pi}{2} \sum_{i=2}^{n} |r_i| \cdot |r_{i-1}|$

The scaling factor $\pi/2$ comes from the fact that for a standard normal $Z$, we have $E[|Z|] = \sqrt{2/\pi}$, so $E[|Z|]^2 = 2/\pi$, and multiplying by $\pi/2$ corrects the bias.

To see why $BV_n$ is jump-robust, consider what happens at high frequency. Each return $r_i \approx \sigma_{i\Delta} \sqrt{\Delta} \, Z_i + J_i \mathbf{1}_{\{\text{jump at } i\}}$ where $Z_i$ are approximately i.i.d. standard normals. Since $N_t$ has finite activity, the probability that two consecutive returns both contain jumps is $O(\Delta^2) \to 0$. So in the product $|r_i| \cdot |r_{i-1}|$, at most one factor can be inflated by a jump. The inflated factor is $O(1)$ (jump size), but the non-jump factor is $O(\sqrt{\Delta})$, so the product involving a jump is $O(\sqrt{\Delta})$. There are at most finitely many such terms (finite activity), so the total contribution of jump-contaminated terms is $O(\sqrt{\Delta}) \to 0$.

For the non-jump terms, by the law of large numbers:

$BV_n \approx \frac{\pi}{2} \sum_{i=2}^{n} \sigma_{i\Delta} \sqrt{\Delta} |Z_i| \cdot \sigma_{(i-1)\Delta} \sqrt{\Delta} |Z_{i-1}| = \frac{\pi}{2} \Delta \sum_{i=2}^{n} \sigma_{i\Delta} \sigma_{(i-1)\Delta} |Z_i| |Z_{i-1}|$

Since $Z_i$ and $Z_{i-1}$ are independent and $E[|Z|] = \sqrt{2/\pi}$, each $|Z_i| |Z_{i-1}|$ has expectation

/\pi$. As $\sigma$ is continuous, $\sigma_{i\Delta} \sigma_{(i-1)\Delta} \approx \sigma_{i\Delta}^2$. So:

$BV_n \xrightarrow{p} \frac{\pi}{2} \cdot \frac{2}{\pi} \int_0^1 \sigma_t^2 \, dt = IV$

Thus $BV_n$ is a consistent estimator of integrated variance, robust to finite-activity jumps.

Part (ii): Jump Test

Under $H_0$ (no jumps), both $RV_n$ and $BV_n$ converge to $IV$, so their difference should be close to zero. Under $H_1$ (jumps present), $RV_n > BV_n$ because $RV_n$ picks up the jump contribution.

The Barndorff-Nielsen and Shephard (2006) test statistic is:

$z_n = \frac{RV_n - BV_n}{\sqrt{\hat{V}_n}}$

where $\hat{V}_n$ is a consistent estimator of the asymptotic variance. A standard choice uses realized quarticity:

$\hat{V}_n = \left(\frac{\pi^2}{4} + \pi - 5\right) \cdot \frac{1}{n} TQ_n$

where the realized tri-power quarticity or the quad-power quarticity $TQ_n$ provides a jump-robust estimator of integrated quarticity $\int_0^1 \sigma_t^4 \, dt$. One common choice is:

$TQ_n = n \cdot \frac{\pi^2}{4} \mu_1^{-4} \sum_{i=4}^{n} |r_i|^{4/3} |r_{i-1}|^{4/3} |r_{i-2}|^{4/3}$

where $\mu_1 = \sqrt{2/\pi} = E[|Z|]$ for $Z \sim N(0,1)$.

Under $H_0$, as $n \to \infty$:

$z_n \xrightarrow{d} N(0, 1)$

For a one-sided test at significance level $\alpha$ (we reject when $RV_n$ is significantly larger than $BV_n$), the rejection rule is:

$\text{Reject } H_0 \text{ if } z_n > \Phi^{-1}(1 - \alpha)$

For $\alpha = 0.05$, the critical value is

.645$. In practice, a ratio version of the statistic (using
- BV_n/RV_n$ instead of the difference) often has better finite-sample properties.

Part (iii): Practical Estimation Procedure

  1. Compute returns: From tick data, construct a regular grid by sampling at a fixed frequency (e.g., every 1 or 5 minutes, giving $n = 390$ or $n = 78$ observations per day for a 6.5-hour trading day). Use previous-tick interpolation.
  1. Compute estimators: Calculate $RV_n$, $BV_n$, and $TQ_n$ from the gridded returns.
  1. Run the jump test: Compute $z_n$ and compare to the critical value at your chosen $\alpha$.

4. Estimate $IV$ and $JV$: - If you fail to reject $H_0$ (no significant jumps detected): set $\widehat{IV} = RV_n$ and $\widehat{JV} = 0$. When there are no jumps, $RV_n$ is more efficient than $BV_n$. - If you reject $H_0$ (jumps detected): set $\widehat{IV} = BV_n$ and $\widehat{JV} = \max(RV_n - BV_n, \; 0)$. The max with zero ensures non-negativity.

  1. Robustness checks: Consider using MedRV (median realized variance) as an alternative jump-robust estimator. Also consider the sensitivity of results to sampling frequency -- too high a frequency introduces microstructure noise, too low loses information. A 5-minute frequency is a common compromise.

Answer: Bipower variation $BV_n = (\pi/2) \sum_{i=2}^{n} |r_i| |r_{i-1}|$ consistently estimates $IV = \int_0^1 \sigma_t^2 \, dt$ in the presence of finite-activity jumps, because the product of adjacent returns annihilates isolated jump contributions at rate $O(\sqrt{\Delta})$. The test statistic $z_n = (RV_n - BV_n)/\sqrt{\hat{V}_n} \xrightarrow{d} N(0,1)$ under no-jump null, enabling a standard one-sided test. Daily estimation uses the test outcome to choose between $RV_n$ (more efficient, no jumps) and $BV_n$ (robust, jumps present) for $\widehat{IV}$, with $\widehat{JV} = \max(RV_n - BV_n, 0)$ when jumps are detected.

Intuition

The fundamental insight behind bipower variation is an elegant exploitation of rarity. Finite-activity jumps are, by definition, rare -- they happen at isolated time points. At high frequency, consecutive returns almost never both contain jumps. So when you multiply adjacent absolute returns, any jump inflates one factor but the other factor remains $O(\sqrt{\Delta})$, making the product negligible. Squaring a single return, by contrast, amplifies the jump to $O(1)$. This is why realized variance sees jumps and bipower variation does not.

This separation of continuous and discontinuous risk is fundamental in modern market microstructure and risk management. Diffusive volatility is the risk you can delta-hedge; jump risk is what blows up your book. A trader who confuses the two will systematically underestimate tail risk on quiet days (attributing all variation to diffusion) and overestimate hedgeable risk on jumpy days. The Barndorff-Nielsen and Shephard framework gives you a principled, testable way to decompose total variation into its hedgeable and unhedgeable components -- and the entire machinery runs off a single day of tick data without any parametric model assumptions.

Open the full interactive solver →