ICF Volume Profile Pack for NinjaTrader 8

Volume Profile, On-Screen Profile and TPO Profile for NinjaTrader 8 and 8.1.

Three ways of reading where volume actually traded, sharing one engine, one license and one install.

ICF Volume Profile Pack

One license covers all three indicators.

  • ICF Volume Profile
  • ICF On-Screen Profile
  • ICF TPO Profile

Need it on a second machine? An extra seat is 25% off, from your customer portal once you own the pack.

$349

one-off · 1 seat · lifetime updates

License key by email. NinjaTrader 8 or 8.1 required.

ICF Volume Profile

The distribution of traded volume at every price, built from ticks rather than estimated from bars. Every row is one price increment and its length is what actually traded there — so what you get is the shape of the session rather than a summary of it, and the shape is what separates a price the market accepted from one it merely visited.

Four reading modes share that shape: total volume, buying against selling, the net of the two, or trade count. Every period stays on the chart, so today sits beside the structure it grew out of. On top of it come the layers you choose to switch on — value-area and statistical bands, high and low volume nodes, an aggression overlay, VWAP and TWAP with deviation bands, and up to four composites that each keep their own range, mode and row size.

The levels are the part you keep. Point of control and value area can be extended forward for as many days as you want, in their own colour and line style, so yesterday's structure becomes a reference the market either respects or does not — and the ones price has never come back to can be shown on their own, which is usually the shorter and more interesting list.

New to reading a profile? What POC, untested POC and imbalance actually mean is answered in plain language on our FAQ page.

  • Point of control and value area, extendable forward
  • Volume, buy/sell, delta and tick modes
  • High and low volume nodes
  • VWAP and TWAP with three deviation bands each
  • Up to four independent composites
  • Daily, weekly and monthly periods
  • Heatmap view for comparing many periods on one scale
  • Untested levels shown on their own
  • Per-period statistics: volume, trades, delta and average trade size
Daily volume profiles on a 6E futures chart. Each profile shows green and blue rows beside its bars, with a magenta point-of-control line and labelled value-area high and low. Three composite profiles stand at the right of the chart, with small statistics boxes under several periods.
Daily profiles with the point of control and value-area boundaries carried forward, three composites pinned right, and VWAP and TWAP through the bars. Click to enlarge
The ICF Volume Profile settings window, with mode tabs for Volume, Buy/Sell, Delta and Ticks along the top and a navigator listing Data Source, General, SVA, HVN/LVN, AVO, VWAP/TWAP, Composite, Profile Heatmap, Counterflow Sweep and AI Live Search S/R.
Modes across the top, feature groups down the side — each one its own page, so you set up one idea at a time. Hover to enlarge

User manual & learn more — ICF Volume Profile

ICF-VP
16 topics — Volume at price for every period on the chart — daily, weekly or monthly — drawn beside the bars that produced it, with up to four independent composites alongside.

Volume Profile answers one question for every period on your chart: where did the trading actually happen? Each row of the profile is one price increment and its length is the activity that took place there. What you get is a distribution rather than a line, and the shape of that distribution is what separates a price the market accepted from one it merely visited.

Every period stays on the chart, so today sits next to the structure it grew out of. Four reading modes share the same distribution, which lets you change the question — total activity, which side was lifting, the net of the two, or how many trades it took — without changing anything else you are looking at.

Value area and point of control are on by default. Everything after that is opt-in, and deliberately so: a chart with every overlay switched on at once is a chart nobody can read.

The four reading modes

The same period is drawn four ways, and switching between them changes nothing else on your chart.

  • Volume — total activity per row. The default, and the one that shows structure.
  • Buy/Sell — each row split into the two sides, so you can see which one built a shelf.
  • Delta — the net of the two per row, with the period's largest positive and largest negative rows marked. A shelf built by one side looks very different here than it does in Volume.
  • Ticks — trade count rather than contracts, with its own value area and TPOC. This is where many small trades against a few large ones becomes visible, because volume alone cannot tell those apart.

The value-area boundaries from the Volume reading can stay on screen while you work in another mode, so you do not lose your reference when you change the question.

The same 6E chart in Delta mode. Every profile row is drawn green or red according to which side was net aggressive, so each period shows a mixed green-and-red distribution instead of a single-colour one, with the composites at the right in the same colouring.
Delta mode. The same periods as the overview screenshot, asking a different question: not how much traded at each price, but which side ended up net aggressive there.

Settings Profile Mode Cross-Mode VP Show VP Bounds in Other Modes Show First-Extreme

Period and session anchoring

A profile is only as meaningful as the boundary it is cut on. The period can be Daily, Weekly or Monthly, and the day boundary itself comes from your instrument's trading hours by default — which is the right answer for most instruments, and the wrong one whenever you want a custom session.

Switch the anchor to manual and you set the start time yourself. A daily chart can also carry a two-weekly overlay on top of the daily profiles, with its own colours and line style, when you want the shorter and longer structure at once.

Both the bracket boundary and the anchor mode need the chart reloaded to take effect; the indicator says so rather than half-applying the change.

Settings Period Mode Session Anchor Mode Manual Session Start Two Weekly (Daily overlay) Two Weekly VA Color Two Weekly POC Color

Value area, VPOC, and levels that carry forward

The value area covers the share of the period's activity you choose — 68% by default — and the VPOC marks its busiest row. These are the two levels most traders act on, so they get the most control: line width and style, glow, a coloured zone behind the area, a highlighted POC row, and separate colours for everything.

More useful than the levels themselves is what happens to them afterwards. Extend them and yesterday's value area is drawn forward across today, where it becomes a reference the market either respects or does not. The extension has its own colour, width and style so a carried-forward level never gets confused with a live one, and the number of days it survives is yours to set.

Labels can print the level's name or its price, sit on the left or right, and be plain text or a filled tag.

Settings Show Value Area Value Area % Show POC VA Zone Opacity % Show POC Row Extend VA Lines VA Extend Days VA Extend Style POC Extend Style Show VPOC Glow Show Line Labels (Volume) Line Label Display (Volume) Line Label Position (Volume) Line Label Style (Volume)

Untested levels

A level the market has come back to has been tested; one it has not is still an open reference. The indicator can show only the second kind, which is usually the shorter and more interesting list.

The filter decides how far back a level counts as untested — a day, a week or a month — and the lookback bounds how much history is considered at all, from the last week up to everything loaded. Untested levels get their own line width and style so they read differently from tested ones at a glance.

Settings Show Untest Area (Volume) Show Untest POC (Volume) Untest Filter (Volume) Untest Lookback (Volume) Untest Line Width (Volume) Untest Line Style (Volume)

HVN and LVN — the peaks and valleys of the shape

A high-volume node is a shelf: a price the market kept coming back to, which tends to slow it down on the way past. A low-volume node is the opposite — a gap in the distribution that price often crosses quickly, because there was little there to hold it.

Three controls decide how selective the detection is, and they are worth understanding as a set. Tick Radius sets how wide a neighbourhood a row has to stand out from, so a larger radius returns fewer and more significant nodes. Prominence % sets how far a row must stand out before it qualifies, so raising it thins the list. Smoothing decides how much small-scale noise is ignored before anything is judged, which matters most on thin instruments where a single busy row is not a shelf.

Nodes can be extended forward for a number of days, which is what turns them from a description of the past into a reference for the present.

Settings Show HVN Show LVN Tick Radius Prominence % Smoothing Extend Days HVN Color LVN Color Show Text

SVA — statistical value-area bands

The classic value area is defined by a share of activity: take 68% of it and see where that lands. SVA places a high and a low band using a statistical spread of the distribution instead, so it answers the same question by a different route.

That is precisely why it is worth having. When the two agree you have one boundary confirmed twice; when they disagree the distribution is lopsided in a way a single percentage figure hides. The factor control moves both bands together — smaller for a tighter pair, larger for a wider one — and they extend forward for as many days as you set.

Settings Show SVA SVA StdDev Factor SVA Extend Days SVA High Color SVA Low Color Show Text

AVO — the aggressive-volume overlay

AVO tags the individual rows where one side's aggression stands out from the rest of the period, and prints how far out each one is. In the On-Screen screenshot above they are the labelled rows reading avo-97, avo-100 and so on — the higher the number, the more that row stood apart.

The Deviation Model chooses what "the rest of the period" is measured against: a value-area reference or a statistical one. The two disagree most on unbalanced days, which is usually when it matters. Percent Filter is the volume control — raise it and only the strongest rows survive, lower it and you see the full picture at the cost of a busier chart.

Settings Show AVO Overlay Deviation Model Value Area Level Std Dev Level Percent Filter AVO Buy Color AVO Sell Color Show Text

VWAP and TWAP, with deviation bands

Both are anchored to the period, and both are drawn as a full instrument rather than a single line. Each carries up to three deviation bands with their own factors, colours and styles, and the space between bands can be shaded so the zones read as zones instead of as six more lines.

The difference between the two is worth stating plainly: VWAP weights by volume, TWAP by time. When they separate, activity was concentrated somewhere other than where the clock spent its time — and that separation is information you do not get from either line alone.

Weekly and monthly VWAP and TWAP can run at the same time as the period's own, labels can print on every period or only the current one, and untested VWAP levels can be marked the same way untested value-area levels are.

Settings Show VWAP Show TWAP VWAP Dev1 Factor VWAP Show Dev1 VWAP Show Highlight VWAP Highlight 0-1 VWAP Label All Periods VWAP Show Weekly VWAP Show Monthly VWAP Show Untest VWAP Untest Filter Show TWAP TWAP Dev1 Factor

Composites — up to four, each independent

A composite is a profile over a range you choose rather than over the chart's period, and there are four of them, each configured separately.

The range can be Today, PriorDay, ThisWeek, PriorWeek, ThisMonth, PriorMonth or everything loaded — or an explicit session window with its own start and end time. Placement is pinned to the right, pinned to the left, or drawn across the time span it actually covers.

What makes them genuinely independent is that each one has its own mode and its own row size. A monthly composite at a coarse row size next to a daily profile at one tick is a legitimate and useful setup: the composite shows the shape of the month without the noise, the period profile shows today in full detail. Each can also carry its own POC and value area, VWAP, statistics box and pivots, and auto-padding keeps them from colliding with the bars.

Settings Composite 1 Show Composite 1 Range Composite 1 Place Composite 1 Mode Composite 1 Row Size Composite 1 Session Start Composite 1 Start Time Composite 1 End Time Composite 1 POC/VA Composite 1 VWAP Composite 1 Stats Composite 1 Pivot Composite Auto-Pad Composite Shadow

Profile Heatmap and Period Compare

The heatmap drops the bar length and carries the activity in colour intensity instead. It is the better read when you want structure across many periods at once, because a wall of overlapping bars stops being legible long before a wall of colour does.

Solid shades one colour by intensity; Spectrum runs between a low-volume and a high-volume colour. Period Compare then puts several periods on the same scale — across the visible chart, the last N periods, or month to date — which is the part that matters: without a shared scale every period normalises to its own maximum and a quiet day looks exactly as busy as a heavy one. The floor and contrast controls set where the scale starts and how hard it separates.

A 6E chart where each period is drawn as a heatmap instead of bars. Earlier periods appear as pale and dusky red horizontal bands, while two periods at the end of July are drawn in vivid red, standing out sharply against the rest.
Heatmap with Period Compare on. Because every period shares one scale, the two vivid sessions at the end of July are visibly heavier than the rest — a comparison that disappears the moment each period is scaled to itself.

Settings Profile Heatmap - Enable Profile Heatmap - Color Display Profile Heatmap - Low Volume Color (Spectrum) Profile Heatmap - High Volume Color (Spectrum) Period Compare Period Compare - Scope Period Compare - Last N Periods Period Compare - Floor % Period Compare - Contrast

Counterflow Sweep

Counterflow Sweep marks the places where price pushed through a level while the flow behind the push ran the other way. Those are the moves that most often fail to hold, and finding them after the fact on a bare chart is slow work.

It can draw a zone, a line, or both, shaded by how pronounced the event was so the strong ones stand out from the marginal ones. The minimum-divergence control sets the bar for what gets marked at all; the lookback bounds how far back it searches; and it can be restricted to sweeps that have not been retested since, which is usually the list you actually want. Marks can persist to the current bar so a level found last week is still in front of you today.

Settings Counterflow Sweep - Enable Counterflow Sweep - Session Counterflow Sweep - Show Zone Counterflow Sweep - Zone Shape Counterflow Sweep - Show Line Counterflow Sweep - Lookback Counterflow Sweep - Min Divergence Counterflow Sweep - Untested Only Counterflow Sweep - Persist To Now Counterflow Sweep - Strength Shade

AI Live Search S/R

Two independent detectors scan the loaded data and mark support and resistance bands on the chart: Find Hidden Aggressor and ZiroBig. They look for different things, so they are separately switchable — run one, the other, or both, and each keeps its own colours for the support and the resistance side plus its own band opacity.

Each has a sensitivity factor that governs how much evidence a band needs before it is drawn. Turn it up and you get fewer, stronger bands; turn it down and you get a fuller map with more to sift through. ZiroBig additionally has a tolerance setting for how tightly its candidates must line up before they are treated as one band rather than several.

These are chart-wide levels rather than per-period ones, so they persist as you scroll and are meant to be left on.

Settings Find Hidden Aggressor Active Find Hidden Aggressor Factor a Find Hidden Aggressor S/R S Find Hidden Aggressor S/R B Find Hidden Aggressor Level ZiroBig Active ZiroBig Factor a ZiroBig Tolerance % ZiroBig S/R S ZiroBig S/R B ZiroBig Level

Chart Details — the per-period statistics box

Under each profile sits a compact box of that period's figures. Every line can be shown or hidden and coloured on its own, so you can keep the two you actually use and drop the rest.

  • ΣV — total volume for the period.
  • ΣT — number of trades.
  • ΔV — volume delta, the net of the two sides.
  • ΔT — tick delta, the same net counted in trades.
  • ATS — average trade size, ΣV divided by ΣT. The quickest read on whether a session was moved by size or by crowd.
  • UV and UT — the volume and trades that could not be attributed to either side. Worth watching: a large unknown figure means the sided readings on that period rest on less than the whole.
  • % — change across the period.

Positive and negative values take separate colours, and the delta line can carry its own background so it reads at a glance.

Settings Chart Details - Show Chart Details - Show ΣV (Sigma Volume) Chart Details - Show ΣT (Sigma Tick) Chart Details - Show ATS (ΣV/ΣT) Chart Details - Show ΔV (Volume Delta) Chart Details - Show ΔT (Tick Delta) Chart Details - Show UV (Unknown Volume) Chart Details - Show UT (Unknown Ticks) Chart Details - Show % (Percent Change) Chart Details - Text Size Chart Details - Y Offset

Pivots

Standard pivot levels drawn from the period, with the central pivot, the support levels and the resistance levels each taking their own colour, and a shared line width and style. They are off by default — pivots are a reference some traders build their whole session around and others never want on the chart, so nothing is assumed.

Settings Show Pivots Pivot PP Color Pivot S Color Pivot R Color Pivot Line Width Pivot Line Style

Presentation — width, rows and how bars are drawn

Row Size is the setting that most changes how a profile reads. At one tick you get every price the market traded, which is the honest picture and, on a wide-ranging instrument, a noisy one. Larger sizes bin the rows together into a cleaner shape that shows structure rather than detail. Neither is more correct — pick the one that matches what you are looking for.

Profile Display covers the rest: Filled is the solid profile, Hollow draws outlined rows so the bars behind stay visible, Contour reduces the whole thing to a single silhouette, and Off hides the bars while keeping every level, band and overlay you have switched on. That last one is more useful than it sounds — it is how you keep the analysis and give the price action back its space.

Side, width, opacity, outline colour and style, an optional gradient with its own direction and darkening, and automatic text scaling round it out.

Settings Profile Side Profile Width (px) Row Size (ticks) Profile Display Outline Color Outline Width Outline Style Auto Text Scale Bar Gradient - Enable Bar Gradient - Direction Bar Gradient - Darken % Show Text Text Size

Data source and warnings

Everything above rests on what the indicator is fed, so this page is worth reading once before you trust a number.

Tick data gives the most exact profile and costs the most to load; History Depth bounds how far back that happens so a chart with years on it still opens. Where sided data is not available for a bar, the fallback decides whether that bar contributes its volume unsided or not at all — which is the difference between a slightly incomplete profile and a misleadingly confident one.

Leave Show Warnings on. It is what tells you when the picture in front of you was built on less than it should have been, and a silent profile that is quietly wrong is the failure mode worth avoiding.

Settings Data Source Tick Profile (load ticks) History Depth (0 = all) Stabilize Recent Days Bar Volume Fallback Load Ticks Data (historical) Show Warnings

ICF On-Screen Profile

The same profile, drawn for exactly what is on your screen. Scroll or zoom and it rebuilds for the visible range, which is the question a discretionary trader is actually asking: where did volume build up in the move I am looking at.

That makes it the tool for ranges no period setting would ever hand you — a consolidation between two news events, one leg of a move, the hours either side of a level breaking. It carries the same nodes, bands and overlays as the fixed profile and adds a TPO mode, so the whole analysis is available on a window you picked yourself. Daily and last-day anchors are there for when you want the reference to stay put instead of following the viewport.

Every row can print its own figures. In buy/sell mode that is the buying and the selling at each price side by side, which is the fastest way to see the actual balance at a level rather than infer it from the length of a bar. The value area can be recoloured so it reads as a shape instead of two lines — worth more here than anywhere else, because this profile redraws every time you move the chart.

  • Follows the visible chart range
  • Rebuilds as you scroll and zoom
  • Volume, buy/sell, delta and TPO modes
  • Buy and sell figures printed on every row
  • Value-area recolour, nodes, bands and composites
  • SVA bands, HVN/LVN and AVO on the visible range
  • Daily and last-day anchors when you want it fixed
  • Composites with their own candle and delta markers
  • Pivots and the same per-range statistics box
A 6E chart with the On-Screen Profile drawn in cyan at the left edge and a numbered buy-and-sell profile at the right. An orange band and a blue band span the chart, VWAP and TWAP curves run through the bars, and several rows of the right profile carry tags such as avo-97 and avo-100.
Buy/Sell mode: the left profile is the shape, the right one prints the figures. The wide orange and blue bands are the statistical value-area levels. Click to enlarge
The ICF OnScreen Profile settings window with mode tabs for Volume, Buy/Sell, Delta and TPO, period tabs for Daily, LastDay and OnScreen, and a Bars page showing buy and sell colours and a value-area recolour section.
Mode and period are both one click away, because on this indicator you change them constantly. Hover to enlarge

User manual & learn more — ICF On-Screen Profile

ICF-OS
8 topics — One profile for the range you are actually looking at — it rebuilds as you scroll and zoom, so the distribution always describes the window on screen.

Where Volume Profile draws one profile per calendar period, On-Screen Profile draws one profile for a window — and the most useful window is usually the one in front of you. Set the period to OnScreen and the distribution is rebuilt from whatever is currently visible: scroll back to a range, zoom into it, and you have that range's profile without configuring a thing.

The other two periods are fixed references rather than moving ones — Daily for the session in progress and LastDay for the one before it — for when you want the same tool anchored rather than following the viewport.

It carries the same nodes, bands and overlays as the Volume Profile and adds a TPO mode, so the whole analysis is available on an arbitrary range instead of only on a calendar boundary.

The three periods — and why OnScreen is the point

OnScreen rebuilds the profile from whatever is currently visible. Scroll, zoom, and the distribution follows — which means you can profile any range at all simply by looking at it, including ranges no period setting would ever give you: a consolidation between two news events, the leg of a move, the hours either side of a level breaking.

Daily anchors to the session in progress and LastDay to the one before it. Those two are for when you want a stable reference that does not move as you navigate — the same reason you would use the Volume Profile, on one period at a time.

Settings Period Mode Profile Side Profile Width (px)

Four modes, including TPO

Volume, Buy/Sell and Delta work exactly as they do on the Volume Profile, on whatever range is on screen. The fourth is TPO, and having it here is the useful part: it puts a time-based profile on an arbitrary window rather than on a session boundary, so you can ask where the market spent its time inside a range you have picked yourself.

The TPO here can be shown beside the volume profile rather than instead of it, and can put itself on the opposite side of the chart automatically so the two never overlap.

Settings Profile Mode Enable TPO Show Alongside Profile Auto Opposite Side Display Mode Bracket Minutes Letter Size

Per-row numbers

The profile can print its figures on every row — in Buy/Sell mode that is the buy figure and the sell figure side by side, which is what the right-hand profile in the screenshot above is showing. On a liquid instrument this is the fastest way to see the actual balance at a level rather than inferring it from bar lengths.

Text size, colour and padding are yours; automatic scaling keeps the numbers legible as you zoom rather than letting them collide.

Settings Show Text Text Size Text Color Text Padding (px) Auto Text Scale Profile Opacity% Stroke Width Stroke Color

Value area and the value-area recolour

Value area and POC behave as they do on the Volume Profile — a percentage of activity, a highlighted POC row, extendable lines with their own style.

What is specific here is the recolour. Switch it on and the rows inside the value area take different colours from the rest, with separate buy and sell colours and a pair of highlight colours on top. The effect is that the value area stops being two lines you have to keep track of and becomes a shape you see immediately, which matters more on a profile that redraws every time you scroll.

Settings Show Value Area Value Area % Recolor VA VA Opacity VA Color: Buy VA Color: Sell HI Buy Color HI Sell Color Show POC Extend VA Lines VA Extend Days

SVA, HVN/LVN and AVO Method 2

The same three analysis layers as the Volume Profile, applied to the on-screen range.

SVA places its high and low bands on the visible distribution — in the screenshot above they are the wide orange and blue bands running the width of the chart. HVN and LVN mark the shelves and the gaps, with the same radius, prominence and smoothing controls. AVO Method 2 is the aggression overlay in its second form, with the same two deviation models and percent filter.

Because these run on whatever is on screen, they answer a genuinely different question from their Volume Profile counterparts: not "where were the shelves yesterday" but "where are the shelves in the range I am looking at".

A 6E chart with the On-Screen Profile at the left and a green gradient profile at the right. Four blue HVN bands and three red LVN bands run horizontally across the chart, a small delta-style composite labelled C1 H sits in the middle right with its own value-area and POC lines, and R1, R2 and PP pivot levels are marked at the right edge.
HVN bands in blue and LVN bands in red, drawn across the visible range. The small profile labelled C1 H is an hourly composite in Delta mode with its own POC and value area; R1, R2 and PP are the pivots.

Settings Show SVA SVA Factor SVA Extend Days Show HVN Show LVN Tick Radius Prominence % Smoothing Show AVO M2 Overlay Deviation Model Percent Filter

VWAP and TWAP

Both anchored to the chosen period, both with three deviation bands, shading between the bands, glow and label controls — the same instrument as on the Volume Profile. In the first screenshot above they are the orange VWAP and the violet TWAP, and the gap that opens between them through the session is the read: volume concentrated away from where the time was spent.

Settings Show VWAP VWAP Line Color VWAP Dev1 Factor VWAP Show Dev1 VWAP Show Highlight VWAP Label Display Show TWAP TWAP Line Color TWAP Dev1 Factor TWAP Label All Periods

Composites — with candles and delta markers

Four composites again, but with two things the Volume Profile version does not have.

A composite can be drawn with a candle beside it, giving the range it covers a shape as well as a distribution. And in Delta mode it can carry delta markers — the dots and diamonds visible on the C1 H composite in the screenshot above — marking the extremes within the composite, with a choice of marker shape, an optional connector line and a diverging layout.

The ranges here are Today, PriorDay and Hourly, with an hour offset, which suits an indicator you are using to look at a window rather than a calendar period.

Settings Composite 1 Show Composite 1 Range Composite 1 Hour Offset Composite 1 Mode Composite 1 Candle Composite 1 Delta Marks Composite Delta Marker Composite Delta Connector Line Composite Delta Diverging Layout Composite Candle Bull Composite Candle Bear Composite Live Hour Gap

Chart Details and pivots

The same statistics box as the Volume Profile — ΣV, ΣT, ΔV, ΔT, ATS, UV, UT and percent change — here describing the range on screen. In the screenshots above it is the row of figures across the top of the chart.

Pivots are available on the same terms, off by default.

Settings Chart Details - Show Chart Details - Show ΣV (Sigma Volume) Chart Details - Show ATS (ΣV/ΣT) Chart Details - Show ΔV (Volume Delta) Chart Details - Show UV (Unknown Volume) Show Pivots Pivot PP Color Pivot R Color Pivot S Color

ICF TPO Profile

Market Profile in the classic letter form, for traders who read structure by time rather than by volume. The session is cut into brackets, each bracket takes a letter, and that letter is printed at every price the market touched while it ran. A level the market kept returning to shows a long row of letters; one it passed through once shows a single letter — and that single letter is itself the signal.

Read this way the profile shows where the market was comfortable and where it was only travelling, which is a different question from where the volume was and often a different answer. Initial balance, opening range, single prints and poor or excess highs and lows are marked as they form, and the levels worth keeping extend forward until the market does something about them.

The two ways a session can end at an extreme are marked apart, because they mean opposite things. Excess is a clean rejection — the market went, found nothing and left — and it tends to hold. A poor high or low is an extreme finished flat, with no tail, as though it were cut off; those read as unfinished business and are frequently revisited. Both extend forward until something happens to them.

  • Letter-cycle TPO with a configurable bracket
  • Point of control and value area, extendable forward
  • Initial balance and opening range
  • Single prints, including the ones stranded mid-profile
  • Poor highs and lows, and excess
  • Daily, weekly and monthly periods
  • Four display treatments, from letters to plain blocks
  • Untested levels, and TWAP with deviation bands
  • Hide candles and grid lines to quieten the chart
A 30-minute 6E chart showing four TPO session profiles built from stacked letter blocks, each with a yellow point-of-control line and labelled value-area boundaries extending right. Cyan marks flag single prints, dark red boxes mark excess, and Poor High and Poor Low labels sit above and below two profiles.
Four sessions. Yellow is the point of control, blue the value-area boundaries carried forward, cyan flags single prints and the red boxes are excess at the extremes. Click to enlarge
The ICF TPO Profile settings window showing Daily, Weekly and Monthly period tabs and a General and Session/Period page with bracket minutes, letter size, anchor mode and value area percentage.
Bracket length and anchor mode are the two settings that define the profile itself. Hover to enlarge

User manual & learn more — ICF TPO Profile

ICF-TPO
9 topics — Market Profile letters: how long price spent at each level rather than how much traded there — with initial balance, opening range, single prints, poor highs and excess.

TPO builds the session from time instead of volume. The session is cut into brackets, each bracket is given a letter, and that letter is printed at every price the market touched while the bracket was running. A level the market kept returning to shows a long row of letters; a level it passed through once shows a single letter — and that single letter is itself the signal.

Read this way the profile tells you where the market was comfortable and where it was only travelling. That is a different question from where the volume was, and often a different answer — which is exactly why it is worth having both on the same screen.

Brackets, letters and how they are drawn

Bracket Minutes is the setting that defines the profile. It is the length of one time bracket, and therefore how much has to happen before a new letter is printed. Thirty minutes is the classic choice; shorter brackets give a finer profile with more letters, longer ones a coarser read.

How the letters appear is separate. LettersOnly is the traditional look. LettersOnBoxes puts each letter on a coloured cell, which is easier to read at small sizes. BoxesOnly drops the letters and keeps the blocks — the right choice once you stop tracking which bracket was which and only want the shape. MonoWithStroke and BlackWhite are single-colour treatments for when the profile should sit quietly behind the price action.

Changing the bracket length requires a chart reload, and the settings window says so.

Settings Bracket Minutes Letter Size Display Mode Mono Box Color Row Size (ticks) Profile Side Profile Width (px)

Period and session anchoring

Daily, weekly or monthly TPO profiles, anchored either from the instrument's trading hours or from a start time you set yourself. The manual start uses your computer's local time — worth knowing if you trade a session that is not local to you — and changing it requires a reload.

Settings Period Mode Session Anchor Mode Manual Session Start Enable TPO

Value area, TPOC and extensions

The TPO value area covers the share of the session's time you choose, and the TPOC marks the level where the most time was spent. Both extend forward with their own colour, width and style, exactly as the volume levels do — and both are worth carrying, because a level where the market spent time is a different reference from one where it traded size.

The value-area cells can be recoloured so the area reads as a block rather than a pair of lines, and there is an option to step the value area out two levels at a time, which is the convention some Market Profile traders build the area with.

Settings Show VA (TPO) Value Area % (TPO) VA Two Levels at a Time Show POC (TPO) Recolor VA Cells VA Cell Color (TPO) POC Row Color (TPO) Extend VA Lines (TPO) VA Extend Days (TPO) Show TPOC Glow Show TPO Line Labels

Initial Balance and Opening Range

The Initial Balance is the range of the session's opening brackets — the band the market established before the rest of the day had its say. Whether the session later breaks out of it or holds inside is one of the oldest reads in Market Profile, and it is only available if the band is on the chart. Its duration is yours to set, and it can be drawn as a highlighted box or as lines.

The Opening Range is the same idea over a shorter, separately configured window, with its own line and fill. Both are off by default and both are cheap to leave on.

Settings Show IB IB Duration (min) IB Highlight (box) IB Line Width IB Opacity % IB Color Show Opening Range OR Duration (min) OR Line Width OR Line Color OR Fill Color OR Fill Opacity %

Single prints and mid singles

A single print is a price touched in only one bracket — the market went through and did not come back. At the edges of a profile those mark the fast part of a move; and the ones stranded in the middle of a profile are the more interesting case, because they say the market split a range in two without pausing in between.

Mid singles get their own colour, a minimum length so one-off prints do not clutter the chart, an optional highlight band, an extension forward, and a label. The extension is the part that earns its place: an unfilled single print from three sessions ago is a level worth having on the chart when price comes back to it.

Settings Show Single Prints Single Print Color Show Mid Singles Mid Singles Color Mid Singles Min Length Mid Show Highlight Mid Show Extend Mid Ext Color Mid Ext Width Mid Ext Style Show Mid Single Label Extend Single-Print Lines SP Min Tail Length SP Show Highlight SP Show Label

Poor highs, poor lows and excess

These are the two ways a session can end at an extreme, and they mean opposite things.

Excess is a clean rejection — a tail where the market went, found nothing, and left. It tends to hold, and it is drawn as a box at the extreme. A poor high or poor low is the opposite: an extreme the market finished flat against, with no tail, as though it were cut off. Those are widely read as unfinished business and are frequently revisited.

Both have a sensitivity control setting how many increments qualify, and both extend forward so an unfinished extreme stays visible until the market does something about it.

Settings Show Excess Excess Color Excess Min Single Increments Extend Excess Lines Excess Ext Width Excess Ext Style Show Poor High/Low Poor H/L Color Poor H/L Comparison Increments Extend Poor H/L Lines Poor H/L Ext Width Poor H/L Ext Style

Untested levels

The same idea as on the Volume Profile, applied to TPO levels: show only the value-area boundaries and TPOCs the market has not returned to. The filter sets how recent a test counts, the lookback bounds the history considered, and untested levels carry their own width and style so they read apart from the rest.

Settings Show Untest Area (TPO) Show Untest POC (TPO) Untest Filter (TPO) Untest Lookback (TPO) Untest Line Width (TPO) Untest Line Style (TPO)

TWAP

TWAP belongs on this indicator rather than VWAP, and for a reason: TPO is a time-based profile, so a time-weighted average is the line that speaks the same language. Three deviation bands, shading between them, glow, labels and untested marking, all as on the other two indicators.

Settings Show TWAP TWAP Line Color TWAP Line Width TWAP Dev1 Factor TWAP Show Dev1 TWAP Show Highlight TWAP Label Display TWAP Label All Periods TWAP Show Untest

Presentation and the chart around it

TPO takes more room than a volume profile, so this indicator can quieten the chart around it: hide the candles, hide the grid lines, or both, leaving the profile as the thing you are reading. Each is flagged in the settings window as taking a moment to apply.

A last-price arrow can be shown in a colour of your choice so the live price stays findable inside a busy letter field, and label text size is set separately from letter size — the profile and its annotations do not have to scale together.

Settings Hide Candles Hide Grid Lines Show Last-Price Arrow Last-Price Arrow Color Label Text Size Auto Text Scale Highlight Opening Block Opening Block Color VA Range Lines Profile Opacity %

What you need

NinjaTrader 8 or 8.1, and a data feed that provides the tick data these tools read. The pack installs by copying five files into your NinjaTrader folder — there is no NinjaScript archive to import, because compiled vendor assemblies do not install that way.

If NinjaTrader itself is giving you trouble before you get this far, the installing and connecting questions cover the ones we are asked most, and when the platform misbehaves covers the errors that stop it starting.

  • NinjaTrader 8 or 8.1
  • Tick data from your feed
  • Windows
  • One machine at a time, movable from your account

Not sure it fits how you trade?

Tell us what you are trying to read on the chart and we will tell you honestly whether this pack does it.

Ask us