Skip to main content
Volume Footprint profiles split traded volume and trade counts into buy and sell sides at each price row. Indie exposes them as a typed Series[VolumeFootprintProfile], so an indicator can use both profile totals and the detailed rows. Volume Footprint is platform-provided data for the instrument of the current chart. It needs no URL or user-defined schema and does not make the indicator an external-data indicator.

Plot buy-sell volume delta

This indicator requests five-minute profiles for the main trading session and plots the total buy volume minus the total sell volume:
Volume Footprint delta
The required time_frame belongs to request_series, not to the source. Volume Footprint accepts positive minute and hour time frames, plus exactly 1D, 1W and 1M. Seconds, ticks and multi-day, multi-week or multi-month values such as 2D, 2W and 2M are not supported. In historical calculation, profiles are aligned by their end time: on each chart bar, [0] is the latest completed profile available at that time, and larger offsets access earlier profiles. After the indicator switches to live data, [0] is updated when the current profile receives new trades, including before its profile_end_unix_seconds.
Volume Footprint always uses the instrument of the chart where the indicator is running. It cannot be used to select another exchange or ticker.

Find the highest-volume price row

Each profile contains price rows ordered from low to high. This example finds the row with the greatest combined buy and sell volume and plots its price as a line on the main chart:
Volume Footprint highest-volume price
sources.VolumeFootprint() includes the main session, pre-market and post-market by default. Pass enum values from indie.data.sources.session_types to select a subset. String names such as 'MAIN_SESSION' are not supported; use session_types.MAIN_SESSION instead. Selected session types are always combined into one profile for each requested period, so Volume Footprint has no separate merge-policy argument. row_size_ticks must be a non-negative integer. row_size_ticks=0 lets the service choose the price grid automatically. A positive value requests a row height in instrument ticks; the exact resulting row_size is available on every profile. For the complete source signature and all read-only profile and row fields, see sources.VolumeFootprint and VolumeFootprintProfile in the Library Reference.