What is a trend filter — and does “only buy above the 200-day” actually fix a breakout?
If you read our page on hindsight bias, you saw a plain breakout rule on Bitcoin roughly break even over 122 trades. The first fix almost everyone suggests is a trend filter: stop buying breakouts in a downtrend. It sounds so obviously right that most people never test it. This page tests it — the textbook 200-day version and eight variations — on the same real candles, then shows the trap that makes the best-looking variation the one you should trust least.

KEY TAKEAWAYS
- A trend filter does not create edge. It only decides which signals you are allowed to take, so it can only help if the signals it removes were worse than the ones it keeps.
- The textbook filter — daily close above the 200-day MA — took 69 of the breakouts instead of 122 and finished at −1.7R, against +1.2R with no filter. Its win rate was 24.6%, no better than 25.4% without it.
- It worked as intended in 2022 (it skipped 17 breakouts worth −5.1R) and failed in 2023: Bitcoin had to rally 26% off the November 2022 low before the filter allowed a single long.
- Around the line it flips constantly: 9 crossings of the 200-day in 20 days in March 2025, 10 between July and October 2024.
- The best variation (above the 50-day MA, +19.4R) looks great until you check its neighbours: the 150-day version made +0.5R. Treat any filter you picked after looking at the results as a hypothesis, not a finding.
What is a trend filter, in one paragraph?
A trend filter is a yes/no condition, checked on a slower chart or a slower average, that has to be true before your entry signal is allowed to trade. “Only take long breakouts when the daily close is above the 200-day moving average” is the most quoted one; others use the slope of an average, two averages crossing, or market structure on a higher timeframe. The filter does not tell you when to enter. Your setup does that. The filter only says “not now” to some of the setup’s signals.
That framing matters, because it tells you exactly what a filter can and cannot do. It can never turn a losing signal into a winning one. It can only remove signals. So it helps only if the signals it removes lose more, on average, than the ones it keeps — which is a claim you can check.
Does the 200-day filter fix the breakout?
Not on this data. We used the same breakout rule as the hindsight-bias test and simply refused any signal unless the last completed daily close was above the 200-day simple moving average:
- Signal: a 4-hour candle closes above the highest high of the previous 20 candles (and the candle before had not).
- Stop and target: stop at the lowest low of the last 10 candles, target 2R, trade closed at market after 60 candles (10 days). Stops under 0.3% or over 6% skipped.
- One trade at a time. When the filter says no, the rule keeps scanning; a refused signal frees the slot for a later one.
- Filter: only completed daily candles are used, so the test never peeks at a day that has not closed yet.
| BTC/USDT 4H, Jan 2022 – Sep 2026 | No filter | Above 200-day MA |
|---|---|---|
| Trades | 122 | 69 |
| Hit the 2R target | 31 (25.4%) | 17 (24.6%) |
| Total result | +1.2R | −1.7R |
| Worst peak-to-trough run | −11.7R | −11.7R |
| Longest losing streak | 10 | 9 |
The filter halved the number of trades and changed almost nothing else. The win rate stayed at a quarter, the worst drawdown was identical, and the total slipped below zero. Split by year, you can see where it helped and where it hurt:
| Year | No filter | Above 200-day MA |
|---|---|---|
| 2022 | 17 trades, −5.1R | 0 trades, 0R |
| 2023 | 28 trades, +6.2R | 20 trades, −2.7R |
| 2024 | 28 trades, +6.6R | 24 trades, +4.1R |
| 2025 | 30 trades, −5.1R | 23 trades, −2.8R |
| 2026 (to Sep) | 19 trades, −1.4R | 2 trades, −0.2R |
2022 is the year the filter is famous for: Bitcoin spent the whole year below its 200-day average and the filter kept you out of 17 breakouts that lost 5.1R between them. In 2023 it handed all of that back and more.
A cleaner way to judge a filter is a veto audit: take the 122 trades the plain rule actually made and sort them into “filter would have allowed” and “filter would have refused”. The 200-day filter refused 55 of them. Those 55 netted +0.8R and included 14 trades that hit the target. The 67 it allowed netted +0.3R, with a 25.4% win rate — exactly the same as the rule without any filter. The refused pile was not worse than the kept pile. That is what “the filter has no information” looks like.
Why did the filter miss the best stretch?
Because a 200-day average is, by construction, 100 days behind on average. It confirms a new uptrend only after a large part of it has happened. The screenshot shows the daily chart from October 2022 to November 2023 with the 50-day (blue) and 200-day (red) averages.

The numbers behind the picture:
- Bitcoin’s lowest daily close of the cycle was 15,781 on 21 November 2022. The first daily close back above the 200-day was 19,930 on 13 January 2023 — 26.3% higher. Every breakout in between was refused, including the two in circle 1 that both reached their 2R target.
- In August–October 2023 price sat just under a flat 200-day for two months. Of the 2023 breakouts the plain rule took, the filter would have refused 8, and those 8 netted +8.9R — more than the entire year’s result.
- In 2026 the filter refused 17 of 19 breakouts, because Bitcoin was below its 200-day from early November 2025 until 19 August 2026. Those 17 lost 1.1R, so here staying out cost little — but it also means the filter was simply switched off for most of the year.
This is the core trade-off of any slow filter. The slower it is, the fewer fake signals it lets through in a bear market — and the more of the next recovery it misses. Our moving averages lesson measures how far behind price each length sits.
What happens when price sits on the line?
The filter flips back and forth, and every flip is a coin toss about which signals you are allowed to take. Counting daily closes that crossed the 200-day average from one side to the other:
| Period | Crossings of the 200-day |
|---|---|
| 4 Jul – 14 Oct 2024 | 10 |
| 9 – 28 Mar 2025 | 9 (in 20 days) |
| 17 Oct – 3 Nov 2025 | 7 (in 18 days) |
Over the whole period Bitcoin closed above its 200-day on 51.8% of days — close to a coin flip in itself. In those choppy stretches the filter is not describing a trend; it is describing which side of a line the last close happened to land on. A breakout on a Tuesday is allowed, the same breakout on Wednesday is not. If you trade a filter like this, write down in advance what you do when it flips while you are in a trade (most people keep the trade and only use the filter for new entries, which is what this test did).
Which filter worked best — and should you believe it?
Several did better than no filter. None of them did well enough, or consistently enough, to believe without more evidence. Here is every version we ran, same rule, same candles:
| Filter (long only when…) | Trades | Hit 2R | Total | Worst run |
|---|---|---|---|---|
| No filter | 122 | 25.4% | +1.2R | −11.7R |
| Daily close above 200-day MA | 69 | 24.6% | −1.7R | −11.7R |
| 50-day MA above 200-day MA | 64 | 23.4% | −0.9R | −9.5R |
| 200-day MA rising vs 20 days ago | 81 | 28.4% | +7.4R | −9.1R |
| 4H close above 4H EMA 200 | 90 | 30.0% | +11.7R | −6.7R |
| Daily close above 50-day MA | 72 | 30.6% | +19.4R | −4.7R |
| Daily close above 100-day MA | 66 | 25.8% | +7.9R | −7.5R |
| Daily close above 150-day MA | 68 | 25.0% | +0.5R | −8.5R |
| Daily close above 250-day MA | 76 | 25.0% | +1.9R | −9.1R |
The 50-day line is the obvious headline. Before you adopt it, run three checks we ran:
1. Look at its neighbours. If 50 days captured something real about Bitcoin’s trend, 100 and 150 days should capture a fair part of it too. Instead the result falls from +19.4R to +7.9R to +0.5R. A real effect usually degrades smoothly as you move the setting; a lucky one drops off a cliff.
2. Ask how often chance does this well. We drew 72 trades at random from the plain rule’s 122, twenty thousand times — a filter that knows nothing. 0.4% of random draws reached +19.4R, so the 50-day result is unlikely to be pure luck as a single test. But we did not run a single test. We ran nine. Taking the best of nine random filters each time, 2.7% of tries reached +19.4R. Rare, not impossible — and nine is a small number compared with what a trader tries in a few evenings of tinkering.
3. Choose on old data, judge on new. Pretend it is 1 January 2025 and you only have 2022–2024. The 50-day would have been your pick (+12.4R in those three years, best of all lengths). In 2025–2026 it made +7.0R on 27 trades while the unfiltered rule lost 6.4R on 49. That is encouraging. It is also +0.26R per trade with a standard error of about 0.25R — one standard error from zero. Twenty-seven trades cannot tell a real edge from a good run.
The honest summary: a short trend filter on the daily chart may help this breakout rule, the 200-day textbook version did not, and nothing here is strong enough to bet size on. That is a normal outcome of a real test. It is also exactly the outcome that a chart-scrolling “test” never produces.
How do you test a filter without fooling yourself?
Write it down before you look, count every signal, and change one thing at a time. A routine you can run with a spreadsheet and a chart:
- Fix the setup first. Entry, stop, target and time limit in one sentence, unchanged for the whole test. A filter test that also tweaks the stop is two tests mixed together.
- Choose the filter and its setting before you see any result. If you end up trying several, write down how many. The best of ten tries needs far stronger evidence than a single planned test.
- Run a veto audit. List the signals the filter refuses and total them separately. If the refused pile did about as well as the kept pile, the filter is not reading anything.
- Check the neighbours. Move the setting 25–50% either way. If the result collapses, you found noise.
- Hold back the last year or two. Pick on the older data, then look at the recent data once. If you go back and re-pick after looking, the held-back data is no longer held back.
- Practise reading the filter live. On a finished chart the trend is obvious. On the hard right edge it is not.

In replay, apply your filter the way you would live: check the daily picture first, then decide whether the 4-hour signal is allowed, then step forward one bar. You will notice quickly how often, near the line, you are not sure which side you are on — which is exactly the problem the March 2025 numbers describe.
What a trend filter is NOT
- It is not a signal. “Price is above the 200-day” tells you nothing about when to buy. It only decides whether some other signal is allowed.
- It is not free. Every filter costs you trades, and in a recovery the trades it costs are often the best ones. Our test lost 8.9R of good 2023 trades to the 200-day filter.
- It is not a second opinion. A rising average and a breakout above recent highs are both ways of saying “price went up lately”. Our lesson on combining indicators shows why two tools that read the same thing are one tool counted twice.
- It is not a stop-loss. The filter turning off while you are in a trade does not protect the trade. Only your stop does.
Where this reasoning breaks down
- One rule, one coin, one timeframe. This is a 20-bar breakout on BTC 4-hour candles from 2022 to 2026. A filter that did nothing here might help a slower setup, a different coin, or a market that trends for longer.
- Small samples. 64 to 122 trades per version. Differences of a few R between versions are well inside the noise.
- The order of trades matters. Because the rule holds one trade at a time, refusing a signal frees the slot for a different, later one. That is why the 50-day filter shows +19.4R when the rule is re-run, but the 66 trades it would have allowed out of the original 122 netted only +7.7R. Both numbers are correct; they answer slightly different questions.
- No costs. Fees and slippage of about 0.03R per trade would cut every total by roughly 2–4R. The 200-day version would be worse; the best versions would still be positive.
- Long only. We did not test shorting breakdowns below the average, which is where a trend filter is often meant to earn its keep.
- Random-draw checks are approximate. They sample from the original trades and do not re-run the one-trade-at-a-time logic.
Where should you go from here?
If you use a trend filter today, run the veto audit on your own journal: total the trades your filter would have refused and compare them with the ones it allowed. Then practise applying it bar by bar in the chart replay drill, where the trend is not obvious yet. For the background, read hindsight bias (the same 122 breakouts without any filter), false breakouts, and position sizing, so that a 25% win-rate rule cannot hurt you while you find out whether your filter is real.
FAQ
What is a trend filter in trading?
A trend filter is a condition on a slower chart or slower average that must be true before an entry signal is allowed to trade, for example only taking long trades when the daily close is above the 200-day moving average. It does not create entries; it only removes some of them.
Does the 200-day moving average filter work for crypto breakouts?
Not in our test. On every 20-bar breakout on the BTC/USDT 4-hour chart from January 2022 to September 2026, adding a daily-close-above-200-day filter cut the trades from 122 to 69 and changed the result from +1.2R to minus 1.7R. It avoided 2022 losses but missed the start of the 2023 rally, because Bitcoin rose 26% from its low before the filter turned on.
Which moving average is best as a trend filter?
There is no reliably best one. In our test the 50-day version made +19.4R, but the 150-day made +0.5R and the 200-day lost 1.7R. When a result swings that much with the setting, the best setting is probably partly luck. Pick one before testing and check that nearby settings behave similarly.
How do I know if my trend filter actually helps?
Run a veto audit: list the trades your filter would have refused and total their results separately from the trades it allowed. If the refused trades did about as well as the allowed ones, the filter is not adding information. Then hold back recent data, choose on the older part and check once on the newer part.
Should I close a trade when price drops below the 200-day?
That is a separate rule, not part of a trend filter. Most traders use the filter only for new entries and let the stop and target manage open trades, which is how this test was run. If you want an exit rule based on the average, test it on its own.