Both pairs failed both legs.
A widely shared k-nearest-neighbours classification mechanism using a Lorentzian distance metric was run at a frozen community-standard configuration. On both pairs, the worked account ended well below where it started and below buying and holding the same pair over the same window.
| Pair | Starting account | Ending account | Return | Buy-and-hold return | Round trips |
|---|---|---|---|---|---|
| BTC/USDKraken 4-hour bars | 10,000 USD | 2,608.67 USD | −73.9% | −38.2% | 167 |
| ETH/USDKraken 4-hour bars | 10,000 USD | 1,848.04 USD | −81.5% | −53.7% | 161 |
Each worked account starts flat with 10,000 USD, runs long-only full-account rotation, and marks any final open position to the final close net of the same cost model.
The subject is the cost-free backtest habit.
The subject is not a product, script or person. The test asks whether this frozen mechanism configuration survives once realistic execution cost is charged. The configuration was fixed in advance: eight neighbours, a two-thousand-bar history window, a four-bar-forward training label, volatility filter on, regime filter on at a −0.1 threshold, and trend-strength filter off.
Signals are confirmed at bar close and filled at the next bar open. The test is long-only, with a fixed exit after four bars or on an opposing signal.
Positive account return and benchmark outperformance.
At the frozen configuration, executed long-only on a worked account after the measured cost model, the mechanism needed to produce a positive whole-account return on BTC/USD and ETH/USD over the evaluation window, and beat buying and holding the same pair over the same window under the same cost treatment.
A pair survived only if both legs held. Fail either leg and the claim was falsified for that pair.
The cost is the mechanism.
The window matters less than the churn. Over eighteen months, the BTC/USD account turned over 167 complete round trips; the ETH/USD account turned over 161. At 84 basis points each, that trading frequency compounds into a cost drag that dominates the result.
Strip out all price selection and charge only the cost of the trades taken: 167 round trips at 84 bps would by itself pull a 10,000 USD account down to roughly 2,450 USD. BTC/USD finished slightly higher than that, which means the raw price selection was marginally profitable before cost. ETH/USD finished lower than its cost-only counterfactual, so a modest negative raw selection added to an already dominant cost drag.
The finding is mechanical: at this configuration, the mechanism trades often enough that no edge it plausibly carried in these markets, over this window, survived its execution cost.
The cost, made visible.
Split each account into the value the trades selected before cost, and the cost of taking them. Toggle the pair, then hover, tap or focus the account chart to inspect each observation.
- Starting account$10,000Starting balance
- Raw picks+$667Price selection before cost
- Gross before cost$10,667Same trades, zero-cost counterfactual
- Cost drag−$8,058167 round trips at 84 bps
- Net end$2,609Down 73.9%
Hover, tap or drag across the chart. When focused, use ← and → for one 4-hour bar, Page Up and Page Down for one day, or Home and End.
- Starting account$10,000Starting balance
- Raw picks−$2,790Price selection before cost
- Gross before cost$7,210Same trades, zero-cost counterfactual
- Cost drag−$5,362161 round trips at 84 bps
- Net end$1,848Down 81.5%
Hover, tap or drag across the chart. When focused, use ← and → for one 4-hour bar, Page Up and Page Down for one day, or Home and End.
On BTC/USD the raw price picks were marginally positive (+$667.15); the cost drag alone (−$8,058.48) is larger than the entire net loss (−$7,391.33). The trading bill, not the signal, is the finding.
For ETH/USD the raw price selection was already negative (−$2,789.96); the cost drag then removed another $5,361.99 and drove the worked account to $1,848.04. No edge survived the trading bill.
These figures are reconstructed from the frozen per-trade records; the reconstructed net curve reproduces the frozen equity curve exactly. The gross-before-cost line is a zero-cost counterfactual on the same trades, not an achievable outcome. Derived data · derivation receipt.
Frozen data, fixed cost, one evaluation.
Data and accountKraken BTC/USD and ETH/USD, 4-hour bars
- Evaluation window: 2025-01-01 to 2026-06-30 inclusive.
- History from 2023-01-01 supplies the classifier neighbour window.
- Evaluated bars: 3,275 per pair.
- Absent bars from venue downtime were skipped, not synthetically filled.
- Worked account: 10,000 USD per pair, long-only full-account rotation, no leverage, no shorting and no pyramiding.
Cost model84 bps round trip
| Component | Value |
|---|---|
| Fee per side | 40.0 bps taker |
| Spread | 2.0 bps once per round trip |
| Slippage | 1.0 bps per side |
| Round trip | 84.0 bps |
Depth-walk was not applied. Where an input was uncertain, the assumption chosen was favourable to the strategy.
Evidence provenanceExported capsule and conformance record
Every figure on this page traces to the frozen Assay 002 capsule exported from Keel. The public evidence page records the file hashes, engine commit, method note, conformance review and receipt summary.
A narrow finding, stated honestly.
It does mean
Run this way, with costs charged the way a real account pays them, this frozen configuration lost money and lost to buying and holding on both tested pairs.
It does not mean
This does not evaluate every configuration, market, timeframe, implementation, tool or product. It is not a prediction and not trading advice.
Assay verdicts are independent educational research measurements under explicit, published assumptions. They are not financial, investment or trading advice, and nothing here is a recommendation to buy, sell or use any instrument, strategy, system or product.
Cost assumptions are static operator assumptions and must be verified against current venue schedules. Real-world results vary with venue, size and conditions. Past or simulated performance does not indicate future results.