How to Use Finviz
To use Finviz, write the screen as one sentence first, set the liquidity filters, then translate each requirement in that sentence into exactly one filter. Save the screen so it can be re-run and record what it returned so it can be judged later.
The tool does one thing very well: it filters a large universe quickly on a lot of fields. Everything that goes wrong with it comes from having more fields available than the question requires.
Before you start
A screen written as one sentence before any filter is set. “Profitable companies trading below their sector’s average earnings multiple.” If it will not fit in a sentence, it is not a screen.
A decision about which tab you are using — screener, map or news — and why. They answer different questions and drifting between them turns a session into browsing.
Somewhere to record the output, so the screen can be judged later. A spreadsheet with the date and the names is enough.
The steps
1. Write the sentence, then open the tool
The order matters. Opening the screener first means the available filters shape the question, which is the tool deciding what you are looking for.
2. Set price and volume minimums before anything else
Average volume and minimum price. On this site’s shared series a round trip measures about 2% of the median bar range of 0.493, and in a thin name it is far worse — so this filter is a cost decision rather than a preference.
3. Translate each requirement into exactly one filter
Your sentence has two or three requirements. Set two or three filters. Every extra one narrows the result and adds a place where the screen can be wrong.
4. Run it and count the result
Between 15 and 40 names. Under 5 means the filters are too tight; over 200 means the list will be skimmed rather than read, which is the same as not running it.
5. Adjust one threshold at a time
If the count is wrong, move a single number and re-run. Changing three at once means never learning which one was doing the work.
6. Save the screen with a name and a date
Name it after the sentence. A screen that cannot be re-run in 30 days cannot be evaluated, and evaluation is the only route to improving it.
7. Check the chart for every surviving name
The screen returns a list, not a set of trades. Every name still needs a level, an invalidation and a size before it becomes anything.
How to tell it worked
The list is between 15 and 40 names, small enough to read every one.
Every filter traces back to your sentence. A filter on the screen and not in the sentence was added to make the list look better.
The screen was saved and re-run at least 1 time, so its output can be compared across dates.
And the same screen 30 days later returned a mostly different list, which is the evidence that it is measuring a condition rather than a static property.
What the data behind it is
Fundamental fields update on reporting schedules. A screen run today can be filtering on figures from a report several weeks old, which matters most for anything that has just released results.
Technical fields update with price and are as current as the data feed. Mixing the two in one screen means part of it is live and part of it is not.
The tool has no view on whether a name is tradeable at your size. That judgement is the liquidity filter’s job, which is why it goes first.
Which filters actually earn their place
Liquidity filters always. Average volume and minimum price, set first, because they decide what is tradeable rather than what is interesting.
One or two filters that carry the idea. A valuation multiple, a distance from a moving average, a growth rate — whichever your sentence named. These are the screen.
A sector or market-capitalisation constraint only if the idea requires it. Adding one to make the list shorter is narrowing for tidiness, which is a different thing from narrowing for a reason.
And nothing that describes recent performance. Filtering for names that have already risen selects on the outcome, which is the same error as choosing the swing after seeing where the levels landed.
The finished screen usually has 4 or 5 filters in total, of which 2 are liquidity. If it has twelve, the extras were added to make the output look better rather than to express the idea.
The original data
Of the 24,971 unique videos in research/search-study-corpus.jsonl, 52 have an instruction-shaped
title mentioning this screener, at a median of 4,363 views across 35 channels. Screeners generally
appear in 46 at 10,417 and scanners in 10 at 47,614. The counts come from site/rank_howto.py, which
deduplicates by video id.
52 videos on the named tool at 4,363 against 10 on the general procedure at 47,614. The specific tool has five times the coverage and a tenth of the audience per video, which is what happens when a subject is taught as a feature tour rather than as a method.
The answer to the question on that chart is that an empty list is a result. The condition you described is not currently present, which is information. Loosening filters until something appears turns the screen into a search for anything at all — and the names it then returns satisfy a condition nobody chose.
When it fails
The failure is filter accumulation, and it happens over a single session. Each addition is defensible, the list visibly improves with every one, and the finished screen is fitted to the data it was built on. It will keep producing attractive lists forever and it has stopped testing anything, because there is no longer an outcome that would count as the screen failing.
The second failure is skipping the liquidity filter. An unfillable name is not a candidate.
A third is treating the list as trades. It is a list of candidates.
A fourth is trusting stale fundamental fields. They update on reporting schedules.
A fifth is not saving the screen. An unrepeatable screen cannot be judged.
And a sixth is running it without recording the output. In three months that record is the only evidence about whether it finds anything.
Related
Backtesting software is how a saved screen becomes testable. Trading plan is where the sentence comes from. And chart reading is what every surviving name still needs.
The number of available filters is the trap rather than the feature. It is very easy to keep adding conditions until the list looks appealing, and at that point the screen describes what I wanted to see rather than a condition in the market. The sentence written beforehand is the only thing that stops it.
— Michael Whitman
This page is educational, not financial advice. Test every idea on your own charts before risking money. Some links on this page earn a commission if you buy through them. It costs you nothing and it does not decide what appears here or in what order — how these pages are made is set out in our methodology.