Project Description

Unstacked TPO Chart Indicator

Latest Update:
Version 1.02 – 2018-12-28

A TPO chart offer a different, yet powerful way for performing market analysis. You have probably seen the stacked version of a TPO chart albeit under a different name – Market Profile® [1]. It was developed by J.Peter Steidlmayer, a Chicago Board of Trade (CBOT) trader. You can find a lot of information including the Marketprofile Handbook at the CME educational websites.

This indicator plots an unstacked TPO chart. TPO stands for Time-Price-Opportunity. The charts are constructed the following way. Each day is divided into equal time brackets. By default these brackets are 30 minutes long. You can change this via an input to shorten or lengthen the brackets. A character is now assigned for each time bracket.
By default the indicator will start with A and with the next 30 minute bracket switch to letter B. In case the session starts at 720, the next bracket will begin at 730. You can customize the letters used for the brackets via an input, too.

The code uses some new PowerLanguage reserved words, so you can take advantage of the new millisecond precision in Multicharts.
The indicator comes with a modified CurrentSession function. The characters for the TPO chart will start over at a session change.


  • BracketLengthInMinutes – The length in minutes for each bracket, starting at midnight. The default value is 30 for 30 minutes.
  • TextColor – The color input for the TPO chart
  • OpenColor – The open for each session will be market with a “>”, you can change its color with this input
  • CloseColor – The close is market in the same way with a “<”. You can change the color with this input.
  • TextSize – The input for the text size used for the TPO chart
  • TextFont – Multicharts offers the ability to use all text fonts installed in your Windows OS.
  • HorizTxtPl – This input lets you specify the horizontal text placement for the TPOs relative to the underlying bar:
0 – to the right of the specified bar,
1 – to the left of the specified bar
2 – centered on the specified bar
  • VertTxtPl – The corresponding input for the vertical text placement:
0 – below the specified price value
1 – above the specified price value
2 – centered on the specified price value
  • StringToUse – With this input you have full control over the characters used for the TPO chart. The first character in this input will be used for the first bracket in the session. With the default input (“ABCDEFGHIJKLMNOPQRSTUVWXYZ”) this means for a market opening at 830, the first bracket will be labeled with an A.
  • LockText – Multicharts offers the ability to lock text and trendlines drawn by studies, so you can’t move them by mistake. If LockText = false the locking will be disabled.
  • DrawBracketOnOneBar – This input gives you the ability to plot the bracket on one bar only. This is helpful if you use a smaller timeframe than the bracket setting or work with Treasuries for example. Assume you are using a 10 minute chart and the BracketLengthInMinutes is 30 minutes. The text for the current bracket will always shift to latest 10 minute bar, but will span over the full bracket. If you set the input to false the study will plot on every bar, but only from high to low for each bar.
  • TextIDs – This input is only used if BracketLengthInMinutes is true. It specifies how many text ids the study will store for each bracket. If the market spans more than the default 100 ticks (as one text id is used per tick) over your bracket period, the study will raise an error. You need to adapt the text id setting then i.e. raise the number.

To receive your free copy for any of our tools simply subscribe to our mailing list. Besides that you will receive free updates and new free tools as soon as they are available. Upon subscription you will receive a mail with a confirmation link to your inbox. Follow the information provided in this mail and you will be able to download a free copy of each tool within seconds. This tool will work with Multicharts 9 and higher, it might not work in earlier versions and it won’t work in Multicharts.NET.

We highly value your privacy and we will never sell or share your information. In case you no longer want to receive information and tools from us for free, we have made unsubscribing easy for you with a link in every mail.

[1]. Market Profile® is a market data product owned by CME Group