Fundamentals as a filter, not a signal
Lesson 4 · about 8 min
A signal tells you to buy or sell now. A filter tells you which things you are allowed to buy or sell at all. For a trader, fundamentals belong in the second role almost all of the time. Used as a signal they are too slow; used as a filter they quietly remove the trades that would have hurt most.
What a filter does to a trade list
Suppose your scanner produces 40 candidates a week from a purely technical setup, say a breakout above a 20-day high on above-average volume. Over a year that is around 2,000 trades. Some of them will be companies that are about to report earnings in two days, some will be companies with a secondary offering pending, some will be businesses burning cash with three months of runway. The chart cannot tell you any of that.
A fundamental filter removes those. It might look like:
| Filter | Why |
|---|---|
| No earnings within the next 5 trading days | The gap can jump your stop; module 4 |
| Revenue growing, not shrinking | Breakouts in shrinking businesses fail more often |
| Free cash flow positive or funded runway | Cash burners announce offerings that gap stocks down |
| Debt/EBITDA under 4 | Highly levered equity behaves like an option; module 3 |
| No pending lock-up expiry or offering | Known supply is coming; module 5 |
| Market cap above $300M | Liquidity, spread, and fewer manipulation risks |
Nothing in that table tells you to buy anything. Each row tells you not to buy a specific kind of thing. The list of 40 becomes a list of 25, and the 15 that were removed were disproportionately the ones that would have gapped against you.
Key idea: Fundamentals decide what is in your universe. Technicals and risk rules decide when and how much. Keep the jobs separate and each tool does what it is good at.
Why fundamentals make a poor signal for short holds
Three reasons.
They are slow. Module 1, lesson 2 covered speed. A margin trend that took a year to develop is not going to resolve in your two-week hold.
They are known. Everything in a 10-K has been read by thousands of analysts and every screening tool. A stock with a 12 P/E, 20% growth and no debt is not a secret; if it were as good as it looks, it would not be at 12. Either the market knows something, or it does not care yet, and "not caring yet" has no date.
They have no stop. A technical entry gives you a level where the idea is wrong. "It's cheap" has no such level. Cheaper is still cheap. Without an invalidation point you cannot size the trade (see module 7 on thesis and invalidation).
Filtering in both directions
Filters also work for the short side. If you short breakdowns, you probably want to avoid:
- Companies with a high short interest and low float (squeeze risk, module 5).
- Companies with announced buybacks large relative to daily volume (a persistent bid).
- Companies that are takeover targets in an industry that is consolidating.
- Stocks with a dividend yield so high that income funds will buy the dip mechanically.
Again: none of these tell you to short. They tell you which breakdowns are structurally more dangerous to short.
ACME through the filter
ACME Corp, at $40, breaks above a 20-day high on twice its average volume. A trader runs the filter:
| Check | ACME | Pass? |
|---|---|---|
| Earnings in next 5 days? | In 11 days | Yes |
| Revenue growing? | +12% year on year | Yes |
| Free cash flow positive? | $220M | Yes |
| Debt/EBITDA under 4? | $600M / $380M = 1.58 | Yes |
| Pending offering or lock-up? | None on file | Yes |
| Market cap above $300M? | $4,000M | Yes |
ACME passes. The filter does not say "buy ACME." It says ACME is allowed on the list. Whether the trader takes the breakout, where the stop sits, and how many shares, all come from the technical setup and the risk plan. The trader also notes that earnings are in 11 days, so a two-week hold would run into the report; they either plan to be out before it or plan a smaller size that survives the gap (module 4, lesson 4).
Now compare a second candidate with the same chart pattern: revenue down 8%, free cash flow negative $90M against $140M of cash, debt/EBITDA not meaningful because EBITDA is negative. Same breakout, same volume. The filter rejects it. That is not a prediction that the breakout fails. It is a refusal to bet on a breakout in a business that needs to raise money.
Building your own filter
Keep it to five to eight lines, all answerable in under a minute per stock from a free data source. Each line should remove a specific known way of losing money, and you should be able to say what that way is. A filter line you cannot justify with a mechanism ("I just prefer high margins") is a preference, not a filter, and preferences make the list smaller without making it safer.
Review the filter quarterly against your trade log: for every losing trade, ask whether a filter line would have removed it, and for every filter line, ask whether it removed a winner. Adjust slowly.
Try it: Take your last ten trades. For each, run the six-line filter from the ACME table. Count how many would have been excluded, and note what happened to those trades. One sample proves nothing, but it tells you where to look next.
Recap
- A filter removes what you may not trade; a signal says when to trade. Fundamentals belong in the filter.
- Filters remove the trades most likely to gap against you: imminent earnings, cash burners, heavy debt, pending supply.
- Fundamentals are a poor short-term signal: slow, widely known, and without a stop level.
- Filters work on the short side too: avoid crowded shorts, big buybacks, takeover targets.
- Keep the filter short, mechanism-based, and reviewed against your log.
See it drawn
Original diagrams for the ideas on this page. Illustrative, not real market data.