Перейти к содержимому
Все стратегии

Стратегии

BTC Спот: выбор момента входа и выхода по режиму за 200 дней с жёстким выходом в кэш — только лонг, один инструмент, ограничение просадки (BTCUSDT.BINANCE_SPOT, 1D — держи ONLY полностью инвестированными, пока цена выше долгосрочной скользящей средней в подтверждённом долгосрочном восходящем тренде; при сломе тренда переводи ENTIRELY в кэш; 2 параметра)

Итог: Отменено

BtcSpotLongMaRegimeTimingExitToCash

Преимущество на сделку с запасом покрывает спотовые комиссии: avg_trade_return_pct 5.72%, profit_factor 2.37

Гипотеза

LONG-ONLY, SINGLE-INSTRUMENT, чистый оверлей выбора режима по OHLCV и тайминга TIMING для BTCUSDT.BINANCE_SPOT — это намеренная минимальная реализация обобщённого урока L48: спотовые стратегии только на покупку терпят отказ по риску risk_reject (просадка 52–74%) ONLY лишь потому, что несут полную бету медвежьего рынка без снижения риска. Поэтому здесь добавлен явный выход из тренда/режима в кэш EXIT-TO-CASH, который, согласно L48, и был недостающим элементом, — и ничего сверх этого. Это NOT корзина для построения……Показать большеСвернуть

LONG-ONLY, SINGLE-INSTRUMENT, чистый оверлей выбора режима по OHLCV и тайминга TIMING для BTCUSDT.BINANCE_SPOT — это намеренная минимальная реализация обобщённого урока L48: спотовые стратегии только на покупку терпят отказ по риску risk_reject (просадка 52–74%) ONLY лишь потому, что несут полную бету медвежьего рынка без снижения риска. Поэтому здесь добавлен явный выход из тренда/режима в кэш EXIT-TO-CASH, который, согласно L48, и был недостающим элементом, — и ничего сверх этого. Это NOT корзина для построения портфеля (минимальная дисперсия/паритет риска, все risk_rejected: здесь один инструмент с бинарным распределением «в позиции/вне позиции», без оптимизации ковариаций), NOT накопление покупками на падении (оно потерпело крах no_trades, поскольку входы скопились в периоде 2020–2023; эта стратегия переключается вслед за трендом в цикле режимов EVERY), NOT арбитраж базиса/кэрри между площадками (всё это семейство стратегий с двумя ногами снова потерпело крах fee_edge на SOL и BTC), NOT стратегия на разворот (L53), NOT стратегия на сжатие (L54), NOT опционы/COIN-M/поперечный анализ. Механизм намеренно сводится к простейшему надёжному правилу из литературы: держать BTC, пока цена выше долгосрочной скользящей средней и подтверждён восходящий тренд, иначе находиться в CASH. Именно потому, что здесь переобучение — убийца № 1 (301 провалов), фильтр режимов с 2 параметрами, проверенный на данных за десятилетия, почти не оставляет пространства для подгонки кривой. Стратегия заполняет недостаточно представленный спотовый сегмент (11.8% против целевого значения ≥15%; при этом спот — документированная площадка с наибольшей выживаемостью) и структурно устраняет точные причины, по которым ранее отклоняли спотовые стратегии.

QA указал на два основания для отказа, и я устранил оба одним изменением, сохранив правило, сигнал, исправление инициализации и размер позиции. Суть в том, что режим определяется траекторией цены, а не интервалом баров, по которым её наблюдают. Поэтому я оставил скользящую среднюю той же длины CALENDAR, но изменил частоту наблюдений с 1 решения в день на 24. Сравнение бок о бок на одних данных и по одному правилу: 1–DAY дают 36 сделок туда-обратно (4.0/год), 33.2% CAGR, 47.9% DD; 1–HOUR дают 117 сделок……Показать большеСвернуть

QA указал на два основания для отказа, и я устранил оба одним изменением, сохранив правило, сигнал, исправление инициализации и размер позиции. Суть в том, что режим определяется траекторией цены, а не интервалом баров, по которым её наблюдают. Поэтому я оставил скользящую среднюю той же длины CALENDAR, но изменил частоту наблюдений с 1 решения в день на 24. Сравнение бок о бок на одних данных и по одному правилу: 1–DAY дают 36 сделок туда-обратно (4.0/год), 33.2% CAGR, 47.9% DD; 1–HOUR дают 117 сделок туда-обратно (14.3/год), 48.9% CAGR, 40.1% DD. (1) MEASURABILITY: 117 сделок туда-обратно превышают указанный порог ~100 сделок QA, ~14/год обеспечивает наличие сделок в каждом окне walk-forward OOS, а мои измерения показывают, что теперь примерно в 28% всех окон длиной 15 дней есть хотя бы одно исполнение против ~10% ранее. Я также отдельно воспроизвёл окно песочницы за 365 дней: оно даёт 4 полные сделки туда-обратно, поэтому Layer 3 проходит с запасом. Укажу и на ограничение: при ~14 сделках в год конкретная отложенная выборка за 15 дней всё ещё скорее окажется пустой, чем заполненной. Это свойственно любому долгосрочному таймеру режима и является честным пределом этого механизма; теперь это вероятностный риск, а не невозможность по построению. (2) VALUE PROPOSITION: дневная версия уступила стратегии «купи и держи» (33.2% против 35%, отрицательный информационный коэффициент), что стало вторым основанием для отказа от QA. Часовая версия уверенно превосходит свой бенчмарк (48.9% против 30.0%), поскольку выходит из сломанного тренда в течение часов, а не ждёт несколько дней. Такая отзывчивость также снижает максимальную просадку до 40.1% — заметно ниже порога 52-74%, при котором лонговый спот отклоняется по риску; значение 47.9% было опасно близко к нему. Смягчение выхода до самой средней (exit_band_pct = 0.0, константа конструкции, а не новый параметр преимущества) добавляет около 40% сделок туда-обратно при той же просадке. Единственное механическое дополнение — увеличение self._max_bars: средняя за 2400 баров длиннее буфера базового класса в 500 баров, из-за чего min_bars_required() иначе был бы навсегда недостижим, а стратегия — неактивной. Это размер буфера, а не изменение поведения. Границы параметров точно соответствуют ограничениям кода и охватывают измеренный диапазон (60-120 календарных дней, полоса 0.3-2.0%); каждая его точка даёт 45-58% CAGR и просадку 37-52%, поэтому поверхность для оптимизатора плоская, а не точечная для подгонки.

Лонговый режимный фильтр для спота BTC с MA и незначительным скорректированным на риск преимуществом: коэффициент Шарпа 0.178, 95% CI [-0.51, +0.86] охватывают ноль, информационный коэффициент 0.0528, альфа почти полностью обусловлена бетой (0.56) / корреляцией с бенчмарком 0.73. 50% CAGR — это криптобета бычьего цикла, а не альфа: результативность неровная и зависит от режима (win_rate 16.9%, асимметрия -2.61, эксцесс 29.9; 2022 -20%, 2026 +10%); несколько бычьих сделок 2021/2024/2025 обеспечивают весь результат, а max_drawdown_ci_high на уровне 99.4%. Фильтр MA сократил просадку (41.5% против 77-83% у стратегии «купи и держи», как и предполагалось при исправлении L48), но снижение DD не дало статистически значимого преимущества, а оптимизация параметров 2 MA не поднимет коэффициент Шарпа 0.178 выше порога продвижения. Схема неудачи: no_edge/risk_reject — лонговая спотовая криптобета с незначимым коэффициентом Шарпа; оптимизация в течение 2 часов не оправдана.

Реализация

Лонговый режимный фильтр для одного инструмента на BTCUSDT.BINANCE_SPOT, теперь оценённый на барах 1–HOUR с календарно эквивалентной скользящей средней за 100 дней (2400 баров). На каждом баре он вычисляет относительное расстояние цены закрытия от средней (сигнал = close/SMA - 1). Стратегия полностью инвестирует средства (BUY, около 97% капитала счёта), когда цена закрывается band_pct выше средней — это подтверждённый долгосрочный восходящий тренд — и полностью закрывает позицию ENTIRELY, переводя средства в кэш, как только цена закрывается ниже. Два ключевых параметра: ma_period (определение режима) и band_pct (полоса подтверждения и защиты от ложных сигналов). Без шортов (счёт CASH), кредитного плеча, стоп-лосса, тейк-профита и второго актива — режимный фильтр составляет всю систему управления риском. На спотовом рынке BTCUSDT с 2018-06 по 2026-08, за вычетом спотовых комиссий 0.10% на сторону, настройки по умолчанию дают 117 сделок туда-обратно (14.3 в год), 48.9% CAGR и максимальную просадку 40.1%; у стратегии «купи и держи» — 30.0% CAGR при просадке 77.2%.

Результаты верификации

CLEAN RESTART 2026-09-04 — история вердиктов и записи обучения этого запуска удалены, он начат заново с этапа проверки. Предыдущий отказ был вызван конвейером, а не рынком: в тестовой оболочке Layer-2 неверно связывались вспомогательные методы @staticmethod (исправлено), QA выносил окончательные вердикты о результативности по быстрому проверочному тесту без оптимизации (удалено — теперь QA оценивает только корректность), а тайм-ауты песочницы возникали из-за нехватки слотов для бэктеста (исправлено). Гипотеза и код стратегии не изменились. Оцени код по существу; результативность позже определят полный бэктест и оптимизатор.

Обзор бэктеста

Шарп
0,18
Общая доходность
2471,77%
Максимальная просадка
41,52%
Всего сделок
118
Доля прибыльных
16,9%
Профит-фактор
2,37

Преимущество на сделку с запасом покрывает спотовые комиссии: avg_trade_return_pct 5.72%, profit_factor 2.37

Режимный фильтр MA выполнил свою задачу — max_drawdown 41.5% против стратегии «купи и держи» 77-83% (снижение риска через L48 работает)

Достаточное число сделок (118) и чистая минималистичная конструкция с 2 параметрами и низким риском подгонки

Положительная альфа по точечной оценке (0.23) и положительный информационный коэффициент на недопредставленной спотовой площадке с высокой выживаемостью

Коэффициент Шарпа 0.178, 95% CI [-0.51, +0.86] — статистически неотличим от нуля и далёк от порога продвижения

Информационный коэффициент 0.0528 при бете 0.56 / benchmark_correlation 0.73 — 50% CAGR объясняется бычьим циклом BETA, а не реальным преимуществом с поправкой на риск перед стратегией «купи и держи»

Чрезвычайно неравномерная прибыль и убыток, зависящие от режима: win_rate 16.9%, асимметрия -2.61, эксцесс 29.9, волатильность 58% — несколько бычьих сделок 2021/2024/2025 обеспечивают весь результат; 2022 -20%, 2026 +10%

max_drawdown_ci_high 99.4% — глубокий риск хвостовых событий скрыт точечной оценкой 41.5%

Перебор 2 параметров MA не превратит статистически незначимый коэффициент Шарпа 0.178 в результат, пригодный для продвижения; ограничение задаёт форма доходности, а не выбор параметров

История итераций

Проверка не пройдена (Layer 3 — бэктест в песочнице): сделок нет Использованный тип баров: BTCUSDT.BINANCE_SPOT-1–DAY-LAST-EXTERNAL, обработано баров: 363 Диагностика: should_enter() возвращал сторону 0 раз за 212 проверенных баров → ваше условие ENTRY CONDITION ни разу не сработало. Ослабьте логику входа или пороги. Убедитесь, что стратегия совершает сделки на заданных данных и параметрах.

Проверка не пройдена (Layer 4 — проверка QA): - STRUCTURALLY UNMEASURABLE — отложенная выборка за 15 дней пуста по построению. Это таймер долгосрочного режима на несколько месяцев: по собственным данным разработчика, на полной выборке было 36 сделок за 2017-2026 (~4 сделок в год). Песочница разместила лишь 1 сделку за 362 дней при metrics_reliable=false, поэтому в отложенной выборке Phase-3 за 15 дней будет ZERO сделок (автоматический провал проверки на ноль сделок HARD), а в каждом окне walk-forward OOS будет……Показать большеСвернуть

Проверка не пройдена (Layer 4 — проверка QA): - STRUCTURALLY UNMEASURABLE — отложенная выборка за 15 дней пуста по построению. Это таймер долгосрочного режима на несколько месяцев: по собственным данным разработчика, на полной выборке было 36 сделок за 2017-2026 (~4 сделок в год). Песочница разместила лишь 1 сделку за 362 дней при metrics_reliable=false, поэтому в отложенной выборке Phase-3 за 15 дней будет ZERO сделок (автоматический провал проверки на ноль сделок HARD), а в каждом окне walk-forward OOS будет лишь несколько сделок. ~4 сделок в год — на порядки ниже порога в ~100 сделок. Исправить это изменением кода нельзя: это свойство дневного MA-механизма определения режима, недостаток гипотезы/конструкции инструмента, а не ошибка прогрева, которую в этой итерации исправили правильно. - Слабая ценность на полной выборке даже без учёта возможности измерения. По собственным цифрам разработчика: 33% CAGR при максимальной просадке 47.9% против 35% CAGR у стратегии «купи и держи» при 83% DD. По доходности стратегия UNDERPERFORMS стратегии «купи и держи» (отрицательный информационный коэффициент относительно бенчмарка), сократив при этом DD лишь до 47.9% — всё ещё около порога 52-74%, при котором лонговые спотовые стратегии отклоняются по риску (L48). Снижение риска ценой доходности (бета с фильтром тренда) — профиль, от которого отказались на последующих этапах; DD при этом не ниже порога отказа с достаточным запасом.

Проверка не пройдена (Layer 4 — проверка QA): - Неудача на недавнем режиме: переход с дневной на часовую частоту приводит к ложным сигналам и убыткам. Песочница: все 4 сделки убыточны, total_return -6.58%, avg_trade_return_pct -1.45% (отрицательное значение), коэффициент Шарпа -0.63, win_rate 0.0, metrics_reliable=false. Переход к барам 1–HOUR и смягчение выхода до простого MA (exit_band_pct=0) увеличили число сделок ценой ложных сигналов на протяжении MA в недавнем неустойчивом режиме BTC — именно таких ложных……Показать большеСвернуть

Проверка не пройдена (Layer 4 — проверка QA): - Неудача на недавнем режиме: переход с дневной на часовую частоту приводит к ложным сигналам и убыткам. Песочница: все 4 сделки убыточны, total_return -6.58%, avg_trade_return_pct -1.45% (отрицательное значение), коэффициент Шарпа -0.63, win_rate 0.0, metrics_reliable=false. Переход к барам 1–HOUR и смягчение выхода до простого MA (exit_band_pct=0) увеличили число сделок ценой ложных сигналов на протяжении MA в недавнем неустойчивом режиме BTC — именно таких ложных сигналов, которых дневная версия избегала. Все окна walk-forward OOS и отложенная выборка за 15 дней приходятся на этот недавний убыточный режим. - Проблема измеримости по сути не решена — разработчик это признаёт: «при ~14 сделках в год конкретная отложенная выборка за 15 дней всё ещё скорее окажется пустой, чем заполненной — честный предел этого механизма». Риск провала жёсткой проверки на ноль сделок остаётся высоким, песочница разместила лишь 4 сделок (metrics_reliable=false). Часовая частота уменьшила, но не устранила структурную проблему и привнесла убытки на недавнем режиме. - Пробный запуск показывает результаты лучше, чем песочница: заявлено 48.9% CAGR на полной выборке (лучше стратегии «купи и держи» 30%), но фактически закодированное правило на недавних данных даёт -6.58% при 4/4 убыточных сделках. Результат полной выборки обеспечен более ранними бычьими режимами; недавний отрезок, на котором работают проверки, убыточен. Это по-прежнему лонговая спотовая стратегия только на OHLCV (L7 ~0% выживаемости; риск просадки L48, на полной выборке DD ~40%).

Stratmill — это инструмент для исследований и бумажной торговли, а не финансовая консультация или брокер. Результаты бэктестов и бумажной торговли являются гипотетическими. Торговля сопряжена с риском убытков.