---
title: "The Strategy Graveyard: 6 Strategies We Killed, and Why"
description: "Backtesting, Strategy Research, Risk Management"
url: https://easyswing.trading/blog/strategy-graveyard-honest-backtesting
updated: 2026-07-07
---

# The Strategy Graveyard: 6 Strategies We Killed, and Why

*8 min read | July 2026 | Tags: Backtesting, Strategy Research, Risk Management*


## We Killed 6 of Our Own Strategies. Here's the Receipt.

Most trading platforms only publish what works. EasySwing.trading runs an autoresearch pipeline that tests every strategy candidate on a holdout window it never touched during tuning, then runs a permutation test asking whether the strategy's selection filter beats picking randomly from its own candidate pool. Of 23 strategies evaluated in the 2026-07 sweep, 6 failed and were formally retired: rsi-reversion, bear-flag, rsi-overbought, swing-condor, atr-stretch-reversion, and frog-in-the-pan.

This post is the record of why. A system that never kills anything is not more accurate — it just has not looked hard enough yet.

## Why an Honest Graveyard Matters

**A backtesting process with zero retired strategies has not been tested honestly.** Curve-fit systems tune parameters until every candidate looks profitable on the same data used to build it, so nothing ever fails. A validation pipeline that separates a holdout window, shuffles returns to test for selection skill, and requires the result to survive both — will retire strategies. That is the mechanism working, not a flaw in the strategies.

EasySwing's pipeline applies four gates to every candidate: a holdout split (the last 12 months are never touched during tuning), a parameter-robustness check across a ±10-20% neighborhood, a shuffle-returns permutation test (200 shuffles) that asks whether the RS/grade filter picks winners better than random selection from the same pool, and a Sharpe ratio with a multiple-testing haircut. A strategy that fails any gate on holdout does not ship. Full methodology: [/methodology](/methodology). Aggregate live results: [/performance](/performance).

## What "Dead" Actually Means Here

**Dead means the strategy's selection filter showed no statistically credible edge on data it never saw during tuning** — not that the underlying idea is theoretically wrong, and not that a single bad trade sank it. The verdict comes from a documented decision function (`isStrategyDead()` in the strategy engine) that live pick surfaces check before a setup is ever shown to a user. A dead strategy cannot appear as a graded setup.

Two structural findings carried across the 2026-07 re-baseline. First, every one of the six dead strategies sits at a permutation p-value above 0.5 — meaning the filter is statistically indistinguishable from picking candidates at random. Second, this is a re-baseline: the platform re-ran validation after fixing a risk-floor calibration bug (see the companion post on the [risk-floor correction](/blog/backtest-risk-floor-correction)), and several strategies that looked marginal before the fix did not survive after it.

## The Six

### rsi-reversion — Connors-style mean reversion, single-name shape

RSI(2) dip-buy triggered on a strict four-way confirmation. On the 2026-07-03 cold re-baseline: holdout net profit factor 1.17 on 738 trades, permutation p=0.522, haircut Sharpe 0.17. The strict trigger pre-selects roughly 77% of its own candidate pool before the RS/grade filter ever runs, so the filter has almost nothing left to discriminate — the permutation test degenerates toward noise. The lesson carried forward: a mean-reversion edge does exist in this codebase, but only when the hard gate stays broad and RS-based grading does the actual selection work. That inverted shape shipped as two *different*, currently-tuned strategies — rsi2-leader-dip and snapback-zscore — discussed below.

### bear-flag — short-side breakdown continuation

Short entries on distribution-stage breakdowns. Holdout net profit factor 0.47 on 284 trades, permutation p=1.000, robustness score 0.00, haircut Sharpe −0.90. Short setups in this universe get squeezed on holdout with enough regularity that the edge does not survive — a known, structural finding, not a one-off bad window.

### rsi-overbought — extended-stock short fade

Fade entries on RSI overbought readings, tested with a tightened exit. Holdout net profit factor 1.42 on 512 trades, robustness 0.85, haircut Sharpe 0.40, permutation p=1.000. Positive profit factor, zero selection skill — the RS/grade filter contributes nothing beyond what a random draw from the same pool would produce.

### swing-condor — range-bound reduced-risk setup

A wider-channel range strategy. Held dead on policy: an inconclusive re-run (net profit factor 1.65 on 40 trades, p=0.912) did not overturn the same-day falsification, and under the adoption policy an inconclusive result does not resurrect a dead verdict on its own. Range strategies broadly need range-bound regimes that are rare across a 12-month holdout window — a sample-size problem as much as a signal problem.

### atr-stretch-reversion — ATR-based snapback on a mid-RS band

Holdout net profit factor 1.31 on 1,693 trades, robustness 1.00, haircut Sharpe 0.15, permutation p=0.996. Depth-of-stretch alone, without an independent discrimination signal layered on top, carries no selection edge in this test.

### frog-in-the-pan — information-discreteness momentum, extreme-leader band

Held dead on the resurrection policy: a single 88-trade tuned-provisional read (net profit factor 1.79, p=0.344) does not meet the bar for reversing two same-day dead verdicts, one of which showed p=0.692 on a 202-trade cold sample. The policy requires a *stable* credential across multiple sweeps, not one favorable snapshot.

## The Table

| Strategy | Holdout trades | Permutation p | Verdict basis |
|---|---|---|---|
| rsi-reversion | 738 | 0.522 | Strict trigger pre-filters own pool; degenerate permutation |
| bear-flag | 284 | 1.000 | Short-side squeeze risk; negative haircut Sharpe |
| rsi-overbought | 512 | 1.000 | Positive PF, zero selection skill |
| swing-condor | 40 | 0.912 | Held dead on policy; range regime too rare in holdout |
| atr-stretch-reversion | 1,693 | 0.996 | Stretch depth alone has no discrimination power |
| frog-in-the-pan | 88 / 202 | 0.344 / 0.692 | Single favorable snapshot doesn't meet resurrection bar |

## Selection Skill, Not Profitability

**The permutation test does not ask "did this strategy make money" — it asks "did the RS/grade filter pick better winners than a random draw from the same candidate pool."** This distinction is the single biggest source of confusion in reading these results, and it cuts both ways: a strategy can show a positive profit factor and still be ruled dead (rsi-overbought, above), and a strategy with a modest profit factor can clear the bar if its filter does real selection work.

Two of the currently-live strategies illustrate the inverse case directly. rsi2-leader-dip clears at permutation p=0.000 with 1,124 holdout trades; snapback-zscore clears at p=0.010 with 3,216 holdout trades. Both are mean-reversion strategies — the same family as the retired rsi-reversion — but built with a broad hard gate and a grade filter that does the discrimination work instead of a strict multi-way trigger doing it upfront. Structure determines survival more reliably than the underlying trading idea.

## What Survives the Same Bar

Of the 23 strategies tested in the 2026-07 sweep, the honest count is 12 carrying the strict "tuned" verdict, 1 tuned-provisional, 4 inconclusive, and the 6 above marked dead. That is not "13 alpha setups" — the platform's own validation record shows only 3 of 23 strategies clearing a strict permutation threshold (p ≤ 0.05) on the primary 2026-07-03 snapshot, rising to 4 of 23 on a confirmatory cold re-run. The two highest-volume strategies — rsi2-leader-dip and snapback-zscore — stay rock-solid across both snapshots and account for roughly 4,300 of the platform's ~6,900 annual signals.

The honest framing: this is disciplined selection and risk management layered on a validated core, with a small number of strategies carrying the statistical weight and daily trade volume, plus a longer provisional tail that has not yet cleared the strict bar in either direction. The breadth is real but narrower than a strategy count alone implies.

## What This Should and Shouldn't Change About How You Use It

- **Do** treat a strategy tag on a graded setup as meaning it survived holdout + permutation testing, not that it is guaranteed to keep working.
- **Do** expect the roster to shift over time — a strategy can be re-tested and revert to dead, or a currently-inconclusive strategy can clear the bar on a later sweep.
- **Don't** read "13 strategies" as 13 independently validated alpha sources — the statistically strongest, highest-volume core is a smaller number.
- **Don't** assume a dead verdict means the underlying trading idea (mean reversion, short breakdowns, range trading) is worthless — it means this specific implementation, tested this way, did not clear the bar. The rsi-reversion → rsi2-leader-dip / snapback-zscore case shows the same family can be re-shaped and pass.
- **Don't** expect a static list. The graveyard, like the roster, is a record of ongoing testing, not a finished document.

## FAQ

See below for frequently asked questions about how this validation process works.

*EasySwing.trading screens for setups drawn from strategies that survive holdout and permutation testing, and retires the ones that don't. Read the [methodology](/methodology) and current [performance record](/performance) for the full validation process, and see the companion post on [correcting a risk-floor bug in backtest expectancy](/blog/backtest-risk-floor-correction). Scan results are for informational purposes only and do not constitute investment advice. See our [Risk Disclaimer](/disclaimer).*


---
*This is the LLM-optimized version. [View the interactive page](https://easyswing.trading/blog/strategy-graveyard-honest-backtesting) for the human-friendly version.*
