Reducing Bid-Ask Bounce in High-Frequency Price Data
Summary
The document surveys ways to limit bid-ask bounce, which can create spurious short-term reversals in transaction-price data. One proposal is a size-weighted quote midpoint, intended to reduce the alternating bid and ask effect while supporting moving-average analysis. Another describes modeling observed trades as an efficient price plus market-microstructure noise, with the trade direction and spread contributing to deviations from the underlying price.
The discussion also notes that trade direction may be inferred with a classification method, and that irregular time between transactions creates a separate issue for ultra-high-frequency analysis. The appropriate price series depends on the task: realistic execution analysis should use quotes and execution assumptions, while other analyses may benefit from smoothing or sampling less frequently. The document offers no head-to-head empirical test, and midpoint measures and trade-based models each depend on assumptions about quotes, trade classification, and sampling.
Key ideas
- Bid-ask bounce can make transaction prices appear to mean-revert at very short horizons.
- A size-weighted midpoint is offered as a price measure less affected by bid-ask alternation.
- Transaction prices can be modeled as an efficient price plus spread-related microstructure noise.
- Execution analysis should use quotes and realistic execution assumptions when trade prices are unreliable.
Tags
Full text
# Control for bid/ask bounce in high-frequency trade data?
# Control for bid/ask bounce in high-frequency trade data?
The bid-ask bounce is the bouncing of trade prices between the bid and ask sides of the market. It introduces a systematic bias to the data which can cause serious problems in analysis.
What methods can be used to control for the bid/ask bounce when using high-frequency data? One approach is to use the bid/ask midpoint, but what about with trade data? Even using n-minutely VWAP prices doesn't guarantee that you won't have spurious mean-reverting behavior.
## Answer by Foo Bah (score 17, accepted)
https://quant.stackexchange.com/a/1887
Why not just use the weighted mid-market price, quoted as `(Bsize * Aprc + Asize * Bprc) / (Asize + Bsize)`? This measure doesn't suffer a bounce per se and allows you to directly take moving or exponential moving averages.
## Answer by Richard Herron (score 15)
https://quant.stackexchange.com/a/1351
IMO transaction data is a better approach, because you have both sides of the trade agreeing that the price is "right." The literature tends to decompose the transaction price $P$ into a true/efficient price $P^e$ plus micro-structure noise, which I think originates from Hasbrouck '93 in the Review of Financial Studies. So you end up with something like $$P^e_t = P^e_{t-1} + \nu$$ and $$P_t = round(P^e_t + c_t Q_t, d)$$ where $\nu \sim N(0, \sigma^2_t)$, $c_t > 0$, $Q_t \in \left\{-1, 1 \right\}$, and $d$ is the tick size. Note that $c_t$ provides the spread and $Q_t$ tells you if the transaction is buyer or seller initiated (typically determined with the "Lee-Ready algorithm"). I found this particular presentation in a 2002 working paper from Engle and Russell (edit: titled Analysis of High Frequency Data); I think this is pretty standard and you can probably find a good deal of research that tries to provide $c_t = f(\cdot)$. It looks like a Andersen, Bollerslev, and Diebold have a 2007 NBER working paper (edit: titled Roughing it Up: Including Jump Components in the Measurement, Modeling and Forecasting of Return Volatility) that provides a more thorough treatment of these ideas.
When you're dealing with (ultra) high-frequency data you also have the problem of time to transaction. Engle has a 2000 Econometrica paper (edit: titled The Econometrics of Ultra-High-Frequency Data) in which he describes how to account for time to transaction, but he's using bid-ask midpoints, not transactions.
I don't have any first-hand experience to know if using the midpoint is a bad assumption in practice, but the 2000 and 2007 papers should be a good start.
## Answer by NPE (score 9)
https://quant.stackexchange.com/a/1349
You don't say what it is that you do with trade data that is made difficult by the bid-ask bounce.
If it's for the purpose of establishing the price at which you can trade and it's at a frequency where the bid-ask bounce is a problem, then I think having realistic execution assumptions is the way to go. In particular this means that you should be mainly looking at quotes rather than trades in order to establish prices.
For most other applications that I can think of, either smoothing or reducing the frequency of the data seem the way to go.Shown in full with attribution under the source's licence. Licence: CC BY-SA 4.0 (Stack Exchange)
This summary was written by Stratmill's research agent from the original; it is not a copy of the source.