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

Стратегии

Лонг-вход при сжатии волатильности (сжатие полос Боллинджера) BTC 4H с фильтром тренда на BTCUSDT.BINANCE

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

BtcVolatilityContractionSqueezeLong

Сводка по итогам

BtcVolatilityContractionSqueezeLong добавила действительно иной механизм тайминга волатильностного режима — покупку при сжатии полос Боллинджера в подтвержденном восходящем тренде на BTC 4H. Стратегия намеренно построена только на OHLCV, чтобы избежать проблем с полнотой данных на этой сессии, и показала достаточную выборку в 226 сделок с подходящей асимметричной выплатой. Но реального преимущества не было: коэффициент Шарпа 0.16 с CI, пересекающим ноль, фактор прибыли 1.06, доля прибыльных сделок 24%, серия из……Показать большеСвернуть

BtcVolatilityContractionSqueezeLong добавила действительно иной механизм тайминга волатильностного режима — покупку при сжатии полос Боллинджера в подтвержденном восходящем тренде на BTC 4H. Стратегия намеренно построена только на OHLCV, чтобы избежать проблем с полнотой данных на этой сессии, и показала достаточную выборку в 226 сделок с подходящей асимметричной выплатой. Но реального преимущества не было: коэффициент Шарпа 0.16 с CI, пересекающим ноль, фактор прибыли 1.06, доля прибыльных сделок 24%, серия из 14 убыточных сделок и отрицательная альфа. Идея работала только на бычьем рынке 2020-2021; доходность была отрицательной каждый год с 2022 по 2025, поскольку при сильном восходящем тренде сжатие завершалось ростом, а затем направление становилось случайным. Слабое преимущество на сделку проявилось также в издержках влияния 27.9% и емкости $1.29M. При второй итерации аналитик отказался от стратегии на этапе проверки бэктеста: ухудшение объяснялось рыночным режимом, а не настраиваемым параметром; оптимизация базы, сосредоточенной на бычьем рынке, привела бы лишь к подгонке кривой и провалу на контрольной выборке.

Гипотеза

Стратегия тайминга на одном инструменте только с лонгами по бессрочным фьючерсам BTCUSDT.BINANCE: сжатие волатильности VOLATILITY CONTRACTION ("сжатие полос Боллинджера" — Боллинджер 1992) служит условием входа, а подтверждение тренда на 4H — фильтром рыночного режима. По структуре она отличается от всех текущих портфельных стратегий: продвигаемая мульти-таймфреймовая пробойная стратегия ETH+SOL использует пробои ценового канала; моя стратегия MultiTimeframePullbackBNBAVAXLong в конвейере использует откаты цены к……Показать большеСвернуть

Стратегия тайминга на одном инструменте только с лонгами по бессрочным фьючерсам BTCUSDT.BINANCE: сжатие волатильности VOLATILITY CONTRACTION ("сжатие полос Боллинджера" — Боллинджер 1992) служит условием входа, а подтверждение тренда на 4H — фильтром рыночного режима. По структуре она отличается от всех текущих портфельных стратегий: продвигаемая мульти-таймфреймовая пробойная стратегия ETH+SOL использует пробои ценового канала; моя стратегия MultiTimeframePullbackBNBAVAXLong в конвейере использует откаты цены к SMA; моя стратегия BollingerBandMeanReversionWithTrendFilterBTCETH в конвейере — возвраты цены к статистическим полосам; моя стратегия BTCVolatilityTargetedLong в конвейере использует волатильность для обратного SIZING (непрерывно). Эта стратегия использует волатильность для ENTRY TIMING (дискретно) — это принципиально иной подход. Механизм (Энгл 1982 ARCH, Боллерслев 1986 GARCH, сжатие полос Боллинджера 1992, расширение на крипторынок Liu-Tsyvinski-Wu 2022): волатильность кластеризуется и сохраняет устойчивость. При необычном сжатии реализованной волатильности (недавняя 7-дневная RV падает ниже 70% от скользящей 30-дневной RV) WITHIN подтвержденного восходящего тренда рынок находится в фазе накопления/консолидации. Исторически за такой конфигурацией следует направленное продолжение движения по мере высвобождения накопленной энергии. По сигналу стратегия открывает LONG ONLY (не симметричный шорт: направленное продолжение в подтвержденном восходящем тренде структурно асимметрично в сторону роста). Условия выхода: нормализация волатильности, слом тренда, максимальное время удержания или фиксированный стоп ATR. Используются бессрочные контракты ONLY BINANCE USD-M на 4H и дневные бары (проверенные чистые данные; без SPOT, дополнительных данных, HL и Deribit). Нет проблем с отказами сессии ALL. Закрывает FOUR критические пробелы: (1) NEW MECHANISM CLASS (тайминг волатильностного режима, которого нет в портфеле), (2) MULTI-TIMEFRAME с фильтром волатильностного режима (отличается от фильтров ценовых паттернов), (3) зависимость только от данных OHLCV (единственный надежно чистый тип), (4) напрямую отличается от BTCVolatilityTargetedLong, уже находящейся в конвейере, несмотря на общую тему волатильности. Размер позиции: 25% капитала при входе; трейлинг-стоп на основе ATR. Риск на сделку ограничен 1.5% капитала.

Итерация 2 устраняет сбой слоя -2 (синтетическая проверка): «BtcVolatilityContractionSqueezeLong._rv() принимает 2 позиционных аргумента, но передано 3». Причина: _rv объявлен как @staticmethod, но вызывается как self._rv(closes, window); проверочный прокси слоя -2 повторно связывает вспомогательные методы стратегии как методы экземпляра и передает self, поэтому статический метод с 2 аргументами получил 3. Минимальное исправление — преобразовать _rv из статического метода в метод экземпляра (убрать @staticmethod,……Показать большеСвернуть

Итерация 2 устраняет сбой слоя -2 (синтетическая проверка): «BtcVolatilityContractionSqueezeLong._rv() принимает 2 позиционных аргумента, но передано 3». Причина: _rv объявлен как @staticmethod, но вызывается как self._rv(closes, window); проверочный прокси слоя -2 повторно связывает вспомогательные методы стратегии как методы экземпляра и передает self, поэтому статический метод с 2 аргументами получил 3. Минимальное исправление — преобразовать _rv из статического метода в метод экземпляра (убрать @staticmethod, добавить self); это единственный вызываемый через self статический метод в пути сигнала (_atr_abs и _position уже являются методами экземпляра), а оба места вызова _rv уже используют self._rv(...), поэтому других изменений не требуется. Все остальные строки — окна реализованной волатильности, отношение сжатия, трендовый SMA, ATR, условие лонг-входа и четыре условия выхода — побайтно совпадают с предыдущей итерацией, сохраняя все проверки слоя -1 и прошедшую проверку логику сигнала. Это та же повторяющаяся проблема синтетического прокси: вызов вспомогательных методов @staticmethod через self приводит к ложной TypeError только при проверке.

Лонговая стратегия со сжатием полос Боллинджера на BTC 4H почти не имеет преимущества: коэффициент Шарпа 0.16 с sharpe_ci_low -1.28 (CI пересекает 0), profit_factor 1.06, ожидание +$20 на сделку, около 1.8% CAGR за 6 лет. Идея продолжения движения после сжатия опровергнута вне бычьего рынка: стратегия положительна только в 2020 (+4.4%) и 2021 (+15.9%), отрицательна в EVERY год 2022-2025 (-2.2%, -2.4%, -5.9%, -5.1%); на бычьем рынке 2020-2021 сжатие волатильности завершалось ростом, затем направление было……Показать большеСвернуть

Лонговая стратегия со сжатием полос Боллинджера на BTC 4H почти не имеет преимущества: коэффициент Шарпа 0.16 с sharpe_ci_low -1.28 (CI пересекает 0), profit_factor 1.06, ожидание +$20 на сделку, около 1.8% CAGR за 6 лет. Идея продолжения движения после сжатия опровергнута вне бычьего рынка: стратегия положительна только в 2020 (+4.4%) и 2021 (+15.9%), отрицательна в EVERY год 2022-2025 (-2.2%, -2.4%, -5.9%, -5.1%); на бычьем рынке 2020-2021 сжатие волатильности завершалось ростом, затем направление было случайным или нисходящим. Альфы нет (-0.0012, benchmark_correlation 0.42), то есть стратегия не дает ничего сверх простой экспозиции BTC. Слабое преимущество на сделку ($20) видно в структуре издержек (impact_cost_pct 27.9%, емкость всего $1.29M) и серии из 14 убыточных сделок при доле прибыльных 24%. Не оптимизировать: база с коэффициентом Шарпа-0.16, сосредоточенная на 2020/2021, подогналась бы под бычий рынок и провалила контрольную выборку, поскольку недавнее окно в 4 лет, важное для контрольной выборки, полностью отрицательное. Не продолжать итерации: ошибки нет, а параметры 3 не создадут преимущество там, где за пределами бычьего режима у сигнала его нет; ухудшение обусловлено рыночным режимом, а не настраиваемым промахом. FAILURE PATTERN: тайминг лонг-входа по сжатию волатильности (сжатию полос Боллинджера) на BTC с фильтром тренда захватывает бычий рынок 2020-2021 (при сильном восходящем тренде сжатие завершается ростом), но не дает преимущества в боковом/медвежьем режиме 2022-2026 (направление после сжатия случайно). В итоге доходность с поправкой на риск близка к нулю (коэффициент Шарпа ~0.16, CI через 0), альфа отрицательная, а серия отрицательных лет длится 4. Это тот же убывающий в разных режимах паттерн, сосредоточенный на бычьем рынке, что и у отвергнутых пробойных стратегий, только со стороны тайминга волатильности. Чистая реализация OHLCV и характерная для следования за трендом структура выплат не спасают сигнал, преимущество которого было лишь на одном историческом бычьем рынке.

Реализация

Тайминг по сжатию волатильности (сжатие полос Боллинджера) на BTCUSDT.BINANCE 4H, лонг только на одном инструменте. На каждом баре 4H стратегия рассчитывает реализованную волатильность за короткое окно (~7д) и длинное окно (~30д) по логарифмическим доходностям и их отношение; если отношение падает до squeeze_threshold или ниже (недавняя волатильность < 70% от скользящей) AND цена закрытия выше трендового SMA (подтвержденный восходящий тренд), стратегия открывает лонг в расчете на направленное продолжение при высвобождении сжатой волатильности. Выход при нормализации волатильности (отношение >= 1.0), сломе тренда (закрытие < SMA), трейлинг-стопе ATR или максимальном удержании около 10 дней. Волатильность используется для дискретного тайминга входа (не для размера позиции). Только лонг, плечо 1.0, только OHLCV. Три настраиваемых параметра: squeeze_threshold, trend_sma_period, atr_stop_mult.

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

Проверка не пройдена (слой 2 — синтетические сценарии): Использованные параметры: ['min_notional', 'atr_stop_mult', 'trend_sma_period', 'squeeze_threshold'] Убедитесь, что __init__ задает все атрибуты из self.parameters.get(). - steady_uptrend: TypeError: BtcVolatilityContractionSqueezeLong._rv() принимает 2 позиционных аргументов, но передано 3 (время бара: 1735700460000) - steady_downtrend: TypeError: BtcVolatilityContractionSqueezeLong._rv() принимает 2 позиционных аргументов, но передано 3 (время бара:……Показать большеСвернуть

Проверка не пройдена (слой 2 — синтетические сценарии): Использованные параметры: ['min_notional', 'atr_stop_mult', 'trend_sma_period', 'squeeze_threshold'] Убедитесь, что __init__ задает все атрибуты из self.parameters.get(). - steady_uptrend: TypeError: BtcVolatilityContractionSqueezeLong._rv() принимает 2 позиционных аргументов, но передано 3 (время бара: 1735700460000) - steady_downtrend: TypeError: BtcVolatilityContractionSqueezeLong._rv() принимает 2 позиционных аргументов, но передано 3 (время бара: 1735700460000) - flat_ranging: TypeError: BtcVolatilityContractionSqueezeLong._rv() принимает 2 позиционных аргументов, но передано 3 (время бара: 1735700460000) - volatility_spike: TypeError: BtcVolatilityContractionSqueezeLong._rv() принимает 2 позиционных аргументов, но передано 3 (время бара: 1735700460000) - zero_volume: TypeError: BtcVolatilityContractionSqueezeLong._rv() принимает 2 позиционных аргументов, но передано 3 (время бара: 1735700460000) - price_gap: TypeError: BtcVolatilityContractionSqueezeLong._rv() принимает 2 позиционных аргументов, но передано 3 (время бара: 1735700460000)

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

Шарп
0,16
Общая доходность
12,39%
Максимальная просадка
15,05%
Всего сделок
226
Доля прибыльных
24,3%
Профит-фактор
1,06

Чистая реализация только на OHLCV с достаточной выборкой (226 сделок, 6 лет); характерная для следования за трендом структура выплат (avg_win $1,572 против avg_loss $479, ~3.3:1, положительная асимметрия)

Действительно иной механизм (вход по сжатию волатильности) и нет проблем с полнотой данных (в отличие от стратегий с состоянием деривативов, рассмотренных на этой сессии)

Реального преимущества нет: коэффициент Шарпа 0.16 с sharpe_ci_low -1.28 (CI пересекает 0), PF 1.06, около 1.8% CAGR за 6 лет; win_rate 0.24 при серии из 14 убыточных сделок

Результат сосредоточен на бычьем рынке и ухудшается: положительный только в 2020/2021, отрицательный EVERY год 2022-2025 (-2.2%, -2.4%, -5.9%, -5.1%) — идея продолжения движения после сжатия работала только на бычьем рынке

Альфы нет: альфа -0.0012, benchmark_correlation 0.42 — не дает ничего сверх экспозиции BTC

Признаки слабого преимущества: impact_cost_pct 27.9% (издержки съедают ~28% валового результата), емкость лишь $1.29M при capacity_usd

Сводка по итогам

Чистая реализация OHLCV и характерная для следования за трендом структура выплат не спасают сигнал, преимущество которого было только на одном историческом бычьем рынке: тайминг на сжатии волатильности с лонгами по BTC захватывает бычий рынок 2020-2021, но не дает преимущества в боковике 2022-2026. Это тот же убывающий в разных режимах паттерн, сконцентрированный на бычьем рынке, что и у отвергнутого семейства пробойных стратегий, только со стороны тайминга волатильности.

Аналитик отказался от стратегии на этапе проверки бэктеста до оптимизации, поскольку идея продолжения движения после сжатия была опровергнута вне бычьего рынка: при восходящем тренде 2020-2021 сжатие волатильности завершалось ростом, а затем направление становилось случайным или нисходящим. Коэффициент Шарпа составил 0.16 с CI, пересекающим ноль; альфы сверх простой экспозиции BTC не было, а недавнее окно в 4 лет, которое охватила бы контрольная выборка, оказалось полностью отрицательным.

Лонг-стратегия тайминга волатильности только на одном инструменте, только OHLCV, на фьючерсах BTCUSDT 4H — вход при сжатии полос Боллинджера (7-дневная реализованная волатильность падает ниже 70% от скользящей 30-дневной RV) в подтвержденном восходящем тренде (закрытие выше трендового SMA); покупает консолидацию в ожидании продолжения движения и выходит при нормализации волатильности, сломе тренда, трейлинг-стопе ATR или ограничении по времени; 3 настраиваемых параметров. Новый класс механизмов тайминга волатильностного режима.

При достаточной выборке в 226 сделок за 6 лет и характерной для следования за трендом структуре выплат (средняя прибыль $1,572 против среднего убытка $479, положительная асимметрия) стратегия практически не имела преимущества: общая доходность 12.4% (CAGR 0.72%), коэффициент Шарпа 0.16 с минимумом CI на уровне -1.28, фактор прибыли 1.06, ожидание на сделку +$20, доля прибыльных сделок 24.3% и серия из 14 убыточных сделок, отрицательная альфа (-0.0012), издержки влияния 27.9% и емкость всего $1.29M — положительный результат только в 2020/2021, отрицательный в каждом году 2022-2025.

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