HOW-TO: check what your scanner is actually ranking on
A scanner is a leaderboard. Something decides the order, and it is usually not the thing you are reading.
This is our own multi-timeframe scanner, and this is what actually sorts it. Four things, none of them visible in the table.
First, what it does that most scanners do not
It tells you why it is silent. When a row has no signal it names the missing condition instead of going blank: waiting on the MACD cross, waiting on volume, waiting on ADX, price extended, stop hit, stale. Twelve of them. A scanner that says "waiting on volume" is teaching you the setup. One that shows an empty list is a black box.
And the gate is genuinely strict. For a signal to fire, ten conditions have to be true at once: a MACD cross, trend alignment, price the right side of the 200 EMA, ADX above its floor, RSI not at an extreme, price not overextended, a volume spike, histogram amplitude, momentum agreement, and a quality score of at least 70. Plenty of scanners fire on one.
That is why the rest of this is worth doing. A tool that explicit about its conditions has earned the same care applied to its ranking.
One. Age is shown, and barely ranked on.
The rank is score times 1000, minus the signal's age in milliseconds divided by a million.
Work that out and one day of age costs 86.4 rank units, while one score point is worth 1000.
So one score point is worth 11.6 days. A signal has to sit on that board for a week and a half before its age costs what one point of score is worth.
That is why a stale row can sit at the top of a board people read as "what is happening now". The Age column is right there, and the sort is almost blind to it.
And the unit hides it further
Age is printed in days for every row, whatever the timeframe.
A 15 minute signal showing "2d" is 192 bars old. A 4 hour signal showing "11d" is 66 bars old.
The bigger looking number is the fresher setup. On this board the fastest timeframe was carrying the oldest trades, by about three times.
Two. The confluence bonus is added after the cap.
Start with the part that is done well. The confluence count is direction aware. A symbol showing two bullish signals and one bearish is counted as two, not three. That sounds obvious and it is exactly the thing implementations get wrong, because the lazy version counts how many timeframes have a signal rather than how many agree.
So the counting is careful. It is the weighting that is not.
Quality is scored out of 100 and clamped there. Then, separately, a bonus is added on top: plus 15 if the same signal appears on two timeframes, plus 30 if it appears on three.
Stars are awarded at 95 and 85.
So a setup that barely clears the 70 minimum, appearing on three timeframes, lands on 100 and gets three stars. A near perfect standalone setup scoring 94 gets two.
The cap applies to quality and is then bypassed by agreement.
Worth knowing what that agreement is worth: we tested it. Agreement across timeframes measured 0.60 times chance in our own data. Below luck. It is the single largest term in the ranking and it is attached to the weakest evidence we have.
Three. The board deletes its losers.
When price passes a signal's stop, the signal stops being a signal and leaves the table.
Which means every row still showing is, by construction, one that has not stopped out.
Read the P&L column as a track record and you are selecting on survival and then measuring the survivors.
This is correct behaviour for a scanner. A dead setup should not occupy a slot. It is only misleading if you read the column as history, which is exactly what the eye does with a column called P&L.
Four. The P&L column is clipped at both ends.
If the running result is past the stop it prints the stop distance. If it is past the first target it prints the target distance.
So a row reading plus one percent with a tick beside it is not the result. It is the distance to target one, reached or exceeded. Winners are truncated and losers are floored.
Also defensible, because it stops a stale row printing minus sixty percent. And it means the column cannot be summed, averaged, or compared between rows.
The point is not that the tool is wrong
Every one of those is a reasonable design decision. None of them is a bug.
Together they mean the board shows survivors, ordered almost without regard to age, with results clipped at both ends, and a star rating dominated by a bonus for a property we measured below chance.
Your job is not to distrust it. It is to know which column answers which question. Bias and stars decide the order. Age informs you and barely sorts you. P&L describes the survivors and only the survivors.
How to do this to your own scanner
Find the line that computes the rank. Not the one that draws the table, the one that sorts it.
Then put real numbers through it. Ours looked balanced until we asked what one day of age was worth against one point of score, and the answer was 11.6 days to the point.
If you cannot find that line, you do not know what your leaderboard is ordering on, and the column you are reading is probably not it.
What this is not
Not a backtest, and not a claim about whether these signals make money. Nothing here measures outcome. It is a reading of how a display is built, from its own source, and it reproduces on any scanner you can see the code of.
Observations, not recommendations.
TITradingView Ideas14 Sept