Strategies

Rules-based strategies — each card is a complete set of buy and sell rules, with today's signal and a full backtest.

Two-Gate Long/Cash QQQ

NFCI regime + RSI dip · daily check

A rules-only strategy: stay long QQQ whenever (a) credit conditions are easing — NFCI sits below its 50-day average, the main regime filter that keeps you fully invested through most bull markets — or (b) QQQ's 14-day RSI has dropped below 40, which catches pullback bounces (including the sharp rallies you get inside bear markets). Sit in cash only when both fail — credit is tightening and nothing is oversold enough for a mean-reversion bounce. Historically that combination side-steps the worst legs of every major bear, compounding about 6 points a year faster than buy-and-hold (16.1% vs 10.1% CAGR since 1999). Drawdowns are still real — max −72% — just meaningfully less painful than buy-and-hold's −83%.

LOADING…
Fetching QQQ and NFCI…
RSI(QQQ, 14)
—
below 40 → fire
—
NFCI
—
below 50d SMA → fire
—
Rule CAGR
+16.1%
Buy & Hold CAGR
+10.1%
Rule cumulative
—
Buy & Hold cumulative
—
Alpha (annualized)
—
Beta vs QQQ
—
Sharpe
0.78
Max drawdown
-71.8%
Buy & Hold max DD
-83.0%
Crashes
Range
How to read this chart. Top panel is QQQ's price on a log scale (so the 1999-vs-2026 levels are both visible). Bottom panel is the NFCI (orange) against its 50-day average (dashed teal) — when orange dips below teal, credit is easing and the rule stays long. The vertical marks are the actual trades the rule generated: red = SELL (rule flipped to cash), yellow band = how long it stayed out, and green = BUY back (rule flipped to long). Wide yellow bands during 2001, 2008, 2020, and 2022 are the moments the rule side-stepped major bear markets. Thin yellow strokes are quick 1-3 day cash gaps where the rule sold on a bounce and re-bought on the next dip — each one shaves a small chunk off the drawdown, which is why the green Rule line drops less than the dashed Buy & Hold line even during stretches that look "always long" at a glance. The big red / green vertical marks only fire on regime-level transitions, so short trades won't clutter the chart.

What to expect if you follow this signal

Bad-looking individual trades are normal. The rule sells right before some rallies. It buys right before some drops. Any single trade you point at can look like a mistake. That is by design — mean reversion is not about being right on each trade, it is about being less wrong on average across hundreds of them.

The rule still loses money in bear markets — just less. From QQQ's dot-com peak to its bottom, $1,000 in the rule fell to about $455 (a 55% loss). Buy & Hold fell to $175 (an 82% loss). Same shape in 2008: −34% vs −52%. In 2022 the rule was roughly flat (−0.5%) while QQQ fell 35%. It is not a shield; it is a smaller loss.

The outperformance comes from two places:

  • Crises where NFCI spikes — the rule sits in cash for months (dot-com, 2008, COVID) while Buy & Hold gets cut in half. This is where the biggest dollar-gap opens up.
  • Choppy markets — small daily edges compound: catch most up-days, dodge enough down-days, and Rule wealth outpaces Buy & Hold even in flat or slightly-down stretches.

When it will feel worst: long steady bull runs like 2013–2019 and 2023–2024, where the rule is in cash during rallies and lags Buy & Hold by a few percent per year. That is the cost of being ready for the next crash. If your emotional reaction to that lag is to override the rule, you will kill the edge before you ever collect it.

How to actually use it: if you cannot hold through the whipsaws, do not trade this rule live. Treat the action pill as a second opinion — an unemotional gut-check against your own instincts. The +6.0% annualized alpha only exists for someone who follows every signal, including the ones that feel wrong the moment they fire. Paper-trade it through a full up-and-down cycle before committing real money.

When the signal fires — and how to actually trade it

The signal settles at market close, 4:00 PM ET. RSI(QQQ, 14) needs QQQ's closing price to compute; NFCI is a weekly series released by the Chicago Fed on Wednesday afternoons for the previous Friday's data. Both inputs are stable once the market closes, so the pill above is your call for that day — not something you should watch tick by tick during trading hours.

How this card behaves through the day: during market hours (9:30 AM–4:00 PM ET) the card polls QQQ's live price every 60 seconds and rebuilds today's provisional signal on the fly — the pill is tagged INTRADAY · settles at 4:00 PM ET and reflects what the rule is saying right now, not what it said yesterday. From 4:00 PM to 7:30 PM the tag becomes Today's close and the pill locks to today's confirmed value. The nightly workflow refreshes data/qqq.csv around 7:30 PM ET, after which the pill switches to the standard "As of <date>" line.

Three ways to execute if you follow the rule:

  • Market-on-close (textbook, matches the backtest exactly). At 3:45 PM ET, open this card and look at the pill — it's already computed live off QQQ's current price, so whatever it says IS your MOC decision. If it says BUY NOW or SELL NOW, submit a market-on-close order in your broker; it fills at 4:00 PM at the settlement price. If it says HOLD or STAY OUT, do nothing.
  • Next open (practical for most people). Check the pill any time after 7:30 PM ET. If the confirmed-close signal changed from yesterday, place a market order for tomorrow's open. Fills drift a bit from the backtest each trade, but the drift averages toward zero over 27 years.
  • Once-a-day check (no intraday attention). Same as above with zero daytime looking. If the pill is unchanged, do nothing.

Wednesday evening is the wildcard. The Chicago Fed publishes a fresh NFCI reading Wednesday afternoons; that's the one day a week the signal can flip on macro news alone, even if QQQ hasn't moved. Give the card a second look Wednesday nights.

About "missing a day": the strategy trades roughly once every 2–3 weeks on average. Any single missed transition costs at most a few percent on that trade, so no one miss destroys the edge. What does destroy the edge is skipping trades because you dislike them — that's how you filter out the mean-reversion signal.

Backtest 1999–2026 (~27 yrs) on QQQ closes + FRED NFCI weekly. Each NFCI reading is used only from its publish date, about 5 days after the week it covers (without that delay the backtest overstates the rule: 18.2% vs 16.1% CAGR). The signal at each close sets the next day's position; cash earns 0%. Bear markets, QQQ peak to bottom: dot-com −55% (vs −82% B&H), 2008 −34% (vs −52%), COVID −10% (vs −28%), 2022 −0.5% (vs −35%). Same rule on SMH 20.2% CAGR (vs 9.8% B&H). Reproduce with scripts/backtest-two-gate-nfci.py. Systematic long/cash rule shown for reference only — not investment advice; results ignore trading costs and taxes.

Factor ETF Momentum Rotation

Monthly rotation · 9-ETF universe

Each month-end, rank 9 factor ETFs (momentum, quality, value, low-vol, growth, free-cash-flow) by their trailing 6-month total return. Buy the top one at the next market open, hold for the full month, then re-rank and rotate if the leader changed. Historically the strategy has beaten SPY by — CAGR since 2014 with lower drawdown (— vs —). Fewer than 12 trades a year on average — often the same ETF stays on top for months.

LOADING… —
Fetching factor ETF prices…
Lookback
Alpha this window: — Rebalances/yr: 3.7

★ is the strategy default. The other lookbacks are shown for comparison only — the strategy is "buy the top ETF by trailing 6-month return, hold one month, rebalance." Flipping between lookbacks each month is not the strategy and will produce worse results than sticking with 6M.

—
—
rankings load once prices arrive
—
—
Rule CAGR
—
SPY CAGR
—
Rule cumulative
—
SPY cumulative
—
Alpha (annualized)
—
Rule max DD
—
SPY max DD
—
Rebalances/yr
—
Crashes
Range
How to read this chart. Top panel: $1,000 invested at the start of 2014 in the rotation strategy (green) vs $1,000 in SPY (dashed cyan). The green line ends higher because of the — annualized alpha compounded over — years. Bottom panel: the ETF actually held each month, shown as colored horizontal bands — every band change is a rotation trade. Long stretches of one color mean the strategy stayed put; frequent color changes mean the leader kept flipping.

What to expect if you follow this signal

You'll hold the same ETF for months at a time. The 6-month lookback is deliberately slow to avoid whipsaw. Since 2014 the strategy has averaged — rebalances per year. That means low trading friction and low tax churn — but you'll also spend long stretches watching a single ETF outperform or lag the broader market.

The strategy WILL underperform SPY in some years. Any single factor can lag broad-market cap-weighting for a stretch (value lagged growth from 2015-2020; growth lagged value 2021-2023). The alpha comes from riding whichever factor is leading, not from being smarter than SPY every calendar year.

Drawdowns are still real. Max — since 2014 — better than SPY's —, but you will absolutely watch the pill say HOLD while your ETF drops 15% in a correction. That's the deal.

Prices only, no dividends. Every figure on this card — the rule, SPY and the chart — is built from closing prices and leaves dividends out. SPY pays a bit over 1% a year and the factor ETFs pay too (the value and low-volatility funds more than the growth and momentum ones), so real total returns on both sides run higher than the CAGRs shown, and the gap is roughly fair but not exact.

Why this works: cross-sectional momentum (buy the strongest, hold, re-rank) is one of the most-tested effects in academic finance. Doing it across factor ETFs instead of individual stocks means zero survivorship bias (ETFs are their own index) and one-click execution. The — figure is honest — it's within the 3-6% "genuine alpha" range that survivorship-free literature suggests.

When to trade and how

Rebalance once a month, at the close of the last trading day. The pill above reflects the current month's holding. On the last trading day of each month, check the pill:

  • If it says HOLD [TICKER], do nothing.
  • If it says ROTATE: [OLD] → [NEW], sell the old ETF and buy the new one at market open the next trading day.

Any brokerage works. All 9 ETFs trade heavily — MTUM alone does >$100M/day. Bid-ask spread is 1-2 cents. You could even set calendar alerts for the last trading day of each month.

The pill updates once a day. Unlike the Two-Gate signal above, this strategy doesn't need intraday polling because rebalance decisions only happen at month-end. The current pick can shift a few days before month-end if a factor's trailing return changes rank — check the day before the last trading day if you want zero surprises.

Backtest 2014-01 – latest month-end (— yrs), Yahoo monthly-close data. Universe: MTUM, QUAL, USMV, VLUE, IWD, IWY, SPHQ, COWZ, SPMO. Each ETF joins the ranking once it has enough history for the lookback (COWZ from 2017, SPMO from 2016). Zero survivorship bias — factor ETFs are indexes themselves. Top-1 by trailing 6-month return, held for the next month. Results ignore trading costs and taxes; realistic drag for retail execution is <0.3% per year at these turnover levels. Systematic rotation shown for reference only — not investment advice.

International Country Rotation

Monthly rotation · 13-country universe · vs EFA

An international-only strategy for people who want overseas exposure done well. Each month-end, look at 13 iShares country ETFs. Filter to those trading above their 10-month moving average (the monthly-bar equivalent of the classic 200-day trend filter). Rank the survivors by trailing 6-month return and hold the top 3 equal-weighted. Rebalance monthly. Historically this has beaten the EFA developed-international benchmark by +4.22% CAGR over ~19.5 years, at a max drawdown roughly in line with EFA itself.

LOADING… —
Fetching country ETF prices…
—
—
rankings load once prices arrive
—
—
Rule CAGR
+9.9%
EFA CAGR
+5.7%
Rule cumulative
—
EFA cumulative
—
Alpha (annualized)
+4.22%
Rule max DD
-34%
EFA max DD
-30%
Rebalances/yr
~9.6
Crashes
Range
How to read this chart. Top panel: $1,000 invested in the rotation strategy (green) vs $1,000 in EFA (dashed cyan) since 2004. Bottom panel: colored bands show which countries were held each month, one row per rebalance. Long stretches of the same colors mean the same handful of countries kept leading; frequent color changes mean the leadership was shifting.

What to expect if you follow this signal

This is an international-exposure strategy, not a US-beater. The alpha is measured vs EFA (developed international). Over the last 20 years EFA has returned ~5.7% CAGR while SPY has done ~9.4%. The rotation has done ~9.9%, but its purpose is diversification: if you want US exposure, buy SPY. This card exists for the slice of a portfolio dedicated to international.

Country ETFs are volatile. Max drawdown -34% vs EFA's -30%. That's the cost of concentrating in just 3 countries at a time. If EM or a single country cracks hard (2008, 2015 China, 2020, 2022) you'll feel it more than a diversified basket.

Prices only, no dividends. Every figure on this card — the rule, EFA and the chart — is built from closing prices and leaves dividends out. EFA pays roughly 3% a year and the country ETFs pay too, so real total returns on both sides run higher than the CAGRs shown; the gap between them is roughly fair, but neither number is what an investor would actually have earned.

What the rule does mechanically: two gates, applied to each country ETF at month-end. Gate 1 (trend): the ETF has to be above its 10-month moving average, which is the monthly-bar approximation of the classic 200-day rule. Gate 2 (momentum): rank the survivors by trailing 6-month total return; take the top 3. If fewer than 3 pass Gate 1, hold only what survived. If none pass, hold cash (rare — usually happens only during severe global sell-offs).

Why 10-month MA + 6-month momentum works: country markets trend more persistently than sectors within a single country. The trend filter keeps you out of markets in structural downtrends (Russia 2014, Turkey 2018, China 2021-24), and the momentum rank picks up sustained leadership cycles (Latin America commodity booms, India since 2014, Japan since 2023).

When to trade and how

Rebalance once a month, at the close of the last trading day. The pill above reflects the current month's holding. If it says HOLD, do nothing. If it says ROTATE, sell whatever fell out of the top 3 and buy what came in, equal-weighted.

Turnover is moderate. ~9.6 rebalances/year historically. Not every rebalance is a full swap — usually just one of the three positions rotates, meaning ~3-6 trades/year per name.

Any brokerage works. The iShares country ETFs all trade at reasonable volume — even the smaller ones (EWL, EWH) do >$10M/day. Bid-ask spreads are 1-3 cents. Watch for currency effects: these are USD-priced but the underlying markets trade in local currency, so returns bake in FX moves.

Backtest 2004-2026 (~19.5 yrs), Yahoo monthly-close data. Universe: EWJ (Japan), EWG (Germany), EWU (UK), EWZ (Brazil), EWC (Canada), EWA (Australia), EWY (Korea), EWT (Taiwan), INDA (India), MCHI (China), EWH (Hong Kong), EWL (Switzerland), EWW (Mexico). Some markets enter the universe later (INDA in 2012, MCHI in 2011). Rule: hold top 3 by trailing 6-month return among ETFs above their 10-month moving average. Benchmark: EFA (iShares MSCI EAFE developed international). Results ignore trading costs and taxes — realistic drag for retail execution is <0.5% per year at this turnover. Systematic rotation shown for reference only — not investment advice.

Sector Rotation: Smoother Ride

Monthly · 11 SPDR sector funds · top 4 by 12-month return

On the first trading day of each month, rank the 11 SPDR sector funds by their total return over the past 12 months and hold the top four in equal parts. Any of the four that is down over 12 months is left out; if all four are down, the money sits in short-term Treasuries (SHY). Since 2000 this has earned about the same as the S&P 500 (— a year vs —) with a much shallower worst drop (— vs —). A smoother ride, not a bigger return.

LOADING… —
Loading the nightly backtest…
12-month return ranking
—
—
the ranking loads with the backtest file
—
—
Rule, per year
—
S&P 500, per year
—
Worst drop, rule
—
Worst drop, S&P 500
—
$1,000 became (rule)
—
$1,000 became (S&P)
—
Beat S&P, 3-yr windows
—
Trades per year
—
Crashes
Range
How to read this chart. Top panel: $1,000 in the rule (green) vs $1,000 in SPY (dashed blue), dividends included, on a log scale so the early years stay visible. The readout at the top is for the window shown. Bottom panel: the sectors held each month, one lane per slot, best 12-month return on top. Gray across all four lanes means the rule was in cash (SHY) because every top-four fund was down over 12 months.
How it held up in the big drops
Return per year, by era
Year by year

What to expect if you follow this rule

About the same return as the index, with smaller drops. Over — years the rule made — a year against — for SPY, and its worst peak-to-trough drop was — against SPY's —. The point of this rule is the second number, not the first.

Most of its lead came from the two big crashes. — In a long bull run led by one sector it tends to run a step behind the index.

Year to year it is close to a coin flip. It beat SPY in — of — calendar years and in — of rolling 3-year windows; its worst 3-year stretch against SPY was — points behind.

About — trades a year. Most months one or two of the four funds change. Every figure here already includes 0.10% of each dollar traded; in the research run, 0.5% per trade cut the return to about 8.5% a year, so commissions and sloppy fills matter more here than for the buy-and-hold side.

When to trade and how

Once a month, on the first trading day. Using the previous day's close, rank the 11 funds by their 12-month total return. The ranking table above is that list, refreshed nightly.

  • Buy the top four in equal parts, 25% each.
  • Skip any of the four that is down over 12 months and split the money over the rest. If none of the four is up, buy SHY (1-3 year Treasuries) instead.
  • Trade at the close of that first trading day. The backtest assumes the close; the next morning's open is close enough.

The pill shows what the rule holds now; the ranking table shows what it would pick if the month ended today. The two can differ late in a month, and nothing needs doing until the first trading day.

Backtest from February 2000, the first month in which the nine original SPDR sector funds (launched December 1998) had 12 months of history; XLRE joins in October 2016 and XLC in June 2019, each after its own first 12 months. Yahoo dividend-adjusted daily closes, so dividends count on both sides. Signals use the previous close; trades fill at the rebalance day's close with 0.10% of each dollar traded as cost. Rebuilt nightly. Systematic rotation shown for reference only — not investment advice.

All-Asset Trend Rotation

Monthly · 23 funds, every asset class · top 7 in uptrends

On the first trading day of each month, score 23 funds spanning stocks, bonds, commodities, a bitcoin trust and currencies by their 6-month return. A fund counts as risk on only while that return is positive and its price is above its 10-month average. Hold the 7 strongest risk-on funds in equal parts; any slot that cannot be filled sits in short-term Treasuries (SHY). Since 2008 this has made — a year against — for the S&P 500, with about half the worst drop (— vs —). It still has losing years. It is not a no-loss strategy.

LOADING… —
Loading the nightly backtest…
6-month return ranking
—
—
the ranking loads with the backtest file
—
—
Show the rest of the universe
Rule, per year
—
S&P 500, per year
—
Worst drop, rule
—
Worst drop, S&P 500
—
$1,000 became (rule)
—
$1,000 became (S&P)
—
Losing years, rule
—
Losing years, S&P 500
—
Crashes
Range
How to read this chart. Top panel: $1,000 in the rule (green) vs $1,000 in SPY (dashed blue), dividends included, on a log scale. The readout at the top is for the window shown. Bottom panel: the seven slots each month, strongest fund on top, coloured by asset class. Gray means that slot was in cash (SHY) because fewer than seven funds were in uptrends.
How it held up in the big drops
Return per year, by era
Year by year

What to expect if you follow this rule

About the S&P's return with half the drop. Over — years the rule made — a year against — for SPY, with a worst peak-to-trough drop of — against SPY's —. — It beat SPY in — of rolling 3-year windows and in — of — calendar years, so most of its lead over the index came in a few bursts.

It has losing years. — Claims that a rule like this never has a down year come from backtests tuned after the fact; a rule set in advance does not behave that way.

One fund carries a lot of it. —

About — trades a year. Most months one to three of the seven slots change. Every figure here already includes 0.10% of each dollar traded. On average the rule held — of its seven slots in funds and the rest in cash; it was fully invested in — of months.

When to trade and how

Once a month, on the first trading day. Using the previous day's close, score the 23 funds by 6-month total return and check each against its 10-month average. The ranking table above is that list, refreshed nightly.

  • Buy the 7 strongest funds that are risk on (6-month return above zero and price above the 10-month average), one seventh each.
  • If fewer than seven qualify, put each empty slot in SHY (1-3 year Treasuries).
  • Trade at the close of that first trading day. The backtest assumes the close; the next morning's open is close enough.

The pill shows what the rule holds now; the ranking table shows what it would pick if the month ended today. The two can differ late in a month, and nothing needs doing until the first trading day.

Universe: emerging markets (EEM), Asia ex-Japan (AAXJ), Europe (VGK), Latin America (ILF), Nasdaq 100 (QQQ), S&P 400 (MDY), S&P 500 equal weight (RSP), S&P 600 (IJR), Treasuries 7-10, 10-20 and 20+ years (IEF, TLH, TLT), investment-grade and high-yield corporates (LQD, HYG), international bonds (BWX, IGOV, BNDX), crude oil (USO), gasoline (UGA), gold (GLD), silver (SLV), a bitcoin trust (GBTC), the Swiss franc (FXF) and the US dollar (UUP). Backtest from January 2008, the first month most of these existed; later funds join once they have 10 months of history (international bonds through 2013, the bitcoin trust in 2016). Yahoo dividend-adjusted daily closes, so dividends count on both sides. Signals use the previous close; trades fill at the rebalance day's close with 0.10% of each dollar traded as cost. Rebuilt nightly. Systematic rotation shown for reference only — not investment advice.