Editors' picksOPEN-SOURCE SCRIPT

Developing Market Profile / TPO [Honestcowboy]

The Developing Market Profile Indicator aims to broaden the horizon of Market Profile / TPO research and trading. While standard Market Profiles aim is to show where PRICE is in relation to TIME on a previous session (usually a day). Developing Market Profile will change bar by bar and display PRICE in relation to TIME for a user specified number of past bars.

What is a market profile?

"Market Profile is an intra-day charting technique (price vertical, time/activity horizontal) devised by J. Peter Steidlmayer. Steidlmayer was seeking a way to determine and to evaluate market value as it developed in the day time frame. The concept was to display price on a vertical axis against time on the horizontal, and the ensuing graphic generally is a bell shape--fatter at the middle prices, with activity trailing off and volume diminished at the extreme higher and lower prices."

For education on market profiles I recommend you search the net and study some profitable traders who use it.

Key Differences
  • Does not have a value area but distinguishes each column in relation to the biggest column in percentage terms.
  • Updates bar by bar
  • Does not take sessions into account
  • Shows historical values for each bar


While there is an entire education system build around Market Profiles they usually focus on a daily profile and in some cases how the value area develops during the day (there are indicators showing the developing value area).

The idea of trading based on a developing value area is what inspired me to build the Developing Market Profile.


🟦 CALCULATION

Think of this Developing Market Profile the same way as you would think of a moving average. On each bar it will lookback 200 bars (or as user specified) and calculate a Market Profile from those bars (range).

🔹Market Profile gets calculated using these steps:
  • Get the highest high and lowest low of the price range.
  • Separate that range into user specified amount of price zones (all spaced evenly)
  • Loop through the ranges bars and on each bar check in which price zones price was, then add +1 to the zones price was in (we do this using the OccurenceArray)
  • After it looped through all bars in the range it will draw columns for each price zone (using boxes) and make them as wide as the OccurenceArray dictates in number of bars


🔹Coloring each column:
The script will find the biggest column in the Profile and use that as a reference for all other columns. It will then decide for each column individually how big it is in % compared to the biggest column. It will use that percentage to decide which color to give it, top 20% will be red, top 40% purple, top 60% blue, top 80% green and all the rest yellow. The user is able to adjust these numbers for further customisation.

The historical display of the profiles uses plotchar() and will not only use the color of the column at that time but the % rating will also decide transparancy for further detail when analysing how the profiles developed over time. Each of those historical profiles is calculated using its own 200 past bars. This makes the script very heavy and that is why it includes optimisation settings, more info below.


🟦 USAGE

My general idea of the markets is that they are ever changing and that in studying that changing behaviour a good trader is able to distinguish new behaviour from old behaviour and adapt his approach before losing traders "weak hands" do.

A Market Profile can visually show a trader what kind of market environment we currently are in. In training this visual feedback helps traders remember past market environments and how the market behaved during these times.

Use the history shown using plotchars in colors to get an idea of how the Market Profile looked at each bar of the chart.

snapshot

This history will help in studying how price moves at different stages of the Market Profile development.

I'm in no way an expert in trading Market Profiles so take this information with a grain of salt. Below an idea of how I would trade using this indicator:

snapshot


🟦 SETTINGS


🔹MARKET PROFILING
  • Lookback: The amount of bars the Market Profile will look in the past to calculate where price has been the most in that range
  • Resolution: This is the amount of columns the Market Profile will have. These columns are calculated using the highest and lowest point price has been for the lookback period


Resolution is limited to a maximum of 32 because of pinescript plotting limits (64). Each plotchar() because of using variable colors takes up 2 of these slots


🔹VISUAL SETTINGS
  • Profile Distance From Chart: The amount of bars the market profile will be offset from the current bar
  • Border width (MP): The line thickness of the Market Profile column borders
  • Character: This is the character the history will use to show past profiles, default is a square.
  • Color theme: You can pick 5 colors from biggest column of the Profile to smallest column of the profile.
  • Numbers: these are for % to decide column color. So on default top 20% will be red, top 40% purple... Always use these in descending order
  • Show Market Profile: This setting will enable/disable the current Market Profile (columns on right side of current bar)
  • Show Profile History: This setting will enable/disable the Profile History which are the colored characters you see on each bar


snapshot


🔹OPTIMISATION AND DEBUGGING
  • Calculate from here: The Market Profile will only start to calculate bar by bar from this point. Setting is needed to optimise loading time and quite frankly without it the script would probably exceed tradingview loading time limits.
  • Min Size: This setting is there to avoid visual bugs in the script. Scaling the chart there can be issues where the Market Profile extends all the way to 0. To avoid this use a minimum size bigger than the bugged bottom box
breadthindicatorsliquiditymarketprofilemarketsentimentmarketstructuresentimentSupply ZoneSupport and ResistancesupportandresistancezonesTrend Analysistrendtradingvolatilty

Open-source script

In true TradingView spirit, the author of this script has published it open-source, so traders can understand and verify it. Cheers to the author! You may use it for free, but reuse of this code in publication is governed by House rules. You can favorite it to use it on a chart.

Want to use this script on a chart?


✅ Learn how I trade as a FUND MANAGER with my private indicators here.

Website —> honestalgo.com
Website —> honestalgo.com
Website —> honestalgo.com

FREE telegram channel —> t.me/honestalgo
Also on:

Disclaimer