How to Build a Watchlist: 8 Steps, Shown on a Real List From 515 Stocks
To build a watchlist, define the setup you are looking for in one sentence and filter for names that meet it. Then cap the list at a length you can actually read, write a level and an invalidation next to every name, and rebuild it on a schedule so stale entries fall off without a decision.
To build a watchlist, write your setup as one sentence, filter a fixed universe of stocks down to the names that meet it, cap the list, and write a level and an invalidation price next to every name. Then rebuild it on a fixed day so names leave on a rule rather than on a feeling. Below, the whole process is run on real data: 515 large US companies on the close of 30 Oct 2026.
Before you start
A setup you can describe in one sentence, so a name either qualifies or does not. “Stocks that look strong” fails this test. “Liquid stocks pulling back to a rising 50-day average” passes, because each word can be turned into a number.
A maximum length decided in advance, because an unlimited list is not a list. Pick it from your time, not from the market. At three minutes of chart reading per name, 10 names is half an hour and 40 names is two hours.
A scheduled time to rebuild it, so stale names leave without a decision. This page uses Friday’s close, so the list is ready before Monday’s open.
You also need a source of daily prices and a list of the stocks you are willing to consider. A free charting site and an index member list are enough.
The steps
1. Write the setup as one sentence with numbers in it
Our sentence: liquid stocks pulling back to a rising 50-day average. Turn every word into a test. Liquid means a closing price above $10 and at least $500 million traded per session on average over 20 sessions. Rising means today’s 50-day simple moving average is higher than it was 10 sessions ago. Pulling back to it means the close is between 0% and 3% above that average and at least 4% below the highest close of the last 20 sessions.
2. Start from a fixed universe and write down its date
A list of “everything” changes every day as stocks list and delist. Ours is the S&P 500, taken from State Street’s SPY holdings file dated 29 Oct 2026, plus the Nasdaq-100 list Nasdaq dated 30 Oct 2026. Of the 100 Nasdaq-100 companies, 85 are also in the S&P 500, so the union is 515 companies once second share classes (Alphabet class C, Fox class B, News Corp class B) count once.
3. Filter for liquidity before anything else
A name you cannot get in and out of cheaply should never use up your attention, so it goes first. If you use a stock screener, this is where it does the work; that page walks through a full screen of every US listing, so it is not repeated here.
4. Apply the setup filters in order and count what is left
Write the count after each filter. The counts tell you which part of the sentence is doing the cutting, and a filter that removes nothing is not part of your setup.
5. Cap the list and rank anything over the cap
Our cap is 10. When more than 10 names pass, rank them by how close they sit to the average and keep the closest 10. The cap forces a comparison you would otherwise skip.
6. Write a level and an invalidation next to every name
The level is where you would act: here, the highest high of the last 5 sessions, the price a recovery has to clear. The invalidation is where the idea is wrong: the lowest low of the last 10 sessions. Two prices, written before the week starts.
7. Set alerts at both prices and close the charts
An alert turns watching into waiting. Set a price alert at each level and each invalidation, so the list tells you when something happens instead of you checking it.
8. Rebuild on the same day each week and log what each name did
On the rebuild, every name is tested against the sentence again. Record whether it reached its level, hit its invalidation, or did neither. After 10 rebuilds you have your own version of the numbers further down this page.
A worked example: the list built on 30 Oct 2026
Here is the procedure run on the close of Friday 30 Oct 2026, the list for the week of 2 Nov. One company, Vylor, a recent listing, had fewer than the 60 sessions of history the averages need, which left 514 to test.
| filter | names left |
|---|---|
| Universe with 60+ sessions of history | 514 |
| Close above $10, $500 million+ a session (20-session average) | 202 |
| 50-day average higher than 10 sessions ago | 85 |
| Close 0% to 3% above the 50-day average | 8 |
| Close 4%+ below the highest close of the last 20 sessions | 3 |
| Cap of 10 | 3 |
The liquidity filter did the most cutting, which is normal for a big universe. The step that matters for the setup is the fourth one: of 85 names in a rising trend, only 8 sat close to their average. Five of those 8 then failed the pullback test, because they had drifted to the average without falling far from their recent high. Microsoft is the edge case worth seeing: it closed 3.96% below its 20-session closing high, a hair short of the 4% rule, so it stays off. A filter is a hard line, and moving it for one name is how lists bloat.
The three names that passed, with their two prices (Yahoo daily bars; closes matched Nasdaq’s own history to within $0.01):
| name | 30 Oct close | 50-day average | level (5-session high) | invalidation (10-session low) |
|---|---|---|---|---|
| Valero Energy (VLO) | $399.66 | $397.61 | $436.20 (+9.14%) | $377.45 (-5.56%) |
| Cadence Design Systems (CDNS) | $327.89 | $320.53 | $348.80 (+6.38%) | $305.19 (-6.92%) |
| Elevance Health (ELV) | $420.07 | $410.56 | $442.25 (+5.28%) | $411.31 (-2.09%) |
These three are the output of a rule, shown to teach the procedure. They are not picks, and the rule has no tested edge.
Read the distances, not just the prices. Elevance’s invalidation sits 2.09% under its close while its level is 5.28% above, so a small slip ends the idea before a recovery could reach the level. Cadence is the reverse shape. Valero fell from $426.76 to $387.34 on 27 Oct, which is why its 5-session high is 9.14% away. Writing both prices shows you this before Monday; a bare ticker hides it.
A week with 3 names is a quiet week, not a failed screen. The rule did not loosen to fill the list.
How to tell it worked
The list is at or under its cap every week. In our history the cap of 10 was needed in 30 of 91 weeks and the list still never went over 10.
Every name has 2 prices next to it, written before the week opened.
Most names leave without a trade. If every name on your list reaches its level, the filter is not filtering anything.
The rebuild happened on schedule for the last 4 weeks, on the same day and from the same close.
The original data
To see what a watchlist does over time, the same rule was rebuilt at the last close of every week from 31 Jan 2025 to 23 Oct 2026: 91 weekly lists, 694 listed names (235 different companies). Each list was judged over the next 5 sessions, roughly the week until the next rebuild: did the high pass the level first, did the low pass the invalidation first, did both happen in the same session, or did neither happen.
The first thing the history shows is how often the cap matters. The median week found 9 names, the busiest found 19, and only one week found none. The cap of 10 was needed in 30 weeks, and 14 weeks produced fewer than 5 names.
The second thing is what happened to the names once they were on the list. Of the 694 listed names, 230 (33.14%) reached their level first, 330 (47.55%) hit their invalidation first, 4 (0.58%) did both in the same session, and 130 (18.73%) did neither before the next rebuild. So 460 of the 694 (66.28%), two in three, never reached the price where you would have acted. Of the 230 that did, 108 got there in the first session.
For comparison, the same two prices were written for every liquid name on every rebuild date, whether it fit the setup or not: 17,418 cases. Those reached the level first 49.04% of the time and hit the invalidation first 30.53% of the time; 0.23% did both in one session and 20.20% did neither.
The gap is mostly geometry, not a verdict on the setup. A stock that has just pulled back has a recent high further away and a recent low closer by. For listed names the level sat a median 4.42% above the close and the invalidation 2.55% below; for all liquid names it was 2.72% and 4.56%. A nearer price gets hit more often. What the data does show is the practical point: most names on a working watchlist go nowhere useful in a given week, and that is the list doing its job.
Limits, stated plainly: the member lists are from late October 2026, so companies that left the indexes during 2025 and 2026 are missing (survivorship bias); this is one rule on daily bars over 91 weeks; and “reached the level” is not a profit, because nothing here measures what a trade would have made. The full weekly lists and filter counts are published as the weekly watchlist file and the filter counts by week.
How long should a watchlist be?
Long enough to fill your review time and no longer. The rule here found a median of 9 names a week from 515 companies, which is why a cap of 10 fits it. A looser sentence finds more names, and the cap then does more of the work.
A useful check is the time cost. Ten names at three minutes each is a 30-minute routine. Forty names is two hours, and a list nobody reads in full gets skimmed, which is when trades get taken on how a chart looks.
If your rule regularly finds 30 names for a cap of 10, tighten the sentence rather than raising the cap. If it finds 1 or 2 most weeks, loosen one number and write down which one you changed.
Watchlist, screener or buy list?
A screener produces candidates; a watchlist is candidates with decisions attached; a buy list does not exist here. The screener step ended at the 3 names above. The watchlist step added the two prices and the alerts.
A watchlist is also not a portfolio. Ten names in one sector move together, so a list that looks spread out can be one bet; the correlation check belongs to the moment you size a position, not to the list.
When it fails
The list only grows. Names go on when they look good and rarely come off, because removing one feels like admitting a mistake. Months later it holds 80 names with no prices next to them, and the morning routine is scrolling. The weekly rebuild exists to stop this: every name is re-tested, and the default is that it leaves.
Names without prices. A ticker with no level and no invalidation means the decision gets made live, while price is moving.
Adding a stock after it ran. A name that already rallied past its level no longer meets the sentence. Chasing it turns a filtered list back into a list of whatever moved today.
Bending the filter for one name. Microsoft missed by 0.04 of a percentage point on 30 Oct. Let it in and the next exception is easier.
Reading the outcome numbers as a scorecard for trades. Reaching a level is an event, not a result; the history above measures no profit and no loss.
Questions people ask
How many stocks should be on a watchlist?
As many as you can review properly in the time you have. With this page’s rule, a cap of 10 was needed in 30 of 91 weeks, and the median week found 9.
How often should I update my watchlist?
On a fixed schedule. A weekly rebuild from Friday’s close suits daily-bar setups; a day trader rebuilds each morning from the prior close.
Should I trade every stock on my watchlist?
No. In 91 weeks of this rule, 66.28% of listed names never reached their level within 5 sessions. A name only becomes a trade when its level is reached and the rest of your trading plan agrees.
Should I keep one watchlist or several?
One list per setup. Each list needs its own sentence; mixing setups in one list makes the rebuild test impossible to apply.
Related
The setup sentence comes from your trading plan, which sets what the list is for. Before trusting a sentence, backtesting software is how you find out whether it describes anything worth watching. And top-down analysis is the process that decides which markets the universe should come from in the first place.
I write the level next to each name rather than just the ticker. A bare list means arriving at the chart with no prior decision and reading it live, which is when the reasoning gets fitted to whatever price is doing. A level written yesterday is a decision that already happened.
— Michael Whitman
This page is educational, not financial advice. Test every idea on your own charts before risking money.