エンジニアリングフィールドノート。 We gave our optimizer the same 70-coin universe as a mechanical buy-and-hold study, then judged its in-sample winners on untouched data. The result is a negative one: a matched null arm performed just as well, and the system rejected every selected configuration for live readiness.

34 / 70beat the matched null arm
−4.5%optimizer portfolio on holdout
0 / 70passed the live-readiness gate
−16%−6%+4%+10% −35%−10%0%+25%+45% null arm: median configuration on holdoutoptimizer pick on holdout above line = optimizer winsbelow line = null arm wins
Each dot is one coin. Green means the in-sample winner beat its matched null arm on the holdout; red means it did not. The count is 34–36, and most coins remain below zero on both axes.

The setup, and why it is a fair test

The ticker list was fixed by the operator before any result was known, deduplicated to 70 names, and capital was split mechanically — $1,000 each, no ranking by "promise". Daily candles were downloaded from 1 June 2023 so that SMA200, EMA and RSI are already armed on the first trading day; the pre-window history is warm-up only and cannot be traded. Positions open at the close of 1 March 2024 and the window ends 7 August 2026 — 890 days.

Five tickers changed identity mid-window. Their series are stitched using factors derived from the boundary prices (last close of the old pair against first open of the new one), not from memory: EOS→Vaulta 1.000, MKR→SKY 23,997, AGIX→FET 0.474, plus MATIC→POL and FTM→S as renamed pairs. The first two match the officially announced 1:1 and 1:24,000 exchange terms — that agreement is the check that the method works. XMR came from KuCoin, the only venue of the three carrying the pair for the full window.

Result 1: the basket

$70,000 became $39,539 — a loss of 43.5%, with a 69% maximum drawdown along the way. Six coins out of 70 finished positive. Fifty-six finished below −50%, and twenty-nine below −90%. The median coin lost 85.8%.

Diversification did not diversify. The basket lost almost exactly what a single ETH position lost (−44.3%), and finished 47 points behind a single bitcoin (+3.9%). Only five coins beat BTC: ZEC, XMR, TRX, XRP, BNB.

And the survivors are not a portfolio, they are one position: ZEC returned +1,627% and now accounts for 43.7% of everything left. Remove that single coin and the remaining 69 come to −67.7%. A "broad" portfolio whose outcome hangs on one name was never broad.

The timing explains most of it. For 36 of the 70 coins the highest price of the entire 890-day window was in March 2024 — the month of purchase. Another 15 peaked in December 2024. Nothing about the list was wrong in an unusual way; the entry was.

Result 2: four sets of rules

Same candles, same window, same $1,000 per coin. Nothing here is tuned — every parameter is the textbook default, which is the point:

戦略Finalリターン最大ドローダウンTime in market
Buy and hold$39,539−43.5%−69.0%100%
EMA 9/21 + RSI, full allocation$66,547−4.9%−37.3%33.7%
EMA 9/21 + RSI, engine defaults (10% size, +3%/−2%)$70,526+0.8%−1.4%1.6%
SMA200 trend + 25% trailing stop$36,907−47.3%−60.1%27.5%
Monthly momentum rotation, top 10$24,681−64.7%−77.8%
$0 invested $70,000 → Buy and hold $39,539 · −43.5% EMA/RSI full $66,547 EMA/RSI defaults $70,526 SMA200 + trail $36,907 · −47.3% Momentum top-10 $24,681 · −64.7%
Three of four rule sets beat buy-and-hold. Exactly one ended the window above the money it started with — the one that was in the market 1.6% of the time.

Read that table twice, because it contains the trap this whole article exists to dismantle. "Beat buy-and-hold" and "made money" are different claims. Three of four rule sets beat the basket. Only one finished above $70,000, and it did so by keeping 10% of capital per trade with a +3%/−2% bracket on daily bars — which means the money sat in cash 98% of the time. That is not a strategy winning. That is a strategy declining to play, and the tape doing the rest.

The trend arm deserves its own line. SMA200 with a 25% trailing stop lost more than doing nothing (−47.3% against −43.5%) across 1,199 trades — about 17 round trips per coin. Price chopped around the moving average in torn impulses, and every false break bought high and sold low. What the stops did buy was the shape of the loss: 37% drawdown on the signal arm against 69% for holding. That is a real product, and it is not the product most people think they are buying.

Result 3: so we removed the excuse

Every result above uses fixed textbook parameters. The standard objection writes itself: EMA 9/21 was the wrong pair, RSI 14 was the wrong period, −25% was the wrong trail. Fine. Our optimizer exists precisely to answer that, so we pointed it at the same 70 coins and the same candles.

The protocol, which is the only part that matters:

  1. 65 signal generators from the strategy-lab registry — breakouts, EMA and MACD crosses, RSI and Bollinger reversion, chart patterns, order blocks, liquidity sweeps, PSAR flips, the Phoenix and Jesse families — crossed with a daily-scale grid of stop, take-profit, trailing stop and maximum hold. 268,655 configurations were simulated, an average of 3,838 per coin.
  2. The window is split 70/30. In-sample: 1 March 2024 → 14 November 2025 (623 days). Holdout: 15 November 2025 → 7 August 2026 (267 days).
  3. Selection sees the in-sample slice only, ranked by a consistency score (profit factor, Sharpe, net, penalised for thin samples and deep drawdown). The holdout judges the chosen configuration and never chooses it.
  4. Long-only, 1×, next-bar-open entry, stop evaluated before target inside the same bar, 5 bps taker per side. Same engine that runs our public optimizer — no separate research build.
  5. A null arm runs alongside: the median configuration of the same grid for the same coin. If in-sample selection carries real information, the chosen configuration must beat that. If it does not, the optimizer is an expensive random number generator.

What the optimizer found in-sample: everything

On the in-sample slice the optimizer found a profitable configuration for 70 coins out of 70. Median in-sample result: +91.7%. On a basket that lost 43.5% by holding. Any screenshot from this stage would look like a solved market.

What happened on the holdout

15 Nov 2025 → 7 Aug 2026 · $70,000 re-based at the split Buy and hold $31,963 · −54.3% Random config $66,041 · −5.7% Optimizer pick $66,845 · −4.5%
Against buy-and-hold the optimizer looks like a rescue: 50 points better. Against a configuration picked at random from the same grid it is 1.2 points better — and beats it on only 34 of 70 coins. That gap between the bottom two bars is everything 268,655 simulations bought.
Holdout, 267 daysポートフォリオMedian coinCoins in profit
Buy and hold−54.3%−56.4%2 / 70
Random configuration (null arm)−5.7%−6.1%
Optimizer, selected in-sample−4.5%−7.6%22 / 70

Three numbers carry the finding:

  • 68 of 70. The optimized configuration beat buy-and-hold on 68 coins. As a headline this is spectacular, and it means almost nothing — over this holdout, so did nearly everything, because the market fell.
  • 34 of 70. The optimized configuration beat the median configuration of its own grid on 34 coins. Chance predicts 35. The search — 268,655 simulations, 3,838 per coin — bought no measurable ability to tell a good configuration from an average one on data it had not seen.
  • 3.2%. Median time in market on the holdout for the selected configurations. Six trades on the median coin. The optimizer's entire advantage over holding is that it was almost never holding.

In-sample the optimizer was profitable on 70 of 70 coins with a median of +91.7%. Forward, it was profitable on 22 and the median coin lost 7.6%. That collapse — not the loss itself — is the measurement. It is the honest size of the gap between "found in history" and "works next".

Our own gate rejected all 70

Every selected configuration was scored by the deterministic live-readiness gate that decides whether anything in our system may leave paper: Sharpe, drawdown, win rate, profit factor, trade count, risk of ruin, Calmar. Zero of 70 passed. Mean score: 28.9 out of 100. Verdict on all of them: NOT_READY.

Which is the correct outcome, and worth stating plainly: our optimizer, pointed at a real portfolio, found nothing it was willing to trade. A research layer that cannot produce that answer is a marketing layer.

One family was mildly interesting: the PSAR flip was holdout-positive on 39 of 70 coins with a median of +3.0% — the only generator above coin-flip breadth on the single split. So we ran it through the stricter gate rather than leaving it as a nice sentence.

The one survivor, taken apart properly

A single 70/30 split can be lucky. The purged anchored walk-forward is the harder test: an expanding train window, an embargo gap so no trade straddles the boundary, selection on train only, judgement on the untouched next window, repeated over four folds per coin — 280 folds across the same 70 coins, long-only at 1×.

280 walk-forward foldsMean fold returnPSAR beats it
PSAR flip, long-only+0.45%
Coin-flip entries, same exits+0.10%143 / 280
RSI reversal−2.46%154 / 280
Buy and hold−15.33%194 / 280

It beat coin-flip entries on 143 of 280 folds — 51%. And the multiple-testing correction settles it: 17 coins cleared the "robust" bar (positive in at least three of four folds), while coin-flip folds alone would produce 21.9. The observed robustness is below chance (p = 0.92). Verdict from our own machinery: 証明されたエッジなし.

The regime split says what the strategy actually is. In bull folds it made +5.9% while holding made +44.3%. In bear folds it lost 1.4% while holding lost 40.2%. That is not an edge that was hiding in the parameters — it is a device for being out of the market, priced at the entire upside. Which is the same sentence as the rest of this article, arrived at by a different road.

If you have a tuned backtest

Use the result as a test design, not as a reason to choose a different indicator. Before trusting a backtest that found a beautiful winner, ask:

  1. Was the universe and entry rule frozen before the result? Keep delisted names, renamed tickers, and the exact decision timestamp in the record.
  2. Did selection see the holdout? Choose parameters on the training slice only. Do not tune the split after seeing the forward result.
  3. What is the matched null arm? Run a configuration sampled from the same search space, with the same costs, capital and exposure contract. Aggregate return alone can hide that the null did just as well.
  4. Does the result survive per-asset inspection? Report the count beating the null, the median asset result, time in market, and the outliers — not only the best equity curve.
  5. What happened after a second test? Use a purged walk-forward with an embargo and a multiple-testing correction. If the robust count is no higher than chance, label the result inconclusive and keep it in paper.

That checklist will not find a strategy for you. It answers the more basic question this study can answer: whether the backtest has earned the right to be taken seriously.

Five conclusions

  1. Broad diversification is not risk control when the entry is one date. Seventy names, one purchase day, 36 of them peaking that very month — the correlation that matters was timing, not sector.
  2. One winner was doing the work. ZEC alone is 43.7% of what is left. A portfolio result that flips on removing one line was never a portfolio result.
  3. Stops changed the shape, not the sign. The trend arm turned a −69% drawdown into −37% and still finished below doing nothing. Buying comfort is a legitimate purchase; call it that.
  4. "Beat buy-and-hold" is a weak claim in a falling market. Cash beats buy-and-hold in a falling market. Three of four rule sets and 68 of 70 optimized configurations cleared that bar, and almost none of them made money.
  5. Optimization is not the missing ingredient. Given 268,655 attempts, our optimizer found a winner in-sample on every single coin and could not, forward, distinguish its picks from random ones. If a vendor shows you a tuned backtest without a holdout and a null arm, you are looking at this article's in-sample column.

What this does not prove

  • One window, one regime. 890 days of a late cycle and a long alt bleed. On a bull leg, trend and momentum would flip the picture — this measures the buyer who bought the top, not all buyers.
  • Execution is idealised. Daily closes, no slippage, no stop-gap risk, no thin-liquidity reality in small alts, no funding and no taxes.
  • The holdout is 267 days. It is a genuine blind slice, not a walk-forward conveyor; a single holdout can be lucky in either direction. The null arm is what keeps that honest, and the null is why we are not claiming an edge.
  • AGIX carries about 10 points of error from the ASI merger stitch: the derived 0.474 factor differs from the announced 0.43335 because price moved between the halt and the FET restart.

再現する

All three parts are in the public repository under plans/march2024/. The fixed-rule study downloads its own candles (about 7 MB, roughly seven minutes), stitches the renamed tickers from boundary prices, and writes study/results.json. The optimizer re-analysis reads the same files and writes optimizer_results.json with every coin's selected configuration, its in-sample and holdout numbers, the null-arm median and the gate verdict — 33 seconds on four cores. The walk-forward campaign writes qn_psar_walkforward.json: every fold, both naive baselines, the per-coin overfitting probability and the robust-versus-chance test — four seconds.

We re-ran the fixed-rule study from freshly downloaded candles on our own infrastructure before publishing: buy-and-hold came out at −43.5% against the −44.6% of the original run one day earlier, and the derived stitch factors reproduced to the digit. Different machine, different download, same answer.

If you want the same treatment for a coin you actually hold, the optimizer is open on the platform — same engine, same holdout discipline, same gate that told us no seventy times.