WhitmanTrading

How to Use a Stock Screener

To use a stock screener, decide what you are looking for and write it down first, then translate each requirement into one filter, run it, and check that the list is small enough to read and large enough to choose from. The order matters: filters chosen after seeing results are fitted to them.

A screener is a filter over a database, and it will return exactly what you asked for. The difficulty is entirely in knowing what to ask for, which is a decision made before the tool is opened.

Before you start

A screener you can save filters in, so the same screen runs twice. A screen you cannot reproduce next month is a one-off search rather than a process, and the whole value comes from repetition.

A written idea of what you are looking for, before any filter is set. One sentence. If it cannot be written in one sentence, the screen will not be a screen — it will be a search for something appealing.

Somewhere to record what the screen returned, so it can be checked later. A spreadsheet is enough. Without it you cannot tell whether the screen has ever produced anything.

The steps

1. Write the screen’s purpose in one sentence

“Profitable companies trading below their five-year average earnings multiple.” “Liquid stocks that have pulled back to a rising moving average.” One sentence, written before any filter exists.

2. Set the liquidity filter first

Minimum average volume and minimum price. Anything you cannot get in and out of is not a candidate regardless of how good it looks, so remove it before looking at anything else.

3. Translate each requirement into exactly one filter

Your sentence has two or three requirements. Set two or three filters. Every additional condition narrows the result and adds a place where the screen can be wrong.

4. Run it and count what comes back

Aim for something between 15 and 40 names. Under 5 means the filters are too tight; over 200 means they are too loose and the list will not be read.

5. Loosen or tighten one filter at a time

If the count is wrong, adjust a single threshold and re-run. Changing three at once means you never learn which one was doing the work.

6. Save the screen with a name and a date

Name it after the sentence from step one. A screen you cannot re-run next month cannot be evaluated, and evaluating it is the only way it improves.

7. Record the list before doing anything with it

Paste the names and the date into a file. In three months that record is the only evidence about whether the screen finds anything useful.

Segmented bar diagram of how many names a stock screen should return, with 15 to 40 marked as the range to aim for.
A diagram of this page's step four: under 5 names is too tight, over 200 too loose, and 15 to 40 is few enough to read every one.

How to tell it worked

The list is between 15 and 40 names. Small enough to read every one, large enough that you are choosing rather than accepting.

Every filter traces back to your sentence. If a filter is on the screen and not in the sentence, it was added to make the list look better.

The same screen run 30 days later returns a mostly different list. A screen returning the identical names every month is measuring something static rather than a condition.

And you can state what the screen would have to return to be considered broken. If nothing would disprove it, it is not being tested.

What a screen cannot do

It finds candidates, not trades. Everything after the list — the entry, the stop, the size — is separate work, and a screen that produces a name says nothing about any of them.

Each trade pays the bid-ask spread, so each extra position adds cost before it adds anything else. A screen returning 40 names is not an instruction to take 40 positions.

The data is also as of some moment. Fundamental fields update on reporting schedules, so a screen run today can be filtering on figures several weeks old.

The original data

Of the 24,971 unique videos in the search study behind this site, 52 have an instruction-shaped title about screeners, at a median of 13,930 views across 43 channels. Screeners more broadly appear in 89 videos at 11,899, scanners in 39 at 15,174, and one named screener in 79 at 6,340. Every figure counts each video a single time.

52 videos at a 13,930 median against 89 at 11,899 for the general subject. The specific procedure carries a slightly larger audience per video than the general discussion, and 58% of all screener titles are instruction-shaped.

The question: The list came back empty. Loosen the filters?

The answer is that an empty list is a result. It means the condition you described is not present in the market at the moment, which is information. Loosening filters until something appears converts the screen into a search for anything at all — and the names it then returns satisfy a condition you never actually chose.

When it fails

The failure is a screen that grows filters until its output looks appealing, and it never feels like a mistake while it is happening. Each addition is defensible on its own, the list improves visibly with every one, and the finished screen is fitted to the data it was built on rather than describing anything general. It will keep returning attractive lists and it will have stopped being a test of anything, because there is no longer a condition it could fail to find.

The second failure is skipping the liquidity filter. An unfillable name is not a candidate.

A third is running a screen without recording the output. It cannot be evaluated later.

A fourth is treating the list as a set of trades. It is a set of candidates.

A fifth is changing several filters at once. You learn nothing about which one mattered.

And a sixth is trusting stale fundamental fields. They update on reporting schedules, not daily.

Backtesting software is what turns a saved screen into something testable. Backtesting is how you find out whether the screen’s output was ever worth acting on. And the trading plan is where the surviving names have to fit before any of them becomes a position.

What I actually do

I write the screen’s purpose in one sentence before opening the tool, and refuse to add a filter that is not in that sentence. Screens go wrong when conditions keep getting added until the list looks appealing, which is fitting the filter to the answer.

— Michael Whitman

This page is educational, not financial advice. Test every idea on your own charts before risking money.