Инженерная полевая заметка. Мы дали нашему оптимизатору ту же вселенную из 70 монет, что и механическому исследованию «купи и держи», а затем оценили его победителей на внутривыборочных данных на нетронутых данных. Результат отрицательный: сопоставимая нулевая группа показала себя так же хорошо, и система отклонила каждую выбранную конфигурацию для реальной торговли.
Настройка и почему это честный тест
Список тикеров был зафиксирован оператором до того, как стал известен какой-либо результат, дедуплицирован до 70 имён, а капитал был разделён механически — по $1,000 на каждую, без ранжирования по «перспективности». Дневные свечи были загружены с 1 июня 2023 года, чтобы SMA200, EMA и RSI были уже вооружены на первый торговый день; предварительная история — только разогрев и не может быть проторгована. Позиции открываются на закрытии 1 марта 2024 года, и окно заканчивается 7 августа 2026 года — 890 дней.
Пять тикеров сменили идентичность в середине окна. Их ряды сшиты с помощью коэффициентов, выведенных из граничных цен (последнее закрытие старой пары против первого открытия новой), а не из памяти: EOS→Vaulta 1.000, MKR→SKY 23,997, AGIX→FET 0.474, плюс MATIC→POL и FTM→S как переименованные пары. Первые два совпадают с официально объявленными условиями обмена 1:1 и 1:24,000 — это согласие и есть проверка, что метод работает. XMR пришёл с KuCoin, единственной площадки из трёх, где пара торговалась весь период.
Результат 1: корзина
$70,000 превратились в $39,539 — убыток 43.5%, с максимальной просадкой 69% по пути. Шесть монет из 70 закончили в плюсе. Пятьдесят шесть закончили ниже −50%, и двадцать девять ниже −90%. Медианная монета потеряла 85.8%.
Диверсификация не диверсифицировала. Корзина потеряла почти ровно столько же, сколько одна позиция в ETH (−44.3%), и отстала на 47 пунктов от одного биткоина (+3.9%). Только пять монет обогнали BTC: ZEC, XMR, TRX, XRP, BNB.
И выжившие — это не портфель, это одна позиция: ZEC вернул +1,627% и теперь составляет 43.7% всего оставшегося. Уберите эту единственную монету, и оставшиеся 69 дадут −67.7%. «Широкий» портфель, результат которого зависит от одного имени, никогда не был широким.
Тайминг объясняет большую часть. Для 36 из 70 монет самая высокая цена за всё 890-дневное окно была в марте 2024 года — в месяц покупки. Ещё 15 достигли пика в декабре 2024 года. Со списком не было ничего необычно не так; дело было во входе.
Результат 2: четыре набора правил
Те же свечи, то же окно, те же $1,000 на монету. Здесь ничего не настраивается — каждый параметр является стандартным из учебника, в этом и суть:
| Стратегия | Итог | Доходность | Максимальная просадка | Время в рынке |
|---|---|---|---|---|
| Купи и держи | $39,539 | −43.5% | −69.0% | 100% |
| EMA 9/21 + RSI, полное распределение | $66,547 | −4.9% | −37.3% | 33.7% |
| EMA 9/21 + RSI, дефолты движка (размер 10%, +3%/−2%) | $70,526 | +0.8% | −1.4% | 1.6% |
| Тренд SMA200 + трейлинг-стоп 25% | $36,907 | −47.3% | −60.1% | 27.5% |
| Ежемесячная ротация по моментуму, топ-10 | $24,681 | −64.7% | −77.8% | — |
Прочитайте эту таблицу дважды, потому что в ней ловушка, ради разрушения которой написана вся эта статья. «Обойти «купи и держи»» и «заработать деньги» — разные утверждения. Три из четырёх наборов правил обошли корзину. Только один закончил выше $70,000, и он сделал это, держа 10% капитала на сделку с диапазоном +3%/−2% на дневных барах — это значит, что деньги лежали в кэше 98% времени. Это не стратегия выигрывает. Это стратегия отказывается играть, а лента делает остальное.
Трендовое плечо заслуживает отдельной строки. SMA200 с трейлинг-стопом 25% потерял больше, чем ничего не делать (−47,3% против −43,5%) на 1 199 сделках — около 17 полных циклов на монету. Цена колебалась вокруг скользящей средней в рваных импульсах, и каждый ложный пробой покупал дорого и продавал дёшево. Что стопы действительно купили, так это форму потерь: 37% просадка на сигнальном плече против 69% при удержании. Это реальный продукт, и это не тот продукт, который большинство людей думают, что покупают.
Результат 3: итак, мы убрали отговорку
Каждый результат выше использует фиксированные параметры из учебника. Стандартное возражение пишется само: EMA 9/21 была не той парой, RSI 14 был не тем периодом, −25% был не тем трейлом. Хорошо. Наш оптимизатор существует именно для ответа на это, поэтому мы направили его на те же 70 монет и те же свечи.
Протокол, который является единственной важной частью:
- 65 генераторов сигналов из реестра strategy-lab — пробои, пересечения EMA и MACD, реверсии RSI и Боллинджера, графические паттерны, блоки ордеров, выметания ликвидности, флипы PSAR, семейства Phoenix и Jesse — в сочетании с дневной сеткой стопов, тейк-профитов, трейлинг-стопов и максимального удержания. 268,655 конфигураций было смоделировано, в среднем 3 838 на монету.
- Окно разделено 70/30. Внутривыборочный период: 1 марта 2024 → 14 ноября 2025 (623 дня). Контрольный период: 15 ноября 2025 → 7 августа 2026 (267 дней).
- Отбор видит только внутривыборочный срез, ранжированный по показателю согласованности (фактор прибыли, Шарп, чистая прибыль, со штрафом за тонкие выборки и глубокие просадки). Контрольный период оценивает выбранную конфигурацию и никогда не выбирает её.
- Только лонг, 1×, вход на открытии следующего бара, стоп оценивается до цели внутри того же бара, 5 б.п. тейкер за сторону. Тот же движок, что и наш публичный оптимизатор — без отдельной исследовательской сборки.
- Нулевая рука работает параллельно: медианная конфигурация той же сетки для той же монеты. Если внутривыборочный отбор несёт реальную информацию, выбранная конфигурация должна превзойти это. Если нет, оптимизатор — это дорогой генератор случайных чисел.
Что оптимизатор нашел на обучающей выборке: всё
На внутривыборочном срезе оптимизатор нашёл прибыльную конфигурацию для 70 монет из 70. Медианный внутривыборочный результат: +91.7%. На корзине, потерявшей 43,5% при удержании. Любой скриншот с этого этапа выглядел бы как решённый рынок.
Что произошло на удержании
| Удержание, 267 дней | Портфель | Медианная монета | Монеты в прибыли |
|---|---|---|---|
| Купи и держи | −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 — более сложный тест: расширяющееся обучающее окно, embargo-разрыв, чтобы ни одна сделка не пересекала границу, отбор только на обучающей выборке, оценка на нетронутом следующем окне, повторение на четырех фолдах на монету — 280 фолдов на тех же 70 монетах, только лонг с плечом 1×.
| 280 walk-forward фолдов | Средняя доходность фолда | PSAR превосходит его |
|---|---|---|
| PSAR-флип, только лонг | +0.45% | — |
| Случайные входы, те же выходы | +0.10% | 143 / 280 |
| Разворот RSI | −2.46% | 154 / 280 |
| Купи и держи | −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% в исходном запуске днём ранее, а производные коэффициенты сшивки воспроизвелись до цифры. Другая машина, другая загрузка, тот же ответ.
Если вы хотите такого же подхода для монеты, которую вы действительно держите, оптимизатор открыт на платформе — тот же движок, та же дисциплина удержания, те же ворота, которые сказали нам «нет» семьдесят раз.