Use Polymarket order book imbalance as a short-term price signal: bid-ask volume ratio, microprice computation, signal half-life, and when imbalance bots beat random execution.
Use Polymarket order book imbalance as a short-term price signal: bid-ask volume ratio, microprice computation, signal half-life, and when imbalance bots beat random execution.
By Harley Young, lead writer at Polymarkets.co.il. Last reviewed: May 2026.
What this chapter covers
This is chapter 17 of our 32-part series on building a Polymarket trading bot. We cover the topic in depth across the sections below. Body content for each section is being written and rolled out chapter-by-chapter; FAQ answers and references are already complete and reflect production experience from running our own trader.
What order book imbalance is
Microprice computation
Imbalance as a directional signal
Signal half-life on Polymarket
When imbalance signals lie
Code: compute imbalance every WS tick
What order book imbalance is
This section is in active development. Want to be notified when it goes live? Contact us or watch the authors page.
Microprice computation
This section is in active development. Want to be notified when it goes live? Contact us or watch the authors page.
Imbalance as a directional signal
This section is in active development. Want to be notified when it goes live? Contact us or watch the authors page.
Signal half-life on Polymarket
This section is in active development. Want to be notified when it goes live? Contact us or watch the authors page.
When imbalance signals lie
This section is in active development. Want to be notified when it goes live? Contact us or watch the authors page.
Code: compute imbalance every WS tick
This section is in active development. Want to be notified when it goes live? Contact us or watch the authors page.
Frequently asked questions
What is order book imbalance?
The ratio of bid volume to ask volume at the top of the book. A heavily bid-skewed book (more buyers than sellers near the touch) suggests upward price pressure in the very short term. The signal is well-known in crypto and equities; on Polymarket it works in liquid markets but disappears in thin ones.
How do I compute the microprice?
microprice = (best_ask * bid_size + best_bid * ask_size) / (bid_size + ask_size). It is a volume-weighted version of mid-price that leans toward the side with less volume - the side that is "running out" first. Bots use it as a fair-value estimate that incorporates imbalance.
What is the half-life of an imbalance signal on Polymarket?
In active markets, 5-30 seconds. In thin markets, longer (because new orders take longer to overwhelm the imbalance). If your bot reacts in under a second, you can capture some of it. If it reacts in 5+ seconds, you are usually too late.
When does imbalance lie?
When a single large order is sitting on one side waiting to be hit (one big resting bid, no other activity). The imbalance is real but it does not predict price - it just shows one motivated buyer. Filter by counting orders, not just volume: imbalance N orders to 1 order is more informative than 5x volume across 1 order each.
Is order book imbalance enough to trade alone?
Usually no. As a standalone signal it is weak and gets arbitraged. Combine with another signal (e.g., macroprice mean reversion, news flag, or sports state) for a more durable edge. Imbalance alone tends to underperform random execution after fees.
What Python library can compute imbalance from Polymarket WS?
No off-the-shelf library that we know of - it is a few dozen lines of code. Subscribe via py-clob-client to the market book, on each price_change event recompute top-of-book bid/ask sizes, and emit your imbalance metric. Cache the last value and only re-trigger on meaningful changes.
שאלות נפוצות
What is order book imbalance?
The ratio of bid volume to ask volume at the top of the book. A heavily bid-skewed book (more buyers than sellers near the touch) suggests upward price pressure in the very short term. The signal is well-known in crypto and equities; on Polymarket it works in liquid markets but disappears in thin ones.
How do I compute the microprice?
microprice = (best_ask * bid_size + best_bid * ask_size) / (bid_size + ask_size). It is a volume-weighted version of mid-price that leans toward the side with less volume - the side that is "running out" first. Bots use it as a fair-value estimate that incorporates imbalance.
What is the half-life of an imbalance signal on Polymarket?
In active markets, 5-30 seconds. In thin markets, longer (because new orders take longer to overwhelm the imbalance). If your bot reacts in under a second, you can capture some of it. If it reacts in 5+ seconds, you are usually too late.
When does imbalance lie?
When a single large order is sitting on one side waiting to be hit (one big resting bid, no other activity). The imbalance is real but it does not predict price - it just shows one motivated buyer. Filter by counting orders, not just volume: imbalance N orders to 1 order is more informative than 5x volume across 1 order each.
Is order book imbalance enough to trade alone?
Usually no. As a standalone signal it is weak and gets arbitraged. Combine with another signal (e.g., macroprice mean reversion, news flag, or sports state) for a more durable edge. Imbalance alone tends to underperform random execution after fees.
What Python library can compute imbalance from Polymarket WS?
No off-the-shelf library that we know of - it is a few dozen lines of code. Subscribe via py-clob-client to the market book, on each price_change event recompute top-of-book bid/ask sizes, and emit your imbalance metric. Cache the last value and only re-trigger on meaningful changes.