Learn › Strategies › 200-Day SMA Regime Filter › QQQ

200-Day SMA Regime Filter on QQQ

Invesco QQQ Trust: tracks the Nasdaq-100, a tech-heavy growth index. Backtest 2021-01-04 to 2026-10-02, $10,000 starting capital, computed by the same engine that runs live DeployQuant strategies.

Result: 200-day regime filter on QQQ turned $10,000 into $20,067 (100.7% total, 12.9% CAGR): it trailed buy-and-hold by 3.8% per year, with a maximum drawdown 14.3 points shallower than holding (19.9% vs 34.2%).

The 200-day regime filter on QQQ turned $10,000 into $20,067 between 2021-01-04 and 2026-10-02, a 12.9% CAGR with a 19.93% maximum drawdown and a Sharpe of 0.92. Buy-and-hold QQQ over the same dates ended at $24,265, a 16.7% CAGR, with a 34.23% drawdown and a Sharpe of 0.83. The filter gave up 3.8 points of CAGR a year and held a drawdown 14.3 points shallower.

The rule is one line: buy with 98% of the sleeve when yesterday's close is above the 200-day average, sell the whole position when yesterday's close is below it. On QQQ that produced 10 closed round trips and a position still open at the end. Two of the 10 won, a 20% win rate, and those two made 67.67% and 16.55%. The other eight lost between 0.22% and 3.95%. Nearly all of the result sits in one trade, entered 2023-03-14 and held 724 days.

Among the 12 templates on QQQ, this one ranked fifth by CAGR, behind the weekly 7% target, the monthly cycle, RSI(2) snapback and the golden cross. Across all 59 ETFs the 200-day filter's median CAGR was 1.84%, and QQQ was its tenth best fund. The headline run has no fees or slippage, and the figures describe one window with one large bear market in it.

12.9%CAGR
16.7%buy & hold CAGR
−19.9%max drawdown
0.92Sharpe ratio
10round trips
20%win rate
■ 200-day regime filter   ■ buy & hold, $10,000 invested 2021-01-04

Year by year

Year200-day regime filterbuy & hold
20216.4%28.4%
2022−16.3%−31.7%
202334.5%53.0%
202425.0%25.1%
202513.0%20.4%
202618.5%22.1%

How each year compared with holding QQQ

The yearly table splits the result cleanly. The filter beat holding in one year, 2022, and trailed it in the other five.

In 2021 the filter returned 6.4% against 28.4% for holding. The gap, 22.0 points, is the largest of any year and comes from the months spent out before the first entry. The gains it did take were October at 3.3%, November at 1.9% and December at 1.1%.

In 2022 the filter lost 16.3% while holding lost 31.7%, a gap of 15.4 points in its favor. The filter's loss was concentrated in the first four months: January lost 9.42%, February 4.02%, March 0.70% and April 3.03%. From May to December 2022 every month shows 0.0%, so it was in cash through the rest of the decline. Holding fell until 2022-11-03. The filter's 2022 had two parts. January's loss came from the first position, which was still held while the price fell and was sold on 2022-01-21. February to April added the short whipsaw trades. From May the strategy sat in cash while the decline ran on.

In 2023 the filter returned 34.5% against 53.0%, a gap of 18.5 points. It was out until the entry on 2023-03-14 at an adjusted 288.53, and January and February 2023 had small losses of 0.56% and 0.34% from two entries that failed. From March it was long for the rest of the year, with months of 6.48% in March, 7.53% in May, 6.26% in June and 10.51% in November, its best month in the window. September lost 4.91% and October 2.01%. The strategy missed the rebound's first leg because the price had to cross the average before it bought, and the cross came after the rebound had started.

In 2024 the filter returned 25.0% and holding 25.1%, a gap of 0.1 point. It was invested all year. The month-by-month results track the market: April lost 4.29%, May and June gained 6.26% and 6.07%, July lost 1.62% and August gained 1.11%. This is the year that shows the filter in its intended state. When QQQ trends above its 200-day average, the filter and holding are the same position.

In 2025 the filter returned 13.0% against 20.4%. The trade entered in March 2023 was closed on 2025-03-07 at 483.77. The filter re-entered on 2025-03-26 at 489.05, exited a day later at 479.46 for a 1.96% loss, and stayed out through April. The April 2025 row shows 0.0%, and holding's drawdown that spring reached 22.38% by 2025-04-08. The filter re-entered on 2025-05-13 at 505.08. March 2025 cost 5.73% and February 2.64%. The filter avoided the April low and missed the first weeks of the rebound.

In 2026, through 2026-10-02, the filter returned 18.5% against 22.1%. It exited the 2025 position on 2026-03-23 at 588.68 for 16.55%, re-entered on 2026-04-09 at 604.50, and held an open position that was up 24.0% at the end. April gained 9.84% and May 10.24%. July lost 6.31%.

The yearly gap, in order, was negative 22.0, plus 15.4, negative 18.5, negative 0.1, negative 7.4 and negative 3.6 points. The single positive year is the year with a bear market in it, and the filter's value on this window is the 2022 result and the shallower drawdown. The cost is the entry delay in every recovery.

Month by month

YearJanFebMarAprMayJunJulAugSepOctNovDec
20210.0%0.0%0.0%0.0%0.0%0.0%0.0%0.0%0.0%3.3%1.9%1.1%
2022−9.4%−4.0%−0.7%−3.0%0.0%0.0%0.0%0.0%0.0%0.0%0.0%0.0%
2023−0.6%−0.3%6.5%0.5%7.5%6.3%3.8%−1.5%−4.9%−2.0%10.5%5.4%
20241.8%5.2%1.2%−4.3%6.3%6.1%−1.6%1.1%2.5%−0.8%5.2%0.5%
20252.1%−2.6%−5.7%0.0%2.0%6.2%2.4%0.9%5.3%4.7%−1.6%−0.7%
20261.2%−2.3%−2.7%9.8%10.2%−0.2%−6.3%4.1%3.2%1.3%––

The months that decided the result

The month table has more flat months than most templates on QQQ. From January to September 2021 every month is 0.0%. From May to December 2022 every month is 0.0%. April 2025 is 0.0%. Those are the months the strategy held no position.

The worst month was January 2022 at negative 9.42%. That is a worse month than any in the filter's later history, and it came from a position that had been entered on 2021-10-19 and held until 2022-01-21. For comparison, holding QQQ had its worst month in April 2022 at negative 13.14%, a month in which the filter lost 3.03% and then went flat. The best month for holding was April 2026 at 15.44%. The filter made 9.84% in April 2026 because it entered on 2026-04-09, after the month's first days.

The best month for the filter was November 2023 at 10.51%. The next best were May 2026 at 10.24% and April 2026 at 9.84%. Months above 6% came in 2023, 2024 and 2026, years in which the filter was long and QQQ was rising.

The negative months cluster in two places. January to April 2022 is one: four consecutive months of losses. The second is August to October 2023, with negative 1.51%, negative 4.91% and negative 2.01%. The filter stayed in through that autumn pullback because the price did not close under the average. March 2025 at negative 5.73% and July 2026 at negative 6.31% are the other two large losses.

QQQ's own seasonal pattern in this window was strongest in May at 5.19% on average, November at 4.42% and October at 2.77%, and weakest in September at negative 1.65% and February at negative 0.77%. With 5 or 6 observations per month these averages are not reliable, and the filter's own record does not follow them: its September 2023 was a loss and its November 2023 was its best month.

A flat month is not free. It leaves the money out of the market, and in a rising market that costs return, which is the 2021 and 2023 story. It also means that in 2022 the strategy never took the second and third legs of the decline, which is the 2022 story. The monthly table shows both costs and benefits in one place.

Every trade

200-day regime filter on QQQ made 10 closed round trips and one position still open at the end of the test, an average hold of 118 days, an average winner of 42.11%, an average loser of −2.09%, a profit factor of 4.88, a longest losing streak of 7. It held a position at the close on 64.8% of trading days.

EntryEntry priceExitExit priceReturnDays held
2021-10-19$361.852022-01-21$348.50−3.7%94
2022-02-02$357.832022-02-04$343.68−4.0%2
2022-02-10$349.022022-02-11$348.25−0.2%1
2022-03-30$359.032022-03-31$356.44−0.7%1
2022-04-05$357.262022-04-06$346.14−3.1%1
2023-01-27$286.322023-01-31$284.67−0.6%4
2023-02-01$288.302023-03-13$281.15−2.5%40
2023-03-14$288.532025-03-07$483.7767.7%724
2025-03-26$489.052025-03-27$479.46−2.0%1
2025-05-13$505.082026-03-23$588.6816.6%314
2026-04-09$604.50open–24.0%–

Prices are adjusted for splits and dividends, so they sit below the quotes printed at the time. An open position is marked at the last close.

The trade list, trade by trade

The filter made 11 entries and 10 closed round trips. The first, from 2021-10-19 at an adjusted 361.85 to 2022-01-21 at 348.50, lost 3.69% over 94 days. The next four, all in February to April 2022, lasted 1 or 2 days. The two in early 2023 lasted 4 and 40 days.

Then came the trade that made the result. The filter bought on 2023-03-14 at 288.53 and sold on 2025-03-07 at 483.77, a gain of 67.67% over 724 days. Nothing in that stretch triggered an exit: not the August 2023 weakness, not April 2024, not the August 2024 drop. A single exit rule held through each. The trade accounts for most of the 100.67% total return.

The 2025 trade lasted one day. The filter bought on 2025-03-26 at 489.05 and sold on 2025-03-27 at 479.46 for negative 1.96%. The next entry was 2025-05-13 at 505.08, closed 2026-03-23 at 588.68 for 16.55% over 314 days. The last entry, 2026-04-09 at 604.50, was open at the end, up 24.0%.

The median return was negative 0.72% and the median hold was 4 days. The average hold was 118.2 days, which is pulled up by the two long trades, with the longest at 724 days. The shortest was 1 day. Of the exits, 2022 had 5 with 0 wins, 2023 had 2 with 0 wins, 2025 had 2 with 1 win, and 2026 had 1 with 1 win.

This pattern, many small losses and a few large wins, makes the win rate a poor summary. A 20% win rate sounds bad, and it came with a Sharpe of 0.92, above the Sharpe of 0.83 for holding. The profit factor of 4.88 says that gross gains were about five times gross losses. There are few trades. Ten closed trades, with two carrying the result, is a small sample, and a different entry date in 2023 could have changed the answer.

All prices are adjusted for splits and dividends, so they sit below the quotes printed at the time.

Largest drawdowns

PeakLow pointDepthDays to lowRecoveredDays to recover
2021-11-192023-03-13−19.9%4792023-06-1594
2024-07-102024-08-07−13.3%282024-11-0691
2025-02-192025-03-27−11.1%362025-08-08134

Buy-and-hold's deepest drawdown ran from 2021-11-19 to 2022-11-03 and reached −34.2%.

Drawdowns: whipsaw losses and the cash that avoided the rest

The filter's deepest drawdown was 19.93%, from the peak on 2021-11-19 to the low on 2023-03-13. That is 479 days to the low and 94 days to recover, on 2023-06-15. Holding QQQ had its deepest drawdown of 34.23% over the peak on 2021-11-19 to a low on 2022-11-03, recovered on 2023-12-12.

The two drawdowns share a peak but not a low. The filter's low came on 2023-03-13, the day before it bought the 67.67% trade. It had been flat from April 2022 and took small losses in January and February 2023, so its equity sat under the November 2021 peak until the long trade carried it back. Part of that drawdown came from holding through the first leg of the fall until the exit on 2022-01-21, and the rest came from the string of small losses that followed.

The second drawdown, 13.29% from 2024-07-10 to 2024-08-07, matches holding's 13.31% over the same dates. The filter was long and took the full move. Recovery took 91 days to 2024-11-06 for both. The third, 11.11% from 2025-02-19 to 2025-03-27, recovered on 2025-08-08 after 134 days. Holding's drawdown over those weeks reached 22.38% by 2025-04-08. The filter had sold on 2025-03-07 and was flat for that low.

The filter's largest drawdown was 14.3 points shallower than holding's and the middle one was unchanged. It avoids a long bear market and does not protect against a short, sharp drop that starts while the price is above the average. The August 2024 episode is the example.

With trading costs

The headline run fills at the bar price. These runs charge slippage on every fill.

Slippage per fillCAGRMax drawdownFinal valueSharpe
None (headline)12.9%−19.9%$20,0670.92
5 basis points12.8%−20.4%$19,9650.92
10 basis points12.3%−20.9%$19,4350.89

What trading costs do to a rule that trades 21 times

The filter made 21 fills in the window. At 5 basis points per fill the CAGR was 12.8% and the drawdown 20.4%, with a final value of $19,965. At 10 basis points the CAGR was 12.27%, the drawdown 20.94% and the final value $19,435. The headline run, with no cost, had $20,067.

The result barely moves because the rule trades rarely and holds for long stretches. The cost runs charge a flat amount per fill and do not model a spread. QQQ had an average daily dollar volume of $18,772,024,579 and a median minute volume of 77,976 shares in the data.

Changing the parameters

VersionCAGRMax drawdownRound tripsWin rateFinal value
Published rules12.9%−19.9%1020%$20,067
100-day SMA10.5%−21.9%2544%$17,757
150-day SMA13.7%−13.4%1450%$20,928
250-day SMA9.0%−28.0%1414%$16,404

Changing the length of the average

The parameter table tests three other window lengths.

The 100-day average returned 10.52% with a 21.90% drawdown and 25 round trips, of which 11 won. It traded far more often than the 200-day version and made less. The faster average reacts to more of the dips, and in this window it was whipsawed more often than it was rewarded.

The 150-day average returned 13.73% with a 13.41% drawdown and a Sharpe of 0.983, with 14 round trips and 7 wins. It ended at $20,928, ahead of the published rules on CAGR and drawdown. It still trailed holding QQQ at 16.7%. A result like this should be read with care. It is the best of four values tried on one window, and picking it after seeing the result is hindsight.

The 250-day average returned 9.00% with a 28.04% drawdown, 14 round trips and 2 wins. It ended at $16,404. The slower average entered recoveries later and exited breakdowns later, and it gave back more of the 2022 decline than the 200-day version did.

The pattern across the four is not monotonic. The 150-day was best, the 200-day second, the 100-day third and the 250-day last. The 200-day setting is not a sharp optimum, and the differences between settings are within what a single window can produce.

How QQQ behaved

MeasureQQQ
Data in this test2021-01-04 to 2026-10-02 (1444 sessions)
Total return, buy and hold151.1%
Annualized volatility22.4%
Deepest drawdown−35.0% (2021-11-19 to 2022-11-03)
Up days54.8%
Average daily range1.58%
Average overnight gap0.59%
Correlation to SPY0.94
Correlation to TLT0.09
Sessions above the 200-day average75.2%
Crossings of the 200-day average20
Falls of 10% or more from a 20-day high21

Why QQQ suited a 200-day rule better than most funds

QQQ spent 75.18% of sessions above its 200-day average and crossed it 20 times in the window. That is few crossings for 1,444 sessions, and it is the main reason the filter worked here. QQQ had 20 crossings and 10 round trips. Peers with more round trips had lower results: VOOV had 22 round trips with a 4.31% CAGR, VTV 21 with 4.26% and IWM 17 with 4.67%.

QQQ's own buy-and-hold CAGR was 16.7% with annualized volatility of 22.39%. In the profile series it fell 32.39% in 2022 and gained 54.81% in 2023, 25.59% in 2024, 20.77% in 2025 and 22.44% in 2026. The 2022 fall was deep enough and long enough, from 2021-11-19 to 2022-11-03, for a slow rule to get out and stay out, and the 2023 rebound was steady enough for it to stay in once entered. QQQ's beta to SPY was 1.29 and its correlation was 0.94.

Among the broad index ETFs, the filter's results were QQQM at 13.02%, QQQ at 12.90%, IOO at 11.20%, VOOG at 11.06%, VOO at 8.41%, SPY at 8.30%, VV at 7.86% and EEM at 7.76%. The two Nasdaq-100 funds were the best of the group, and the median for the category was 8.3%. Compare QQQM and IOO with SPY and VOO. The growth-heavy index gave the filter a larger move to ride from March 2023.

The other templates on QQQ give the context. The weekly 7% target returned 16.52%, the monthly cycle 14.73% and RSI(2) snapback 14.17% with a 14.27% drawdown. None of the 12 templates beat holding's 16.7% on CAGR. Only RSI(2) snapback at 14.27% and the weekly target at 19.41% had a shallower drawdown than the filter's 19.93%.

The biggest days in QQQ were 2025-04-09 at 11.75% and 2022-11-10 at 7.37%, and the worst were 2025-04-04 at negative 6.10% and 2022-09-13 at negative 5.52%. The filter was out on all four of those days, which is the sense in which a filter can miss as much as it avoids. Of QQQ's total return, 64.64% came overnight.

The limits of the test are one window, 5.74 years, and one bear market. A fund with a different 2022, or no bear market at all, would show the filter as a pure cost.

The rules

Own the asset when price closes above its 200-day average; hold cash when it closes below.

  1. WHEN the market opens · IF not invested AND yesterday's close > SMA(200) · THEN buy with 98% of the sleeve
  2. WHEN the market opens · IF invested AND yesterday's close < SMA(200) · THEN sell the whole position

One rule and one number. Price above the 200-day moving average has historically coincided with better returns and lower volatility than price below it. This template uses no crossovers and no oscillators, only which side of the long-term average the price is on.

Good for: a first systematic strategy, simple enough to audit every trade.
Watch out: price whips around the 200-day line during volatile bottoms, generating clusters of buy-sell pairs. Some traders add a small buffer band to reduce churn.

What the filter does and what it cannot see

The filter has no stop, no target and no second indicator. It decides once a day at the open, using the prior close. If QQQ closed above its 200-day simple average and the strategy is in cash, it buys. If QQQ closed below the average and the strategy holds the position, it sells. The template's own description says the price can whip around the 200-day line during volatile bottoms and produce clusters of buy and sell pairs, and that some traders add a small buffer band to reduce churn. This version has no band.

The QQQ trade list shows those clusters. In 2022 the filter made five exits, and every one lost money: 3.69% on the first position, held 94 days from 2021-10-19 to 2022-01-21, then 3.95% over 2 days in February, 0.22% over 1 day, 0.72% over 1 day in March and April, and 3.11% over 1 day from 2022-04-05 to 2022-04-06. In early 2023 two more small losses followed, 0.58% over 4 days and 2.48% over 40 days. That is seven losing trades in a row, which matches the longest losing streak of 7 in the results table. Each lost little. The first leg of the 2022 decline, taken while the first position was still held, and the seven small losses together produced the 19.93% drawdown.

The loss per trade is small because the exit comes the day after the close falls under the line, and the entry comes the day after it rises over. A trade that reverses within a day or two costs the gap between those two opens. The average loser was 2.09%. The average winner was 42.11%, with a profit factor of 4.88. A rule of this shape needs very few winners if the winners are long, and the QQQ result shows that: two winners covered eight losers with plenty to spare.

The filter can only see which side of the average the price is on. It cannot tell a 2-day dip from a bear market. The same line that kept it out of the market from April 2022 also produced four trades of one or two days in the weeks before. It also cannot reduce its exposure gradually. It holds 98% of the sleeve or nothing, and the exposure figure for the whole window was 64.8%.

The first trade in the table, entered 2021-10-19, came almost ten months after the data starts. The monthly table shows 0.0% for every month from January to September 2021. That is consistent with the average needing about 200 sessions of history before it can produce a signal, though the facts do not state how the average was seeded. The consequence is that the strategy missed most of 2021, when holding gained 28.4% and the filter gained 6.4%.

Run 200-day regime filter on QQQ yourself, free →

Build it from blocks (or type it in English), backtest it on 5.7 years of minute data in seconds, tweak any parameter, then paper trade it on live data. No card, no broker needed to start.

Frequently asked questions

Did 200-day regime filter beat buy-and-hold on QQQ?

Over 2021-01-04 to 2026-10-02, 200-day regime filter on QQQ returned 12.9% annualized vs 16.7% for buy-and-hold: it trailed buy-and-hold by 3.8% per year, with a maximum drawdown 14.3 points shallower than holding (19.9% vs 34.2%).

How many trades did it make?

10 completed round trips over 5.7 years (21 fills), with 20% of round trips closing profitably.

Why the 200-day average specifically?

It approximates a year of trading days and has been studied across decades of data. It is not the best window for every asset. The per-ETF backtests here show where it helped and where it didn't.

Is the 200-day moving average strategy good on QQQ?

In this backtest it returned 12.9% a year against 16.7% for buy-and-hold QQQ, with a 19.93% drawdown against 34.23%. It beat holding in 2022 only. The result depends heavily on one 724-day trade that made 67.67%.

How many trades did the 200-day filter make on QQQ?

It made 10 closed round trips and one position still open at the end. Two of the 10 won. The other eight lost between 0.22% and 3.95%.

Why did the 200-day filter lag buy-and-hold on QQQ?

It waits for the price to close above the average before buying, so it enters each recovery after part of the rise. It trailed holding by 22.0 points in 2021 and 18.5 points in 2023, and it was flat for 8 months of 2022.

What happened in the 2022 bear market?

The filter lost 16.3% in 2022 against 31.7% for holding, but the loss came from January to April, when five trades lost money. From May to December it was in cash. QQQ's low came on 2022-11-03.

Does a 150-day average work better than 200 days on QQQ?

In this window the 150-day average returned 13.73% with a 13.41% drawdown, against 12.9% and 19.93% for 200 days. The 100-day and 250-day versions did worse. One window is not enough to pick a value.

Do trading costs matter for this strategy?

Very little. At 10 basis points per fill the CAGR was 12.27% against 12.9%, because the filter made only 21 fills in 5.74 years.

Related

200-Day SMA Regime Filter on all 59 ETFsfull results table All strategies on QQQ12 templates compared RSI(14) Mean Reversion on QQQsame ETF, different rulesRSI(2) Dip Snapback on QQQsame ETF, different rules

Backtests are hypothetical, computed by DeployQuant's engine on minute-resolution consolidated US market data (2021-01-04 to 2026-10-02, $10,000 starting capital, no margin, no fees or slippage in the headline run; buy-and-hold puts 98% of the account in at the first open, as the templates do) and do not guarantee future results. Nothing on this page is investment advice. Live trading involves risk of loss.