Market Profile TPO
Market Profile, developed by J. Peter Steidlmayer, asks a different question than a volume profile. A volume profile asks "how much was traded at each price"; TPO asks "how much TIME was spent at each price". This indicator splits the current session into fixed-length periods (InpTpoMinutes each, lettered A, B, C and onward), and for every period it marks each price level that period's bars actually touched with that period's letter. Stack enough periods and the letters build the familiar Market Profile outline - wide where price spent many periods, narrow where it passed through quickly - without needing any volume figure at all. The row carrying the most distinct letters is the session's TPO point of control: not the price with the most volume, but the price the market spent the most separate time periods at, which is a genuinely different measure and can sit at a different level than a volume POC on the same session. It is marked separately and labelled. The one honest limit worth stating plainly: MQL4 exposes each bar's high and low, not a tick-by-tick path through the bar, so a TPO period shorter than the chart's own bar size cannot be reconstructed - see Notes And Limitations. Notes and limitations - A TPO period cannot be finer than the chart's own bar size. Attach this to an M30 or faster chart to get genuine 30-minute periods; on an H1 or slower chart, each underlying bar becomes one TPO period instead, which is coarser than the traditional definition and is worth knowing before comparing the shape to a tick-based platform's Market Profile. - The letter grid for the currently forming period updates once that bar closes, not tick by tick - a confirmation delay of at most one bar, kept deliberately to avoid rebuilding the whole session's grid on every price update. - Tracks up to 40 distinct price rows and 48 TPO periods per session; a session wider or longer than that in a single day is clipped rather than silently corrupted, and the caps are generous enough for ordinary use at the default settings. - Resets at every new calendar day (broker/server time) - it shows only the current session, not a multi-day history of profiles. - Built from the session's own bar highs and lows, which are genuinely available data, not an approximation standing in for missing tick history.
Indicator · MT4 · v1.0 · Free
About Market Profile TPO
Market Profile TPO is an indicator for MetaTrader 4. It can alert you with a pop-up, sound, email or push message. It has 6 settings, such as Tpo minutes, Price step pips and Font size. MQL source code included.
Files in the download: MarketProfile.ex4, MarketProfile.mq4, MarketProfile.txt.
Settings
| Setting | Default | What it does |
|---|---|---|
| Tpo minutes | 30 | Target length of one TPO period, in minutes |
| Price step pips | 5.0 | Bucket width, in pips, each TPO row represents |
| Font size | 8 | Letter font size |
| Letter color | clrSilver | Ordinary TPO letter colour |
| Poc color | clrOrange | Point-of-control row colour |
| Alerts | true | Alert once when the session POC changes on a closed bar |
How to install
- Download the ZIP from your PolyMaria library and unzip it.
- In MetaTrader 4 open File → Open Data Folder, then go to MQL4 → Indicators.
- Copy the .mq4 file(s) there. Put any .mqh files in MQL4 → Include.
- Open the .mq4 file in MetaEditor and press Compile (F7) if MetaTrader does not show it.
- Drag the indicator from the Navigator onto a chart and adjust the settings.
Tags: Volume · Trading Sessions · Alerts · MT4 Indicator · MQL4 Source Code