| Market-Timing Signals (Gates) · 60 tested |
| ▸The Risk Reducer
Various / folklore |
Tells you when to be in the market vs. step aside |
FLAGSHIP
Tested against every index series we could download; beat all of them. Roughly halved drawdowns. Our flagship — recipe stays in the kitchen. |
A+
+0.48 edge vs. buy & hold |
What it's meant to doTells you when to be in the market vs. step aside
— Various / folklore
What we foundTested against every index series we could download; beat all of them. Roughly halved drawdowns. Our flagship — recipe stays in the kitchen.
The numbersSharpe 1.42, worst drawdown -13%, in-market 77% of days
· edge vs. buy & hold
Performance A+
the one that survived
Rigor D
2/5 honesty checks passed
How honestly we tested it– survivorship-free · ✗ net of real cost · ✗ out-of-sample · ✓ point-in-time · ✓ look-ahead checked
The method stays in the kitchen with the recipe — only the live read and the track record are public.
|
| ▸MA200
Various / folklore |
Tells you when to be in the market vs. step aside |
MARGINAL
Barely moves the needle once tested fairly. Famous, not powerful. |
C
+0.08 edge vs. buy & hold |
What it's meant to doTells you when to be in the market vs. step aside
— Various / folklore
What we foundBarely moves the needle once tested fairly. Famous, not powerful.
The numbersSharpe 1.01, worst drawdown -20%, in-market 86% of days
· edge vs. buy & hold
Performance C
marginal — barely better than a coin flip
Rigor D
2/5 honesty checks passed
How honestly we tested it– survivorship-free · ✗ net of real cost · ✗ out-of-sample · ✓ point-in-time · ✓ look-ahead checked
—
|
| ▸MA10mo(210d)
Various / folklore |
Tells you when to be in the market vs. step aside |
MARGINAL
Barely moves the needle once tested fairly. Famous, not powerful. |
C
+0.07 edge vs. buy & hold |
What it's meant to doTells you when to be in the market vs. step aside
— Various / folklore
What we foundBarely moves the needle once tested fairly. Famous, not powerful.
The numbersSharpe 1.01, worst drawdown -19%, in-market 86% of days
· edge vs. buy & hold
Performance C
marginal — barely better than a coin flip
Rigor D
2/5 honesty checks passed
How honestly we tested it– survivorship-free · ✗ net of real cost · ✗ out-of-sample · ✓ point-in-time · ✓ look-ahead checked
—
|
| ▸VIX9D<VIX
Various / folklore |
Tells you when to be in the market vs. step aside |
MARGINAL
Barely moves the needle once tested fairly. Famous, not powerful. |
C
+0.06 edge vs. buy & hold |
What it's meant to doTells you when to be in the market vs. step aside
— Various / folklore
What we foundBarely moves the needle once tested fairly. Famous, not powerful.
The numbersSharpe 1.00, worst drawdown -17%, in-market 70% of days
· edge vs. buy & hold
Performance C
marginal — barely better than a coin flip
Rigor D
2/5 honesty checks passed
How honestly we tested it– survivorship-free · ✗ net of real cost · ✗ out-of-sample · ✓ point-in-time · ✓ look-ahead checked
—
|
| ▸HY_OAS falling20d
Various / folklore |
Tells you when to be in the market vs. step aside |
MARGINAL
Barely moves the needle once tested fairly. Famous, not powerful. |
C
+0.05 edge vs. buy & hold |
What it's meant to doTells you when to be in the market vs. step aside
— Various / folklore
What we foundBarely moves the needle once tested fairly. Famous, not powerful.
The numbersSharpe 0.99, worst drawdown -22%, in-market 57% of days
· edge vs. buy & hold
Performance C
marginal — barely better than a coin flip
Rigor D
2/5 honesty checks passed
How honestly we tested it– survivorship-free · ✗ net of real cost · ✗ out-of-sample · ✓ point-in-time · ✓ look-ahead checked
—
|
| ▸VIX<25
Various / folklore |
Tells you when to be in the market vs. step aside |
MARGINAL
Barely moves the needle once tested fairly. Famous, not powerful. |
C
+0.05 edge vs. buy & hold |
What it's meant to doTells you when to be in the market vs. step aside
— Various / folklore
What we foundBarely moves the needle once tested fairly. Famous, not powerful.
The numbersSharpe 0.99, worst drawdown -23%, in-market 89% of days
· edge vs. buy & hold
Performance C
marginal — barely better than a coin flip
Rigor D
2/5 honesty checks passed
How honestly we tested it– survivorship-free · ✗ net of real cost · ✗ out-of-sample · ✓ point-in-time · ✓ look-ahead checked
—
|
| ▸IG_OAS<60dMA
Various / folklore |
Tells you when to be in the market vs. step aside |
MARGINAL
Barely moves the needle once tested fairly. Famous, not powerful. |
C
+0.04 edge vs. buy & hold |
What it's meant to doTells you when to be in the market vs. step aside
— Various / folklore
What we foundBarely moves the needle once tested fairly. Famous, not powerful.
The numbersSharpe 0.98, worst drawdown -19%, in-market 63% of days
· edge vs. buy & hold
Performance C
marginal — barely better than a coin flip
Rigor D
2/5 honesty checks passed
How honestly we tested it– survivorship-free · ✗ net of real cost · ✗ out-of-sample · ✓ point-in-time · ✓ look-ahead checked
—
|
| ▸StLouisFSI<0.5
Various / folklore |
Tells you when to be in the market vs. step aside |
MARGINAL
Barely moves the needle once tested fairly. Famous, not powerful. |
C
+0.03 edge vs. buy & hold |
What it's meant to doTells you when to be in the market vs. step aside
— Various / folklore
What we foundBarely moves the needle once tested fairly. Famous, not powerful.
The numbersSharpe 0.97, worst drawdown -25%, in-market 95% of days
· edge vs. buy & hold
Performance C
marginal — barely better than a coin flip
Rigor D
2/5 honesty checks passed
How honestly we tested it– survivorship-free · ✗ net of real cost · ✗ out-of-sample · ✓ point-in-time · ✓ look-ahead checked
—
|
| ▸VIX<VIX3M(contango)
Various / folklore |
Tells you when to be in the market vs. step aside |
MARGINAL
Barely moves the needle once tested fairly. Famous, not powerful. |
C
+0.01 edge vs. buy & hold |
What it's meant to doTells you when to be in the market vs. step aside
— Various / folklore
What we foundBarely moves the needle once tested fairly. Famous, not powerful.
The numbersSharpe 0.94, worst drawdown -24%, in-market 92% of days
· edge vs. buy & hold
Performance C
marginal — barely better than a coin flip
Rigor D
2/5 honesty checks passed
How honestly we tested it– survivorship-free · ✗ net of real cost · ✗ out-of-sample · ✓ point-in-time · ✓ look-ahead checked
—
|
| ▸The Hedgeye Quads (GIP macro model)
Hedgeye (GIP / 'quad' macro model) |
Read the growth + inflation 'quad' and tilt your asset allocation to the regime |
MARGINAL
A genuinely useful lens for THINKING about regimes -- different assets lead when the economy reflates versus slows, and that's real. As a tradeable allocation system, though, … |
C
Sharpe (perfect-foresight rotation vs 60/40) |
What it's meant to doRead the growth + inflation 'quad' and tilt your asset allocation to the regime
— Hedgeye (GIP / 'quad' macro model)
What we foundA genuinely useful lens for THINKING about regimes -- different assets lead when the economy reflates versus slows, and that's real. As a tradeable allocation system, though, the prescribed rotation (growth/tech in Quad 1, energy/materials/financials in Quad 2, gold/commodities in Quad 3, long bonds/utilities/gold in Quad 4) trailed a plain 60/40 over the years we can measure -- and even granting it a PERFECT forecast of the next quad, removing the hard part, it reached only Sharpe 0.78 versus 0.98 for 60/40 and 1.06 for buy-and-hold (dividends counted on every asset, both sides). The fair caveat, in its favor: 2011-2026 was one long equity bull -- the toughest possible test for any strategy that holds bonds, gold and commodities part-time. A regime model is built for the stagflation or deflation decade our macro data can't reach, so call this unproven on its home turf, not debunked. The one durable nugget is real: stagflation -- growth down, inflation up -- is the single regime that genuinely bites equities. The catch is you'd have to predict it.
The numbersAs an allocation model it trailed a plain 60/40 -- and even a PERFECT quad forecast only reached Sharpe 0.78 -- though the only window we can test is an equity bull, its hardest case
· Sharpe (perfect-foresight rotation vs 60/40)
Performance C
marginal — barely better than a coin flip
Rigor D
2/5 honesty checks passed
How honestly we tested it– survivorship-free · ✗ net of real cost · ✓ out-of-sample · ✗ point-in-time · ✓ look-ahead checked
quad_macro.py; INDPRO & CPI year-over-year rate-of-change -> 4 quads; prescribed per-quad asset baskets (an approximation of the published leanings), equal-weighted, vs 60/40 and SPY. Perfect-foresight version uses the contemporaneous quad. Revised (not point-in-time) macro data and a 100%-equity alt-benchmark both flatter the comparison; the window is a single equity-bull regime.
|
| ▸The 5-10-20 EMA Timer
Chartist momentum-timer tradition |
A chart-based signal that times the market |
MARGINAL
One of the original momentum timers: bias flips on full crossovers of the 5-, 10- and 20-day EMAs (long when 5>10>20, cash when 5<10<20). It does what trend-following does -- … |
C
+0.04 edge vs. buy & hold |
What it's meant to doA chart-based signal that times the market
— Chartist momentum-timer tradition
What we foundOne of the original momentum timers: bias flips on full crossovers of the 5-, 10- and 20-day EMAs (long when 5>10>20, cash when 5<10<20). It does what trend-following does -- cuts the worst drawdown from -55% to -30% -- but at a steep return cost (+6.5% vs buy-hold +9.8%/yr), and its risk-adjusted edge is a rounding error in-sample (+0.04) that goes negative out-of-sample (-0.04). A real tool, beaten by a slower trend filter (and by our own signal).
The numberscuts drawdown -55%->-30% but gives up 3.3%/yr; edge +0.04 in-sample, -0.04 out-of-sample
· edge vs. buy & hold
Performance C
marginal — barely better than a coin flip
Rigor C
3/5 honesty checks passed
How honestly we tested it– survivorship-free · ✗ net of real cost · ✓ out-of-sample · ✓ point-in-time · ✓ look-ahead checked
chartist_timers.py; total-return SPY gates vs 3mo T-bill, edge vs buy-hold, the later years=2014+. The slow trend filter beats both as overlays too.
|
| ▸Up/Down Volume (Nasdaq A-D volume)
StockCharts / breadth-volume chartists |
A chart-based signal that times the market |
MARGINAL
The Nasdaq up/down-volume breadth panel (EMA21 & EMA50 of net up-down volume) as a long/cash gate. 'Both EMAs above zero' has no full-sample edge (edge -0.01) -- it's simpl… |
C
-0.01 edge vs. buy & hold |
What it's meant to doA chart-based signal that times the market
— StockCharts / breadth-volume chartists
What we foundThe Nasdaq up/down-volume breadth panel (EMA21 & EMA50 of net up-down volume) as a long/cash gate. 'Both EMAs above zero' has no full-sample edge (edge -0.01) -- it's simply long 61% of the time, tracking the index. The flattering the later years +0.29 isn't supported by the full sample (in-sample edge is nil), and adding the 'climbing' filter actively hurts (-0.27). A volume-weighted cousin of the advance/decline line, same verdict: breadth confirms the move, it doesn't time it.
The numbersEMA21 & EMA50 above zero: edge -0.01 (no full-sample edge); 'climbing' filter -0.27; the later years +0.29 a period artifact
· edge vs. buy & hold
Performance C
marginal — barely better than a coin flip
Rigor C
3/5 honesty checks passed
How honestly we tested it– survivorship-free · ✗ net of real cost · ✓ out-of-sample · ✓ point-in-time · ✓ look-ahead checked
breadth_recession_timers.py; total-return SPY gate vs 3mo T-bill, edge vs buy-hold, the later years=2018+.
|
| ▸Donchian Channel Breakout (20/55-day)
Richard Donchian / trend-following tradition |
A classic breakout/trend system that beats the market |
MARGINAL
Buy the N-day high, sell the N-day low — the original trend-following channel. As an S&P long/cash timer (20- or 55-day), it cuts the worst drawdown (-55% -> -37%) but hands b… |
C
-0.05 edge vs. buy & hold |
What it's meant to doA classic breakout/trend system that beats the market
— Richard Donchian / trend-following tradition
What we foundBuy the N-day high, sell the N-day low — the original trend-following channel. As an S&P long/cash timer (20- or 55-day), it cuts the worst drawdown (-55% -> -37%) but hands back most of the return (+6-7%/yr vs +10.8% buy-and-hold) and shows no full-sample risk-adjusted edge. The flattering out-of-sample number sits on a negative in-sample — the data-mining tell. It was built for a DIVERSIFIED basket of FUTURES (leverage, shorting, many uncorrelated markets), where trend-following has a real record; a single mean-reverting equity index is the wrong instrument, and it shows.
The numbers+6-7%/yr vs buy-hold +10.8%; worst drawdown -55%->-37%; edge -0.02 to -0.07 (the the later years bump sits on a negative in-sample)
· edge vs. buy & hold
Performance C
marginal — barely better than a coin flip
Rigor C
3/5 honesty checks passed
How honestly we tested it– survivorship-free · ✗ net of real cost · ✓ out-of-sample · ✓ point-in-time · ✓ look-ahead checked
trend_systems.py / swing_structure.py; total-return SPY long/cash, edge vs buy-hold, the later years=2014+, multiple sensitivities tested.
|
| ▸The Turtle System (Dennis & Eckhardt)
Richard Dennis & William Eckhardt (1983) |
A classic breakout/trend system that beats the market |
MARGINAL
The famous 1983 experiment that turned novices into traders — 20- and 55-day breakout entries, 10- and 20-day exits, ATR-sized with pyramiding and a 2N stop. Stripped to a lon… |
C
-0.07 edge vs. buy & hold |
What it's meant to doA classic breakout/trend system that beats the market
— Richard Dennis & William Eckhardt (1983)
What we foundThe famous 1983 experiment that turned novices into traders — 20- and 55-day breakout entries, 10- and 20-day exits, ATR-sized with pyramiding and a 2N stop. Stripped to a long/cash S&P timer, both systems badly trail buy-and-hold (+4-5%/yr vs +10.8%) for only a modest drawdown cut, and the risk-adjusted edge is negative on the full sample. The Turtles traded a DIVERSIFIED basket of FUTURES with leverage and shorts — that, not single-index equity timing, is where the method earned its legend. We tested the part that maps to our bench; the futures version is a different, fairer test we flag but don’t claim here.
The numbersSystem 1 (20/10) +5.0%/yr, System 2 (55/20) +4.0%/yr vs +10.8% buy-hold; edge -0.07 / -0.15
· edge vs. buy & hold
Performance C
marginal — barely better than a coin flip
Rigor C
3/5 honesty checks passed
How honestly we tested it– survivorship-free · ✗ net of real cost · ✓ out-of-sample · ✓ point-in-time · ✓ look-ahead checked
trend_systems.py / swing_structure.py; total-return SPY long/cash, edge vs buy-hold, the later years=2014+, multiple sensitivities tested.
|
| ▸Higher Highs & Higher Lows (Dow Theory)
Dow Theory / classic chart-reading |
A classic breakout/trend system that beats the market |
MARGINAL
The textbook definition of a trend — hold while each swing high and swing low tops the last, step aside when it flips to lower-high + lower-low. We coded it with causal pivots… |
C
-0.12 edge vs. buy & hold |
What it's meant to doA classic breakout/trend system that beats the market
— Dow Theory / classic chart-reading
What we foundThe textbook definition of a trend — hold while each swing high and swing low tops the last, step aside when it flips to lower-high + lower-low. We coded it with causal pivots (a swing is only confirmed a few bars after the peak, no peeking) at three sensitivities (5/10/20-bar swings). It cuts the worst drawdown (-55% -> -30%) but trails buy-and-hold badly on return (+5-7%/yr vs +10.8%) and has no risk-adjusted edge anywhere — negative edge in-sample AND out-of-sample, robust across every pivot setting. Waiting for structure to break costs you the rebounds; on a market that mostly goes up, that’s a losing trade.
The numbersLong/cash on SPY: +5-7%/yr vs buy-hold +10.8%; drawdown -55%->-30%; edge -0.07 to -0.16, negative out-of-sample too
· edge vs. buy & hold
Performance C
marginal — barely better than a coin flip
Rigor C
3/5 honesty checks passed
How honestly we tested it– survivorship-free · ✗ net of real cost · ✓ out-of-sample · ✓ point-in-time · ✓ look-ahead checked
trend_systems.py / swing_structure.py; total-return SPY long/cash, edge vs buy-hold, the later years=2014+, multiple sensitivities tested.
|
| ▸NYSE Advance/Decline Line
Classic market-breadth canon |
NYSE Advance/Decline Line times market turns |
OVERSOLD
The single most-watched breadth gauge. It looks good in the recent test years (+0.71) -- but in the earlier years the very same rule HURT (its score was negative). A signal th… |
D
+0.71 edge vs. buy & hold |
What it's meant to doNYSE Advance/Decline Line times market turns
— Classic market-breadth canon
What we foundThe single most-watched breadth gauge. It looks good in the recent test years (+0.71) -- but in the earlier years the very same rule HURT (its score was negative). A signal that helps in one stretch and hurts in another can't be trusted to help in the next; the recent win is most likely luck. Famous, not dependable.
The numbersthe later years edge +0.71 vs buy-hold; luck threshold ~+0.40 (clears it)
· edge vs. buy & hold
Performance D
oversold — famous, underdelivers
Rigor A
5/5 honesty checks passed
How honestly we tested it✓ survivorship-free · ✓ net of real cost · ✓ out-of-sample · ✓ point-in-time · ✓ look-ahead checked
breadth_sweep.py; the later years edge vs a shuffle null floor.
|
| ▸VVIX<110
Various / folklore |
Tells you when to be in the market vs. step aside |
DOESN'T WORK
Costs you risk-adjusted return vs. just holding. The legend is bigger than the signal. |
F
-0.02 edge vs. buy & hold |
What it's meant to doTells you when to be in the market vs. step aside
— Various / folklore
What we foundCosts you risk-adjusted return vs. just holding. The legend is bigger than the signal.
The numbersSharpe 0.92, worst drawdown -22%, in-market 81% of days
· edge vs. buy & hold
Performance F
doesn't do what it claims
Rigor D
2/5 honesty checks passed
How honestly we tested it– survivorship-free · ✗ net of real cost · ✗ out-of-sample · ✓ point-in-time · ✓ look-ahead checked
—
|
| ▸MA100
Various / folklore |
Tells you when to be in the market vs. step aside |
DOESN'T WORK
Costs you risk-adjusted return vs. just holding. The legend is bigger than the signal. |
F
-0.02 edge vs. buy & hold |
What it's meant to doTells you when to be in the market vs. step aside
— Various / folklore
What we foundCosts you risk-adjusted return vs. just holding. The legend is bigger than the signal.
The numbersSharpe 0.91, worst drawdown -18%, in-market 81% of days
· edge vs. buy & hold
Performance F
doesn't do what it claims
Rigor D
2/5 honesty checks passed
How honestly we tested it– survivorship-free · ✗ net of real cost · ✗ out-of-sample · ✓ point-in-time · ✓ look-ahead checked
—
|
| ▸MOVE<100
Various / folklore |
Tells you when to be in the market vs. step aside |
DOESN'T WORK
Costs you risk-adjusted return vs. just holding. The legend is bigger than the signal. |
F
-0.04 edge vs. buy & hold |
What it's meant to doTells you when to be in the market vs. step aside
— Various / folklore
What we foundCosts you risk-adjusted return vs. just holding. The legend is bigger than the signal.
The numbersSharpe 0.89, worst drawdown -19%, in-market 80% of days
· edge vs. buy & hold
Performance F
doesn't do what it claims
Rigor D
2/5 honesty checks passed
How honestly we tested it– survivorship-free · ✗ net of real cost · ✗ out-of-sample · ✓ point-in-time · ✓ look-ahead checked
—
|
| ▸FedHike<50%(long)
Various / folklore |
Tells you when to be in the market vs. step aside |
DOESN'T WORK
Costs you risk-adjusted return vs. just holding. The legend is bigger than the signal. |
F
-0.04 edge vs. buy & hold |
What it's meant to doTells you when to be in the market vs. step aside
— Various / folklore
What we foundCosts you risk-adjusted return vs. just holding. The legend is bigger than the signal.
The numbersSharpe 0.89, worst drawdown -34%, in-market 79% of days
· edge vs. buy & hold
Performance F
doesn't do what it claims
Rigor D
2/5 honesty checks passed
How honestly we tested it– survivorship-free · ✗ net of real cost · ✗ out-of-sample · ✓ point-in-time · ✓ look-ahead checked
—
|
| ▸NFCI_risk<0
Various / folklore |
Tells you when to be in the market vs. step aside |
DOESN'T WORK
Costs you risk-adjusted return vs. just holding. The legend is bigger than the signal. |
F
-0.07 edge vs. buy & hold |
What it's meant to doTells you when to be in the market vs. step aside
— Various / folklore
What we foundCosts you risk-adjusted return vs. just holding. The legend is bigger than the signal.
The numbersSharpe 0.86, worst drawdown -32%, in-market 99% of days
· edge vs. buy & hold
Performance F
doesn't do what it claims
Rigor D
2/5 honesty checks passed
How honestly we tested it– survivorship-free · ✗ net of real cost · ✗ out-of-sample · ✓ point-in-time · ✓ look-ahead checked
—
|
| ▸Curve 10Y2Y>0
Various / folklore |
Tells you when to be in the market vs. step aside |
DOESN'T WORK
Costs you risk-adjusted return vs. just holding. The legend is bigger than the signal. |
F
-0.12 edge vs. buy & hold |
What it's meant to doTells you when to be in the market vs. step aside
— Various / folklore
What we foundCosts you risk-adjusted return vs. just holding. The legend is bigger than the signal.
The numbersSharpe 0.81, worst drawdown -34%, in-market 85% of days
· edge vs. buy & hold
Performance F
doesn't do what it claims
Rigor D
2/5 honesty checks passed
How honestly we tested it– survivorship-free · ✗ net of real cost · ✗ out-of-sample · ✓ point-in-time · ✓ look-ahead checked
—
|
| ▸SKEW<145
Various / folklore |
Tells you when to be in the market vs. step aside |
DOESN'T WORK
Costs you risk-adjusted return vs. just holding. The legend is bigger than the signal. |
F
-0.16 edge vs. buy & hold |
What it's meant to doTells you when to be in the market vs. step aside
— Various / folklore
What we foundCosts you risk-adjusted return vs. just holding. The legend is bigger than the signal.
The numbersSharpe 0.77, worst drawdown -34%, in-market 84% of days
· edge vs. buy & hold
Performance F
doesn't do what it claims
Rigor D
2/5 honesty checks passed
How honestly we tested it– survivorship-free · ✗ net of real cost · ✗ out-of-sample · ✓ point-in-time · ✓ look-ahead checked
—
|
| ▸GoldenCross50>200
Various / folklore |
Tells you when to be in the market vs. step aside |
DOESN'T WORK
Costs you risk-adjusted return vs. just holding. The legend is bigger than the signal. |
F
-0.17 edge vs. buy & hold |
What it's meant to doTells you when to be in the market vs. step aside
— Various / folklore
What we foundCosts you risk-adjusted return vs. just holding. The legend is bigger than the signal.
The numbersSharpe 0.77, worst drawdown -34%, in-market 85% of days
· edge vs. buy & hold
Performance F
doesn't do what it claims
Rigor D
2/5 honesty checks passed
How honestly we tested it– survivorship-free · ✗ net of real cost · ✗ out-of-sample · ✓ point-in-time · ✓ look-ahead checked
—
|
| ▸MA50
Various / folklore |
Tells you when to be in the market vs. step aside |
DOESN'T WORK
Costs you risk-adjusted return vs. just holding. The legend is bigger than the signal. |
F
-0.17 edge vs. buy & hold |
What it's meant to doTells you when to be in the market vs. step aside
— Various / folklore
What we foundCosts you risk-adjusted return vs. just holding. The legend is bigger than the signal.
The numbersSharpe 0.77, worst drawdown -20%, in-market 74% of days
· edge vs. buy & hold
Performance F
doesn't do what it claims
Rigor D
2/5 honesty checks passed
How honestly we tested it– survivorship-free · ✗ net of real cost · ✗ out-of-sample · ✓ point-in-time · ✓ look-ahead checked
—
|
| ▸VRP+ (VIX>rvol20)
Various / folklore |
Tells you when to be in the market vs. step aside |
DOESN'T WORK
Costs you risk-adjusted return vs. just holding. The legend is bigger than the signal. |
F
-0.20 edge vs. buy & hold |
What it's meant to doTells you when to be in the market vs. step aside
— Various / folklore
What we foundCosts you risk-adjusted return vs. just holding. The legend is bigger than the signal.
The numbersSharpe 0.74, worst drawdown -35%, in-market 87% of days
· edge vs. buy & hold
Performance F
doesn't do what it claims
Rigor D
2/5 honesty checks passed
How honestly we tested it– survivorship-free · ✗ net of real cost · ✗ out-of-sample · ✓ point-in-time · ✓ look-ahead checked
—
|
| ▸VIX<20
Various / folklore |
Tells you when to be in the market vs. step aside |
DOESN'T WORK
Costs you risk-adjusted return vs. just holding. The legend is bigger than the signal. |
F
-0.21 edge vs. buy & hold |
What it's meant to doTells you when to be in the market vs. step aside
— Various / folklore
What we foundCosts you risk-adjusted return vs. just holding. The legend is bigger than the signal.
The numbersSharpe 0.72, worst drawdown -18%, in-market 74% of days
· edge vs. buy & hold
Performance F
doesn't do what it claims
Rigor D
2/5 honesty checks passed
How honestly we tested it– survivorship-free · ✗ net of real cost · ✗ out-of-sample · ✓ point-in-time · ✓ look-ahead checked
—
|
| ▸HY_OAS<60dMA
Various / folklore |
Tells you when to be in the market vs. step aside |
DOESN'T WORK
Costs you risk-adjusted return vs. just holding. The legend is bigger than the signal. |
F
-0.22 edge vs. buy & hold |
What it's meant to doTells you when to be in the market vs. step aside
— Various / folklore
What we foundCosts you risk-adjusted return vs. just holding. The legend is bigger than the signal.
The numbersSharpe 0.71, worst drawdown -30%, in-market 63% of days
· edge vs. buy & hold
Performance F
doesn't do what it claims
Rigor D
2/5 honesty checks passed
How honestly we tested it– survivorship-free · ✗ net of real cost · ✗ out-of-sample · ✓ point-in-time · ✓ look-ahead checked
—
|
| ▸HY_OAS<5%
Various / folklore |
Tells you when to be in the market vs. step aside |
DOESN'T WORK
Costs you risk-adjusted return vs. just holding. The legend is bigger than the signal. |
F
-0.23 edge vs. buy & hold |
What it's meant to doTells you when to be in the market vs. step aside
— Various / folklore
What we foundCosts you risk-adjusted return vs. just holding. The legend is bigger than the signal.
The numbersSharpe 0.70, worst drawdown -33%, in-market 77% of days
· edge vs. buy & hold
Performance F
doesn't do what it claims
Rigor D
2/5 honesty checks passed
How honestly we tested it– survivorship-free · ✗ net of real cost · ✗ out-of-sample · ✓ point-in-time · ✓ look-ahead checked
—
|
| ▸Put/Call Ratio (All)
CBOE / contrarian sentiment |
A CBOE sentiment/vol reading that times the market |
DOESN'T WORK
The famous total put/call ratio is NOISE as a market-timing gate -- both directions tested, neither clears the noise floor. A beloved sentiment gauge that isn't an edge on its… |
F
-0.02 edge vs. buy & hold |
What it's meant to doA CBOE sentiment/vol reading that times the market
— CBOE / contrarian sentiment
What we foundThe famous total put/call ratio is NOISE as a market-timing gate -- both directions tested, neither clears the noise floor. A beloved sentiment gauge that isn't an edge on its own.
The numbersedge -0.02 (early-years -0.36 -> the later years +0.19); below the luck threshold (+0.23)
· edge vs. buy & hold
Performance F
doesn't do what it claims
Rigor C
3/5 honesty checks passed
How honestly we tested it– survivorship-free · ✗ net of real cost · ✓ out-of-sample · ✓ point-in-time · ✓ look-ahead checked
cboe_gates.py; both directions x decile thresholds; shuffled-null floor +0.23 (95th pct) -- none clear it honestly.
|
| ▸Put/Call Ratio (Equity)
CBOE / contrarian sentiment |
A CBOE sentiment/vol reading that times the market |
DOESN'T WORK
Equity put/call ratio: same verdict as the total -- noise as a standalone timing gate. |
F
-0.04 edge vs. buy & hold |
What it's meant to doA CBOE sentiment/vol reading that times the market
— CBOE / contrarian sentiment
What we foundEquity put/call ratio: same verdict as the total -- noise as a standalone timing gate.
The numbersedge -0.04 (early-years -0.36 -> the later years +0.16); below the floor
· edge vs. buy & hold
Performance F
doesn't do what it claims
Rigor C
3/5 honesty checks passed
How honestly we tested it– survivorship-free · ✗ net of real cost · ✓ out-of-sample · ✓ point-in-time · ✓ look-ahead checked
cboe_gates.py; both directions x decile thresholds; shuffled-null floor +0.23 (95th pct) -- none clear it honestly.
|
| ▸Put/Call Ratio (Index)
CBOE / contrarian sentiment |
A CBOE sentiment/vol reading that times the market |
DOESN'T WORK
Index put/call ratio: noise. Index option flow is hedging-driven and doesn't time the market here. |
F
-0.08 edge vs. buy & hold |
What it's meant to doA CBOE sentiment/vol reading that times the market
— CBOE / contrarian sentiment
What we foundIndex put/call ratio: noise. Index option flow is hedging-driven and doesn't time the market here.
The numbersedge -0.08 (early-years -0.26 -> the later years +0.02); below the floor
· edge vs. buy & hold
Performance F
doesn't do what it claims
Rigor C
3/5 honesty checks passed
How honestly we tested it– survivorship-free · ✗ net of real cost · ✓ out-of-sample · ✓ point-in-time · ✓ look-ahead checked
cboe_gates.py; both directions x decile thresholds; shuffled-null floor +0.23 (95th pct) -- none clear it honestly.
|
| ▸VXN (Nasdaq Implied Vol)
CBOE |
A CBOE sentiment/vol reading that times the market |
DOESN'T WORK
The ONLY series that nominally cleared the floor -- but on an out-of-sample-flattering threshold while its full-window and in-sample scores are negative. An the later years mirage, exactl… |
F
-0.17 edge vs. buy & hold |
What it's meant to doA CBOE sentiment/vol reading that times the market
— CBOE
What we foundThe ONLY series that nominally cleared the floor -- but on an out-of-sample-flattering threshold while its full-window and in-sample scores are negative. An the later years mirage, exactly what the null floor exists to flag. Noise.
The numbersedge -0.17; the the later years +0.33 is a cherry-picked threshold while full & in-sample are negative
· edge vs. buy & hold
Performance F
doesn't do what it claims
Rigor C
3/5 honesty checks passed
How honestly we tested it– survivorship-free · ✗ net of real cost · ✓ out-of-sample · ✓ point-in-time · ✓ look-ahead checked
cboe_gates.py; both directions x decile thresholds; shuffled-null floor +0.23 (95th pct) -- none clear it honestly.
|
| ▸VXTH (Tail-Hedge Index)
CBOE |
A CBOE sentiment/vol reading that times the market |
DOESN'T WORK
The 'black-swan' tail-hedge index. As a gate it actively hurts -- a hedging-cost index isn't a timer. |
F
-0.23 edge vs. buy & hold |
What it's meant to doA CBOE sentiment/vol reading that times the market
— CBOE
What we foundThe 'black-swan' tail-hedge index. As a gate it actively hurts -- a hedging-cost index isn't a timer.
The numbersedge -0.23 (early-years -0.65 -> the later years +0.00); worst of the set
· edge vs. buy & hold
Performance F
doesn't do what it claims
Rigor C
3/5 honesty checks passed
How honestly we tested it– survivorship-free · ✗ net of real cost · ✓ out-of-sample · ✓ point-in-time · ✓ look-ahead checked
cboe_gates.py; both directions x decile thresholds; shuffled-null floor +0.23 (95th pct) -- none clear it honestly.
|
| ▸RVX (Russell Implied Vol)
CBOE |
A CBOE sentiment/vol reading that times the market |
DOESN'T WORK
Small-cap implied vol level: noise, like every other vol-level gate. Breadth is the outlier that works. |
F
-0.04 edge vs. buy & hold |
What it's meant to doA CBOE sentiment/vol reading that times the market
— CBOE
What we foundSmall-cap implied vol level: noise, like every other vol-level gate. Breadth is the outlier that works.
The numbersedge -0.04 (early-years -0.03 -> the later years -0.04); flat-to-negative
· edge vs. buy & hold
Performance F
doesn't do what it claims
Rigor C
3/5 honesty checks passed
How honestly we tested it– survivorship-free · ✗ net of real cost · ✓ out-of-sample · ✓ point-in-time · ✓ look-ahead checked
cboe_gates.py; both directions x decile thresholds; shuffled-null floor +0.23 (95th pct) -- none clear it honestly.
|
| ▸Net Liquidity (Fed B/S − RRP)
Macro / FinTwit thesis |
A macro / intermarket reading that times the market |
DOESN'T WORK
The famous 'net liquidity drives the S&P' thesis is a DUD as a daily timing gate -- noise both directions. (Proxy = WALCL minus reverse-repo, missing the TGA leg we don't have… |
F
-0.12 edge vs. buy & hold |
What it's meant to doA macro / intermarket reading that times the market
— Macro / FinTwit thesis
What we foundThe famous 'net liquidity drives the S&P' thesis is a DUD as a daily timing gate -- noise both directions. (Proxy = WALCL minus reverse-repo, missing the TGA leg we don't have; the classic form is weekly. But the popular daily version people trade on doesn't hold up.)
The numbersedge -0.12 as a daily SPY gate; below the luck threshold (+0.33)
· edge vs. buy & hold
Performance F
doesn't do what it claims
Rigor C
3/5 honesty checks passed
How honestly we tested it– survivorship-free · ✗ net of real cost · ✓ out-of-sample · ✓ point-in-time · ✓ look-ahead checked
unused_data_sweep.py; 36 series, both directions x deciles, shuffled-null floor +0.33 (95th) -- none cleared honestly.
|
| ▸US Dollar (DTWEXBGS)
Macro / intermarket |
A macro / intermarket reading that times the market |
DOESN'T WORK
A strong/weak dollar as an equity-timing gate is noise -- neither the level nor its momentum beats the floor. The dollar matters for the economy; it doesn't time the index her… |
F
-0.08 edge vs. buy & hold |
What it's meant to doA macro / intermarket reading that times the market
— Macro / intermarket
What we foundA strong/weak dollar as an equity-timing gate is noise -- neither the level nor its momentum beats the floor. The dollar matters for the economy; it doesn't time the index here.
The numbersedge -0.08 (level) / -0.23 (13-week change); noise
· edge vs. buy & hold
Performance F
doesn't do what it claims
Rigor C
3/5 honesty checks passed
How honestly we tested it– survivorship-free · ✗ net of real cost · ✓ out-of-sample · ✓ point-in-time · ✓ look-ahead checked
unused_data_sweep.py; 36 series, both directions x deciles, shuffled-null floor +0.33 (95th) -- none cleared honestly.
|
| ▸Recession Models (Sahm / claims / leading)
Macro / recession trackers |
A macro / intermarket reading that times the market |
DOESN'T WORK
Recession indicators (Sahm rule, jobless-claims trend, OECD leading) are slow by design and noise as equity-timing gates. The Sahm rule nominally cleared the floor but on a ne… |
F
+0.07 edge vs. buy & hold |
What it's meant to doA macro / intermarket reading that times the market
— Macro / recession trackers
What we foundRecession indicators (Sahm rule, jobless-claims trend, OECD leading) are slow by design and noise as equity-timing gates. The Sahm rule nominally cleared the floor but on a negative in-sample = a data-mining artifact the discipline flags, not an edge.
The numbersSahm rule edge +0.07 (early-years -0.35 -> the later years +0.35 = an the later years mirage); claims/leading all noise
· edge vs. buy & hold
Performance F
doesn't do what it claims
Rigor C
3/5 honesty checks passed
How honestly we tested it– survivorship-free · ✗ net of real cost · ✓ out-of-sample · ✓ point-in-time · ✓ look-ahead checked
unused_data_sweep.py; 36 series, both directions x deciles, shuffled-null floor +0.33 (95th) -- none cleared honestly.
|
| ▸Intermarket Ratios (8-pair basket)
Intermarket / sector-rotation |
A macro / intermarket reading that times the market |
DOESN'T WORK
Eight intermarket ratios (defensives/cyclicals, gold/stocks, bonds/stocks, gold-miners, semis, biotech, oil) tested as SPY gates -- all noise. The flashiest (semis momentum, O… |
F
+0.23 edge vs. buy & hold |
What it's meant to doA macro / intermarket reading that times the market
— Intermarket / sector-rotation
What we foundEight intermarket ratios (defensives/cyclicals, gold/stocks, bonds/stocks, gold-miners, semis, biotech, oil) tested as SPY gates -- all noise. The flashiest (semis momentum, the later years +0.56) is an the later years mirage with a negative in-sample. May still work for SECTOR rotation; doesn't time the index.
The numbersbest (Semis/SPY 63d-mom) the later years +0.56 but early-years -0.33 = mirage; all 8 ratios noise as gates
· edge vs. buy & hold
Performance F
doesn't do what it claims
Rigor C
3/5 honesty checks passed
How honestly we tested it– survivorship-free · ✗ net of real cost · ✓ out-of-sample · ✓ point-in-time · ✓ look-ahead checked
unused_data_sweep.py; 36 series, both directions x deciles, shuffled-null floor +0.33 (95th) -- none cleared honestly.
|
| ▸Excess CAPE Yield (as a timing signal)
Valuation timers |
Excess CAPE Yield tells you when to be in or out of the market |
DOESN'T WORK
The single best long-run return FORECASTER on the bench -- the Excess CAPE Yield predicts the forward DECADE at +0.60 correlation. But as an in/out timing signal it is noise, … |
F
edge as an in/out timing gate |
What it's meant to doExcess CAPE Yield tells you when to be in or out of the market
— Valuation timers
What we foundThe single best long-run return FORECASTER on the bench -- the Excess CAPE Yield predicts the forward DECADE at +0.60 correlation. But as an in/out timing signal it is noise, in the modern era and across 100 years of Shiller data. Valuation tells you what to EXPECT, never WHEN. A market can stay expensive for a decade; going to cash because the premium is thin means sitting out the bull.
The numbers+0.06 in/out edge (vs +0.41 floor); noise in both eras
· edge as an in/out timing gate
Performance F
doesn't do what it claims
Rigor A
5/5 honesty checks passed
How honestly we tested it✓ survivorship-free · ✓ net of real cost · ✓ out-of-sample · ✓ point-in-time · ✓ look-ahead checked
index_timing_sweep.py; each index as a pull-to-cash gate, best threshold/direction, the later years edge vs a shuffle floor. Forecasting != timing.
|
| ▸CAPE / P-E10 (as a timing signal)
Robert Shiller / valuation crowd |
CAPE / P-E10 tells you when to be in or out of the market |
DOESN'T WORK
High CAPE genuinely predicts low long-run returns -- and genuinely cannot time entries and exits. Zero edge as a buy/sell gate over a century. The most expensive mistake in ma… |
F
edge as an in/out timing gate |
What it's meant to doCAPE / P-E10 tells you when to be in or out of the market
— Robert Shiller / valuation crowd
What we foundHigh CAPE genuinely predicts low long-run returns -- and genuinely cannot time entries and exits. Zero edge as a buy/sell gate over a century. The most expensive mistake in markets is confusing 'expensive' with 'about to fall.' They are not the same thing.
The numbers+0.08 in/out edge (vs floor); noise over 100 years
· edge as an in/out timing gate
Performance F
doesn't do what it claims
Rigor A
5/5 honesty checks passed
How honestly we tested it✓ survivorship-free · ✓ net of real cost · ✓ out-of-sample · ✓ point-in-time · ✓ look-ahead checked
index_timing_sweep.py; each index as a pull-to-cash gate, best threshold/direction, the later years edge vs a shuffle floor. Forecasting != timing.
|
| ▸Equity Risk Premium / Fed model (as a timing signal)
The 'Fed model' crowd |
Equity Risk Premium / Fed model tells you when to be in or out of the market |
DOESN'T WORK
Earnings yield minus the bond yield is a fine long-horizon gauge of whether stocks are cheap vs bonds. As a market-timing trigger it's worthless -- it flickers for years befor… |
F
edge as an in/out timing gate |
What it's meant to doEquity Risk Premium / Fed model tells you when to be in or out of the market
— The 'Fed model' crowd
What we foundEarnings yield minus the bond yield is a fine long-horizon gauge of whether stocks are cheap vs bonds. As a market-timing trigger it's worthless -- it flickers for years before anything happens. Forecast, not a timer.
The numbers+0.00 in/out edge; noise
· edge as an in/out timing gate
Performance F
doesn't do what it claims
Rigor A
5/5 honesty checks passed
How honestly we tested it✓ survivorship-free · ✓ net of real cost · ✓ out-of-sample · ✓ point-in-time · ✓ look-ahead checked
index_timing_sweep.py; each index as a pull-to-cash gate, best threshold/direction, the later years edge vs a shuffle floor. Forecasting != timing.
|
| ▸Risk Ratios (SPY:TLT + 5 sector RS)
StockCharts / sector-rotation chartists |
A chart-based signal that times the market |
DOESN'T WORK
The popular 'Risk On / Risk Off' ratio panel -- SPY:TLT plus five sector relative-strength ratios -- run as 50-day-EMA crossover gates on SPY. The famous SPY:TLT is the WORST:… |
F
+0.05 edge vs. buy & hold |
What it's meant to doA chart-based signal that times the market
— StockCharts / sector-rotation chartists
What we foundThe popular 'Risk On / Risk Off' ratio panel -- SPY:TLT plus five sector relative-strength ratios -- run as 50-day-EMA crossover gates on SPY. The famous SPY:TLT is the WORST: as a timer it underperforms buy-and-hold (edge -0.16, -0.39 out-of-sample). The sector gates (XLY, XLI) flatter in the rear-view (+0.13, +0.18) and fade to roughly zero out-of-sample. The >=4-of-6 composite cuts drawdown (-55%->-22%) but only matches buy-and-hold on risk-adjusted terms (+0.05 the later years) while handing back half the return. An intuitive panel with no out-of-sample timing edge.
The numbersSPY:TLT actively hurts (the later years -0.39); sector RS gates +0.13/+0.18 in-sample fade to ~0 the later years; composite +0.05
· edge vs. buy & hold
Performance F
doesn't do what it claims
Rigor C
3/5 honesty checks passed
How honestly we tested it– survivorship-free · ✗ net of real cost · ✓ out-of-sample · ✓ point-in-time · ✓ look-ahead checked
chartist_timers.py; total-return SPY gates vs 3mo T-bill, edge vs buy-hold, the later years=2014+. The slow trend filter beats both as overlays too.
|
| ▸Recession Monitor (3M/10Y + 2Y/10Y inversion)
Yield-curve / recession watchers |
A chart-based signal that times the market |
DOESN'T WORK
The Fed-staple yield-curve signal -- 3-month/10-year AND 2-year/10-year both inverted -- tested as an equity gate. As a market timer it UNDERPERFORMS buy-and-hold in every ver… |
F
-0.09 edge vs. buy & hold |
What it's meant to doA chart-based signal that times the market
— Yield-curve / recession watchers
What we foundThe Fed-staple yield-curve signal -- 3-month/10-year AND 2-year/10-year both inverted -- tested as an equity gate. As a market timer it UNDERPERFORMS buy-and-hold in every version (out-while-inverted -0.09, the ~14-month recession window -0.12), worse out-of-sample. The one inversion in our window (2022) preceded NO recession and a rising market -- the 'nine of the last two recessions' problem. It is a recession FORECASTER, not an equity timer; the forecasting claim itself needs longer history and NBER dates to test fairly (our spread copy starts 2010 -- a single inversion).
The numbersBoth-inverted as an equity gate HURTS: edge -0.09 (-0.17 the later years); the 14-month recession window worse (-0.12/-0.25)
· edge vs. buy & hold
Performance F
doesn't do what it claims
Rigor C
3/5 honesty checks passed
How honestly we tested it– survivorship-free · ✗ net of real cost · ✓ out-of-sample · ✓ point-in-time · ✓ look-ahead checked
breadth_recession_timers.py; total-return SPY gate vs 3mo T-bill, edge vs buy-hold, the later years=2018+.
|
| ▸McClellan Oscillator
Sherman & Marian McClellan / breadth tradition |
Times the market via breadth momentum (19/39-day EMA of advances minus declines) |
DOESN'T WORK
The famous McClellan Oscillator LOSES to buy-and-hold as a risk gate and collapses out-of-sample -- a fast, jumpy reading that whipsaws. Our Risk Reducer beats it decisively (… |
F
-0.31 edge vs. buy & hold |
What it's meant to doTimes the market via breadth momentum (19/39-day EMA of advances minus declines)
— Sherman & Marian McClellan / breadth tradition
What we foundThe famous McClellan Oscillator LOSES to buy-and-hold as a risk gate and collapses out-of-sample -- a fast, jumpy reading that whipsaws. Our Risk Reducer beats it decisively (+0.48 vs -0.31).
The numbersedge -0.31 (early-years +0.02 -> the later years -0.53, collapses out-of-sample)
· edge vs. buy & hold
Performance F
doesn't do what it claims
Rigor C
3/5 honesty checks passed
How honestly we tested it– survivorship-free · ✗ net of real cost · ✓ out-of-sample · ✓ point-in-time · ✓ look-ahead checked
McClellan-vs-Risk-Reducer bake-off; EMA19-EMA39 of real $ADSPD; null floor +0.03, not cleared.
|
| ▸McClellan Summation Index
McClellan / breadth tradition |
Marks bull/bear regimes via the cumulative McClellan Oscillator |
DOESN'T WORK
Every anchor-free rule on the Summation Index (rising, versus rolling-mean, level) scores negative and fails the noise floor. A famous indicator, a losing gate. |
F
-0.25 edge vs. buy & hold |
What it's meant to doMarks bull/bear regimes via the cumulative McClellan Oscillator
— McClellan / breadth tradition
What we foundEvery anchor-free rule on the Summation Index (rising, versus rolling-mean, level) scores negative and fails the noise floor. A famous indicator, a losing gate.
The numbersedge -0.25 to -0.42 across every rule (rising / vs-mean / level); all noise
· edge vs. buy & hold
Performance F
doesn't do what it claims
Rigor C
3/5 honesty checks passed
How honestly we tested it– survivorship-free · ✗ net of real cost · ✓ out-of-sample · ✓ point-in-time · ✓ look-ahead checked
McClellan-vs-Risk-Reducer bake-off; none of the variants cleared the +0.03 luck threshold.
|
| ▸Cross-Sectional Dispersion
Dispersion / correlation tradition |
Low cross-sectional return dispersion (stocks moving together calmly) signals risk-on |
DOESN'T WORK
As a simple low-dispersion = risk-on equity gate, cross-sectional return dispersion is noise (below the noise floor). NOTE: this is ONE construction -- IMPLIED dispersion and … |
F
+0.04 edge vs. buy & hold |
What it's meant to doLow cross-sectional return dispersion (stocks moving together calmly) signals risk-on
— Dispersion / correlation tradition
What we foundAs a simple low-dispersion = risk-on equity gate, cross-sectional return dispersion is noise (below the noise floor). NOTE: this is ONE construction -- IMPLIED dispersion and realized-correlation regime are different signals with different uses (vol trading), and are not tested here. So this is 'return-dispersion-as-equity-gate fails,' not 'dispersion fails.'
The numbersedge -0.25 (early-years -0.80 -> the later years +0.04); fails the luck threshold as a standalone equity gate
· edge vs. buy & hold
Performance F
doesn't do what it claims
Rigor C
3/5 honesty checks passed
How honestly we tested it– survivorship-free · ✗ net of real cost · ✓ out-of-sample · ✓ point-in-time · ✓ look-ahead checked
breadth_constructions.py; cross-sectional return dispersion from the survivorship-free panel.
|
| ▸Advance/Decline Ratio
Classic market-breadth canon |
Advance/Decline Ratio times market turns |
DOESN'T WORK
Advancers vs decliners, the textbook breadth ratio. the later years +0.28 -- below the ~+0.40 luck threshold. Doesn't beat buy-hold once you account for luck. |
F
+0.28 edge vs. buy & hold |
What it's meant to doAdvance/Decline Ratio times market turns
— Classic market-breadth canon
What we foundAdvancers vs decliners, the textbook breadth ratio. the later years +0.28 -- below the ~+0.40 luck threshold. Doesn't beat buy-hold once you account for luck.
The numbersthe later years edge +0.28 vs buy-hold; luck threshold ~+0.40 (below it = noise)
· edge vs. buy & hold
Performance F
doesn't do what it claims
Rigor A
5/5 honesty checks passed
How honestly we tested it✓ survivorship-free · ✓ net of real cost · ✓ out-of-sample · ✓ point-in-time · ✓ look-ahead checked
breadth_sweep.py; the later years edge vs a shuffle null floor.
|
| ▸Percent of Stocks Above the 200-Day Average
Classic market-breadth canon |
Percent of Stocks Above the 200-Day Average times market turns |
DOESN'T WORK
A breadth-nerd favorite. the later years +0.18, under the floor -- it looks meaningful on a chart but adds nothing a coin-flip wouldn't. |
F
+0.18 edge vs. buy & hold |
What it's meant to doPercent of Stocks Above the 200-Day Average times market turns
— Classic market-breadth canon
What we foundA breadth-nerd favorite. the later years +0.18, under the floor -- it looks meaningful on a chart but adds nothing a coin-flip wouldn't.
The numbersthe later years edge +0.18 vs buy-hold; luck threshold ~+0.40 (below it = noise)
· edge vs. buy & hold
Performance F
doesn't do what it claims
Rigor A
5/5 honesty checks passed
How honestly we tested it✓ survivorship-free · ✓ net of real cost · ✓ out-of-sample · ✓ point-in-time · ✓ look-ahead checked
breadth_sweep.py; the later years edge vs a shuffle null floor.
|
| ▸Percent of Stocks Above the 50-Day Average
Classic market-breadth canon |
Percent of Stocks Above the 50-Day Average times market turns |
DOESN'T WORK
The faster cousin. the later years +0.09 -- noise. Whatever it's telling you, the price already said it. |
F
+0.09 edge vs. buy & hold |
What it's meant to doPercent of Stocks Above the 50-Day Average times market turns
— Classic market-breadth canon
What we foundThe faster cousin. the later years +0.09 -- noise. Whatever it's telling you, the price already said it.
The numbersthe later years edge +0.09 vs buy-hold; luck threshold ~+0.40 (below it = noise)
· edge vs. buy & hold
Performance F
doesn't do what it claims
Rigor A
5/5 honesty checks passed
How honestly we tested it✓ survivorship-free · ✓ net of real cost · ✓ out-of-sample · ✓ point-in-time · ✓ look-ahead checked
breadth_sweep.py; the later years edge vs a shuffle null floor.
|
| ▸The High-Low Index (highs minus lows)
Classic market-breadth canon |
The High-Low Index (highs minus lows) times market turns |
DOESN'T WORK
The most popular high-low construction. the later years +0.01 -- essentially zero edge. Subtracting the upside extreme from the downside one dilutes the half that actually carries the dan… |
F
+0.01 edge vs. buy & hold |
What it's meant to doThe High-Low Index (highs minus lows) times market turns
— Classic market-breadth canon
What we foundThe most popular high-low construction. the later years +0.01 -- essentially zero edge. Subtracting the upside extreme from the downside one dilutes the half that actually carries the danger.
The numbersthe later years edge +0.01 vs buy-hold; luck threshold ~+0.40 (below it = noise)
· edge vs. buy & hold
Performance F
doesn't do what it claims
Rigor A
5/5 honesty checks passed
How honestly we tested it✓ survivorship-free · ✓ net of real cost · ✓ out-of-sample · ✓ point-in-time · ✓ look-ahead checked
breadth_sweep.py; the later years edge vs a shuffle null floor.
|
| ▸Up/Down (Advancing) Volume
Classic market-breadth canon |
Up/Down (Advancing) Volume times market turns |
DOESN'T WORK
Volume flowing into advancers vs decliners. the later years +0.10 -- below the floor. A confirming indicator that doesn't lead. |
F
+0.10 edge vs. buy & hold |
What it's meant to doUp/Down (Advancing) Volume times market turns
— Classic market-breadth canon
What we foundVolume flowing into advancers vs decliners. the later years +0.10 -- below the floor. A confirming indicator that doesn't lead.
The numbersthe later years edge +0.10 vs buy-hold; luck threshold ~+0.40 (below it = noise)
· edge vs. buy & hold
Performance F
doesn't do what it claims
Rigor A
5/5 honesty checks passed
How honestly we tested it✓ survivorship-free · ✓ net of real cost · ✓ out-of-sample · ✓ point-in-time · ✓ look-ahead checked
breadth_sweep.py; the later years edge vs a shuffle null floor.
|
| ▸Zweig Breadth Thrust
Classic market-breadth canon |
Zweig Breadth Thrust times market turns |
DOESN'T WORK
The famous rare 'thrust' buy signal. the later years +0.13 -- it fires too rarely and too late to clear the noise floor as a systematic gate. |
F
+0.13 edge vs. buy & hold |
What it's meant to doZweig Breadth Thrust times market turns
— Classic market-breadth canon
What we foundThe famous rare 'thrust' buy signal. the later years +0.13 -- it fires too rarely and too late to clear the noise floor as a systematic gate.
The numbersthe later years edge +0.13 vs buy-hold; luck threshold ~+0.40 (below it = noise)
· edge vs. buy & hold
Performance F
doesn't do what it claims
Rigor A
5/5 honesty checks passed
How honestly we tested it✓ survivorship-free · ✓ net of real cost · ✓ out-of-sample · ✓ point-in-time · ✓ look-ahead checked
breadth_sweep.py; the later years edge vs a shuffle null floor.
|
| ▸Equal-Weight vs Cap-Weight Divergence
Classic market-breadth canon |
Equal-Weight vs Cap-Weight Divergence times market turns |
DOESN'T WORK
When the average stock diverges from the cap-weighted index. the later years +0.41 -- it pokes at the noise floor but doesn't clear it once you control for data-mining. A good story, not … |
F
+0.41 edge vs. buy & hold |
What it's meant to doEqual-Weight vs Cap-Weight Divergence times market turns
— Classic market-breadth canon
What we foundWhen the average stock diverges from the cap-weighted index. the later years +0.41 -- it pokes at the noise floor but doesn't clear it once you control for data-mining. A good story, not a tradeable gate.
The numbersthe later years edge +0.41 vs buy-hold; luck threshold ~+0.40 (below it = noise)
· edge vs. buy & hold
Performance F
doesn't do what it claims
Rigor A
5/5 honesty checks passed
How honestly we tested it✓ survivorship-free · ✓ net of real cost · ✓ out-of-sample · ✓ point-in-time · ✓ look-ahead checked
breadth_sweep.py; the later years edge vs a shuffle null floor.
|
| ▸The Arms Index (TRIN)
Classic market-breadth canon |
The Arms Index (TRIN) times market turns |
DOESN'T WORK
The classic 'is volume rushing into rising or falling stocks' panic gauge. the later years +0.16 -- noise. A crowd-mood meter that doesn't actually time anything. |
F
+0.16 edge vs. buy & hold |
What it's meant to doThe Arms Index (TRIN) times market turns
— Classic market-breadth canon
What we foundThe classic 'is volume rushing into rising or falling stocks' panic gauge. the later years +0.16 -- noise. A crowd-mood meter that doesn't actually time anything.
The numbersthe later years edge +0.16 vs buy-hold; luck threshold ~+0.40 (below it = noise)
· edge vs. buy & hold
Performance F
doesn't do what it claims
Rigor A
5/5 honesty checks passed
How honestly we tested it✓ survivorship-free · ✓ net of real cost · ✓ out-of-sample · ✓ point-in-time · ✓ look-ahead checked
breadth_sweep.py; the later years edge vs a shuffle null floor.
|
| ▸Percent of Stocks Above the 20-Day Average
Classic market-breadth canon |
Percent of Stocks Above the 20-Day Average times market turns |
DOESN'T WORK
The short-term cousin of the percent-above-MA family. the later years -0.03 -- the worst of the lot, actively negative. Fast breadth is mostly fast noise. |
F
-0.03 edge vs. buy & hold |
What it's meant to doPercent of Stocks Above the 20-Day Average times market turns
— Classic market-breadth canon
What we foundThe short-term cousin of the percent-above-MA family. the later years -0.03 -- the worst of the lot, actively negative. Fast breadth is mostly fast noise.
The numbersthe later years edge -0.03 vs buy-hold; luck threshold ~+0.40 (below it = noise)
· edge vs. buy & hold
Performance F
doesn't do what it claims
Rigor A
5/5 honesty checks passed
How honestly we tested it✓ survivorship-free · ✓ net of real cost · ✓ out-of-sample · ✓ point-in-time · ✓ look-ahead checked
breadth_sweep.py; the later years edge vs a shuffle null floor.
|
| ▸Small-Cap Breadth (Russell % above 50-Day)
Classic market-breadth canon |
Small-Cap Breadth (Russell % above 50-Day) times market turns |
DOESN'T WORK
Small-cap participation -- 'the generals vs the troops.' the later years +0.20 -- noise. Makes a great narrative and a useless signal. |
F
+0.20 edge vs. buy & hold |
What it's meant to doSmall-Cap Breadth (Russell % above 50-Day) times market turns
— Classic market-breadth canon
What we foundSmall-cap participation -- 'the generals vs the troops.' the later years +0.20 -- noise. Makes a great narrative and a useless signal.
The numbersthe later years edge +0.20 vs buy-hold; luck threshold ~+0.40 (below it = noise)
· edge vs. buy & hold
Performance F
doesn't do what it claims
Rigor A
5/5 honesty checks passed
How honestly we tested it✓ survivorship-free · ✓ net of real cost · ✓ out-of-sample · ✓ point-in-time · ✓ look-ahead checked
breadth_sweep.py; the later years edge vs a shuffle null floor.
|
| ▸Nasdaq Advance/Decline
Classic market-breadth canon |
Nasdaq Advance/Decline times market turns |
DOESN'T WORK
Advancers minus decliners for the growth side of the tape. the later years +0.14 -- noise, same as its NYSE sibling. |
F
+0.14 edge vs. buy & hold |
What it's meant to doNasdaq Advance/Decline times market turns
— Classic market-breadth canon
What we foundAdvancers minus decliners for the growth side of the tape. the later years +0.14 -- noise, same as its NYSE sibling.
The numbersthe later years edge +0.14 vs buy-hold; luck threshold ~+0.40 (below it = noise)
· edge vs. buy & hold
Performance F
doesn't do what it claims
Rigor A
5/5 honesty checks passed
How honestly we tested it✓ survivorship-free · ✓ net of real cost · ✓ out-of-sample · ✓ point-in-time · ✓ look-ahead checked
breadth_sweep.py; the later years edge vs a shuffle null floor.
|
| ▸The Bullish Percent Index (Point & Figure)
Classic market-breadth canon |
The Bullish Percent Index (Point & Figure) times market turns |
DOESN'T WORK
The chartists' favorite breadth gauge -- the percent of stocks on a P&F buy signal -- which we built ourselves from the whole universe (no scraping). the later years +0.10, noise. Even th… |
F
+0.10 edge vs. buy & hold |
What it's meant to doThe Bullish Percent Index (Point & Figure) times market turns
— Classic market-breadth canon
What we foundThe chartists' favorite breadth gauge -- the percent of stocks on a P&F buy signal -- which we built ourselves from the whole universe (no scraping). the later years +0.10, noise. Even this one doesn't time the market once you control for luck.
The numbersthe later years edge +0.10 vs buy-hold; luck threshold ~+0.40 (below it = noise)
· edge vs. buy & hold
Performance F
doesn't do what it claims
Rigor A
5/5 honesty checks passed
How honestly we tested it✓ survivorship-free · ✓ net of real cost · ✓ out-of-sample · ✓ point-in-time · ✓ look-ahead checked
breadth_sweep.py; the later years edge vs a shuffle null floor.
|
| ▸The Hindenburg Omen
Classic market-breadth canon |
The Hindenburg Omen times market turns |
DOESN'T WORK
The famous 'crash' signal -- it fires when too many stocks hit fresh extremes in BOTH directions at once. the later years +0.16 -- noise. It has 'predicted' far more crashes than have eve… |
F
+0.16 edge vs. buy & hold |
What it's meant to doThe Hindenburg Omen times market turns
— Classic market-breadth canon
What we foundThe famous 'crash' signal -- it fires when too many stocks hit fresh extremes in BOTH directions at once. the later years +0.16 -- noise. It has 'predicted' far more crashes than have ever happened.
The numbersthe later years edge +0.16 vs buy-hold; luck threshold ~+0.40 (below it = noise)
· edge vs. buy & hold
Performance F
doesn't do what it claims
Rigor A
5/5 honesty checks passed
How honestly we tested it✓ survivorship-free · ✓ net of real cost · ✓ out-of-sample · ✓ point-in-time · ✓ look-ahead checked
breadth_sweep.py; the later years edge vs a shuffle null floor.
|
| Technical Indicators — the TA Canon, Tested · 22 tested |
| Tested as S&P 500 timing signals. An indicator that's noise on the index can behave differently on another asset (oil, bonds, a single stock) — which is exactly what our weekly tests explore. We scope every claim to what we actually tested. |
| ▸Rate of Change (12)
Technical-analysis canon |
Rate of Change (12) signals when to be in or out of the market |
DOESN'T WORK
As a mechanical buy/sell timing signal on the index, Rate of Change (12) scored +0.17 out-of-sample -- under the +0.35 luck threshold. It looks meaningful on a chart and ad… |
F
+0.17 edge vs. buy & hold |
What it's meant to doRate of Change (12) signals when to be in or out of the market
— Technical-analysis canon
What we foundAs a mechanical buy/sell timing signal on the index, Rate of Change (12) scored +0.17 out-of-sample -- under the +0.35 luck threshold. It looks meaningful on a chart and adds nothing a coin-flip wouldn't.
The numbersthe later years edge +0.17 vs buy-hold; luck threshold +0.35 (below it = noise)
· edge vs. buy & hold
Performance F
doesn't do what it claims
Rigor A
5/5 honesty checks passed
How honestly we tested it✓ survivorship-free · ✓ net of real cost · ✓ out-of-sample · ✓ point-in-time · ✓ look-ahead checked
indicator_sweep.py; best threshold/direction per indicator, the later years edge vs a shuffle null floor. Tested as index-timing signals.
|
| ▸On-Balance Volume (slope)
Joe Granville |
On-Balance Volume (slope) signals when to be in or out of the market |
DOESN'T WORK
As a mechanical buy/sell timing signal on the index, On-Balance Volume (slope) scored +0.16 out-of-sample -- under the +0.35 luck threshold. A running volume tally. Confirm… |
F
+0.16 edge vs. buy & hold |
What it's meant to doOn-Balance Volume (slope) signals when to be in or out of the market
— Joe Granville
What we foundAs a mechanical buy/sell timing signal on the index, On-Balance Volume (slope) scored +0.16 out-of-sample -- under the +0.35 luck threshold. A running volume tally. Confirms moves; never leads them.
The numbersthe later years edge +0.16 vs buy-hold; luck threshold +0.35 (below it = noise)
· edge vs. buy & hold
Performance F
doesn't do what it claims
Rigor A
5/5 honesty checks passed
How honestly we tested it✓ survivorship-free · ✓ net of real cost · ✓ out-of-sample · ✓ point-in-time · ✓ look-ahead checked
indicator_sweep.py; best threshold/direction per indicator, the later years edge vs a shuffle null floor. Tested as index-timing signals.
|
| ▸CCI (20)
Donald Lambert |
CCI (20) signals when to be in or out of the market |
DOESN'T WORK
As a mechanical buy/sell timing signal on the index, CCI (20) scored +0.14 out-of-sample -- under the +0.35 luck threshold. It looks meaningful on a chart and adds nothing … |
F
+0.14 edge vs. buy & hold |
What it's meant to doCCI (20) signals when to be in or out of the market
— Donald Lambert
What we foundAs a mechanical buy/sell timing signal on the index, CCI (20) scored +0.14 out-of-sample -- under the +0.35 luck threshold. It looks meaningful on a chart and adds nothing a coin-flip wouldn't.
The numbersthe later years edge +0.14 vs buy-hold; luck threshold +0.35 (below it = noise)
· edge vs. buy & hold
Performance F
doesn't do what it claims
Rigor A
5/5 honesty checks passed
How honestly we tested it✓ survivorship-free · ✓ net of real cost · ✓ out-of-sample · ✓ point-in-time · ✓ look-ahead checked
indicator_sweep.py; best threshold/direction per indicator, the later years edge vs a shuffle null floor. Tested as index-timing signals.
|
| ▸Price vs 50-day MA
Technical-analysis canon |
Price vs 50-day MA signals when to be in or out of the market |
DOESN'T WORK
As a mechanical buy/sell timing signal on the index, Price vs 50-day MA scored +0.10 out-of-sample -- under the +0.35 luck threshold. The trend filter everyone uses. As a r… |
F
+0.10 edge vs. buy & hold |
What it's meant to doPrice vs 50-day MA signals when to be in or out of the market
— Technical-analysis canon
What we foundAs a mechanical buy/sell timing signal on the index, Price vs 50-day MA scored +0.10 out-of-sample -- under the +0.35 luck threshold. The trend filter everyone uses. As a return signal: nothing.
The numbersthe later years edge +0.10 vs buy-hold; luck threshold +0.35 (below it = noise)
· edge vs. buy & hold
Performance F
doesn't do what it claims
Rigor A
5/5 honesty checks passed
How honestly we tested it✓ survivorship-free · ✓ net of real cost · ✓ out-of-sample · ✓ point-in-time · ✓ look-ahead checked
indicator_sweep.py; best threshold/direction per indicator, the later years edge vs a shuffle null floor. Tested as index-timing signals.
|
| ▸MACD histogram
Gerald Appel |
MACD histogram signals when to be in or out of the market |
DOESN'T WORK
As a mechanical buy/sell timing signal on the index, MACD histogram scored +0.08 out-of-sample -- under the +0.35 luck threshold. The derivative of a lagging signal. Faster… |
F
+0.08 edge vs. buy & hold |
What it's meant to doMACD histogram signals when to be in or out of the market
— Gerald Appel
What we foundAs a mechanical buy/sell timing signal on the index, MACD histogram scored +0.08 out-of-sample -- under the +0.35 luck threshold. The derivative of a lagging signal. Faster, and just as noisy.
The numbersthe later years edge +0.08 vs buy-hold; luck threshold +0.35 (below it = noise)
· edge vs. buy & hold
Performance F
doesn't do what it claims
Rigor A
5/5 honesty checks passed
How honestly we tested it✓ survivorship-free · ✓ net of real cost · ✓ out-of-sample · ✓ point-in-time · ✓ look-ahead checked
indicator_sweep.py; best threshold/direction per indicator, the later years edge vs a shuffle null floor. Tested as index-timing signals.
|
| ▸True Strength Index
Technical-analysis canon |
True Strength Index signals when to be in or out of the market |
DOESN'T WORK
As a mechanical buy/sell timing signal on the index, True Strength Index scored +0.05 out-of-sample -- under the +0.35 luck threshold. It looks meaningful on a chart and ad… |
F
+0.05 edge vs. buy & hold |
What it's meant to doTrue Strength Index signals when to be in or out of the market
— Technical-analysis canon
What we foundAs a mechanical buy/sell timing signal on the index, True Strength Index scored +0.05 out-of-sample -- under the +0.35 luck threshold. It looks meaningful on a chart and adds nothing a coin-flip wouldn't.
The numbersthe later years edge +0.05 vs buy-hold; luck threshold +0.35 (below it = noise)
· edge vs. buy & hold
Performance F
doesn't do what it claims
Rigor A
5/5 honesty checks passed
How honestly we tested it✓ survivorship-free · ✓ net of real cost · ✓ out-of-sample · ✓ point-in-time · ✓ look-ahead checked
indicator_sweep.py; best threshold/direction per indicator, the later years edge vs a shuffle null floor. Tested as index-timing signals.
|
| ▸Coppock Curve
E.S.C. Coppock |
Coppock Curve signals when to be in or out of the market |
DOESN'T WORK
As a mechanical buy/sell timing signal on the index, Coppock Curve scored +0.05 out-of-sample -- under the +0.35 luck threshold. A weighted average of two rate-of-change li… |
F
+0.05 edge vs. buy & hold |
What it's meant to doCoppock Curve signals when to be in or out of the market
— E.S.C. Coppock
What we foundAs a mechanical buy/sell timing signal on the index, Coppock Curve scored +0.05 out-of-sample -- under the +0.35 luck threshold. A weighted average of two rate-of-change lines. Smooth, and smoothly useless.
The numbersthe later years edge +0.05 vs buy-hold; luck threshold +0.35 (below it = noise)
· edge vs. buy & hold
Performance F
doesn't do what it claims
Rigor A
5/5 honesty checks passed
How honestly we tested it✓ survivorship-free · ✓ net of real cost · ✓ out-of-sample · ✓ point-in-time · ✓ look-ahead checked
indicator_sweep.py; best threshold/direction per indicator, the later years edge vs a shuffle null floor. Tested as index-timing signals.
|
| ▸Awesome Oscillator
Bill Williams |
Awesome Oscillator signals when to be in or out of the market |
DOESN'T WORK
As a mechanical buy/sell timing signal on the index, Awesome Oscillator scored +0.05 out-of-sample -- under the +0.35 luck threshold. Two moving averages of the midpoint. A… |
F
+0.05 edge vs. buy & hold |
What it's meant to doAwesome Oscillator signals when to be in or out of the market
— Bill Williams
What we foundAs a mechanical buy/sell timing signal on the index, Awesome Oscillator scored +0.05 out-of-sample -- under the +0.35 luck threshold. Two moving averages of the midpoint. As awesome as that sounds.
The numbersthe later years edge +0.05 vs buy-hold; luck threshold +0.35 (below it = noise)
· edge vs. buy & hold
Performance F
doesn't do what it claims
Rigor A
5/5 honesty checks passed
How honestly we tested it✓ survivorship-free · ✓ net of real cost · ✓ out-of-sample · ✓ point-in-time · ✓ look-ahead checked
indicator_sweep.py; best threshold/direction per indicator, the later years edge vs a shuffle null floor. Tested as index-timing signals.
|
| ▸Detrended Price Osc (20)
Technical-analysis canon |
Detrended Price Osc (20) signals when to be in or out of the market |
DOESN'T WORK
As a mechanical buy/sell timing signal on the index, Detrended Price Osc (20) scored +0.04 out-of-sample -- under the +0.35 luck threshold. It looks meaningful on a chart a… |
F
+0.04 edge vs. buy & hold |
What it's meant to doDetrended Price Osc (20) signals when to be in or out of the market
— Technical-analysis canon
What we foundAs a mechanical buy/sell timing signal on the index, Detrended Price Osc (20) scored +0.04 out-of-sample -- under the +0.35 luck threshold. It looks meaningful on a chart and adds nothing a coin-flip wouldn't.
The numbersthe later years edge +0.04 vs buy-hold; luck threshold +0.35 (below it = noise)
· edge vs. buy & hold
Performance F
doesn't do what it claims
Rigor A
5/5 honesty checks passed
How honestly we tested it✓ survivorship-free · ✓ net of real cost · ✓ out-of-sample · ✓ point-in-time · ✓ look-ahead checked
indicator_sweep.py; best threshold/direction per indicator, the later years edge vs a shuffle null floor. Tested as index-timing signals.
|
| ▸MACD line
Gerald Appel |
MACD line signals when to be in or out of the market |
DOESN'T WORK
As a mechanical buy/sell timing signal on the index, MACD line scored +0.03 out-of-sample -- under the +0.35 luck threshold. A lagging crossover of two lagging averages -- … |
F
+0.03 edge vs. buy & hold |
What it's meant to doMACD line signals when to be in or out of the market
— Gerald Appel
What we foundAs a mechanical buy/sell timing signal on the index, MACD line scored +0.03 out-of-sample -- under the +0.35 luck threshold. A lagging crossover of two lagging averages -- it calls the move once it's already happened.
The numbersthe later years edge +0.03 vs buy-hold; luck threshold +0.35 (below it = noise)
· edge vs. buy & hold
Performance F
doesn't do what it claims
Rigor A
5/5 honesty checks passed
How honestly we tested it✓ survivorship-free · ✓ net of real cost · ✓ out-of-sample · ✓ point-in-time · ✓ look-ahead checked
indicator_sweep.py; best threshold/direction per indicator, the later years edge vs a shuffle null floor. Tested as index-timing signals.
|
| ▸Price vs 200-day MA
Technical-analysis canon |
Price vs 200-day MA signals when to be in or out of the market |
DOESN'T WORK
As a mechanical buy/sell timing signal on the index, Price vs 200-day MA scored +0.02 out-of-sample -- under the +0.35 luck threshold. The most-watched line in markets. It … |
F
+0.02 edge vs. buy & hold |
What it's meant to doPrice vs 200-day MA signals when to be in or out of the market
— Technical-analysis canon
What we foundAs a mechanical buy/sell timing signal on the index, Price vs 200-day MA scored +0.02 out-of-sample -- under the +0.35 luck threshold. The most-watched line in markets. It marks regime; it doesn't time it.
The numbersthe later years edge +0.02 vs buy-hold; luck threshold +0.35 (below it = noise)
· edge vs. buy & hold
Performance F
doesn't do what it claims
Rigor A
5/5 honesty checks passed
How honestly we tested it✓ survivorship-free · ✓ net of real cost · ✓ out-of-sample · ✓ point-in-time · ✓ look-ahead checked
indicator_sweep.py; best threshold/direction per indicator, the later years edge vs a shuffle null floor. Tested as index-timing signals.
|
| ▸Bollinger %B (20,2)
John Bollinger |
Bollinger %B (20,2) signals when to be in or out of the market |
DOESN'T WORK
As a mechanical buy/sell timing signal on the index, Bollinger %B (20,2) scored +0.02 out-of-sample -- under the +0.35 luck threshold. Bands measure volatility; they say no… |
F
+0.02 edge vs. buy & hold |
What it's meant to doBollinger %B (20,2) signals when to be in or out of the market
— John Bollinger
What we foundAs a mechanical buy/sell timing signal on the index, Bollinger %B (20,2) scored +0.02 out-of-sample -- under the +0.35 luck threshold. Bands measure volatility; they say nothing about which way price goes next.
The numbersthe later years edge +0.02 vs buy-hold; luck threshold +0.35 (below it = noise)
· edge vs. buy & hold
Performance F
doesn't do what it claims
Rigor A
5/5 honesty checks passed
How honestly we tested it✓ survivorship-free · ✓ net of real cost · ✓ out-of-sample · ✓ point-in-time · ✓ look-ahead checked
indicator_sweep.py; best threshold/direction per indicator, the later years edge vs a shuffle null floor. Tested as index-timing signals.
|
| ▸Accum/Dist (slope)
Technical-analysis canon |
Accum/Dist (slope) signals when to be in or out of the market |
DOESN'T WORK
As a mechanical buy/sell timing signal on the index, Accum/Dist (slope) scored +0.01 out-of-sample -- under the +0.35 luck threshold. It looks meaningful on a chart and add… |
F
+0.01 edge vs. buy & hold |
What it's meant to doAccum/Dist (slope) signals when to be in or out of the market
— Technical-analysis canon
What we foundAs a mechanical buy/sell timing signal on the index, Accum/Dist (slope) scored +0.01 out-of-sample -- under the +0.35 luck threshold. It looks meaningful on a chart and adds nothing a coin-flip wouldn't.
The numbersthe later years edge +0.01 vs buy-hold; luck threshold +0.35 (below it = noise)
· edge vs. buy & hold
Performance F
doesn't do what it claims
Rigor A
5/5 honesty checks passed
How honestly we tested it✓ survivorship-free · ✓ net of real cost · ✓ out-of-sample · ✓ point-in-time · ✓ look-ahead checked
indicator_sweep.py; best threshold/direction per indicator, the later years edge vs a shuffle null floor. Tested as index-timing signals.
|
| ▸Chaikin Money Flow (20)
Marc Chaikin |
Chaikin Money Flow (20) signals when to be in or out of the market |
DOESN'T WORK
As a mechanical buy/sell timing signal on the index, Chaikin Money Flow (20) scored +0.01 out-of-sample -- under the +0.35 luck threshold. It looks meaningful on a chart an… |
F
+0.01 edge vs. buy & hold |
What it's meant to doChaikin Money Flow (20) signals when to be in or out of the market
— Marc Chaikin
What we foundAs a mechanical buy/sell timing signal on the index, Chaikin Money Flow (20) scored +0.01 out-of-sample -- under the +0.35 luck threshold. It looks meaningful on a chart and adds nothing a coin-flip wouldn't.
The numbersthe later years edge +0.01 vs buy-hold; luck threshold +0.35 (below it = noise)
· edge vs. buy & hold
Performance F
doesn't do what it claims
Rigor A
5/5 honesty checks passed
How honestly we tested it✓ survivorship-free · ✓ net of real cost · ✓ out-of-sample · ✓ point-in-time · ✓ look-ahead checked
indicator_sweep.py; best threshold/direction per indicator, the later years edge vs a shuffle null floor. Tested as index-timing signals.
|
| ▸RSI (14)
J. Welles Wilder |
RSI (14) signals when to be in or out of the market |
DOESN'T WORK
As a mechanical buy/sell timing signal on the index, RSI (14) scored +0.01 out-of-sample -- under the +0.35 luck threshold. Overbought/oversold is a story the chart tells a… |
F
+0.01 edge vs. buy & hold |
What it's meant to doRSI (14) signals when to be in or out of the market
— J. Welles Wilder
What we foundAs a mechanical buy/sell timing signal on the index, RSI (14) scored +0.01 out-of-sample -- under the +0.35 luck threshold. Overbought/oversold is a story the chart tells after the move, not before.
The numbersthe later years edge +0.01 vs buy-hold; luck threshold +0.35 (below it = noise)
· edge vs. buy & hold
Performance F
doesn't do what it claims
Rigor A
5/5 honesty checks passed
How honestly we tested it✓ survivorship-free · ✓ net of real cost · ✓ out-of-sample · ✓ point-in-time · ✓ look-ahead checked
indicator_sweep.py; best threshold/direction per indicator, the later years edge vs a shuffle null floor. Tested as index-timing signals.
|
| ▸Stochastic %K (14)
George Lane |
Stochastic %K (14) signals when to be in or out of the market |
DOESN'T WORK
As a mechanical buy/sell timing signal on the index, Stochastic %K (14) scored -0.01 out-of-sample -- under the +0.35 luck threshold. Where price sits in its recent range -… |
F
-0.01 edge vs. buy & hold |
What it's meant to doStochastic %K (14) signals when to be in or out of the market
— George Lane
What we foundAs a mechanical buy/sell timing signal on the index, Stochastic %K (14) scored -0.01 out-of-sample -- under the +0.35 luck threshold. Where price sits in its recent range -- and the range has no memory.
The numbersthe later years edge -0.01 vs buy-hold; luck threshold +0.35 (below it = noise)
· edge vs. buy & hold
Performance F
doesn't do what it claims
Rigor A
5/5 honesty checks passed
How honestly we tested it✓ survivorship-free · ✓ net of real cost · ✓ out-of-sample · ✓ point-in-time · ✓ look-ahead checked
indicator_sweep.py; best threshold/direction per indicator, the later years edge vs a shuffle null floor. Tested as index-timing signals.
|
| ▸Williams %R (14)
Larry Williams |
Williams %R (14) signals when to be in or out of the market |
DOESN'T WORK
As a mechanical buy/sell timing signal on the index, Williams %R (14) scored -0.01 out-of-sample -- under the +0.35 luck threshold. Stochastic with a minus sign. Same non-e… |
F
-0.01 edge vs. buy & hold |
What it's meant to doWilliams %R (14) signals when to be in or out of the market
— Larry Williams
What we foundAs a mechanical buy/sell timing signal on the index, Williams %R (14) scored -0.01 out-of-sample -- under the +0.35 luck threshold. Stochastic with a minus sign. Same non-edge.
The numbersthe later years edge -0.01 vs buy-hold; luck threshold +0.35 (below it = noise)
· edge vs. buy & hold
Performance F
doesn't do what it claims
Rigor A
5/5 honesty checks passed
How honestly we tested it✓ survivorship-free · ✓ net of real cost · ✓ out-of-sample · ✓ point-in-time · ✓ look-ahead checked
indicator_sweep.py; best threshold/direction per indicator, the later years edge vs a shuffle null floor. Tested as index-timing signals.
|
| ▸Vortex (14)
Botes & Siepman |
Vortex (14) signals when to be in or out of the market |
DOESN'T WORK
As a mechanical buy/sell timing signal on the index, Vortex (14) scored -0.01 out-of-sample -- under the +0.35 luck threshold. It looks meaningful on a chart and adds nothi… |
F
-0.01 edge vs. buy & hold |
What it's meant to doVortex (14) signals when to be in or out of the market
— Botes & Siepman
What we foundAs a mechanical buy/sell timing signal on the index, Vortex (14) scored -0.01 out-of-sample -- under the +0.35 luck threshold. It looks meaningful on a chart and adds nothing a coin-flip wouldn't.
The numbersthe later years edge -0.01 vs buy-hold; luck threshold +0.35 (below it = noise)
· edge vs. buy & hold
Performance F
doesn't do what it claims
Rigor A
5/5 honesty checks passed
How honestly we tested it✓ survivorship-free · ✓ net of real cost · ✓ out-of-sample · ✓ point-in-time · ✓ look-ahead checked
indicator_sweep.py; best threshold/direction per indicator, the later years edge vs a shuffle null floor. Tested as index-timing signals.
|
| ▸Money Flow Index (14)
Technical-analysis canon |
Money Flow Index (14) signals when to be in or out of the market |
DOESN'T WORK
As a mechanical buy/sell timing signal on the index, Money Flow Index (14) scored -0.03 out-of-sample -- under the +0.35 luck threshold. Volume-weighted RSI. The volume doe… |
F
-0.03 edge vs. buy & hold |
What it's meant to doMoney Flow Index (14) signals when to be in or out of the market
— Technical-analysis canon
What we foundAs a mechanical buy/sell timing signal on the index, Money Flow Index (14) scored -0.03 out-of-sample -- under the +0.35 luck threshold. Volume-weighted RSI. The volume doesn't rescue it.
The numbersthe later years edge -0.03 vs buy-hold; luck threshold +0.35 (below it = noise)
· edge vs. buy & hold
Performance F
doesn't do what it claims
Rigor A
5/5 honesty checks passed
How honestly we tested it✓ survivorship-free · ✓ net of real cost · ✓ out-of-sample · ✓ point-in-time · ✓ look-ahead checked
indicator_sweep.py; best threshold/direction per indicator, the later years edge vs a shuffle null floor. Tested as index-timing signals.
|
| ▸ADX (14)
J. Welles Wilder |
ADX (14) signals when to be in or out of the market |
DOESN'T WORK
As a mechanical buy/sell timing signal on the index, ADX (14) scored -0.04 out-of-sample -- under the +0.35 luck threshold. It measures trend STRENGTH, not direction -- it … |
F
-0.04 edge vs. buy & hold |
What it's meant to doADX (14) signals when to be in or out of the market
— J. Welles Wilder
What we foundAs a mechanical buy/sell timing signal on the index, ADX (14) scored -0.04 out-of-sample -- under the +0.35 luck threshold. It measures trend STRENGTH, not direction -- it times nothing on its own.
The numbersthe later years edge -0.04 vs buy-hold; luck threshold +0.35 (below it = noise)
· edge vs. buy & hold
Performance F
doesn't do what it claims
Rigor A
5/5 honesty checks passed
How honestly we tested it✓ survivorship-free · ✓ net of real cost · ✓ out-of-sample · ✓ point-in-time · ✓ look-ahead checked
indicator_sweep.py; best threshold/direction per indicator, the later years edge vs a shuffle null floor. Tested as index-timing signals.
|
| ▸Stochastic RSI (14)
Technical-analysis canon |
Stochastic RSI (14) signals when to be in or out of the market |
DOESN'T WORK
As a mechanical buy/sell timing signal on the index, Stochastic RSI (14) scored -0.06 out-of-sample -- under the +0.35 luck threshold. It looks meaningful on a chart and ad… |
F
-0.06 edge vs. buy & hold |
What it's meant to doStochastic RSI (14) signals when to be in or out of the market
— Technical-analysis canon
What we foundAs a mechanical buy/sell timing signal on the index, Stochastic RSI (14) scored -0.06 out-of-sample -- under the +0.35 luck threshold. It looks meaningful on a chart and adds nothing a coin-flip wouldn't.
The numbersthe later years edge -0.06 vs buy-hold; luck threshold +0.35 (below it = noise)
· edge vs. buy & hold
Performance F
doesn't do what it claims
Rigor A
5/5 honesty checks passed
How honestly we tested it✓ survivorship-free · ✓ net of real cost · ✓ out-of-sample · ✓ point-in-time · ✓ look-ahead checked
indicator_sweep.py; best threshold/direction per indicator, the later years edge vs a shuffle null floor. Tested as index-timing signals.
|
| ▸The Entire TA Library (pandas-ta, 257 indicators)
Technical-analysis canon |
Surely SOME technical indicator can time the market |
DOESN'T WORK
We ran EVERY indicator in the pandas-ta library -- all 257 -- through the same test. Zero provide a real market-timing edge. The one that appeared to (the Detrended Price Osci… |
F
indicators that actually worked |
What it's meant to doSurely SOME technical indicator can time the market
— Technical-analysis canon
What we foundWe ran EVERY indicator in the pandas-ta library -- all 257 -- through the same test. Zero provide a real market-timing edge. The one that appeared to (the Detrended Price Oscillator, +2.84) is a LOOKAHEAD ARTIFACT: the standard DPO centers its moving average and peeks at future prices. Built point-in-time, with no peeking, it's noise like all the rest. The one exception we caught is the rule -- and a demonstration of why we check for look-ahead.
The numbers257 indicators tested; 0 provide a real timing edge (the lone apparent winner is a lookahead artifact)
· indicators that actually worked
Performance F
doesn't do what it claims
Rigor A
5/5 honesty checks passed
How honestly we tested it✓ survivorship-free · ✓ net of real cost · ✓ out-of-sample · ✓ point-in-time · ✓ look-ahead checked
indicator_sweep_full.py; full pandas-ta-classic library, best threshold/direction per indicator, the later years edge vs a shuffle null floor.
|