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
BTC3244 2017-08-172026-07-04 fresh
ETH3244 2017-08-172026-07-04 fresh
BNB3163 2017-11-062026-07-04 fresh
SOL2154 2020-08-112026-07-04 fresh
XRP2984 2018-05-042026-07-04 fresh
ADA3001 2018-04-172026-07-04 fresh
DOGE2557 2019-07-052026-07-04 fresh
AVAX2112 2020-09-222026-07-04 fresh
LINK2727 2019-01-162026-07-04 fresh
DOT2147 2020-08-182026-07-04 fresh
LTC3126 2017-12-132026-07-04 fresh
ATOM2624 2019-04-292026-07-04 fresh
NEAR2090 2020-10-142026-07-04 fresh
SUI1159 2023-05-032026-07-04 fresh
ONDO450 2025-04-112026-07-04 fresh
HYPE575 2024-12-072026-07-04 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.