Concept · Reading the returns
The benchmark return of simply buying the coin at the start of the window and holding it to the end, unleveraged (1×). The honest yardstick every strategy is measured against — "could you have beaten doing nothing?"
Buy-and-hold (sometimes "hodl") is the laziest possible strategy: buy once, never trade again, sell at the end. It's the benchmark because it's the default a person would do with zero skill and zero effort. A strategy only earned its complexity if it beat buy-and-hold — otherwise you did a lot of work to underperform sitting still.
Crucially, buy-and-hold here is unleveraged (1×) and spot-like — pure price appreciation. It does not borrow, does not pay funding (the periodic long/short payment on a perp), and never gets liquidated. Its only risk is that the coin falls and you sit through the drawdown (the worst peak-to-trough drop).
buyAndHoldReturn = (close_last − close_first) / close_first
Computed in apps/backend/src/analytics/buy-and-hold.ts:43 by reusing the chart engine's computeBenchmark — there is no second buy-and-hold implementation, so the stored leaderboard number and the on-chart overlay line cannot drift. It is a property of the (symbol, interval, venue, window) window, computed once per window, identical for every strategy that ran on it. A return of 5.09 means the coin rose +509% over the window.
Buy-and-hold answers honesty question #4 of the dossier: "did this strategy beat just holding the coin?" Over this window (Binance, ~2020-09-14 → 2026, a ~5.75-year bull run), holding exploded, so almost the whole fleet trails it. That is the expected result of measuring against one of the biggest beta (whole-market) runs in history — not a defect.
| symbol | buy-and-hold (1× daily) | CAGR | EMA-cross rows that beat it |
|---|---|---|---|
| BTC | +509% | 36.9%/yr | 3 / 70 |
| ETH | +392% | 31.9%/yr | 1 / 70 |
| SOL | +2,405% | 75.0%/yr | 2 / 70 |
Two things to hold in mind whenever you read it:
(symbol, interval) from each interval's own candle endpoints, so a 4h strategy is judged against a 4h hold. For SOL this spreads the hold return ~2,069–2,405% across intervals (the day-1 intraday entry point on a low, volatile day). On run 83 the per-strategy and per-symbol verdicts agree on every beat/lose call (6 = 6, zero disagreements) — nothing sat in the ambiguous band.The engine has the full buy-and-hold equity curve in memory (computeBenchmark) but only stores the endpoint return. It does not compute buy-and-hold's own max drawdown, so a risk-adjusted "alpha per unit of pain" comparison isn't yet possible. The dossier's own sim-scientist footnote flags this. Captured as a simulation-feature seed (SEED-025: benchmark max-drawdown + risk-adjusted alpha).
Buy-and-hold plays two distinct benchmark roles, and they have different universality:
Buy-and-hold PnL as a benchmark (alpha) — direction-dependent. Comparing strategy PnL to buy-and-hold PnL is the alpha calculation. It's a legitimate and important question ("did you beat passive exposure?"), but it only makes clean sense for long-only strategies on the same asset. A short strategy in a bull market will always look bad vs buy-and-hold PnL — not because the strategy failed, but because the benchmark assumed a long position. For bidirectional strategies the comparison is murkier still.
Buy-and-hold drawdown as a benchmark — direction-neutral. Comparing a strategy's max drawdown (peak-to-trough loss) to buy-and-hold's max drawdown is a capital protection question, not a return question. "Did your strategy suffer less than just holding?" is direction-neutral — a short, long, or bidirectional strategy can all be measured against it meaningfully. A strategy with lower max drawdown than buy-and-hold demonstrably reduced downside risk regardless of which way it traded.
One caveat: a short strategy in a sustained bull run can have worse drawdown than buy-and-hold (the sustained rally is the short's drawdown). So buy-and-hold drawdown as a benchmark doesn't always favor the active strategy — but the question it asks is universally meaningful.
The engine already computes buy-and-hold's full equity curve (computeBenchmark) but does not yet extract buy-and-hold's own max drawdown. Captured as SEED-025. See drawdown and risk adjusted return.
In spot trading, "doing nothing" = hold the asset. Buy-and-hold is the natural passive alternative — you already own it.
In perpetual futures (perps), the default position is neutral: no open position, no exposure, return = 0%. Opening a 1× long perp is an active choice. So in perp context:
This changes what the benchmark question means:
| Context | "Doing nothing" baseline | Buy-and-hold role |
|---|---|---|
| Spot | Hold the asset (= B&H) | IS the passive default |
| Perps | Hold cash (0%) | An active long bet, not passive |
In perp trading, alpha vs B&H is not "did you beat doing nothing?" — it is "did you beat a passive long exposure?" Any profitable perp strategy beats "doing nothing" (0%). Beating a passive long exposure is the meaningful bar — and a hard one in bull markets.
Why we still use B&H in this simulator: The value is beta removal. Beta (β) = how much of your return the market carried for free. B&H isolates market beta; alpha strips it out. That question is valid in perp context — but the "passive alternative" framing only holds cleanly in spot.
wiki/qa-sessions/2026-06-22-session.md#q1 (first formal entry)wiki/qa-sessions/2026-06-28-session.md#q9 (PnL vs drawdown benchmark asymmetry)wiki/qa-sessions/2026-06-28-session.md (perp "doing nothing" distinction)growth/content/dossiers/ema-cross/1-analysis.md §4 (benchmark + stored alpha, run 83)apps/backend/src/analytics/buy-and-hold.ts:43; apps/backend/src/analytics/buy-and-hold-reproduction.test.tsdocs/analytics.md §"Buy-and-Hold Benchmark" + §"Stored per-strategy buy-and-hold + alpha"Related concepts
See it in a real result →Put it to the test
Spawn your variant, run it on the same engine, and read the edge-significance verdict before you risk real money.