Skip to content

Scanning and Exploration

Up to this point every technique in the course has been applied to one chart at a time. You have learned to read structure, to compute indicators, to write formulas that produce one value per bar. All of it operates on the symbol currently selected in the Symbol window, and all of it answers the question what is happening here?

This part changes the question to where is it happening? — and that turns out to require a different piece of software inside AmiBroker, a different mental model of what a formula produces, and a great deal more care about what you are actually measuring.

The Analysis window runs your formula once for every symbol in a universe you choose, over a range of bars you choose, and collects the results into a single list. That is the whole idea. Everything else in this part is a consequence of it:

  • Because the formula runs per symbol, a variable computed in one run of the formula cannot see another symbol’s value. Cross-sectional work — ranking, relative strength — needs machinery that Part 13 introduces.
  • Because the formula runs per bar as well as per symbol, a screen that reports “every bar where the condition was true” over fifteen years of daily data produces millions of rows. Controlling that is the single most common thing beginners get wrong.
  • Because the output is a table rather than a chart, you have to design the table. The columns are your decision, and a badly designed table hides the answer as effectively as no table at all.

Scan and Exploration are not the same thing

Section titled “Scan and Exploration are not the same thing”

AmiBroker gives you two buttons that both run your formula across a universe, and they are not interchangeable. A Scan searches for the buy and sell signals your rules define and reports when and on which symbol each one occurred; its columns are fixed. An Exploration builds a report you design: one predefined variable, Filter, decides which rows appear, and AddColumn() calls decide what is in them.

Confusing the two produces the most frequently reported symptom in this entire subject — a formula that runs without error and returns an empty list. The challenge in this part is built around exactly that failure, and it is worth attempting properly rather than reading.

Four working tools, each of which you keep:

  1. A scan that reports signals across a whole market, and an understanding of why the same symbol appears in the results four times.
  2. An exploration that produces a readable table — sorted, ranked, summarised, and still legible to somebody who cannot distinguish your colour choices.
  3. A six-stage daily screener with a companion stage audit that tells you where your universe went, so that an empty candidate list becomes a diagnosis rather than a mystery.
  4. A study that measures what actually followed high-volume breakouts in your own data, compared against the base rate — and an honest account of why that measurement, on its own, cannot establish an edge.

What this part deliberately does not claim

Section titled “What this part deliberately does not claim”

A screen is a way of allocating your attention. It says which charts are worth opening this evening. It contains no evidence whatsoever about what happens after a symbol appears on it, and a candidate list is not a trading system.

That distinction is not pedantry. A great deal of published screening material slides from “these symbols meet these criteria” to “these symbols are about to move”, and the slide is invisible because the criteria sound like reasons. The reality check at the end of this part exists to make the difference concrete: you will measure the same condition twice, once on the bars where it fired and once on all eligible bars, and see how much of the apparent effect survives the comparison.

Part 3 for a working database and a universe of symbols; Part 8 for the array model, and in particular for Null and warm-up periods, which cause more empty screens than any other single thing; Part 9 for HHV(), Ref() and the state-versus-event distinction. Part 6’s indicator vocabulary is assumed but not essential.

You do not need the Professional edition. Every AFL function in this part — Filter, AddColumn(), AddTextColumn(), AddMultiTextColumn(), AddSummaryRows(), SetSortColumns(), AddRankColumn() and every Status() code used here — works identically in Standard. The difference is throughput: Standard runs up to two threads per Analysis window, Professional up to thirty-two, so the same exploration over two thousand symbols simply takes longer. Nothing in this part requires real-time data either; end-of-day data is what a daily screen wants.

Part12 of 36Level2 — AmiBroker AnalystPages9Estimated time5.2 hours

0 / 9 lessons in this part completed