Інженерна польова нотатка. 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.
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% | — |
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:
- 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.
- 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).
- 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.
- 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.
- 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
| Холдаут, 267 днів | Портфель | Медіанна монета | Монети в прибутку |
|---|---|---|---|
| Buy and hold | −54.3% | −56.4% | 2 / 70 |
| Випадкова конфігурація (нульове плече) | −5.7% | −6.1% | — |
| Оптимізатор, вибраний на навчальній вибірці | −4.5% | −7.6% | 22 / 70 |
Три числа несуть висновок:
- 68 з 70. Оптимізована конфігурація перевершила купівлю та утримання на 68 монетах. Як заголовок це вражає, але майже нічого не означає — за цей холдаут так зробило майже все, бо ринок впав.
- 34 з 70. Оптимізована конфігурація перевершила медіанну конфігурацію власної сітки на 34 монетах. Випадковість передбачає 35. Пошук — 268 655 симуляцій, 3 838 на монету — не купив вимірюваної здатності відрізнити хорошу конфігурацію від середньої на даних, яких він не бачив.
- 3.2%. Медіанний час на ринку на холдауті для вибраних конфігурацій. Шість угод на медіанній монеті. Вся перевага оптимізатора над утриманням полягає в тому, що він майже ніколи не утримував.
На навчальній вибірці оптимізатор був прибутковим на 70 з 70 монет із медіаною +91,7%. Наперед він був прибутковим на 22, а медіанна монета втратила 7,6%. Цей колапс — не сама втрата — є вимірюванням. Це чесний розмір розриву між «знайдено в історії» та «працює далі».
Наш власний шлюз відхилив усі 70
Кожна вибрана конфігурація була оцінена детермінованим шлюзом готовності до живого, який вирішує, чи може щось у нашій системі вийти з паперу: Шарп, просідання, відсоток виграшних угод, фактор прибутку, кількість угод, ризик руйнування, Калмар. Нуль з 70 пройшли. Середній бал: 28,9 зі 100. Вердикт для всіх: NOT_READY.
Це правильний результат, і його варто сказати прямо: наш оптимізатор, спрямований на реальний портфель, не знайшов нічого, чим був би готовий торгувати. Дослідницький шар, який не може дати таку відповідь, — це маркетинговий шар.
Одна родина була помірно цікавою: PSAR-фліп був позитивним на холдауті на 39 з 70 монет із медіаною +3,0% — єдиний генератор із широтою вище підкидання монети на одному розбитті. Тож ми прогнали його через суворіший шлюз, а не залишили як гарне речення.
Єдиний виживший, розібраний належним чином
Одне розбиття 70/30 може бути щасливим. Очищений закріплений walk-forward — це складніший тест: розширюване тренувальне вікно, ембарго-розрив, щоб жодна угода не перетинала межу, вибір лише на тренуванні, оцінка на незайманому наступному вікні, повторене через чотири згини на монету — 280 згинів на тих самих 70 монетах, лише лонг з плечем 1×.
| 280 walk-forward згинів | Середня дохідність згину | PSAR перевершує його |
|---|---|---|
| PSAR-фліп, лише лонг | +0.45% | — |
| Випадкові входи, ті самі виходи | +0.10% | 143 / 280 |
| RSI-розворот | −2.46% | 154 / 280 |
| Buy and hold | −15.33% | 194 / 280 |
Він перевершив випадкові входи на 143 з 280 згинів — 51%. І поправка на множинне тестування вирішує: 17 монет пройшли планку «надійних» (позитивні принаймні в трьох із чотирьох згинів), тоді як лише випадкові згини дали б 21,9. Спостережувана надійність нижча за випадкову (p = 0,92). Вердикт від нашої власної машинерії: Без доведеної переваги.
Розбиття за режимами показує, чим насправді є стратегія. У бичачих згинах вона заробила +5,9%, тоді як утримання — +44,3%. У ведмежих згинах вона втратила 1,4%, тоді як утримання втратило 40,2%. Це не перевага, яка ховалася в параметрах — це пристрій для перебування поза ринком, оцінений у всю висхідну динаміку. Це те саме речення, що й решта цієї статті, але дійшли до нього іншою дорогою.
Якщо у вас є налаштований бектест
Використовуйте результат як дизайн тесту, а не як причину вибрати інший індикатор. Перш ніж довіряти бектесту, який знайшов гарного переможця, запитайте:
- Чи були всесвіт і правило входу заморожені до результату? Зберігайте виключені назви, перейменовані тікери та точну часову мітку рішення в записі.
- Чи бачила вибірка холдаут? Вибирайте параметри лише на тренувальному зрізі. Не налаштовуйте розбиття після перегляду форвардного результату.
- Що таке узгоджене нульове плече? Запустіть конфігурацію, вибрану з того самого простору пошуку, з тими самими витратами, капіталом і контрактом експозиції. Агрегована дохідність сама по собі може приховати, що нульове плече зробило так само добре.
- Чи переживає результат перевірку по кожному активу? Повідомте кількість, що перевершує нульове плече, медіанний результат активу, час на ринку та викиди — не лише найкращу криву капіталу.
- Що сталося після другого тесту? Використовуйте очищений walk-forward з ембарго та поправкою на множинне тестування. Якщо надійна кількість не вища за випадкову, позначте результат як непереконливий і залиште його на папері.
Цей чекліст не знайде вам стратегію. Він відповідає на більш базове питання, на яке може відповісти це дослідження: чи заслужив бектест право сприйматися серйозно.
П'ять висновків
- Широка диверсифікація не є контролем ризику, коли вхід — одна дата. Сімдесят назв, один день покупки, 36 з них досягли піку саме того місяця — кореляція, яка мала значення, була часом, а не сектором.
- Один переможець робив усю роботу. Лише ZEC становить 43,7% того, що залишилося. Результат портфеля, який змінюється від видалення одного рядка, ніколи не був результатом портфеля.
- Стопи змінили форму, а не знак. Трендове плече перетворило просідання −69% на −37% і все одно завершило нижче, ніж нічого не робити. Купівля комфорту — це легітимна покупка; називайте це так.
- «Перевершити купівлю та утримання» — слабке твердження на падаючому ринку. Готівка перевершує купівлю та утримання на падаючому ринку. Три з чотирьох наборів правил і 68 з 70 оптимізованих конфігурацій пройшли цю планку, і майже жодна з них не заробила грошей.
- Оптимізація — не відсутній інгредієнт. За 268 655 спроб наш оптимізатор знайшов переможця на навчальній вибірці на кожній монеті і не зміг наперед відрізнити свої вибори від випадкових. Якщо вендор показує вам налаштований бектест без холдауту та нульового плеча, ви дивитеся на колонку навчальної вибірки цієї статті.
Чого це не доводить
- Одне вікно, один режим. 890 днів пізнього циклу та тривалого кровотечі альткойнів. На бичачій нозі тренд і моментум перевернули б картину — це вимірює покупця, який купив вершину, а не всіх покупців.
- Виконання ідеалізоване. Щоденні закриття, без прослизання, без ризику розриву, без реальності низької ліквідності в малих альткойнах, без фандингу та податків.
- Холдаут — 267 днів. Це справжній сліпий зріз, а не конвеєр walk-forward; один холдаут може бути щасливим в обидва боки. Нульове плече — це те, що тримає це чесним, і нульове плече — причина, чому ми не заявляємо про перевагу.
- AGIX несе близько 10 пунктів помилки від зшивання злиття ASI: похідний фактор 0,474 відрізняється від оголошеного 0,43335, бо ціна рухалася між зупинкою та перезапуском FET.
Відтворіть це
Усі три частини знаходяться в публічному репозиторії під plans/march2024/. Дослідження фіксованих правил завантажує власні свічки (близько 7 МБ, приблизно сім хвилин), зшиває перейменовані тікери з граничних цін і записує study/results.json. Повторний аналіз оптимізатора читає ті самі файли та записує optimizer_results.json з вибраною конфігурацією кожної монети, її числа на навчальній вибірці та холдауті, медіану нульового плеча та вердикт шлюзу — 33 секунди на чотирьох ядрах. Кампанія walk-forward записує qn_psar_walkforward.json: кожен згин, обидва наївні базові рівні, імовірність переобладнання на монету та тест надійності проти випадковості — чотири секунди.
Ми повторно запустили дослідження фіксованих правил на свіжозавантажених свічках на власній інфраструктурі перед публікацією: купівля та утримання вийшла на −43,5% проти −44,6% оригінального запуску днем раніше, а похідні фактори зшивання відтворилися до цифри. Інша машина, інше завантаження, та сама відповідь.
Якщо ви хочете такого ж ставлення до монети, яку насправді тримаєте, оптимізатор відкритий на платформі — той самий двигун, та сама дисципліна холдауту, той самий шлюз, який сказав нам «ні» сімдесят разів.