Heatmap trade bubbles and styles
Volume dots draw each aggregated trade on the heatmap as a bubble whose area follows the traded quantity. The Trades tab sets their size, a volume filter, neutral or aggressor colouring, six visual styles and the outline and text colours.
Senzoukria · Documentation · Updated September 2026
Where to find it
- Where
- Heatmap → "Heatmap" button → Trades tab
- Default
- Volume dots on, size 100%, filter 0, colour mode Neutral, style Flat
- Sizing
- Adaptive; frozen when Auto sensitivity (Rendering tab) is off
What it does
Every trade printed by the source is placed at its price and time on the heatmap. The bubble layer sizes each dot from the quantity relative to the recent distribution, writes the quantity inside when the bubble is large enough, and can tint the fill by aggressor. The dots are drawn on a Canvas2D overlay above the WebGL liquidity texture, so they stay crisp when you pan or zoom.
On crypto sources the quantity is normalised to the base asset before sizing: the Binance footprint wire carries quote notional, which is divided by price, while Bybit already publishes base quantity. Profiles and depth attribution use the same base units, so a bubble, a profile bar and a book level on BTCUSDT all speak BTC.
Settings
| Setting | Default | What it changes |
|---|---|---|
| Volume dots | On | Master switch of the bubble layer |
| Size (%) | 100 | 10–400 in steps of 5; scales every bubble radius |
| Volume filter ≥ (lots / base unit) | 0 | 0–1,000,000; step 5 on futures, 0.001 on crypto. Aggregated trades below it are not drawn. Stored per instrument |
| Colour mode | Neutral | Neutral: single fill. Aggressor: buy fill for trades at the ask, sell fill for trades at the bid |
| Style | Flat | Flat, Neon, 3D, Glass, Ring, or Buy/sell (a sphere split by the bought and sold share) |
| Buy / sell | #4ade80 / #fb7185 | Fill colours used in Aggressor mode and by the Buy/sell style |
| Outline / text | rgba(0, 0, 0, 0.55) / #0a0a0a | Stroke around the bubble and colour of the quantity written inside |
How to use it
Start with the filter at 0 to see the full tape, then raise it until only the prints that matter remain; the "Auto setup for this pair" button in the Rendering tab sets the filter to the top 2% of recent trades for you. Use Aggressor colouring when you want to see who lifted or hit a level, and the Buy/sell style when a single aggregated bubble mixes both sides and you want the proportion. The Ring style keeps the centre transparent so the liquidity behind the print stays visible.
Limits
- Bubbles show executed quantity as published by the source; they are not a hidden-order or iceberg indicator.
- Turning Auto sensitivity off freezes the bubble sizing scale together with the heat anchors.
- A colour value must be a short valid CSS string; an invalid entry falls back to the default rather than silently producing an invisible outline.
- The filter unit follows the instrument: lots on futures, base asset on crypto.
Related pages
This page in other languages
Frequently asked questions
- Why are all my bubbles the same colour?
- Colour mode is Neutral by default. Set it to Aggressor to split buys and sells, or choose the Buy/sell style.
- Why does the filter value I set on ES do nothing on BTCUSDT?
- Quantity thresholds are stored per source and instrument, and every crypto pair starts at 0. Set the filter again on the crypto pair, in base units.
- Can the quantity be written in every bubble?
- The text is drawn only when the bubble is large enough to keep it readable; small prints show the dot alone.