The 200-day moving average is probably the most quoted rule in crypto. Price above it, stay in. Price below it, step aside. The promise is simple: you miss part of the rally, but you dodge the crashes of 75% or more that all three coins went through in our data.
We wanted to know how much of that promise holds up with real daily prices, trading costs and no hindsight. So we wrote the rules and the pass criteria down first, downloaded every daily candle Binance has published for BTC, ETH and SOL up to October 2026, and ran it once.
Short version: the filter did dodge most of the 2022 bear market. But it cut the worst drawdown by only 16 to 31%, not the third or more we had set as the bar, and on BTC and ETH about one random in-and-out schedule in five, with the same rhythm, had a smaller worst drawdown than the real rule. It improved risk-adjusted returns on all three coins, which is real, but it isn't the crash insurance it's often sold as.
The rules
| Market | Binance spot: BTCUSDT, ETHUSDT, SOLUSDT, daily candles (00:00 UTC close) |
| Data | Every month published, Aug 2017 (Aug 2020 for SOL) to Oct 2026, checksums verified, no missing days |
| Test period | 5 Mar 2018 to 31 Oct 2026 for BTC and ETH, 27 Feb 2021 to 31 Oct 2026 for SOL (the first 200 days only build the average) |
| Signal | Daily close above its 200-day simple moving average: be in. Below: be in cash |
| Execution | Signal on the daily close, trade at the next day's open. No look-ahead |
| Costs | 0.10% fee + 0.05% slippage per side, so 0.30% per round trip |
| Cash | Earns nothing. No leverage, no shorting |
| Benchmark | Buy and hold from the same first day, same cost on the purchase |
The 200 is the textbook value. We didn't optimise it. Other lengths appear further down as a sensitivity check only, and we didn't pick anything from them.
Before running anything we wrote down three tests:
- A. Does it cut drawdown? The filter's worst drawdown must be at least a third smaller than buy and hold's, on all three coins over the full period, and on BTC and ETH over 2022 to 2026 taken alone.
- B. Is it the trend, or just being out of the market? We shuffled the filter's own in-market and out-of-market stretches into a random order, 1,000 times per coin, same costs. The real filter must beat at least 95% of those random schedules on drawdown, on at least two of three coins.
- C. Is it better on risk-adjusted terms? The filter's Sharpe ratio must be at least buy and hold's on at least two of three coins. We didn't require it to beat buy and hold on return.
The results
| Coin | Strategy | Total return | Per year | Worst drawdown | Sharpe | Time in market |
|---|---|---|---|---|---|---|
| BTC | Buy and hold | +572.7% | +24.6% | -76.6% | 0.67 | 100% |
| BTC | 200-day filter | +602.6% | +25.2% | -64.4% | 0.74 | 53% |
| ETH | Buy and hold | +159.9% | +11.7% | -90.3% | 0.55 | 100% |
| ETH | 200-day filter | +806.8% | +29.0% | -73.9% | 0.73 | 51% |
| SOL | Buy and hold | +602.1% | +40.9% | -96.3% | 0.85 | 100% |
| SOL | 200-day filter | +2,786.6% | +80.8% | -66.3% | 1.15 | 51% |
At first glance that looks like a clean win: higher returns, higher Sharpe, smaller drawdowns, about half the time in the market. The filter also cut volatility on every coin (BTC from 62.0% a year to 42.7%, ETH from 82.8% to 59.2%, SOL from 103.0% to 77.3%).
Now the three tests:
| Test | BTC | ETH | SOL | Verdict |
|---|---|---|---|---|
| A. Drawdown cut, full period (need 33%+) | 16% | 18% | 31% | Fail |
| A. Drawdown cut, 2022 to Oct 2026 | 52% | 48% | 38% | Pass |
| B. Beats random schedules on drawdown (need 95%) | 81.9% | 81.5% | 92.3% | Fail |
| C. Sharpe at least buy and hold's | 0.74 vs 0.67 | 0.73 vs 0.55 | 1.15 vs 0.85 | Pass |
So by the bar we set ourselves, the 200-day filter improves risk-adjusted returns but doesn't reliably cut drawdowns. The rest of this post is about why.
Where it worked: the 2022 bear market
2022 is the year everyone has in mind when they recommend this rule, and it's the year it shines:
| 2022 calendar year | Buy and hold | 200-day filter | Days in the market |
|---|---|---|---|
| BTC | -64.2% | 0.0% | 0% |
| ETH | -67.5% | -16.2% | 2% |
| SOL | -94.1% | -20.6% | 5% |
BTC was below its 200-day average for the entire year, so the filter simply sat in cash. Over 2022 to October 2026 as a whole, the filtered BTC account made +222.0% with a worst drawdown of -32.0%, against +67.6% and -66.9% for buy and hold. On ETH the gap was even wider: +79.6% for the filter against -38.7% for holding.
If you only looked at the last five years, you'd conclude the rule is excellent.
Where it failed: the chop and the fast crash
The full-period drawdowns tell a different story, and they come from two kinds of market.
The chop around the line. The filtered BTC account's worst drawdown, -64.4%, ran from 13 April 2021, when BTC closed at 63,575 dollars, to 29 December 2021. BTC fell hard in May 2021 (the filter only got out at the 20 May open, at 36,671 dollars, after a big part of the drop had already happened), and then spent seven months crossing the line back and forth. After that exit the filter made nine more round trips before the end of 2021. All nine lost money, including one held from 2 October to 14 December 2021, which rode BTC up to its 8 November close of 67,526 dollars and then gave all of it back before the sell signal came.
The fast crash. ETH's worst filtered drawdown, -73.9%, ran from June 2019 to April 2020. The biggest single hit was a trade entered on 31 January 2020 and closed at the 13 March 2020 open, 41.7% below its entry price. On 11 March ETH closed 8% above its 200-day average. On 12 March it closed 40% below it. The filter only learns about a move like that after the close, and trades at the next open. A rule that checks once a day against a 200-day average can't react to a move that fast.
That's the core weakness. The 200-day average is slow by design. It protects you from long, grinding bear markets, and it does little against a sudden drop or a market that goes sideways around the line.
Most trades lose. The filter's round trips were losers far more often than winners: 25 of 33 on BTC (76%), 19 of 28 on ETH (68%), 17 of 22 on SOL (77%). The median round trip lost between 2.2% and 3.3%. The whole result rests on a few long trends: the best single trade was +317% on BTC, +889% on ETH and +894% on SOL. If you switch the filter off after a string of small losses, which is very human, you lose the one trade that pays for all of them.
The random control
Test B is the one we'd ask you to remember. The filter spends about half its time out of the market, and being out half the time cuts drawdowns all by itself, whatever the timing. To check how much the trend signal adds, we kept the filter's own stretches in and out of the market (same number, same lengths) and shuffled their order 1,000 times.
| BTC | ETH | SOL | |
|---|---|---|---|
| Median random schedule, worst drawdown | -72.2% | -83.9% | -86.1% |
| 200-day filter, worst drawdown | -64.4% | -73.9% | -66.3% |
| Share of random schedules the filter beat on drawdown | 81.9% | 81.5% | 92.3% |
| Share of random schedules the filter beat on Sharpe | 86.7% | 89.9% | 91.1% |
The filter did better than most random schedules, so the trend information isn't worthless. But on BTC and ETH, about one random schedule in five had a smaller worst drawdown than the real rule. With only six to nine years of data and a handful of real bear markets, that's not strong enough to call proven.
How much depends on a few days
Crypto returns are concentrated in a small number of very big days, and that cuts both ways:
| BTC | ETH | SOL | |
|---|---|---|---|
| Buy and hold, total return | +572.7% | +159.9% | +602.1% |
| Buy and hold without its 10 best days | +66.2% | -61.4% | -26.1% |
| Of those 10 best days, how many the filter was in the market | 2 | 3 | 7 |
| Of the 10 worst days, how many the filter was in the market | 5 | 6 | 4 |
| Filter, total return | +602.6% | +806.8% | +2,786.6% |
| Filter without its own 5 best days | +279.7% | +257.4% | +799.3% |
For BTC and ETH, most of the best days came while price was below its average, often as sharp rebounds inside a falling market, so the filter missed them. It still sat through four to six of the ten worst days on each coin. Its own results also lean on a few big days, though less than buy and hold.
The length you pick changes everything
We didn't optimise the length, but here is what other common lengths would have done over the same full periods:
| Average length | BTC worst drawdown | BTC Sharpe | ETH worst drawdown | ETH Sharpe | SOL worst drawdown | SOL Sharpe |
|---|---|---|---|---|---|---|
| 50 days | -58.5% | 1.06 | -56.3% | 0.99 | -69.3% | 1.18 |
| 100 days | -38.8% | 1.02 | -75.0% | 0.72 | -85.4% | 0.73 |
| 150 days | -45.0% | 1.03 | -68.7% | 0.74 | -76.1% | 1.01 |
| 200 days | -64.4% | 0.74 | -73.9% | 0.73 | -66.3% | 1.15 |
| 250 days | -65.7% | 0.74 | -78.7% | 0.71 | -68.8% | 0.96 |
It's tempting to read this and switch to the 100-day average for BTC. Don't. The 100-day line was the best on BTC and among the worst on SOL. No length was best everywhere, and the ranking jumps around with small changes. Picking the winner from this table would be fitting the past, exactly the trap described in our guide to walk-forward and out-of-sample testing.
What this study doesn't prove
- It's three coins and one rule. BTC, ETH and SOL are related, and their bear markets overlap. This is closer to three samples of the same market than three independent tests.
- There are few bear markets in the data. The test periods contain 2018, 2022 and a few sharp crashes. A different future could favour or punish the rule.
- SOL is a survivor. We tested it because it's still a top coin today. Plenty of coins that looked like SOL in 2021 never recovered, and a trend filter on them would look different.
- Cash earned nothing here. Holding stablecoins or a money-market product while out of the market would have helped the filter a little. We left it at zero to keep the comparison simple.
- Taxes aren't included. In many countries, 22 to 33 round trips would create taxable events that buy and hold doesn't.
- It's not a statement about other markets. Stocks, forex and commodities have different trends and different crash shapes.
What we'd take from it
- Expect the 200-day filter to help in slow bear markets, not in crashes. It kept you out of almost all of 2022. It didn't protect ETH in March 2020 or BTC in May 2021.
- Judge it on risk-adjusted terms. The filter improved the Sharpe ratio on all three coins. It did not reliably cut the worst drawdown, which is what most people use it for.
- Expect to lose most of your trades. About seven in ten round trips lost money. That's normal for trend following, and it's when most people give up.
- Don't tune the length on past data. If you use a moving average filter, pick the length for a reason before you look at results, and stick to it.
- Size for a deep drawdown anyway. Even with the filter, the worst drawdowns were -64% to -74%. If that would force you to sell, the position is too big. Our post on position sizing and the 1% rule goes through how to set it.
Test your own version
A moving average filter takes one line in most languages, and changing the length, adding a second condition or switching to a weekly check is easy. The hard part is testing it honestly. Describe the rule in plain English to the crypto bot builder or the Pine Script generator, and run it through the Backtest Lab, which includes fees and slippage and holds back an out-of-sample period. And before trusting any result, go through our list of backtesting mistakes that inflate results.
This article describes historical simulations for educational purposes. It isn't investment advice, and past results, simulated or real, don't predict future returns. Crypto prices can fall a long way quickly, with or without a trend filter. If you trade, test on a demo account first and only risk money you can afford to lose.
Want our studies and guides first when you search? Add Edgoro as a preferred source on Google.