Using Order Book Imbalance and Price Decomposition for Execution Timing
Summary
The document discusses ways to detect short-term price pressure in equity tick data so an execution algorithm can pause buying after a rapid rise and resume when conditions stabilize. It distinguishes liquidity-driven activity within the order book from moves driven by outside information, noting that the latter may require news data and are harder to anticipate from quotes alone.
For liquidity signals, it describes order book imbalance, signed trade-volume imbalance, and filtered versions of these measures. It also outlines a deal-versus-book decomposition that separates estimated price changes associated with trades from changes between trades. The response points to research on queue-reactive order books and Markovian limit order markets as context. It cautions that predictive power varies by time scale and is not enough to make a standalone strategy profitable; it may still help execution decisions. Bid-ask bounce can make raw prices misleading, so microprice or trailing TWAP may serve as smoother references. The discussion offers candidate signals rather than a validated, stock-independent pause rule.
Key ideas
- Order book imbalance can provide a short-horizon signal when displayed liquidity is meaningful, particularly for large-tick instruments.
- Signed trade-volume imbalance summarizes recent buying and selling pressure.
- A deal-versus-book decomposition separates price changes associated with trades from changes between trades.
- Filtering these signals may help execution timing, but their predictive value varies across time scales.
- Bid-ask bounce can distort rapid price readings, motivating smoother references such as microprice or trailing TWAP.
Tags
Full text
# Tick data - detection of price moving away
# Tick data - detection of price moving away
I was wondering if there are any industry methods for detecting short term rapid price movements with L1 tick data for equities. Ideally should be robust/general enough to work for a wide range of stocks each with their own individual stock characteristics. I am approaching this from an algo execution standpoint - i.e. for a buy order, the algo should temporarily stop trading if the last price rapidly increases from some anchor price in some short time period T, and resume execution when the price stabilizes again.
Any advice/papers/links/articles would be greatly appreciated, thanks!
## Answer by lehalle (score 3)
https://quant.stackexchange.com/a/80077
First: there is no magic, you will not easily get a predictor that will tell you "wait for 10 minutes before continuing to buy".
They are somehow two regimes at high frequency (see Huang, W., C.-A. L and Rosenbaum, M., 2015. Simulating and analyzing order book data: The queue-reactive model. Journal of the American Statistical Association, 110(509), pp.107-122):
- a liquidity game, that tells you opportunities (and hence adverse selection) if you are about to buy or sell
- a price game, that is about the valuation of the traded instrument, or at least that is driven by exogenous information (typically the News feed will tells you about this information that is coming from the outside of the orderbook).
The conjunction of these two dynamics is difficult to deal with. Here I will answer on the liquidity game. As the previous answer mentioned the worst kept secret of HFT is the predictive power of the orderbook imbalance. It is something you can build from L1 data, provided it is a large tick instrument (meaning that the bid-ask spread will be less than 1.3 ticks on average); this is important because being large tick means that the quantity at first limits is meaningful (ie owners of these orders pay attention).
Another one is the recent liquidity consumption imbalance. They are the two faces of the same coin (since if you start from an orderbook state, you wait $\delta t$ second, you observe the new state and you know what has been consumed during this interval of $\delta t$ second, you know what has been provided, it is detailed in Cont, Rama, and Adrien De Larrard. "Price dynamics in a Markovian limit order market." SIAM Journal on Financial Mathematics 4, no. 1 (2013): 1-25).
Then you can try to build derivations of $${\rm Imb}^{\rm book}(t):=\frac{Q_B(t)-Q_A(t)}{Q_B(t)+Q_A(t)},\quad {\rm Imb}^{\rm trades}(t):=\frac{\sum_{t-\delta t<\tau<\leq t} v_\tau}{\sum_{t-\delta t<\tau<\leq t} |v_\tau|},$$ where $v_\tau$ is the signed trade size of deals that happened between $t-\delta t$ and $t$.
Such derivations are moving averages or any filter you like, potentially using News feed.
Another indicator is the deal vs book one, see Besson, Paul, and Charles-Albert Lehalle. "The deal/book split analysis: A new method to disentangle the contribution to market and limit orders in any price change" Available at SSRN 2377965 (2014). This is more a whitepaper than an article but it shows how to disentangle the move due to liquidity consumption (deals) vs the ones due to liquidity provision (books). The former happens during trades $$\Delta {\rm Deal}(\tau) = \mathbb{E}\bigl(P^{\rm mid}|LOB(\tau)\bigr) - \mathbb{E}\bigl(P^{\rm mid}|LOB(\tau^-)\bigr),$$ where $\tau$ is the time of a trade (and thus $\tau^-$ the time just before the trade); and the latter between two trades: $$\Delta {\rm Book}(\tau) = \mathbb{E}\bigl(P^{\rm mid}|LOB(\tau^-)\bigr) - \mathbb{E}\bigl(P^{\rm mid}|LOB(\tau-1)\bigr).$$
It is obvious that it is a linear decomposition, since $$\mathbb{E}\bigl(P^{\rm mid}|LOB(\tau)\bigr) - \mathbb{E}\bigl(P^{\rm mid}|LOB(\tau-1)\bigr) = \Delta {\rm Deal}(\tau) + \Delta {\rm Book}(\tau)$$ $$\Rightarrow \sum_{t_0<\tau<\leq t} \Delta {\rm Deal}(\tau) + \Delta {\rm Book}(\tau) = \mathbb{E}\bigl(P^{\rm mid}|LOB(t)\bigr) - \mathbb{E}\bigl(P^{\rm mid}|LOB(t_0)\bigr) \simeq P(t) - P(t_0).$$
Hence you can use any filter on $\Delta {\rm Deal}(t)$ and $\Delta {\rm Book}(t)$ too.
You will see that all of them have a predictive power at different time scales. Not enough to make money in a standalone mode, but in the context of execution (since somehow you already accepted to pay more than half of the bid ask spread), it is good information.
## Answer by sam42 (score 0)
https://quant.stackexchange.com/a/80064
Check out this answer - as they say, in a quote driven market, you see a lot of rapid price change due to the bid ask bounce phenomenon. There are methods to smooth this out such as Stoikov's Micro Price that can give you a reference price, but this is based on spreads. You could also look at trailing time weighted average price (TWAP) as a benchmark.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.