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).
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.
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.
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.
What each screenshot shows
- 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.
- 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.
- 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 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.
Key settings
| Setting | Default | What it does |
|---|---|---|
| Session | Auto | RTH on US index futures (ES, NQ, YM, RTY and micros) and full session on everything else. You can force RTH or Full. |
| Minutes per letter | 30 | Length 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 / method | 70% / TradingView | TradingView 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) | 60 | The first hour: letters A and B with 30-minute periods. |
| Style / Color | Letters / Value area | Blocks 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 POCs | On | Extended until price returns, from the last 5 sessions. |
How to install ETFTPO in NinjaTrader 8
- 1
Download the .zip and don't unzip it.
- 2
In NinjaTrader 8, from the Control Center: Tools → Import → NinjaScript Add-On… and pick the .zip.
- 3
Accept and wait for it to compile. If you had an earlier version, allow it to overwrite.
- 4
Indicators: on the chart, right-click → Indicators… → ElTraderFinanciado folder. Risk-Reward: right-click → Drawing Tools. Risk Guardian: Control Center → New.
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.
More free indicators
Volume Profile
FreeSession volume profile with POC, value area, naked POCs, HVN/LVN nodes and fixed ranges.
Session Levels & Killzones
FreeICT killzones, Asia/Europe/US sessions, PDH/PDL, cash open and close, liquidity sweeps, your own trading hours and the Initial Balance.
VWAP
FreeSession, weekly and monthly VWAP with bands, previous-day VWAP and anchored VWAP with its own bands (Alt + click).
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.