TPO (Market profile)

A TPO (Time Price Opportunity) chart, also called Market Profile, shows how long price traded at each level during a session by stacking a letter or block for every time slot. It reveals the session's fair-value area, its point of control and where price spent little time (single prints).

Live demo

Setup

Add a TpoSeries and feed it OHLC bars that each carry a sessionId; the series builds the letter/block distribution per session itself:

const series = chart.addSeries(SSChart.TpoSeries, {
  displayMode: SSChart.TpoDisplayMode.Auto,  // Auto | Letters | Blocks
  showPoc: true,
  showValueArea: true,
  showInitialBalance: true,
  showSinglePrints: true,
});

series.setData(tpoBars);  // { time, open, high, low, close, sessionId }

chart.timeScale().fitContent();

displayMode switches between letters and solid blocks (Auto picks by zoom). The overlays — point of control, value area, initial balance and single prints — can each be toggled independently.

See also