Free TPO Market Profile for NinjaTrader 8

Market Profile (TPO) counts time instead of volume: every half hour is a letter (A, B, C…) at every price it traded. Where letters pile up is where the market spent the most time accepting price. NinjaTrader has no TPO, not even with Order Flow+, which only has a volume profile.

We compared it with TradingView's TPO on NQ, with the same rows and periods: the POC matches every day and so does the value area with the TradingView method, which is the default. It calculates from its own 1-minute series, so it draws the same profile on minute, tick, volume or range charts.

  • 100% free
  • Built by El Trader Financiado for the community

Version 1.0 beta · NinjaTrader 8 · .zip to import · also in the pack of all 15 · updated November 3, 2026

Install one language only: if you switch between English and Spanish, delete the ElTraderFinanciado folder first (Documents\NinjaTrader 8\bin\Custom\Indicators).

Using NinjaTrader in Spanish? Versión en español

Finding them useful? Support us with code ETFPROMO

If you're buying a prop firm evaluation, use our code: you pay less and it helps us keep building free tools.

Affiliate links: we earn a commission if you buy through them.See all discounts →
TPO of the ES regular session: a letter per half hour, POC in gold and value area in blue1 / 4
On the chart

What the indicator draws

  • Letters A, B, C… for each period (30 minutes by default), as letters, blocks or a histogram, colored by value area or by period.
  • POC, VAH and VAL of each session (70% value area with the TradingView method or the classic CBOT one).
  • Initial Balance (first hour) as a bar to the left of the profile, plus open and close marks.
  • Single prints highlighted and extended until price returns; poor highs and lows (unfinished auction) as a dashed line.
  • Virgin POCs from previous sessions until price touches them.
  • Developing lines (dPOC, dVAH, dVAL), previous profile lines (pPOC, pVAH, pVAL) and the IB as plots for strategies.
The concept

What the TPO market profile is

Market Profile was created by Peter Steidlmayer at the CBOT in the 1980s. It splits the session into 30-minute periods and puts a letter at every price traded in each period. TPO stands for Time Price Opportunity: each letter is one opportunity of time at that price.

On the chart

What each screenshot shows

  1. 01

    Letters, POC and value area

    Every half hour is a letter at the prices it traded. The row with the most letters is the POC (gold) and the 70% of letters around it is the value area (blue). The orange bar on the left is the Initial Balance.

  2. 02

    Color by period

    Each letter in its own color, from blue in the morning to red at the end of the day: you see at a glance which areas traded early and which late.

  3. 03

    Levels left behind

    Single prints, poor highs and lows and virgin POCs from previous days extend to the right until price comes back to them.

How to use it

How to trade the TPO market profile

The most common uses. Everything is set in the indicator properties.

  • Open relative to yesterday's value area

    Where price opens relative to yesterday's value area gives context for the day.

  • Single prints and unfinished auctions as targets

    Areas the market left half done tend to get revisited later.

What the evidence says

TPO describes how the session's time was spread out; it isn't a signal on its own. The "80% rule" and revisiting single prints are common readings among Market Profile traders, but we don't know of public studies showing they give an edge by themselves.

Settings

Key settings

SettingDefaultWhat it does
SessionAutoRTH on US index futures (ES, NQ, YM, RTY and micros) and full session on everything else. You can force RTH or Full.
Minutes per letter30Length of each period. The classic is 30 minutes.
Row height (ticks)0 (automatic)About 40 rows on a typical day: 5 points on NQ, 2 on ES, 0.02 on CL. Type a number to fix it.
Value area / method70% / TradingViewTradingView adds one row at a time and stops before exceeding 70%. CBOT is the classic Market Profile (two rows at a time) and is usually one row wider.
Initial Balance (minutes)60The first hour: letters A and B with 30-minute periods.
Style / ColorLetters / Value areaBlocks and histogram for compact profiles; color by period to see when each price traded. If letters don't fit, it switches to blocks on its own.
Single prints, poor highs/lows and virgin POCsOnExtended until price returns, from the last 5 sessions.
Takes 2 minutes

How to install ETFTPO in NinjaTrader 8

  1. 1

    Download the .zip and don't unzip it.

  2. 2

    In NinjaTrader 8, from the Control Center: Tools → Import → NinjaScript Add-On… and pick the .zip.

  3. 3

    Accept and wait for it to compile. If you had an earlier version, allow it to overwrite.

  4. 4

    Indicators: on the chart, right-click → Indicators… → ElTraderFinanciado folder. Risk-Reward: right-click → Drawing Tools. Risk Guardian: Control Center → New.

Questions

Frequently asked questions

Does it match TradingView's TPO?

With the same settings (session, 30 minutes, same row height and 70%), the POC matches and so does the value area with the "TradingView" method, which is the default. We checked it on NQ on 3 Nov 2026. To compare, use the same session on both: different sessions mean different letters.

How is it different from a volume profile?

TPO counts time (how many half hours price spent at each level) and a volume profile counts contracts. They're often similar, but not always: a price with heavy volume over a few minutes weighs a lot in a volume profile and little in a TPO.

Do I need Order Flow+ or Tick Replay?

No. It uses a 1-minute series that works with NinjaTrader's free license.

Why can't I see the letters?

They don't fit: with the chart zoomed far out, each letter becomes a colored block. Zoom in, stretch the price scale or raise the row height.

Does it work on daily bars?

No: TPO needs an intraday chart (minutes, seconds, ticks, range, volume, Renko). On daily bars it shows a notice.

Pair it with

More free indicators

See all 15 indicators

The indicators describe what price has done; they don't predict what it will do and they are not investment advice. The risk management tools are an aid: they don't replace your firm's rules or your broker's limits. Only trade futures with money you can afford to lose.