Appearance
Personalize your experience
Liquidity Heatmap
Charts / Chart Types / Volume ChartsResting order-book size at every price over time, drawn on the GPU, with executed trades as bubbles.
What the chart shows
A candle chart shows where happened. It does not show the limit orders that were waiting in the book, which is where the market had to go through or turn back. The liquidity heatmap records the order book many times per second and paints the size resting at each price as colour: dark for little size, bright for a lot. Over time, each order becomes a , and you can see when it was placed, how long it stayed and whether it was traded through or .
Price is drawn on top as a line or candles, with the best bid and best ask as trails and as bubbles sized by volume. This style is known from tools such as Bookmap.
liquidity-heatmapAnatomy of the chart
| Part | What it is | How to read it |
|---|---|---|
| Heat | Resting size at one price for one time column. | Brighter = more size waiting. Dark = thin book; price moves through it easily. |
| A row of bright over time: one or more orders that stayed in the book. | Where the starts, the order was placed; where it ends, it was or . | |
| Empty area | Time before recording started, or prices outside the received depth. | Not "no liquidity": no . Check the status line. |
| or candles | Last price over the heatmap. | Watch how price reacts when it reaches a . |
| Best bid / ask trails | The best bid (lower) and best ask (upper) over time. | The gap is the spread. A that jumps away from price shows liquidity being . |
| Trade bubble | merged per time bucket and price. Area grows with size. | Big bubbles at a show the band being hit. Fill colour shows the dominant side. |
| Buy share ring | Arc around a bubble (bubble style only). | A full ring = all buying; a quarter ring = 25% buying. |
| Current book profile | The latest snapshot as bars at the edge. | Shows the book as it is now, in the same as the heatmap. |
| order label | Dashed line and size on the largest levels (up to 8) that are at least N × the level. | The levels that matter most in the current book. |
| Status line | Recording start, snapshot count and the trade source (tape or inferred). | Tells you how much history the is based on. |
How the heatmap is built, step by step
- 1Receive snapshotsThe terminal sends every order-book update to the chart with
chart.setOrderbookSnapshot(), stamped in chart time so line up with candles. - 2Bin into price rowsEach level is placed in a price row on a grid. The row size is the book , detected from the first snapshot, so do not shift when the view moves.
- 3Bin into time columnsSnapshots are grouped into of Column seconds. Within a column the latest snapshot wins, because resting size is a state, not a . older than Keep history are dropped.
- 4Fit the visible windowFor the visible time and , and are packed into a texture: one texel per column and row, merged when there are more than the screen can show. Merging keeps the largest size, so a wall stays visible when you . Red holds bid intensity, green holds ask intensity.
- 5NormaliseThe reference size is the Saturation percentile of the visible non-zero sizes. Each size is divided by it and clipped at 1, so a single huge order does not darken everything else.
- 6Colour on the GPUA fragment shader applies Gamma, removes values below Hide below, and looks up the colour in a 256-entry palette texture. A bloom pass then spreads light from bright by Bloom glow. Changing these settings does not re-upload any .
- 7Draw the overlaysPrice, best bid / ask trails, trade bubbles, the current book profile, -order labels and the status line are drawn on top in Canvas 2D.
Intensity, gamma and palettes
| Setting | Lower value | Higher value |
|---|---|---|
| Saturation percentile | More of the map is bright; in orders is lost | Only the largest orders reach full colour; the rest is darker |
| Gamma | orders become visible (busy ) | Only orders remain bright (clean ) |
| Hide below | Thin liquidity is drawn | Thin liquidity is removed completely |
| Bloom glow | Crisp | orders glow into their neighbours |
- Heat (both ) colours and asks with one palette. The best bid / ask trails tell the apart.
- Bid / ask hues uses the bid and ask colours, so the side of each is obvious.
- only or only hides one side, for example to study only the support below price.
Reading the chart, step by step
- 1Check the status linehow long depth has been recorded and whether come from the tape or are inferred. A heatmap recorded for two minutes says little about older levels.
- 2Find the bright bands near priceThese are the resting orders price must deal with next. The current book profile at the edge shows their size now.
- 3Watch price arrive at a bandIf bubbles appear and the stays, the order is being and is holding price. If the band disappears before price reaches it, the order was .
- 4Look for absorptionMany sell bubbles at a bid , with the band staying bright and price not falling, means a buyer is absorbing the selling.
- 5Follow the bookBands that move with price (stepping down in a decline) show liquidity providers repositioning. The direction of the shift often leads price.
- 6Confirm with tradesA break through a with bubbles and a full buy ring (or empty for selling) is a genuine break; a break on small bubbles after the band was is weaker.
Setting it up, step by step
- 1Choose a market with live depthThe broker must stream order-book depth for the symbol. Delta Exchange also streams with aggressor side; other brokers infer trades from volume.
- 2Select the chart typeChart type menu → → Liquidity heatmap. Recording starts now; history in from the .
- 3Use a short timeframeCandles of 1 minute or less line up with the heat . The heatmap is drawn on the chart's time .
- 4Open the settingsClick the gear to the left of the name. Try the presets first: Bookmap, Bid / ask split, Thermal, Deep ocean, Clean, orders only.
- 5Tune the contrastIf the map is mostly dark, lower the saturation percentile or gamma. If it is a blur, raise gamma and Hide below.
- 6Tune the tradesRaise Hide below to keep only meaningful ; raise Merge within if bubbles overlap.
- 7Keep the chart openDepth is recorded only while this chart is open with a depth-based chart type. Switching symbol clears it. Changing Column also clears it.
Feeding the chart from code
// Every depth update: [price, size] pairs, best first
chart.setOrderbookSnapshot(
{ bids: [[24510.0, 120], [24509.5, 340]], asks: [[24510.5, 90], [24511.0, 410]] },
{ time: chartTimeSeconds },
);
// Real trades with aggressor side (turns off inference from ticks)
chart.addTrades([{ time: chartTimeSeconds, price: 24510.5, size: 25, side: 'buy' }]);
// On symbol change
chart.clearMarketDepth();
// For a status UI
const { snapshots, firstTime, trades, realTrades } = chart.getMarketDepthInfo();Common setups
Scalping futures
Bookmap preset, column 0.5 s, history 30 min, merged within 0.5 s, -order labels at 5×.
Crypto perpetuals
Bid / ask split preset, candles as price, minimum trade size set to retail .
Level hunting
orders only preset: high cut-off and contrast, sharp , labels on. Shows only the walls.
Limitations
- Depth is limited to the levels the broker sends (often 5 to 20 per side). Prices beyond them are empty, not thin.
- Visible orders are not all orders: icebergs show only their visible part, and some venues hide size.
- Without from the tape, bubbles are inferred from volume and the side is estimated with the tick rule.
- Without WebGL2 the Canvas 2D fallback is used: same colours, no bloom, slower on windows.
Native Quatick implementation and live demos
The charts below are the real Quatick engine (@quatick/quatick-charts), the same code the trading terminal runs, fed by a deterministic simulated market. Switch between demos, press Run market to stream ticks, order-book snapshots and , to pan and use the wheel to zoom. Show code exactly the calls each makes.
How the engine draws Liquidity heatmap
| Stage | What happens |
|---|---|
| in | setOrderbookSnapshot(book, { time }) |
| addTrades() | |
| bars | |
| Bin book into × time | |
| Pack visible into RG8 texture | |
| Percentile, gamma, cut-off (shader) | |
| Step 4 | Palette LUT + bloom |
| WebGL2 (Canvas 2D fallback) | |
| Layers | / candles · BBO trails, trade bubbles · book profile, walls, status |
| updates | One texture upload per frame; palette / gamma changes need no upload |
How data reaches the screen
Minimal implementation
The first above, as standalone code:
import { Chart } from '@quatick/quatick-charts';
const chart = new Chart({
container: document.getElementById('chart')!,
chartType: 'liquidity-heatmap',
theme: 'dark',
renderer: 'webgl',
showVolume: false,
});
const series = chart.addSeries({ type: 'candlestick' });
chart.setData(series.id, bars); // [{ time, open, high, low, close, volume }] — time in seconds
chart.setChartTypeOptions('liquidity-heatmap', {
palette: "bookmap",
colorMode: "heat",
gamma: 1.1,
bubbleScale: 0.7
});
// Live: every tick updates the forming bar (a new time opens a new bar)
feed.onTick(bar => chart.update(series.id, bar));
// Depth and trades
feed.onBook(book => chart.setOrderbookSnapshot(book, { time: chartSeconds })); // { bids: [[price, size]], asks: [[price, size]] }
feed.onTrades(trades => chart.addTrades(trades)); // [{ time, price, size, side: 'buy' | 'sell' }]Quatick settings reference
Loading the settings list…
See also
Related articles
Related to Liquidity Heatmap
- Composite Profile
Charts / Chart Types / Volume Charts
Volume, time and resting liquidity at every price of a session, side by side, with three points of control and each row classified.
- Absorption & Iceberg Map
Charts / Chart Types / Volume Charts
Hidden liquidity made visible: levels where more traded than the book showed, and levels that absorbed heavy flow without breaking.
- Cumulative Delta (CVD)
Charts / Chart Types / Volume Charts
Candles of the running total of buy volume minus sell volume, with divergence detection against price.
- Depth Footprint
Charts / Chart Types / Volume Charts
Each bar split in two: what traded at every price, and what was resting in the book at that price.
- DOM Ladder
Charts / Chart Types / Volume Charts
Depth of market on the chart's price scale: resting bids and asks, your orders, traded volume and delta at every price, with recent candles beside it.
- Order-Book Imbalance Candles
Charts / Chart Types / Volume Charts
Candles of how one-sided the resting book was, with what aggressive traders actually did on the same scale.
- Orderflow Chart
Charts / Chart Types / Volume Charts
An enterprise-grade orderflow visualization combining footprint, CVD, depth ladder, whale detection, and time & sales.
- TPO Market Profile
Charts / Chart Types / Volume Charts
Time-Price-Opportunity Market Profile using letter-based visualization to reveal where price spent time.
- Volume Footprint
Charts / Chart Types / Volume Charts
A bid/ask volume histogram overlaid on each price bar, revealing who is buying and selling at every price level.