Guide & data

What this tool is, what it is not, and where the numbers come from.

The strategy. Donchian 55/20 long/flat on daily closes: go long when today's close makes a new 55-day high, sell to cash when it makes a new 20-day low. Never short, never leveraged, spot only. Signals use yesterday's completed window (no repaint) and act with a one-day lag; every backtest charges 0.10% per unit turnover.

Why the portfolio is the default view. Per-coin the signal is weak (78–91st percentile vs a scrambled null). Aggregated across 16 coins with inverse-vol weights it reached percentile 100 — diversification is the amplifier. Judging this system on one coin (HYPE, say) is exactly how you talk yourself out of a real edge or into a fake one.

What it buys you. Historically it wins by losing less in winters (2018: −7.6% vs −59.4%; 2022: −21.9% vs B&H's worse), and it lags every raging bull year. Time in market ~28%. The price of admission: stretches of up to ~26 months below the previous equity high. If you can't sit through that, the backtest is irrelevant.

Honesty features (always on). B&H is always plotted. The six canonical parameter neighbors are always shown — a real effect survives at 40/15 and 70/25; an overfit peak doesn't. Yearly windows are always shown. MAR (CAGR ÷ |maxDD|) is the headline, not the raw multiple. Longest-underwater is always visible.

The gauntlet. The Gauntlet tab reruns the frozen pre-registered test battery (SPEC.md, 2026-07-05): portfolio-vs-B&H bars, 6-variant robustness, yearly windows, the 2017 survivorship-resistant subset, a 500-rep joint 7-day-block scrambled null and a trade-level skew check. Verdict PASS needs all 6. Every run is logged permanently; the counter in the sidebar is a multiple-comparisons warning, not a decoration.

This is analysis tooling only. It places no orders, holds no keys, and knows nothing about your exchange accounts.

Data cache

Binance spot daily closes (KuCoin fallback for coins not on Binance spot, e.g. HYPE). A coin refetches automatically when its cache is stale; today's still-forming candle is never stored.
CoinRowsFirstLastFresh
BTC3304 2017-08-172026-09-02 fresh
ETH3250 2017-08-172026-07-10 stale
BNB3169 2017-11-062026-07-10 stale
SOL2214 2020-08-112026-09-02 fresh
XRP2990 2018-05-042026-07-10 stale
ADA3007 2018-04-172026-07-10 stale
DOGE2563 2019-07-052026-07-10 stale
AVAX2118 2020-09-222026-07-10 stale
LINK2733 2019-01-162026-07-10 stale
DOT2153 2020-08-182026-07-10 stale
LTC3132 2017-12-132026-07-10 stale
ATOM2630 2019-04-292026-07-10 stale
NEAR2096 2020-10-142026-07-10 stale
SUI1219 2023-05-032026-09-02 fresh
ONDO456 2025-04-112026-07-10 stale
HYPE635 2024-12-072026-09-02 fresh

Certified reference

Gauntlet run #1 (2026-07-05, D55/20, full universe): PASS 6/6 — 46.6x, CAGR +54.1%, maxDD −36%, null p100, skew ratio 6.71 on 301 trades. If a fresh run on the same config drifts materially from this, suspect the data before suspecting the engine.