Big Trades

When an order hits the market, it is matched against resting limit orders. This can cause a large trade to appear small. Most venues provide ways of reconstructing the trade into its original quantity.

A big trade indicator simply reconstructs orders into their original quantity.

Reconstructing the tape

Below we have a market sell of 4 contracts occur.

Raw Tape

Raw tape showing four separate prints of size 1 at the same price

Reconstructed Tape (Big Trades)

Aggregated tape showing the same four prints combined into one size 4 trade

The big trade indicator is an overlay for charts that takes this reconstruction logic and displays these trades with circles. The larger the circle - the bigger the trade. Below is a chart showing us all big trades but this can be overwhelming and hard to read.

Candlestick chart with overwhelming number of bubble markers highlighting larger buys and sells

Here we implement a filter of ‘60’ - only show trades greater than 60 contracts.

Candlestick chart with a couple bubble markers highlighting larger buys and sells

How to use it

The idea is that large trades are more likely to be smart money. Where are these trades occuring:

  • Clusters = repeated participation at a level
  • Large trades with no price movement = absorption
  • Large trades that move price = initiative

Try Big Trades on a footprint chart in the demo.

Defaults

Big Trades ships as an indicator in your library - one for the footprint chart, one for the heatmap. They share these values, and you can edit either in Chart Settings → Indicators.

const MIN_RADIUS = 3          // px, at the size floor
const MAX_RADIUS = 20         // px, at SIZE_AT_MAX - scaled by circle area
const AREA_GAMMA = 0.75       // < 1 boosts mid-sized trades

const SIZE_AT_MAX = 500       // footprint - reconstructed orders run large
const SIZE_AT_MAX = 50        // heatmap - per-tick volume at a price is smaller

const MIN_SIZE = 0            // footprint - extra filter over the instrument floor
const MIN_SIZE = view.minTradeSize  // heatmap - the floor itself (ES 20, else 1)

const BASELINE_MS_PER_PX = 35 // heatmap only - dots shrink once zoomed out past this

const BUY = "rgba(59, 130, 246, 0.7)"
const SELL = "rgba(239, 68, 68, 0.7)"
const FLAT = "rgba(156, 163, 175, 0.7)"

The footprint chart is handed reconstructed orders, already filtered at the instrument's large-trade minimum - 20 on ES and ZN, 10 on ZB, 5 on everything else - so its MIN_SIZE can raise that floor but never lower it. The heatmap is handed the volume traded at each price in each tick, which runs an order of magnitude smaller.

How it's constructed

Different platforms use different methods of trade construction.

Platforms like Sierra Charts and MarketByOrder use match events. For example the CME publishes a several match events that span several prices. We take all the values from the several events and add them together.

Other methods of aggregation like combining events with the same time is inaccurate.

Further Reading

Large trades that stall at a level often point to Absorption. To see reconstructed trades on a chart, see the Footprint docs, or the Heatmap, where the same indicator draws every trade over the depth.