Market Profile (TPO)

The Market Profile overlay counts, for each price, how many time brackets traded there and renders the result as bars, TPO letters or blocks over a free period: 15 minutes to 1 day, 90/180 rolling days, the CME day, named sessions or RTH. It adds Steidlmayer structure — initial balance, single prints and tails, poor highs and lows — and optional automatic levels merged from the last profiles.

Senzoukria · Documentation · Updated September 2026


Where to find it

Where
Chart → Indicators → Overlays → Market Profile (TPO)
Default
Off; Period = 1 hour; Display = Bars; Bracket = 30 min; Value area 70 %
Templates
Indicators → Templates: TPO — Steidlmayer, TPO — Dalton split, TPO — auto levels, TPO — compact blocks

What it does

A TPO profile asks how long price stayed at a level, not how much traded there. Each chart bar is one time bracket and every price it spans receives one TPO. When a bracket duration is set, letters are assigned per bracket (A–Z then a–z), which is what makes the letter and block displays possible and shows the order in which the distribution was built. Executed bid and ask volume per level is kept alongside the count to power the Ask / Bid, Delta and Delta % types.

The POC is the level with most TPOs; ties go to the level closest to the profile mid, then the lower price. The value area expands from the POC two levels at a time on each side, taking the fatter pair, with ties going up — the ATAS and Sierra rule. Anchors are generalised: epoch minutes, the CME day from 17:00 CT to the next open (DST-safe), or named sessions from the template, where a bar outside any session belongs to no profile.

Structure is derived per profile: the initial balance is the range touched by the first N brackets, tails are runs of at least two single-TPO rows at an extreme, single prints are one-TPO rows strictly inside, and a poor high or low is an extreme held by two or more brackets. Auto levels merge the last profiles, score every candidate (naked POC 4.8, composite POC 4.0, POC 3.0, composite VA edges and poor extremes 2.5, tails 2.2, VAH/VAL 2.0, single prints 1.8, HVN 1.5, LVN 1.0), reduce older profiles by 15 % per step and fuse candidates within 2 ticks.

Settings

Market Profile (TPO) parameters
SettingDefaultWhat it changes
Period1 hour15 minutes, 1 hour, 4 hours, 1 day, 3 months (90 days rolling), 6 months (180 days rolling), CME day (17:00 CT), Sessions NY / London / Asia, RTH indices (8:30–15:00 CT), Custom
Custom30 min (1–10080)Minutes for the Custom period
DisplayBarsBars, TPO letters, TPO blocks; letters fall back to blocks then bars when there is no room
Bracket30 min (1–240)One letter per bracket; choose a multiple of the chart timeframe
Row height0 ticks = auto (0–512)Ticks per row; auto follows the zoom so letters stay readable
Split columnsoffEach bracket keeps its own column
Letter colorsInside / outside value areaOr one color per bracket, initial balance vs rest, fade with time
Auto row height (smart)offKeeps about 48 rows whatever the zoom
Value area band / Mid-point line / Profile statisticson / off / offVA band behind letters; half-range line; TPO total, range, VA width, counts above and below the POC
Naked POC / Extend POC / VA to next profileoff / offCarry a closed profile's POC (and VAH/VAL) forward until traded through
Initial balance / IB brackets / IB coloroff / 2 / #38bdf8Range of the first brackets
Single prints & tails / color / Extend single printsoff / #f59e0b / offOne-bracket rows inside and at the extremes; dotted extension to the next profile
Poor high / low / coloroff / #ef4444Extreme held by two or more brackets
Auto levels / Profiles merged / Levels shown / Merged profileoff / 5 / 6 / offBest levels of the last profiles; composite drawn at the right edge
Profile type / Draw styleVolume (TPO count) / SolidAsk / Bid volume, Delta, Delta %, Delta + Volume; seven draw styles
Value area / Highlight VAH/VAL / Show POC70 % (50–95) / on / onValue area size and level lines
Width / Opacity / Bar height70 % / 45 % / 0 pxAppearance; bar height 0 fills the row
ColorsVA #a78bfa, outside #8b5cf6, POC #fbbf24, delta up #7ed321, delta down #ffffffHeatmap shading and HVN/LVN zones (#38bdf8 / #f59e0b) are off by default

How to use it

Turn the overlay on in Indicators → Overlays, or apply a built-in template from Indicators → Templates. TPO — Steidlmayer sets daily letters, 30-minute brackets, value area band, IB, single prints and tails, poor high/low and statistics. TPO — Dalton split adds split columns, time-faded letters, naked POCs, mid-point and extended levels. TPO — auto levels keeps only the letters plus the auto levels over five profiles with the merged profile. TPO — compact blocks uses 4-hour profiles in blocks with per-row counts.

Letters are the canonical display: A is the first bracket of the period, so the anchor decides where A falls. Choose Sessions or CME day on futures for letters that mean something relative to the open.

Limits and pitfalls

  • A 4-hour bar cannot reconstruct 30-minute visits; the bracket must be a multiple of the chart timeframe.
  • TPO counts use loaded OHLC ranges at the chart resolution; the Ask / Bid and Delta types need real price-level data.
  • Selecting a period does not load history; rolling windows roll back from the latest loaded candle.
  • The letter renderer has a budget of 6 000 cells and a cell width between 1.5 and 9 px; beyond it, the profile falls back to blocks, then bars.
  • A POC is only called naked when the renderer can check that price never traded through it after the period.

This page in other languages

Frequently asked questions

Why do my letters show as blocks or bars?
There was no room: cells narrower than 1.5 px or more than 6 000 cells trigger the fallback. Zoom in, raise Row height, or enable Auto row height.
How is the value area computed?
From the POC outward, comparing the two levels above with the two below and adding the larger pair until the chosen percentage (70 % by default) of TPOs is captured. Ties go up.
What does the RTH period cover?
Named sessions from the template; RTH indices runs 8:30–15:00 CT. Bars outside any session of the template are ignored rather than glued to a neighbouring profile.

Keep reading