Skip to content
Start My Free Trial
Get the indicators

Every tutorial follows the same flow: overview → getting started → reading it → feature guide → workflows → troubleshooting → FAQ.

Start My Free Trial
Recommended data feed

Every Mirra indicator is designed, tested and optimised for the Accelpix real-time and historical data feed. Accelpix is the recommended data vendor for best performance.

Market Profile · NinjaTrader 8 · Market Analyzer · Tutorial

Mirra Market Profile Scanner — User Tutorial

Rank a whole watchlist by auction structure — build the radar, read the signed values, and open a chart only where it matters.

1master score
45metrics
8day types
100+symbols
01

Overview

The Mirra Market Profile Scanner runs the same auction engine as the Mirra Advanced Market Profile chart, but presents it as sortable columns in NinjaTrader’s Market Analyzer. Instead of opening charts one at a time, you rank an entire watchlist by structure and then open charts only on the names worth your attention.

This tutorial takes you from installation to a working scanner grid, explains every setting and all thirty-two metrics with their use cases, and — crucially — decodes the numbers, because many metrics print coded values rather than prices.

How it fits with the chart

ProductAnswersWhen you use it
Mirra Market Profile ScannerWhich instruments deserve attention right now?First. Every morning, and whenever you want to re-rank the list.
Mirra Advanced Market Profile (chart)What exactly is happening on this instrument?Second. On the two or three names the scanner surfaced.

Because both products share one engine and one set of score weights, a level or day type you see in a scanner column matches the chart exactly — provided four settings are kept identical, which this guide covers.

02

Getting started

Download and install

  1. Download. Sign in and download Mirra Market Profile Scanner from the MirraCharts Downloads page or the Accelpix Downloads page. You receive a single installer file.
  2. Close NinjaTrader completely — the whole platform, not just the chart. Installing while it is running is the most common cause of setup problems.
  3. Run the installer and follow the prompts. It places everything where NinjaTrader expects it.
  4. Start NinjaTrader. The first launch prepares the product automatically and may take a few extra seconds.
  5. Activate your licence. Open Help → About, copy your Machine ID, and email it to [email protected] from your registered address. If settings open but nothing draws, activation is the first thing to check.

Getting started

Five steps to a working scanner. Step 3 is the one that prevents almost every question about “wrong” values — do not skip it.

Step 2 — Create your grid

  1. Open a Market Analyzer window (New → Market Analyzer).
  2. Add your watchlist instruments as rows.
  3. Right-click any column header → Columns… to open the column editor.

Step 3 — Add a Mirra column (and set its data correctly)

  1. In the Columns dialog, add Mirra Market Profile Scanner.
  2. Choose the Metric this column will display — start with MirraScore.
  3. Type a Label for the header, for example “Score”.
  4. Set Data Series → Type: Minute, Value: 1.
  5. Under Time frame set “Load data based on” to Days, with 15–30 days back.
  6. Leave Trading hours on “Use instrument settings” so every symbol follows its own exchange calendar.
  7. Set Exchange preset to your market (or Auto for a mixed watchlist), and click OK.

Step 4 — Add the rest of your columns

  1. Repeat step 3 for each metric you want. A practical grid has six to ten columns — see the ready-made layouts later in this guide.
  2. With your first column configured exactly as you like it, click the preset link at the bottom-right of the Columns dialog and save it as the default, so every future Mirra column opens pre-configured.

Step 5 — Save the grid as a template

  1. Arrange the columns in the order you want to read them.
  2. Right-click the Market Analyzer → Templates → Save As and name it (for example “Mirra Scanner”).
  3. Loading that template later restores every column, metric, label and data setting in one click.

Settings that must match your chart

If you compare a scanner row against the same symbol’s chart, these four settings must be identical in both places, or the two will legitimately disagree.

SettingDefaultWhy it must match
TPO period (minutes)30Defines the time brackets; different brackets produce different day types and Initial Balance.
Value area %70Defines the width of value — directly changes VAH and VAL.
Exchange presetper marketDefines the session window — changes every session-based figure.
Strong delta threshold (%)5Decides when delta counts as strong — changes the score by ±2.
03

Reading it

Several metrics print coded values rather than prices. This section decodes every one. Throughout the scanner a positive number means bullish and a negative number means bearish — so any of these columns can be sorted with the strongest readings collecting at one end.

MirraScore and Signal

ValueMirraScore — the master biasSignal — the simplified band
+5 to +10Strong bullish structure; multiple signals aligned.+2 (score ≥ +4)
+2 to +4Mildly bullish.+1 (score +2 to +3)
−1 to +1Balanced / rotating. No structural edge.0
−2 to −4Mildly bearish.−1 (score −2 to −3)
−5 to −10Strong bearish structure.−2 (score ≤ −4)

The MirraScore is built from eight weighted structural signals — the same weighting the chart’s AI Guidance panel uses:

WeightBullish when…Bearish when…
±2Price is above valuePrice is below value
±2The Initial Balance high is brokenThe Initial Balance low is broken
±2Delta exceeds the strong threshold to the buy sideDelta exceeds it to the sell side
±1The session opened above prior valueIt opened below prior value
±1Value has shifted higher versus the prior sessionValue has shifted lower
±1The POC has migrated upThe POC has migrated down
±1A poor high remains unrepairedA poor low remains unrepaired
±1A strong buy tail (3+ rows) is presentA strong sell tail is present

DayType codes

ValueDay typeWhat it means for trading
0DevelopingThe Initial Balance has not completed yet — no classification available.
1TrendWide range versus IB with value skewed to one end — join, do not fade.
2NormalRange barely exceeds the IB — rotational; fade the extremes.
3Normal VariationModerate extension beyond the IB — the most common day; trade both ways with structure.
4NeutralBoth IB extremes broken — two-sided auction, indecision.
5Neutral ExtremeBoth broken on a wide range — volatile; be selective and size down.
6Double DistributionTwo value zones split by a thin gap — the gap is the decision pivot.
7Non-trendExtremely narrow, undefined auction — usually best left alone.

Directional and event codes

MetricValuesMeaning
IbBreak1 / −1 / 2 / 0IB high broken / IB low broken / both broken / still inside the IB
PocMigration1 / −1 / 0POC moved up / down / unchanged versus the prior session
PoorExtreme1 / −1 / 2 / 0Poor high / poor low / both / neither
PoorRepair1 / −1 / 2 / 0A prior poor high repaired / poor low repaired / both / none
FailedAuction1 / −1 / 2 / 0Failed break at the high / at the low / both / none
BalanceBreak1 / −1 / 0Broke above / below a multi-session balance (only when BalanceDays ≥ 2)
VahSignal1 / −1 / 0Accepted above the VAH (bullish) / rejected at the VAH (bearish) / neutral
ValSignal1 / −1 / 0Rejected at the VAL and bounced (bullish) / accepted below it (bearish) / neutral
SingleRetest1 / 0Price is currently retesting an open single-print zone / it is not
Tailssigned countPositive = buy-tail rows at the low; negative = sell-tail rows at the high; 0 = none of note

Measured values

MetricUnitsHow to read it
VPOC / VAH / VALpriceActual price levels of the POC and the value-area boundaries
PxVsPocTicksticks, signedPositive = price above the POC. Large values mean price is stretched from value
RangePosPct0 to 100Where price sits in the session range: 0 = at the low, 100 = at the high
VaOverlapPct0 to 100Overlap between today’s value area and yesterday’s. Low = value shift and initiative
DeltaPctpercent, signedNet aggressive buying minus selling as a share of volume
RangeExtXIbmultipleSession range ÷ IB range. 1.0 = no extension; 2.0+ indicates trend behaviour
SessionVolumeshares or lotsTotal session volume — in lots on F&O when Lot size mode detects one
NakedPocAbove / Belowprice (0 = none)Price of the nearest untested prior-session POC above and below current price
NakedPocCountcountHow many untested naked POCs remain in the retained history
SinglePrintscountHow many open single-print zones exist in the current session
BalanceDayscountConsecutive sessions the market has been balancing. Higher = more coiled
WeeklyPocDist / MonthlyPocDistticks, signedDistance to the weekly / monthly composite POC. Positive = the POC is above price
CompositeHvnDist / LvnDistticks, signedDistance to the nearest composite high- / low-volume node
SessionCoveragePct0 to 100How much of the current session your column received. 100 = healthy; below 100 = load more days
04

Feature guide

The ten settings

These appear under “01. Scanner Settings” in each column’s properties. They are set per column, so a saved template is the practical way to keep them consistent.

Metric

32 options · default MirraScore
What it does
Selects which single value this column displays — from the master MirraScore to any of the thirty-one detailed metrics.
Use case
One column shows one metric, so add the Mirra column once per metric you want.
Why it matters
You build exactly the grid your strategy needs, and every column stays sortable and alert-capable.

Exchange preset

22 presets + Auto
What it does
Sets the trading-session window used to bound every profile: NSE/BSE, MCX, US equities, CME RTH and Globex ETH, UK, Euronext, Xetra, SIX, Japan, Hong Kong, China, Korea, Taiwan, Australia, Singapore, Canada, Saudi Arabia, Brazil, crypto and forex. Sessions crossing midnight are handled correctly.
Use case
Set to the market your watchlist trades; Auto is best for a mixed list because each symbol follows its own calendar.
Why it matters
Correct sessions mean correct POC, value area, IB and day type — every metric depends on this.

TPO period (minutes)

default 30
What it does
Minutes represented by one TPO bracket when building each profile.
Use case
Keep at 30 and identical to your chart.
Why it matters
Day types and scores match between scanner and chart exactly.

IB sub-periods

default 2
What it does
How many TPO periods form the Initial Balance. Two at a 30-minute TPO equals the first hour.
Use case
Keep at 2 for the classic definition; set 1 on fast markets.
Why it matters
Controls when IbBreak and RangeExtXIb become meaningful, and contributes ±2 to the score.

Value area %

default 70
What it does
The share of activity defining the value area, expanded from the POC by the standard two-row method.
Use case
Seventy percent is the accepted standard; change only if your methodology uses another figure — and change it on the chart too.
Why it matters
Your VAH and VAL match what other professionals watch, so reactions at the edges are shared.

Auto row size

on by default
What it does
Sizes each symbol’s price rows automatically from its own average daily range — the identical formula the chart uses.
Use case
Leave it on for any watchlist.
Why it matters
One scanner handles a mixed watchlist correctly: a ₹200 stock and Bank Nifty are each profiled at a sensible resolution with no per-symbol tuning.

Ticks per row (manual)

integer
What it does
Fixes each price row to an exact tick count. Applies only when Auto row size is off.
Use case
Single-instrument scanners, or watchlists of very similar instruments.
Why it matters
A provably identical grid across all rows when a study demands it.

Strong delta threshold (%)

default 5
What it does
How large the session delta must be before it counts as “strong” and contributes ±2 to the MirraScore.
Use case
Raise it to demand more conviction on noisy instruments. Keep equal to the chart’s setting of the same name.
Why it matters
The scanner’s definition of “buyers dominant” matches yours — and matches the chart.

Lot size mode

AutoDetect · Manual
What it does
How the F&O contract lot is obtained. AutoDetect learns from live trade sizes and re-learns after exchange revisions; on equities it resolves to 1 automatically.
Use case
Leave on AutoDetect.
Why it matters
SessionVolume reads in lots across your whole F&O watchlist with no lot table to maintain.

Lot size (manual)

integer
What it does
The contract lot applied when Lot size mode is Manual.
Use case
Historical-only scans where live trade sizes are unavailable for detection.
Why it matters
Lot-based figures stay correct when automatic detection has nothing to learn from.

Metrics · Core bias & value

Core bias

MirraScore

−10 to +10
What it does
The master auction bias score, combining eight weighted structural signals.
Use case
Your primary ranking column — sort descending for the strongest bullish structures, ascending for bearish.
Why it matters
One number ranks an entire watchlist by structural quality; this is the column to sort by every morning.

Signal

−2 to +2
What it does
The MirraScore compressed into five bands.
Use case
Ideal for cell colouring and for alert conditions such as “Signal crosses above 1”.
Why it matters
A stable band instead of a moving number — fewer false alert triggers.

DayType

0 to 7
What it does
The auto-classified character of the session (see the decode table).
Use case
Filter for the day types your strategy handles.
Why it matters
Tells you which playbook applies — and above all warns you off fading a trend day.

Value & location

VPOC

price
What it does
The volume Point of Control — the most-traded price of the session.
Use case
The single most important reference price per symbol; compare with last price.
Why it matters
Instantly see whether each instrument is accepting or rejecting value.

VAH · VAL

price
What it does
The value-area high and low — the boundaries of accepted trade.
Use case
Two columns give you the full value range per symbol.
Why it matters
The session’s decision points, visible across the whole watchlist without opening a chart.

PxVsPocTicks

ticks, signed
What it does
How far current price sits from the POC, in ticks.
Use case
Sort to find symbols stretched far from value, or hugging it.
Why it matters
Normalised in ticks, so it compares fairly across instruments of very different prices.

RangePosPct

0 to 100
What it does
Where price sits within the session’s range.
Use case
Combine with MirraScore to separate strength at the highs from exhaustion at the highs.
Why it matters
Find symbols trading at the top or bottom of their day at a glance.

VaOverlapPct

0 to 100
What it does
How much today’s value area overlaps the previous session’s.
Use case
Watch for low overlap readings.
Why it matters
One of the earliest signs of a genuine value shift — often visible before price has travelled far.

Metrics · Momentum, magnets & quality

Initiative & momentum

IbBreak

1 / −1 / 2 / 0
What it does
Whether the session has broken its Initial Balance high, low, both, or neither.
Use case
Filter for non-zero values to find symbols that have just extended their range.
Why it matters
Catches the first genuine directional signal of the day, across every symbol at once.

RangeExtXIb

multiple
What it does
The session range as a multiple of the Initial Balance range.
Use case
Look for values above 1.5 alongside a strong score.
Why it matters
Confirms trend behaviour already in motion rather than a guess about it.

DeltaPct

percent, signed
What it does
Net aggressive buying minus selling, as a percentage of session volume.
Use case
Compare against price location.
Why it matters
Reveals who is in control beneath the price — strong positive delta at the lows often signals absorption and a reversal.

PocMigration

1 / −1 / 0
What it does
Whether the POC has moved up or down versus the prior session.
Use case
Use as a directional filter.
Why it matters
Fair value itself trending — one of the cleanest filters available because it ignores intraday noise.

SessionVolume

shares or lots
What it does
Total volume for the session, in lots on F&O instruments.
Use case
Spot unusual participation.
Why it matters
A volume surge alongside a strong score is far more convincing than either signal alone.

Multi-day magnets

NakedPocAbove · NakedPocBelow

price (0 = none)
What it does
The nearest untested prior-session POC above and below current price.
Use case
Use as ready-made targets and reaction levels.
Why it matters
The most reliable multi-day magnets in profile trading — on every symbol, without opening a chart.

NakedPocCount

count
What it does
How many untested naked POCs remain in the retained history.
Use case
Compare across the watchlist.
Why it matters
A high count means a market with clear structural pull rather than one trading in a vacuum.

WeeklyPocDist · MonthlyPocDist

ticks, signed
What it does
Distance from price to the weekly and monthly composite POCs.
Use case
Use for swing context and for intraday trades taken in their direction.
Why it matters
Higher-timeframe fair value on every symbol at once — strong support and resistance.

CompositeHvnDist · CompositeLvnDist

ticks, signed
What it does
Distance to the nearest composite high- and low-volume node across recent sessions.
Use case
Plan where a move should pause and where it should run.
Why it matters
HVNs are multi-day acceptance shelves; LVNs are thin zones price accelerates through.

Auction quality

PoorExtreme

1 / −1 / 2 / 0
What it does
Flags a poor (flat, unfinished) high or low on the current session.
Use case
Check before fading any extreme.
Why it matters
A poor high is a weak ceiling — this column stops you shorting into a level likely to give way.

PoorRepair

1 / −1 / 2 / 0
What it does
Flags when a prior poor extreme has since been revisited and completed.
Use case
Use to know when a magnet has been satisfied.
Why it matters
Tells you the unfinished business is done — that pull is no longer a reason to hold a position.

VahSignal · ValSignal

1 / −1 / 0
What it does
The live reaction state at each value edge — acceptance beyond it, or rejection from it.
Use case
Excellent alert candidates: alert when VahSignal crosses above 0.
Why it matters
Catch the exact moment a value edge is being accepted (breakout) or rejected (fade).

SinglePrints · SingleRetest

count · 1 / 0
What it does
How many open single-print zones exist, and whether price is retesting one right now.
Use case
SinglePrints finds symbols with open targets; SingleRetest tells you which are being tested now.
Why it matters
Single prints tend to get filled — these two columns find the opportunity and its timing.

Tails

signed row count
What it does
The dominant tail at the extremes — positive for a buy tail at the low, negative for a sell tail at the high, magnitude = number of single-TPO rows.
Use case
Use to judge which extreme is trustworthy.
Why it matters
Shows where responsive traders defended aggressively — high-quality reference points for stops.

Structure & data health

BalanceDays

count
What it does
How many consecutive sessions the market has been balancing within a common range.
Use case
Sort descending to find the most coiled symbols before they move.
Why it matters
The longer the balance, the more significant the eventual break.

BalanceBreak

1 / −1 / 0
What it does
Fires when price breaks out of a multi-session balance area.
Use case
The single best column to attach an alert to.
Why it matters
Balance-area breakouts are among the highest-quality directional setups in profile trading.

FailedAuction

1 / −1 / 2 / 0
What it does
Flags a break of a reference level that immediately reverses back inside.
Use case
Combine a failed high with a negative score for high-conviction shorts.
Why it matters
Failed breakouts frequently run hard in the opposite direction.

SessionCoveragePct

0 to 100
What it does
The percentage of the current session this column’s data series actually delivered.
Use case
Keep one of these columns in every grid and check it reads 100.
Why it matters
Your data health check — the first column to look at if anything seems wrong, and it explains most “wrong value” reports instantly.
05

Workflows

Ready-made column layouts

Four proven grids. Add one Mirra column per metric listed, sort by the first, and save the result as a Market Analyzer template.

LayoutColumnsWhat you are looking for
Daily triage — the everyday gridMirraScore, Signal, DayType, VPOC, VAH, VAL, IbBreak, SessionCoveragePctSort by MirraScore; confirm coverage reads 100; open charts on the top two or three names each way.
Momentum hunterMirraScore, IbBreak, RangeExtXIb, DeltaPct, PocMigration, SessionVolumeA strong score with IbBreak non-zero and RangeExtXIb above 1.5 — already extending with conviction behind it.
Mean-reversion & fadeMirraScore, PxVsPocTicks, RangePosPct, PoorExtreme, VahSignal, ValSignal, TailsLarge PxVsPocTicks with a rejection signal at the value edge, or a poor extreme with a tail against it.
Swing & magnet mapMirraScore, NakedPocAbove, NakedPocBelow, WeeklyPocDist, MonthlyPocDist, BalanceDays, BalanceBreakCoiled markets and the higher-timeframe levels they are likely to travel toward once they release.

Setting an alert on any column

  1. Right-click the column header → Alerts.
  2. Choose the condition and value (see the table below).
  3. Pick a sound and, if you wish, restrict the alert to specific hours.
  4. Alerts fire per instrument, so one condition monitors your entire watchlist.
Alert onConditionTells you
MirraScoreCrosses above 6A symbol has just developed strong bullish confluence
MirraScoreCrosses below −6Strong bearish confluence
BalanceBreakNot equal to 0A multi-session balance has just released
IbBreakNot equal to 0The first directional signal of the day has fired
FailedAuctionNot equal to 0A breakout has just failed — potential reversal
SessionCoveragePctLess than 100A data problem, before it misleads you

A practical morning routine

  1. Open the Market Analyzer and load your saved Mirra template.
  2. Glance at the SessionCoveragePct column — every row should read 100.
  3. Sort by MirraScore descending, note the top names; sort ascending, note the bottom names.
  4. Check DayType on those names once the Initial Balance completes — avoid fading anything showing 1 (Trend).
  5. Open the Mirra chart on your two or three best candidates for the full structural picture and the AI Guidance read.
  6. Leave alerts running on BalanceBreak and IbBreak so the scanner keeps watching the rest of the list for you.
06

Troubleshooting

SymptomMost likely causeFix
Values differ from the chartThe column loads too few bars, or a setting differsCheck SessionCoveragePct reads 100; match TPO period, Value area %, Exchange preset and delta threshold to the chart
IbBreak always 0 and scores look two points lowThe column’s data starts after the first hour, so no IB formedSet “Load data based on” to Days with 15–30 days back
SessionVolume much lower than the chartSame cause — the morning’s volume was never receivedAs above; confirm with SessionCoveragePct
Multi-day columns are empty or zeroNot enough history loaded yet, or too few days backRaise days back to at least 15 and give the analyzer a moment to process
DayType stays 0The Initial Balance has not completedNormal before the first hour finishes; if it persists, check coverage
A column header will not take a labelThe column was configured under an older buildRemove the column, restart NinjaTrader completely, then add it again and type the label
Prices look wrong after a reconnectStale state from before a data reloadFixed in current builds — make sure you are running the latest file from Accelpix
Nothing appears at allLicence not yet active for this machineSend your Machine ID (Help → About) to [email protected]
FAQ

Common questions

Values differ from the chart?

Check SessionCoveragePct reads 100; match TPO period, Value area %, Exchange preset and delta threshold to the chart (The column loads too few bars, or a setting differs)

IbBreak always 0 and scores look two points low?

Set “Load data based on” to Days with 15–30 days back (The column’s data starts after the first hour, so no IB formed)

SessionVolume much lower than the chart?

As above; confirm with SessionCoveragePct (Same cause — the morning’s volume was never received)

Multi-day columns are empty or zero?

Raise days back to at least 15 and give the analyzer a moment to process (Not enough history loaded yet, or too few days back)

DayType stays 0?

Normal before the first hour finishes; if it persists, check coverage (The Initial Balance has not completed)

A column header will not take a label?

Remove the column, restart NinjaTrader completely, then add it again and type the label (The column was configured under an older build)

Ready to run Market Profile Scanner on your charts?

Download from either page, then send your Machine ID (Help → About in NinjaTrader) to [email protected] to activate. Every Mirra scanner is exclusive to Accelpix Live Data subscribers, and is designed, tested and optimised for the Accelpix real-time and historical feed — the recommended data vendor for best performance.

On this page
How it fits with the chartDownload and installGetting startedStep 2 — Create your gridStep 3 — Add a Mirra column (and set its data correctly)Step 4 — Add the rest of your columnsStep 5 — Save the grid as a templateSettings that must match your chartMirraScore and SignalDayType codesDirectional and event codesMeasured valuesThe ten settingsMetrics · Core bias & valueCore biasValue & locationMetrics · Momentum, magnets & qualityInitiative & momentumMulti-day magnetsAuction qualityStructure & data healthReady-made column layouts