TPO Profile

TPO Profile

TPO Profile is a professional Market Profile indicator for MetaTrader 4 and MetaTrader 5 that organizes price action into Time Price Opportunities (TPOs). Instead of focusing on volume, TPO Profile highlights how much time the market spends at each price level, giving traders a unique perspective on market balance and acceptance.

Category : Technical Indicators
Version : 2.11
Updated : 2026-02-21

Key Features

  • On-Chart Profiles: Display TPO histograms directly inside the chart area, linked to candles, useful for session‑based analysis. Customize by session, daily, weekly, or monthly periods.
  • Side Profiles: Anchor TPO histograms to the left or right side of the chart. Ideal for multi-day analysis and clean layout.
  • Value Area (VA) & Point of Control (POC): Automatically calculates and displays VA and POC — critical levels for time-based trading strategies.
  • Multiple Display Modes: Render profiles as lines, solid blocks, gradients, bars, or outlines — fully customizable.
  • Graphical Customization: Adjust colors, thickness, font size, alignment, and scale to match your charting style.
  • Multi-Profile Support: Attach multiple instances of the indicator for overlapping sessions, dual-side histograms, or comparative analysis.
  • Developer-Friendly Buffers: Includes buffers for integration into custom EAs or dashboards.

Description

TPO (Time Price Opportunity) focuses on how long the market spends at each price level, while candlestick charts focus on how price moves within a time interval. TPO reveals market balance and acceptance zones, whereas candlesticks show volatility and directional moves.

Candlestick charts are excellent for visualizing price action and volatility, but TPO adds a deeper layer of context by showing where the market spends time. Together, they provide a fuller picture of market structure and trader behavior.

The indicator is divided into two main sections. The first section is the on‑chart profiles, which are directly linked to the candles and drawn within the chart area. These can be adjusted according to different timeframes such as sessions, daily, weekly, or monthly periods. The second section is the on‑side profiles, which are anchored to either the right or left side of the chart and are calculated based on a specified number of days.

  • Start using TPO Profile now to elevate your strategy, sharpen your entries, and trade with context instead of guesswork.
  • Download now and uncover the hidden zones of price acceptance and rejection and learn how time reveals true market structure.

See similar products also:

Adjustment of parameters:

On-Chart Profiles:

In the “On‑Chart” section, you can configure a range of input parameters to customize how profiles are displayed :

metatrader tpo indicator input parameters onchart
  • Enable on chart profiles
  • Profile Display Mode: Lines/Solid/Gradient/Bars/Outline (as shown on the below)
  • Profile Alignment: Right/Left
  • Profile Periods: Session/Daily/Weekly/Monthly
  • Show Volume Text
  • Number of Price Steps: Number of horizontal divisions of profile
  • VA Percentage: Percentage of Value Area
  • Number of Profiles (Sessions)
  • Session Start Time
  • Session End Time
metatrader tpo time price opportunity profile indicator display modes

Side Profiles:

The “On‑Side” section includes several input parameters:

metatrader tpo indicator input parameters onside
  • Enable on side profiles
  • Volumes: Tick or Real Volumes — If you choose to use real volumes, ensure that real volume data is available for the selected symbol.
  • Profile Display Mode: Lines/Solid/Gradient/Bars/Outline (as shown on the above)
  • Profile Alignment: Right/Left
  • Number of Days: Number of days included in profile calculation
  • Number of Price Steps: Number of horizontal divisions of profile
  • VA Percentage: Percentage of Value Area
  • Profile Size (% of Chart Width)

Visual Settings:

A comprehensive set of visual settings is available, allowing you to adjust profile colors, size, thickness, and more.

metatrader tpo indicator input parameters visual

Note:

If you want to display multiple sessions in a single day, show histograms on both the left and right sides of the chart, or overlay two or more histograms at once, simply attach additional instances of the indicator to the chart with different settings.

About TPO Profile:

General Usage of TPO Profile:

Market Balance Analysis
TPO Profile shows where the market spends the most time, highlighting areas of price acceptance.

Support & Resistance Mapping
Price levels with extended TPO activity often act as strong support or resistance zones.

Value Area & POC Confirmation
Use VA and POC levels to confirm trade setups and improve entry/exit precision.

Session & Multi‑Day Analysis
Break down market behavior by session, daily, weekly, or monthly profiles to align short‑term and long‑term strategies.

Institutional Methodology
TPO analysis is widely used by professional traders. This indicator brings institutional‑grade Market Profile concepts into MT4/MT5.

Benefits of Using TPO Profile:

Clarity in Market Structure
See where the market is balanced versus where it rejects price levels.

Improved Trade Planning
Align trades with VA and POC levels for more precise entries and exits.

Risk Management
Set logical stop‑loss and take‑profit levels based on TPO distributions.

Example Scenarios:

Intraday Trading: A trader sees price consolidating around the session’s POC and prepares for a breakout.

Swing Trading: Weekly TPO shows a value area forming at resistance. The trader waits for rejection before shorting.

Risk Control: Stops are placed outside the Value Area, reducing the chance of being caught in noise.

Buffers for Developers:

Developers can integrate the available buffers into custom dashboards, indicators, or Expert Advisors. The following table lists the buffer numbers along with their corresponding contents.

Buffer Index Shift Value Description
0 0 ~ N-1 Prices of Latest On-Chart Profile
1 0 ~ N-1 Equivalent Volumes of Latest On-Chart Profile
2 0 ~ N-1 Prices of Latest On-Side Profile
3 0 ~ N-1 Equivalent Times of Latest On-Side Profile
4 0 POC of Latest On-Chart Profile
5 0 VAL of Latest On-Chart Profile
6 0 VAH of Latest On-Chart Profile
7 0 POC of Latest On-Side Profile
8 0 VAL of Latest On-Side Profile
9 0 VAH of Latest On-Side Profile

Notes :
N represents the number of price steps, which defines the accuracy of the profile.
Only the buffers from the most recent profile are available.

Examples and Code Snippets:

Calling most recent TPO profile values (MT4)
for( i=0; i<N; i++)
{
    TPO_onChart_Price[i]=iCustom(Symbol(),Period(),"TPO Profile MT4",.....inputs......,0,i);
    TPO_onChart_Times[i]=iCustom(Symbol(),Period(),"TPO Profile MT4",.....inputs......,1,i);
    TPO_onSide_Price[i]=iCustom(Symbol(),Period(),"TPO Profile MT4",.....inputs......,2,i);
    TPO_onSide_Times[i]=iCustom(Symbol(),Period(),"TPO Profile MT4",.....inputs......,3,i);
}
TPO_onChart_POC=iCustom(Symbol(),Period(),"TPO Profile MT4",.....inputs......,4,0);
TPO_onChart_VAL=iCustom(Symbol(),Period(),"TPO Profile MT4",.....inputs......,5,0);
TPO_onChart_VAH=iCustom(Symbol(),Period(),"TPO Profile MT4",.....inputs......,6,0);
TPO_onSide_POC=iCustom(Symbol(),Period(),"TPO Profile MT4",.....inputs......,7,0);
TPO_onSide_VAL=iCustom(Symbol(),Period(),"TPO Profile MT4",.....inputs......,8,0);
TPO_onSide_VAH=iCustom(Symbol(),Period(),"TPO Profile MT4",.....inputs......,9,0); 
Calling most recent TPO profile values (MT5)
int handleTPO=iCustom(Symbol(),Period(),"TPO Profile MT5",.....inputs......);
if( handleTPO==INVALID_HANDLE ) Print("Invalid Handle for Indicator. Err : ",GetLastError());

int nbuf;

nbuf=CopyBuffer(handleTPO,0,0,N,TPO_onChart_Price);
if( nbuf!=N ) Print("Copy Buffer Err : ",GetLastError());

nbuf=CopyBuffer(handleTPO,1,0,N,TPO_onChart_Times);
if( nbuf!=N ) Print("Copy Buffer Err : ",GetLastError());

nbuf=CopyBuffer(handleTPO,2,0,N,TPO_onSide_Price);
if( nbuf!=N ) Print("Copy Buffer Err : ",GetLastError());

nbuf=CopyBuffer(handleTPO,3,0,N,TPO_onSide_Times);
if( nbuf!=N ) Print("Copy Buffer Err : ",GetLastError());

nbuf=CopyBuffer(handleTPO,4,0,1,TPO_onChart_POC);
if( nbuf!=1 ) Print("Copy Buffer Err : ",GetLastError());

nbuf=CopyBuffer(handleTPO,5,0,1,TPO_onChart_VAL);
if( nbuf!=1 ) Print("Copy Buffer Err : ",GetLastError());

nbuf=CopyBuffer(handleTPO,6,0,1,TPO_onChart_VAH);
if( nbuf!=1 ) Print("Copy Buffer Err : ",GetLastError());

nbuf=CopyBuffer(handleTPO,7,0,1,TPO_onSide_POC);
if( nbuf!=1 ) Print("Copy Buffer Err : ",GetLastError());

nbuf=CopyBuffer(handleTPO,8,0,1,TPO_onSide_VAL);
if( nbuf!=1 ) Print("Copy Buffer Err : ",GetLastError());

nbuf=CopyBuffer(handleTPO,9,0,1,TPO_onSide_VAH);
if( nbuf!=1 ) Print("Copy Buffer Err : ",GetLastError()); 

Need Help?

Here are some helpful resources. If you have questions or need assistance, feel free to contact us. You can submit a support ticket or leave a comment. we’ll respond as quickly as possible.

Screenshots

Pricing

New Offer Every 6 Hours up to 50%. Follow.

Testing is free. How to do?

6 Months

6 Months of unlimited use

3 Accounts Activation

Full Support

Free Updates

$ 30.00

1 Year

1 Year of unlimited use

4 Accounts Activation

Full Support

Free Updates

$ 45.00

Lifetime

Unlimited use, forever

5 Accounts Activation

VIP Support

Free Updates

$ 60.00

Comments

4.5 81 votes
Product Rating
23 Comments
Newest
Oldest
azmechanical319-gmail
azmechanical319-gmail
Member
June 24, 2026 6:55 pm

Does TPO Profile highlight breakout zones?

yaadman2
yaadman2
Member
June 16, 2026 10:16 am

An indicator that completely is different from all other indicators. I like this. Pretty developed.

xencapital
xencapital
Member
May 11, 2026 9:38 am

Does TPO Profile automatically adjust for different trading sessions (e.g., London, New York)?

jeremyjohnston
jeremyjohnston
Member
May 2, 2026 6:31 pm

If you’re looking for simple buy/sell signals, this isn’t it. TPO Profile is for serious traders.

aati82
aati82
Member
April 11, 2026 6:40 pm

Does this indicator show both left and right side histograms?

yoshida3599
yoshida3599
Member
March 7, 2026 4:22 pm

Can I run TPO Profile alongside VPO Profile for combined analysis?

yoshida3599
yoshida3599
Member
Reply to  ATTAdmin
March 10, 2026 4:00 pm

Thanks a lot.

SergeiVolkov
SergeiVolkov
Member
March 4, 2026 9:20 pm

TPO Profile is not for everyone. If you just want simple signals, this isn’t it. But if you’re serious about market structure, it’s worth the learning curve. Once you get it, you’ll never look at candlesticks the same way again.

dennismeyer
dennismeyer
Member
Reply to  SergeiVolkov
April 2, 2026 4:10 pm

Yes, I agree with you.
The tool is powerful and easy, but it takes effort to learn Market Profile concepts. Most of traders are not familiar with market profile such as TPO,VPO.

watcharaphons
watcharaphons
Member
February 24, 2026 4:08 am

Hi,
A question:
What is the main difference between TPO Profile and regular candlestick charts?

albaneselorenzo
albaneselorenzo
Member
February 13, 2026 3:12 pm

Can I see both daily and weekly profiles at the same time?

sergeydzhengani
sergeydzhengani
Member
February 11, 2026 8:16 am

I have a better description in a word :
TPO is the full picture of Time and Price.

loobx
loobx
Member
February 9, 2026 8:09 pm

At first, the overlapping profiles confused me. Once I separated sessions, the clarity improved. A tutorial would help beginners.

jinhee
jinhee
Member
February 2, 2026 5:03 pm

TPO Profile helps to avoid chasing price. I wait for time based acceptance before acting, and my discipline has improved.

natfrehel374
natfrehel374
Member
January 30, 2026 1:08 pm

Trading feels calmer when I know where the market is balanced.