Fear & Greed TQQQ strategy: research and results
How we went from "buy TQQQ when F&G is low" to the rule now running in rainier: F&G < 30 buy, SMA180 bear filter, −10% same-day stop, QQQ SMA38 exit.
Something in this artifact failed to run
The content below is still readable, but an interactive control may not respond.
Summary
We set out to find a rule that uses CNN's Fear & Greed index (F&G) to time TQQQ, the 3× Nasdaq-100 ETF. The goal was to beat holding TQQQ while avoiding its −80% crashes. After several rounds of sweeps, the rule we adopted is:
- Buy TQQQ when F&G closes below 30, unless QQQ is below its 180-day SMA (bear-market filter).
- Hard stop: if TQQQ trades 10% or more below the entry price at the close check, sell the same day. After a stop, don't buy again until QQQ closes back above its SMA38.
- Normal exit: once QQQ has closed above its SMA38 (the exit is "armed"), sell when QQQ closes back below SMA38. The sell fills at the next day's close.
Compared with the first version of the rule (F&G < 30 buy plus the SMA38 exit only), the filter and stop cut the worst drawdown from −62% to −24% and raised the 5.7-year result from $93k to $108k. The price is a weaker last 3 years ($47k against $70k). The filter skips buys at the bottom of sharp V-shaped crashes such as April 2025, and the stop sold two dips that later recovered.
The rule is live in rainier as a signal-only job (PR #186, merged). It posts to Discord and places no orders. IBKR paper trading is the next step.
Update (2026-10-17): the adopted rule fails on older data. Re-run on F&G history back to 2011, the F&G < 30 / SMA180 / −10% stop rule turned $10k into only $7.9k over 2011−2021, with a −66% worst drop. A rule tuned on all 15.8 years, F&G < 40 / SMA38 exit / SMA180 filter / −25% stop, holds up much better, but its worst drop is about −49%. See 2011−2026 out-of-sample check.
Read these numbers with care. It is one 5.7-year history containing a single bear market (2022). The −10% stop sits right next to a cliff (−9% returns about half as much), and the F&G history is CNN's revised series, not what was published on each day. Treat the results as evidence the rule is reasonable, not a forecast.
Data and method
How we got here
Each step answered one question and determined the next.
1. Does F&G mark QQQ lows?
Partly. We looked at 18 QQQ swing lows (lowest close within ±20 days, at least 7% below the prior 60-day high). F&G on the low day had a median of 25 (middle half 17–28), against 47 on an average day. Sharp crash lows reach single digits: 2.9 in April 2025, and 5.2 to 9.5 in other cases. Once clustered signals are removed, only F&G < 10 shows a real 60-day edge (+15.6% against a +4.1% baseline, 6 episodes), and that edge is gone at 1 year. Readings of 20 or 25 fire over and over in a bear market, and holding cash while waiting for low F&G lost to plain monthly DCA. Conclusion: F&G alone is not enough, and an exit rule is needed.
2. F&G buy plus a QQQ moving-average sell (19,716 combinations)
We tested buy thresholds against SMA and EMA exits from 5 to 60 days, with and without a "greed" exit. Selling when F&G gets high hurt returns. Two good areas appeared, separated by a weak band at buy thresholds 11–21:
- Low drawdown: buy below 6–9, sell on about EMA35–40. Worst drop about −21%, but few trades and about $58k over 5.7 years.
- High return: buy below 28–31, sell on about SMA35–40. The most money, but a −55% to −62% worst drop. You picked this one (F&G < 30, SMA38).
3. Buy below 25 instead of 30?
No. In the 2023–2025 bull market, dips usually took F&G only into the mid-to-high 20s, and buying below 25 missed most of the re-entries. Over 3 years it made $36.5k, against $69.7k for below 30. Over 5.7 years it made $44.4k against $93.3k. The worst drop was about the same.
Buy below 25 against buy below 30 (SMA38 exit, $10k)
| Buy < 25 | Buy < 30 | Hold TQQQ | |
|---|---|---|---|
| Last 3 years | $36.5k | $69.7k | $36.4k |
| 2021–2026 (5.7 years) | $44.4k | $93.3k | $28.5k |
| Worst drop (3y / 5.7y) | −57% / −60% | −53% / −62% | −58% / −82% |
| Trades (3y / 5.7y) | 9 / 19 | 14 / 28 | — |
4. Where did the first rule lose money?
The F&G < 30 / SMA38 rule lost −51.6% in 2022, against −79.1% for holding TQQQ. It had 11 losing trades out of 28. Eight were small whipsaws (−0.9% to −8%). Three 2022 trades did most of the damage: −17.5%, −33.8% and −11.3%. In a bear market F&G stays below 30 for weeks, so the rule kept buying back in. The SMA38 exit only fires after QQQ first gets back above SMA38, so in a steady slide it rode the losses for months.
5. Can a short-SMA "recovery" test catch the bad trades early?
We counted the trading days from each buy signal until QQQ first closed above its SMA22. The losing trades fell into two groups: fast losers (1–2 days, small whipsaw losses) and slow losers (13–24 days, the four biggest losses). Only one of 17 winners took more than 12 days.
| Winners (17) | Losers (11) | |
|---|---|---|
| Quickest | 1 day | 1 day |
| Longest | 21 days (2025-02-24, +16.9%) | 24 days (2022-04-25, −33.8%) |
| Average | 6.1 days | 7.7 days |
| Median | 5 days | 2 days |
As an exit rule it didn't work. "Sell if QQQ hasn't closed above SMAk within N days" was tested for every k from 5 to 25 and every N from 5 to 25 (441 combinations). No setting reduced the 5.7-year worst drop below about −61%. The cells that made more money were isolated: moving N by one day often swung the result between 0.5× and 1.1×. For SMA21 and SMA22 specifically, the best cell (15 days, $114.9k) sat next to $85–87k at 14 and 16 days. The reason is that after an early sell, F&G was still below 30, so the rule bought straight back in.
6. Block the buys instead: a bear-market filter and a hard stop
Two ideas worked where the early exit didn't:
- Bear-market filter (skip buys while QQQ is below its SMA L): every L from 140 to 220 gave $122–161k over 5.7 years with a −53% worst drop. That is a stable range, not one lucky number. L below 130 blocked too many normal pullbacks.
- Hard stop from the TQQQ entry price, with re-buying blocked until QQQ closes back above SMA38: −10% to −12% gave $127–157k and −43% to −50%. But −9% fell to $76k, so the useful range is narrow. Without the re-buy block, every stop level did worse.
7. Sell at the stop the same day
You asked to check at 12:58 PT and sell before the 13:00 close instead of waiting a day. The same-day stop caps the loss closer to −10% and avoids overnight gaps. In this history the next day happened to bounce in 2 of the 3 stop cases, which made the next-day version look slightly better. That was luck, not a reason to wait. Moving the SMA38 exit to the same day as well made results worse ($78k), so only the stop sells the same day.
Stop trades: selling the same day against selling the next day (SMA200 filter, −10% stop)
| Entry | Sold same day (12:59 PT) | Sold next day |
|---|---|---|
| 2022-02-03 @ $26.98 | 2022-02-18 @ $23.99: −11.3% | 2022-02-22 @ $23.24: −14.0% |
| 2025-02-25 @ $38.26 | 2025-03-04 @ $34.17: −10.9% | 2025-03-05 @ $35.50: −7.4% |
| 2026-03-09 @ $49.10 | 2026-03-20 @ $42.83: −13.0% | 2026-03-23 @ $44.31: −9.9% |
Tuning the filter and the stop together
374 combinations: regime SMA 100–250 in steps of 10 (or no filter) × stop −5% to −25% in 1% steps (or no stop). Buy below 30, SMA38 exit, same-day stop.
Each cell shows the final value in $k from $10,000, with the worst drawdown underneath. Darker shading means more money; the numbers carry the same information. The outlined cell is the chosen default, SMA180 with a −10% stop. We picked the setting from the middle of a stable good area rather than the single best cell.
2021-01-22 to 2026-10-16 (5.7 years)
| Filter ↓ / stop → | −5% | −6% | −7% | −8% | −9% | −10% | −11% | −12% | −13% | −14% | −15% | −16% | −17% | −18% | −19% | −20% | −21% | −22% | −23% | −24% | −25% | No stop |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| No filter | 44 -50% | 62 -42% | 67 -42% | 63 -40% | 71 -43% | 120 -49% | 112 -50% | 112 -50% | 104 -52% | 102 -53% | 85 -57% | 82 -58% | 77 -58% | 77 -58% | 77 -58% | 75 -60% | 70 -62% | 74 -64% | 73 -64% | 92 -64% | 91 -64% | 93 -62% |
| SMA100 | 11 -34% | 15 -28% | 16 -28% | 17 -29% | 20 -24% | 19 -24% | 19 -27% | 19 -27% | 19 -27% | 19 -27% | 17 -34% | 17 -34% | 17 -34% | 17 -34% | 17 -34% | 17 -34% | 17 -34% | 17 -34% | 17 -35% | 16 -36% | 16 -36% | 25 -54% |
| SMA110 | 12 -34% | 17 -28% | 18 -28% | 19 -28% | 22 -24% | 22 -24% | 21 -26% | 21 -26% | 21 -26% | 21 -26% | 19 -33% | 19 -33% | 19 -33% | 19 -33% | 19 -33% | 19 -33% | 19 -33% | 19 -33% | 19 -34% | 18 -35% | 18 -35% | 29 -53% |
| SMA120 | 19 -34% | 26 -28% | 27 -28% | 28 -29% | 33 -24% | 33 -24% | 32 -27% | 32 -27% | 32 -27% | 32 -27% | 29 -34% | 29 -34% | 29 -34% | 29 -34% | 29 -34% | 29 -34% | 29 -34% | 29 -34% | 28 -35% | 28 -36% | 28 -36% | 43 -54% |
| SMA130 | 21 -34% | 29 -28% | 31 -28% | 32 -29% | 38 -24% | 73 -24% | 69 -27% | 69 -27% | 69 -27% | 69 -27% | 63 -34% | 63 -34% | 63 -34% | 63 -34% | 63 -34% | 63 -34% | 63 -34% | 63 -34% | 62 -35% | 61 -36% | 61 -36% | 96 -54% |
| SMA140 | 21 -34% | 29 -33% | 31 -33% | 30 -37% | 35 -26% | 68 -27% | 65 -30% | 65 -30% | 62 -33% | 62 -33% | 56 -40% | 56 -40% | 53 -43% | 53 -43% | 53 -43% | 53 -43% | 53 -43% | 52 -44% | 51 -45% | 98 -44% | 98 -44% | 155 -53% |
| SMA150 | 31 -34% | 44 -30% | 47 -30% | 46 -35% | 54 -24% | 104 -24% | 99 -28% | 99 -28% | 95 -31% | 95 -31% | 86 -37% | 86 -37% | 81 -41% | 81 -41% | 81 -41% | 81 -41% | 81 -41% | 79 -43% | 78 -43% | 99 -44% | 99 -44% | 156 -53% |
| SMA160 | 29 -34% | 41 -30% | 44 -30% | 43 -35% | 50 -24% | 97 -24% | 93 -28% | 93 -28% | 89 -31% | 89 -31% | 81 -37% | 81 -37% | 76 -41% | 76 -41% | 76 -41% | 76 -41% | 76 -41% | 74 -43% | 73 -43% | 93 -44% | 93 -44% | 146 -53% |
| SMA170 | 29 -34% | 41 -30% | 44 -30% | 43 -35% | 50 -24% | 98 -24% | 93 -28% | 93 -28% | 89 -31% | 89 -31% | 81 -37% | 81 -37% | 76 -41% | 76 -41% | 76 -41% | 76 -41% | 76 -41% | 74 -43% | 73 -43% | 93 -44% | 93 -44% | 146 -53% |
| SMA180 | 32 -34% | 46 -30% | 48 -30% | 47 -35% | 56 -24% | 108 -24% | 103 -28% | 103 -28% | 99 -31% | 99 -31% | 89 -37% | 89 -37% | 84 -41% | 84 -41% | 84 -41% | 84 -41% | 84 -41% | 82 -43% | 81 -43% | 103 -44% | 103 -44% | 161 -53% |
| SMA190 | 30 -38% | 43 -30% | 45 -30% | 42 -35% | 49 -28% | 96 -28% | 91 -28% | 88 -30% | 85 -31% | 78 -35% | 71 -37% | 71 -37% | 67 -41% | 67 -41% | 67 -41% | 67 -41% | 63 -41% | 62 -43% | 61 -43% | 77 -44% | 76 -44% | 135 -53% |
| SMA200 | 30 -38% | 43 -30% | 45 -30% | 42 -35% | 49 -28% | 96 -28% | 91 -28% | 88 -30% | 85 -31% | 78 -35% | 71 -37% | 71 -37% | 67 -41% | 67 -41% | 67 -41% | 67 -41% | 63 -41% | 62 -43% | 61 -43% | 77 -44% | 76 -44% | 135 -53% |
| SMA210 | 30 -38% | 43 -30% | 45 -30% | 42 -35% | 49 -28% | 96 -28% | 91 -28% | 88 -30% | 85 -31% | 78 -35% | 71 -37% | 71 -37% | 67 -41% | 67 -41% | 67 -41% | 67 -41% | 63 -41% | 62 -43% | 61 -43% | 77 -44% | 76 -44% | 135 -53% |
| SMA220 | 29 -40% | 41 -31% | 44 -31% | 43 -35% | 50 -27% | 91 -31% | 87 -31% | 87 -31% | 83 -31% | 83 -31% | 75 -37% | 74 -37% | 69 -41% | 67 -41% | 67 -41% | 65 -41% | 65 -41% | 64 -43% | 58 -43% | 73 -44% | 73 -44% | 122 -53% |
| SMA230 | 29 -40% | 41 -31% | 43 -31% | 42 -35% | 49 -27% | 90 -31% | 86 -31% | 86 -31% | 82 -31% | 82 -31% | 74 -37% | 73 -37% | 68 -41% | 66 -41% | 66 -41% | 64 -41% | 64 -41% | 63 -43% | 57 -43% | 72 -44% | 72 -44% | 120 -53% |
| SMA240 | 29 -40% | 41 -31% | 43 -31% | 42 -35% | 49 -27% | 90 -31% | 86 -31% | 86 -31% | 82 -31% | 82 -31% | 74 -37% | 73 -37% | 68 -41% | 66 -41% | 66 -41% | 64 -41% | 64 -41% | 63 -43% | 57 -43% | 72 -44% | 72 -44% | 120 -53% |
| SMA250 | 29 -40% | 41 -31% | 43 -31% | 42 -35% | 49 -27% | 90 -31% | 86 -31% | 86 -31% | 82 -31% | 82 -31% | 74 -37% | 73 -37% | 68 -41% | 66 -41% | 66 -41% | 64 -41% | 64 -41% | 63 -43% | 57 -43% | 72 -44% | 72 -44% | 120 -53% |
Last 3 years (2023-10-16 to 2026-10-16)
| Filter ↓ / stop → | −5% | −6% | −7% | −8% | −9% | −10% | −11% | −12% | −13% | −14% | −15% | −16% | −17% | −18% | −19% | −20% | −21% | −22% | −23% | −24% | −25% | No stop |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| No filter | 37 -30% | 37 -30% | 37 -30% | 34 -35% | 40 -23% | 78 -23% | 75 -23% | 75 -23% | 71 -26% | 71 -26% | 65 -29% | 65 -29% | 61 -31% | 61 -31% | 61 -31% | 61 -31% | 61 -31% | 59 -32% | 59 -32% | 74 -32% | 74 -32% | 70 -53% |
| SMA100 | 8 -28% | 8 -28% | 8 -28% | 8 -28% | 10 -21% | 10 -22% | 9 -26% | 9 -26% | 9 -26% | 9 -26% | 8 -33% | 8 -33% | 8 -33% | 8 -33% | 8 -33% | 8 -33% | 8 -33% | 8 -33% | 8 -34% | 8 -35% | 8 -35% | 13 -53% |
| SMA110 | 9 -28% | 9 -28% | 9 -28% | 9 -28% | 10 -21% | 10 -22% | 10 -26% | 10 -26% | 10 -26% | 10 -26% | 9 -33% | 9 -33% | 9 -33% | 9 -33% | 9 -33% | 9 -33% | 9 -33% | 9 -33% | 9 -34% | 9 -35% | 9 -35% | 14 -53% |
| SMA120 | 13 -28% | 13 -28% | 13 -28% | 13 -29% | 15 -23% | 15 -24% | 14 -27% | 14 -27% | 14 -27% | 14 -27% | 13 -34% | 13 -34% | 13 -34% | 13 -34% | 13 -34% | 13 -34% | 13 -34% | 13 -34% | 13 -35% | 13 -36% | 13 -36% | 20 -54% |
| SMA130 | 13 -28% | 13 -28% | 13 -28% | 13 -29% | 15 -23% | 29 -23% | 28 -27% | 28 -27% | 28 -27% | 28 -27% | 25 -34% | 25 -34% | 25 -34% | 25 -34% | 25 -34% | 25 -34% | 25 -34% | 25 -34% | 25 -35% | 25 -36% | 25 -36% | 39 -54% |
| SMA140 | 13 -33% | 13 -33% | 13 -33% | 12 -37% | 14 -26% | 28 -27% | 26 -30% | 26 -30% | 25 -33% | 25 -33% | 23 -40% | 23 -40% | 21 -43% | 21 -43% | 21 -43% | 21 -43% | 21 -43% | 21 -44% | 21 -45% | 40 -44% | 40 -44% | 63 -53% |
| SMA150 | 20 -30% | 20 -30% | 20 -30% | 18 -35% | 22 -24% | 42 -24% | 40 -28% | 40 -28% | 38 -31% | 38 -31% | 35 -37% | 35 -37% | 33 -41% | 33 -41% | 33 -41% | 33 -41% | 33 -41% | 32 -43% | 32 -43% | 40 -44% | 40 -44% | 63 -53% |
| SMA160 | 20 -30% | 20 -30% | 20 -30% | 18 -35% | 22 -24% | 42 -24% | 40 -28% | 40 -28% | 38 -31% | 38 -31% | 35 -37% | 35 -37% | 33 -41% | 33 -41% | 33 -41% | 33 -41% | 33 -41% | 32 -43% | 32 -43% | 40 -44% | 40 -44% | 63 -53% |
| SMA170 | 20 -30% | 20 -30% | 20 -30% | 19 -35% | 22 -24% | 42 -24% | 40 -28% | 40 -28% | 38 -31% | 38 -31% | 35 -37% | 35 -37% | 33 -41% | 33 -41% | 33 -41% | 33 -41% | 33 -41% | 32 -43% | 32 -43% | 40 -44% | 40 -44% | 63 -53% |
| SMA180 | 22 -30% | 22 -30% | 22 -30% | 20 -35% | 24 -24% | 47 -24% | 44 -28% | 44 -28% | 43 -31% | 43 -31% | 39 -37% | 39 -37% | 36 -41% | 36 -41% | 36 -41% | 36 -41% | 36 -41% | 35 -43% | 35 -43% | 44 -44% | 44 -44% | 70 -53% |
| SMA190 | 22 -30% | 22 -30% | 22 -30% | 20 -35% | 24 -24% | 47 -24% | 44 -28% | 44 -28% | 43 -31% | 43 -31% | 39 -37% | 39 -37% | 36 -41% | 36 -41% | 36 -41% | 36 -41% | 36 -41% | 35 -43% | 35 -43% | 44 -44% | 44 -44% | 70 -53% |
| SMA200 | 22 -30% | 22 -30% | 22 -30% | 20 -35% | 24 -24% | 47 -24% | 44 -28% | 44 -28% | 43 -31% | 43 -31% | 39 -37% | 39 -37% | 36 -41% | 36 -41% | 36 -41% | 36 -41% | 36 -41% | 35 -43% | 35 -43% | 44 -44% | 44 -44% | 70 -53% |
| SMA210 | 22 -30% | 22 -30% | 22 -30% | 20 -35% | 24 -24% | 47 -24% | 44 -28% | 44 -28% | 43 -31% | 43 -31% | 39 -37% | 39 -37% | 36 -41% | 36 -41% | 36 -41% | 36 -41% | 36 -41% | 35 -43% | 35 -43% | 44 -44% | 44 -44% | 70 -53% |
| SMA220 | 22 -30% | 22 -30% | 22 -30% | 20 -35% | 24 -24% | 47 -24% | 44 -28% | 44 -28% | 43 -31% | 43 -31% | 39 -37% | 39 -37% | 36 -41% | 36 -41% | 36 -41% | 36 -41% | 36 -41% | 35 -43% | 35 -43% | 44 -44% | 44 -44% | 70 -53% |
| SMA230 | 22 -30% | 22 -30% | 22 -30% | 20 -35% | 24 -24% | 47 -24% | 44 -28% | 44 -28% | 43 -31% | 43 -31% | 39 -37% | 39 -37% | 36 -41% | 36 -41% | 36 -41% | 36 -41% | 36 -41% | 35 -43% | 35 -43% | 44 -44% | 44 -44% | 70 -53% |
| SMA240 | 22 -30% | 22 -30% | 22 -30% | 20 -35% | 24 -24% | 47 -24% | 44 -28% | 44 -28% | 43 -31% | 43 -31% | 39 -37% | 39 -37% | 36 -41% | 36 -41% | 36 -41% | 36 -41% | 36 -41% | 35 -43% | 35 -43% | 44 -44% | 44 -44% | 70 -53% |
| SMA250 | 22 -30% | 22 -30% | 22 -30% | 20 -35% | 24 -24% | 47 -24% | 44 -28% | 44 -28% | 43 -31% | 43 -31% | 39 -37% | 39 -37% | 36 -41% | 36 -41% | 36 -41% | 36 -41% | 36 -41% | 35 -43% | 35 -43% | 44 -44% | 44 -44% | 70 -53% |
- The good area is a filter of SMA150–210 with a stop of −10% to −12%. Every cell there gives $88–108k over 5.7 years with a worst drop of −24% to −30%.
- A stop of −9% or tighter falls off a cliff ($42–56k): normal 3× swings trip it and it sells winners. −10% sits right at the edge, while −11% and −12% are a little safer and slightly lower ($103k, −28%, at SMA180).
- Stops looser than −13% steadily raise the drawdown without adding return.
- No stop with the filter makes the most over 5.7 years ($161k at SMA180), but the worst drop stays at −53% (April 2025).
- You chose SMA180 + −10%: the best balance of return against drawdown in both windows, accepting that it sits next to the −9% cliff.
Results of the adopted rule
| Strategy ($10k) | 5.7 years | Worst drop | Last 3 years | Worst drop | Trades (5.7y) |
|---|---|---|---|---|---|
| F&G < 30 + SMA180 filter + −10% stop (default) | $107.9k | −24.4% | $46.6k | −24.4% | 25 |
| F&G < 30 + SMA38 exit only (first rule) | $93.3k | −61.5% | $69.7k | −53.4% | 28 |
| Hold TQQQ | $28.5k | −81.7% | $36.4k | −58.0% | — |
| Hold QQQ | $22.6k | −35.1% | $19.5k | −22.8% | — |
| Month | Default rule | First rule | Hold TQQQ | Hold QQQ |
|---|---|---|---|---|
| 2021-01 | $9,368 | $9,368 | $9,000 | $9,666 |
| 2021-02 | $9,914 | $9,914 | $8,876 | $9,653 |
| 2021-03 | $9,914 | $9,914 | $9,079 | $9,819 |
| 2021-04 | $9,914 | $9,914 | $10,710 | $10,399 |
| 2021-05 | $11,264 | $11,264 | $10,206 | $10,274 |
| 2021-06 | $11,264 | $11,264 | $12,187 | $10,918 |
| 2021-07 | $11,566 | $11,566 | $13,205 | $11,230 |
| 2021-08 | $12,610 | $12,610 | $14,872 | $11,704 |
| 2021-09 | $10,236 | $10,236 | $12,393 | $11,039 |
| 2021-10 | $12,750 | $12,750 | $15,436 | $11,907 |
| 2021-11 | $13,434 | $13,434 | $16,264 | $12,145 |
| 2021-12 | $13,265 | $13,265 | $16,547 | $12,285 |
| 2022-01 | $11,866 | $12,749 | $12,302 | $11,210 |
| 2022-02 | $11,866 | $10,817 | $10,438 | $10,708 |
| 2022-03 | $11,866 | $11,996 | $11,576 | $11,208 |
| 2022-04 | $11,866 | $9,353 | $7,268 | $9,684 |
| 2022-05 | $11,866 | $8,462 | $6,576 | $9,531 |
| 2022-06 | $11,866 | $6,145 | $4,775 | $8,682 |
| 2022-07 | $11,866 | $7,236 | $6,637 | $9,771 |
| 2022-08 | $11,866 | $7,236 | $5,533 | $9,270 |
| 2022-09 | $11,866 | $6,240 | $3,844 | $8,293 |
| 2022-10 | $11,866 | $6,421 | $4,168 | $8,625 |
| 2022-11 | $11,866 | $6,421 | $4,688 | $9,103 |
| 2022-12 | $11,866 | $6,421 | $3,460 | $8,283 |
| 2023-01 | $11,866 | $6,421 | $4,582 | $9,164 |
| 2023-02 | $11,866 | $6,421 | $4,426 | $9,131 |
| 2023-03 | $14,791 | $8,549 | $5,685 | $9,998 |
| 2023-04 | $14,786 | $8,546 | $5,683 | $10,049 |
| 2023-05 | $18,188 | $10,512 | $6,990 | $10,841 |
| 2023-06 | $21,527 | $12,442 | $8,274 | $11,524 |
| 2023-07 | $23,790 | $13,750 | $9,144 | $11,969 |
| 2023-08 | $20,829 | $12,038 | $8,564 | $11,792 |
| 2023-09 | $21,360 | $12,345 | $7,213 | $11,193 |
| 2023-10 | $22,253 | $12,861 | $6,638 | $10,962 |
| 2023-11 | $29,782 | $17,213 | $8,884 | $12,148 |
| 2023-12 | $34,570 | $19,980 | $10,312 | $12,826 |
| 2024-01 | $35,892 | $20,744 | $10,707 | $13,060 |
| 2024-02 | $41,156 | $23,787 | $12,277 | $13,749 |
| 2024-03 | $42,126 | $24,347 | $12,566 | $13,925 |
| 2024-04 | $42,342 | $24,472 | $10,766 | $13,316 |
| 2024-05 | $50,202 | $29,014 | $12,764 | $14,135 |
| 2024-06 | $59,493 | $34,384 | $15,127 | $15,049 |
| 2024-07 | $59,707 | $34,508 | $13,992 | $14,797 |
| 2024-08 | $74,330 | $42,960 | $14,059 | $14,960 |
| 2024-09 | $74,330 | $42,960 | $14,902 | $15,352 |
| 2024-10 | $74,330 | $42,960 | $14,277 | $15,220 |
| 2024-11 | $74,330 | $42,960 | $16,423 | $16,034 |
| 2024-12 | $71,003 | $41,037 | $16,321 | $16,107 |
| 2025-01 | $74,722 | $43,186 | $17,062 | $16,455 |
| 2025-02 | $72,051 | $41,642 | $15,453 | $16,010 |
| 2025-03 | $66,589 | $31,943 | $11,853 | $14,796 |
| 2025-04 | $66,589 | $30,593 | $11,353 | $15,003 |
| 2025-05 | $66,589 | $39,022 | $14,481 | $16,380 |
| 2025-06 | $66,589 | $46,399 | $17,218 | $17,426 |
| 2025-07 | $66,589 | $49,311 | $18,299 | $17,848 |
| 2025-08 | $66,589 | $50,474 | $18,537 | $18,018 |
| 2025-09 | $66,589 | $50,474 | $21,470 | $18,987 |
| 2025-10 | $76,777 | $58,197 | $24,236 | $19,894 |
| 2025-11 | $73,496 | $55,709 | $22,650 | $19,584 |
| 2025-12 | $70,030 | $53,082 | $21,928 | $19,453 |
| 2026-01 | $70,030 | $53,082 | $22,461 | $19,692 |
| 2026-02 | $70,030 | $53,082 | $20,597 | $19,230 |
| 2026-03 | $60,961 | $44,825 | $17,365 | $18,300 |
| 2026-04 | $79,036 | $68,334 | $26,472 | $21,171 |
| 2026-05 | $105,182 | $90,941 | $35,230 | $23,409 |
| 2026-06 | $102,907 | $88,974 | $33,824 | $23,374 |
| 2026-07 | $98,915 | $85,522 | $26,984 | $21,837 |
| 2026-08 | $107,456 | $92,906 | $30,033 | $22,750 |
| 2026-09 | $123,547 | $106,819 | $32,647 | $23,505 |
| 2026-10 | $107,891 | $93,283 | $28,539 | $22,553 |
| Year | Default rule | First rule | Hold TQQQ | Hold QQQ |
|---|---|---|---|---|
| 2021 | +32.6% | +32.6% | +65.5% | +22.8% |
| 2022 | −10.5% | −51.6% | −79.1% | −32.6% |
| 2023 | +191.3% | +211.1% | +198.0% | +54.9% |
| 2024 | +105.4% | +105.4% | +58.3% | +25.6% |
| 2025 | −1.4% | +29.4% | +34.4% | +20.8% |
| 2026 to date | +54.1% | +75.7% | +30.1% | +15.9% |
- 2022: −10.5%, against −51.6% for the first rule and −79.1% for holding TQQQ. The only loss came from the December 2021 trade, which sold on 2022-01-06. After that the SMA180 filter kept the strategy in cash until March 2023.
- 2025: −1.4%, against +29.4% for the first rule. The filter skipped the April 2025 crash-bottom buy (QQQ was below SMA180), and a stop sold the February–March dip at −10.9%.
- Time invested: 43% of trading days, against 62% for the first rule. Most of the gap in bull years comes from sitting in cash.
Every trade of the default rule
25 trades: 15 wins (average +23.8%), 10 losses (average −5.1%). The signal is the close that fired the buy, and the entry fills at the next close. "Days" counts trading days held.
| # | Buy signal | F&G | Entry | Entry $ | Exit | Exit $ | Return | Exit reason | Days |
|---|---|---|---|---|---|---|---|---|---|
| 1 | 2021-01-27 | 28.2 | 2021-01-28 | $22.94 | 2021-02-23 | $22.79 | −0.9% | SMA38 | 17 |
| 2 | 2021-05-12 | 26.8 | 2021-05-13 | $21.43 | 2021-05-28 | $24.39 | +13.6% | SMA38 | 11 |
| 3 | 2021-07-08 | 27.0 | 2021-07-09 | $30.71 | 2021-08-19 | $31.32 | +1.8% | SMA38 | 29 |
| 4 | 2021-08-19 | 14.9 | 2021-08-20 | $32.29 | 2021-09-21 | $31.78 | −1.8% | SMA38 | 21 |
| 5 | 2021-09-21 | 11.4 | 2021-09-22 | $32.71 | 2021-09-28 | $30.16 | −8.0% | SMA38 | 4 |
| 6 | 2021-09-28 | 12.5 | 2021-09-29 | $29.96 | 2021-12-06 | $36.52 | +21.7% | SMA38 | 47 |
| 7 | 2021-12-06 | 21.3 | 2021-12-07 | $39.81 | 2021-12-15 | $39.42 | −1.2% | SMA38 | 6 |
| 8 | 2021-12-20 | 29.4 | 2021-12-21 | $37.11 | 2022-01-06 | $35.41 | −4.8% | SMA38 | 11 |
| 9 | 2023-03-13 | 23.4 | 2023-03-14 | $10.89 | 2023-08-09 | $19.15 | +75.5% | SMA38 | 102 |
| 10 | 2023-09-26 | 24.2 | 2023-09-27 | $16.80 | 2023-10-16 | $18.72 | +11.2% | SMA38 | 13 |
| 11 | 2023-10-19 | 29.5 | 2023-10-20 | $16.50 | 2024-04-05 | $29.21 | +76.6% | SMA38 | 114 |
| 12 | 2024-04-19 | 27.7 | 2024-04-22 | $24.84 | 2024-07-22 | $36.32 | +45.9% | SMA38 | 62 |
| 13 | 2024-08-06 | 19.0 | 2024-08-07 | $26.05 | 2024-08-29 | $32.50 | +24.5% | SMA38 | 16 |
| 14 | 2024-12-19 | 19.5 | 2024-12-20 | $40.80 | 2025-01-02 | $38.76 | −5.2% | SMA38 | 7 |
| 15 | 2025-01-02 | 24.3 | 2025-01-03 | $40.62 | 2025-01-08 | $39.77 | −2.3% | SMA38 | 3 |
| 16 | 2025-01-10 | 25.6 | 2025-01-13 | $37.48 | 2025-01-28 | $40.74 | +8.5% | SMA38 | 10 |
| 17 | 2025-02-24 | 29.5 | 2025-02-25 | $38.26 | 2025-03-04 | $34.17 | −10.9% | STOP | 5 |
| 18 | 2025-10-13 | 29.7 | 2025-10-14 | $50.19 | 2025-11-14 | $51.98 | +3.4% | SMA38 | 23 |
| 19 | 2025-11-14 | 22.1 | 2025-11-17 | $50.65 | 2025-12-15 | $51.63 | +1.7% | SMA38 | 19 |
| 20 | 2026-03-06 | 25.3 | 2026-03-09 | $49.10 | 2026-03-20 | $42.83 | −13.0% | STOP | 8 |
| 21 | 2026-04-08 | 29.2 | 2026-04-09 | $48.75 | 2026-06-11 | $75.69 | +54.9% | SMA38 | 44 |
| 22 | 2026-06-11 | 29.7 | 2026-06-12 | $77.19 | 2026-06-25 | $74.81 | −3.3% | SMA38 | 8 |
| 23 | 2026-06-25 | 25.4 | 2026-06-26 | $71.69 | 2026-07-06 | $76.27 | +6.2% | SMA38 | 5 |
| 24 | 2026-07-29 | 25.6 | 2026-07-30 | $63.18 | 2026-08-25 | $70.13 | +10.8% | SMA38 | 18 |
| 25 | 2026-09-15 | 28.0 | 2026-09-16 | $67.80 | 2026-10-16 | $68.21 | +0.4% | SMA38 | 22 |
Prices are yfinance adjusted closes, so they won't match old broker quotes exactly. Returns include 0.1% cost on each side.
2011−2026 out-of-sample check
Everything above was tuned on 2021-01 to 2026-10, because CNN's feed starts there. A public archive, whit3rabbit/fear-greed-data, extends F&G back to 2011-01-03. Its 2011−2021 part was pieced together from third-party copies of CNN's index, with whole-number values and a gap from 2020-06-05 to 2020-07-09. From 2021 it matches our CNN data (correlation 0.9997). Prices are yfinance adjusted closes, matching our fixture to within 0.0001%. Same costs and fills as above.
$10k by period
| Strategy | 2011 to 2021-01 | Worst drop | 2021-01 to 2026-10 | All 2011–2026 | Worst drop |
|---|---|---|---|---|---|
| F&G < 30, SMA180, −10% stop (adopted above) | $7.9k | −66% | $109k | $81k (14%/yr) | −66% |
| F&G < 30, SMA38 exit only (first rule) | $53k | −77% | $90k | $473k (28%/yr) | −77% |
| F&G < 40, SMA180, −25% stop (candidate) | $131k | −49% | $109k | $1.42M (37%/yr) | −49% |
| Trend: hold TQQQ while QQQ > SMA180 | $138k | −57% | $63k | $870k (33%/yr) | −57% |
| Trend: hold TQQQ while QQQ > SMA200 | $115k | −61% | $38k | $435k (27%/yr) | −61% |
| Hold TQQQ | $632k | −70% | $28.5k | $1.79M (39%/yr) | −82% |
| Hold QQQ | $65k | −29% | $22.6k | $147k (19%/yr) | −35% |
- The −10% stop is the problem. Most 2011−2020 selloffs were sharp V-shaped dips: Aug 2011, Aug 2015, Feb and Oct 2018, May 2019 and Feb 2020. The stop sold near each bottom, 10 times, often losing 11−20% when the price fell past the stop before the check. Buying then stayed blocked until QQQ recovered its SMA38, so the rule missed the rebound. Every stop from −8% to −13% gives only $5−14k over 2011−2021, whatever the filter.
- A looser stop and a higher buy threshold work. Tuned over all 16 years (most return per unit of worst drop), the best cell is buy below 40 with a −25% stop. Its neighbours all stay within a reasonable range of it (table below).
- Nothing beats holding TQQQ on total return since 2011 ($1.79M). The strategies trade some of that return for a smaller worst drop.
Walk-forward test
Each year from 2015, the setting was chosen using only the years before it (most return per unit of worst drop), then traded for that year. The chosen setting has been the candidate every year since 2023. Over 2015−2026, $10k grew to $281k with a −58% worst drop. The same years give $74k for the adopted rule, $191k for the SMA200 trend rule and $354k for holding TQQQ. The test isn't stable, though: adding two more buy levels and a −30% stop to the search changed the 2021−2022 picks, and the result fell to $126k (−71%).
| Year | Walk-forward | Adopted rule | First rule | Trend SMA200 | Hold TQQQ | Hold QQQ |
|---|---|---|---|---|---|---|
| 2015 | −1.7% | −14.3% | +25.5% | −14.6% | +17.2% | +9.4% |
| 2016 | −14.3% | −5.2% | −12.2% | −20.6% | +11.4% | +7.1% |
| 2017 | +23.1% | +13.6% | +13.6% | +118.1% | +118.1% | +32.7% |
| 2018 | −22.3% | −42.0% | −50.0% | +4.5% | −19.8% | −0.1% |
| 2019 | +72.0% | −9.8% | +28.9% | +49.4% | +133.8% | +39.0% |
| 2020 | +67.9% | +33.0% | +131.7% | +96.6% | +110.1% | +48.4% |
| 2021 | +91.8% | +40.9% | +40.9% | +83.0% | +83.0% | +27.4% |
| 2022 | −10.5% | −10.5% | −51.6% | −50.1% | −79.1% | −32.6% |
| 2023 | +188.0% | +191.3% | +211.1% | +93.4% | +198.0% | +54.9% |
| 2024 | +94.3% | +105.4% | +105.4% | +58.3% | +58.3% | +25.6% |
| 2025 | −24.9% | −1.4% | +29.4% | +27.9% | +34.4% | +20.8% |
| 2026 | +67.5% | +54.1% | +75.7% | +18.0% | +30.1% | +15.9% |
Neighbours of the candidate (all 2011−2026)
| Change from candidate | $10k → | Worst drop |
|---|---|---|
| Candidate: buy < 40, SMA38, SMA180, −25% | $1.42M | −49% |
| Buy < 35 | $928k | −49% |
| Buy < 45 | $888k | −51% |
| Buy < 50 | $788k | −51% |
| Stop −20% | $873k | −54% |
| Stop −30% | $1.12M | −54% |
| No stop | $2.04M | −70% |
| Regime SMA150 | $743k | −54% |
| Regime SMA200 | $685k | −62% |
| Exit SMA30 | $470k | −53% |
| Exit SMA50 | $486k | −58% |
| Buy < 30 with −25% stop | $242k | −60% |
Is the pre-2021 F&G archive trustworthy?
CNN averages 7 indicators but doesn't publish the exact scoring. I rebuilt an approximation from 5 of them using free data. Each is scored as its percentile over the trailing year, and the five scores are averaged with equal weight:
- S&P 500 against its 125-day average
- Where the NYSE Composite sits in its 52-week range
- VIX against its 50-day average
- HYG against LQD, 20-day return
- SPY against IEF, 20-day return
The approximation doesn't include put/call, NYSE highs and lows, or McClellan breadth. The question is whether the archive tracks the rebuild as closely as the live CNN feed does.
| F&G source | Days | Correlation | Average gap (points) | Agree on < 30 |
|---|---|---|---|---|
| Archive, 2011 to 2021-01 | 2,514 | 0.87 | 9.4 | 90% |
| Live CNN feed, 2021-02 onward | 1,384 | 0.84 | 8.6 | 89% |
- The archive behaves like real CNN data. Its agreement with the rebuild is as good as the live feed's, so there is no sign it is fabricated or broken.
- Exact thresholds are sensitive. Backtesting on the rebuilt index instead of the archive changes the ranking. On the rebuild the first rule scores best ($1.40M), the candidate makes $946k and the adopted rule $170k. The candidate beats the adopted rule on either source.
Proposed change, not yet applied: switch the default to F&G < 40, SMA38 exit, SMA180 filter and a −25% stop. Expect a worst drop of about −50%, not the −24% seen in 2021−2026. The live job still runs the rule above until the settings change.
What is running now (PR #186)
Caveats and next steps
- Small sample. There is one bear market and two stop-outs. The −10% stop is next to a cliff, and if live trading shows frequent near-misses, −11% is the safer setting.
- Backtest against live timing. The backtest stops at the 13:00 PT close, while the live check uses the 12:58 price. If TQQQ crosses the stop in the last 2 minutes, or recovers by the close, the two can disagree.
- Revised F&G history. CNN revises past values, and the live job sees the value at 15:20 PT, which may differ slightly from what the backtest used.
- Fills. TQQQ market-on-close orders must be in by 12:50 PT, so a 12:59 stop has to be a market or limit order. Expect a few cents of difference from the official close.
- Phase 2: IBKR paper trading through IB Gateway on the Mac mini: reconcile actual holdings, place orders with caps, and post order and fill alerts to Discord.
- Phase 3: live trading, only after a paper-trading period and your explicit go-ahead.