Bookmap Alternative: Order Flow Heatmap in the Browser

Bookmap is the best-known order flow heatmap, but it's Windows-only and runs $39-$99 per month. MarketByOrder is a browser-based alternative built around the same idea: an order book heatmap alongside footprint charts and a DOM ladder, in one workspace. No install, runs on Mac, Linux, and iPad. Try up to 3 replays per day with 5 minutes of total replay time free, using our included market data. A paid plan is required for more replay time. Below is the side-by-side.

Quick Comparison

FeatureBookmapMarketByOrder
Cost$39-$99/moPaid plans + daily preview
PlatformWindows desktopBrowser (Mac, Win, Linux, iPad)
Liquidity heatmapYesYes
Market depthFull depth with supported paid data feedLevel 2 now; full depth planned
Footprint chartAdd-on / paid tierYes
DOM ladderYesYes
Time & salesYesYes
Live tradingYesNo (replay-focused)
Market replayYesYes (tick-level)
SetupInstall + data feed + licenseSign up, ~1 minute

What Bookmap Still Does Better

There are tradeoffs. If you need any of the following, Bookmap is the better tool:

If your goal is live execution on a broad set of markets, this is not going to replace Bookmap.

What MarketByOrder Does Better

How an Order Flow Heatmap Works

The vertical axis is price, the horizontal axis is time. Brightness represents how many limit orders are resting at each price at each moment. Bright zones build when liquidity accumulates and fade when orders are pulled or absorbed. Same logic Bookmap uses, applied to the same kind of MBP feed.

The heatmap is the passive side of the market - resting limit liquidity. It pairs naturally with two other included views: the DOM ladder for current liquidity at the top of book, and footprint charts for the active side - executed volume at each price level.

Check out the heatmap

Below is an ES heatmap: resting depth over time as color, best bid and best offer as step lines, and every trade in view as a size-scaled dot.

Customize It

None of it is fixed behaviour. The whole view is the script beside it, and you edit it inside the app: how strongly the book is painted, where the dot size scale tops out, which side gets which colour. Hover a line to see what it puts on the chart.

Resting sell ordersbrighter means more size waiting to be hitResting buy ordersthe passive side, before any of it trades
Heatmap presethover a line
const MIN_RADIUS = 3
const MAX_RADIUS = 20
const MAX_SIZE = 50 // size that reaches MAX_RADIUS
const BASELINE_MS_PER_PX = 35
const BUY = 'rgba(59, 130, 246, 0.88)'
const SELL = 'rgba(239, 68, 68, 0.88)'
const FLAT = 'rgba(156, 163, 175, 0.88)'
// Resting size at each price, painted under the tape.
chart.depth = 1
// The live edge tracks the clock rather than stepping one
// candle at a time, which a candle wider than the viewport
// can no longer do.
chart.scroll = 'continuous'
// No rows and no numbers: the depth raster is the display.
chart.candle(() => {})
chart.frame((view, draw) => {
const zoom = Math.min(1, BASELINE_MS_PER_PX / view.msPerPx)
// view.trades is UNFILTERED, so this filter is the trade
// size control. view.minTradeSize is the instrument's
// own floor (ES 20, most 1).
for (const trade of view.trades) {
if (trade.size < view.minTradeSize) continue
const t = (Math.min(trade.size, MAX_SIZE) - 1) / (MAX_SIZE - 1)
const radius = (MIN_RADIUS + (MAX_RADIUS - MIN_RADIUS) * t) * zoom
if (radius < 1) continue
draw.circle({
time: trade.time, price: trade.price,
radius,
color: trade.side === 'buy' ? BUY
: trade.side === 'sell' ? SELL : FLAT,
})
}
})

How to Get Started

  1. Create a MarketByOrder account.
  2. Pick a symbol and a date, and replay the session.

For a broader comparison of order flow tools and pricing, see best order flow backtest software. For DOM-specific comparisons against Jigsaw and Quantower, see jigsaw and quantower DOM alternative.

Try the Bookmap alternative in your browser

Start practicing

See plans and pricing