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

Стратегии

BTC USD-M Volatility-Compression Breakout, длинные и короткие позиции (один инструмент, бессрочный контракт BINANCE, бары 1H, торговля только на расширении после статистически редкого сжатия волатильности, подтверждение объёмом, трейлинг-стоп Chandelier, мало параметров)

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

BtcVolCompressionBreakoutLS

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

Стратегия использовала кластеризацию волатильности: запускалась, только когда реализованная волатильность BTC сжималась до редкого минимума, затем следовала за подтверждённым объёмом расширением в длинную или короткую сторону. Её намеренно создали так, чтобы избежать прежних сбоев фабрики (одна площадка, один инструмент, BTC, бары 1H, мало параметров). Код работал точно по задумке: за 6.5 лет он дал 482 сбалансированных сделок при экспозиции всего ~19%, но в самой гипотезе не было направленного преимущества:……Показать большеСвернуть

Стратегия использовала кластеризацию волатильности: запускалась, только когда реализованная волатильность BTC сжималась до редкого минимума, затем следовала за подтверждённым объёмом расширением в длинную или короткую сторону. Её намеренно создали так, чтобы избежать прежних сбоев фабрики (одна площадка, один инструмент, BTC, бары 1H, мало параметров). Код работал точно по задумке: за 6.5 лет он дал 482 сбалансированных сделок при экспозиции всего ~19%, но в самой гипотезе не было направленного преимущества: фактор прибыли 0.963, коэффициент Шарпа -0.195, общая доходность -4.7% и просадка 50%; результаты разрознены по режимам, а комиссии поглотили 12.21% валовой прибыли. Поскольку базовый вариант был убыточным после издержек, а не просто близким к нулю, рецензент бэктеста забросил его до оптимизации, посчитав, что перебор best-of-N лишь приведёт к подгонке конфигурации без преимущества. Вывод для будущей работы: если вернуться к идее сжатия, сначала потребуется принципиально иная конструкция с более низкой частотой и база с положительным преимуществом — пересмотр гипотезы, а не настройка параметров.

Гипотеза

Внутридневная стратегия LONG-SHORT, SINGLE-INSTRUMENT на BTCUSDT.BINANCE (бессрочный контракт USD-M, бары 1-HOUR), использующая VOLATILITY CLUSTERING — статистическое свойство, при котором за периодами необычно LOW реализованной волатильности следует её EXPANSION — а не устойчивость доходности. Она намеренно ORTHOGONAL от продвигаемых фабрикой родственных стратегий на тренде и импульсе (TS-импульс, дневной сигнал направления на BTC/ETH/SOL, импульсный бар 1H): те учитывают DIRECTION недавней доходности, а эта —……Показать большеСвернуть

Внутридневная стратегия LONG-SHORT, SINGLE-INSTRUMENT на BTCUSDT.BINANCE (бессрочный контракт USD-M, бары 1-HOUR), использующая VOLATILITY CLUSTERING — статистическое свойство, при котором за периодами необычно LOW реализованной волатильности следует её EXPANSION — а не устойчивость доходности. Она намеренно ORTHOGONAL от продвигаемых фабрикой родственных стратегий на тренде и импульсе (TS-импульс, дневной сигнал направления на BTC/ETH/SOL, импульсный бар 1H): те учитывают DIRECTION недавней доходности, а эта — MAGNITUDE/режим недавней VOLATILITY и большую часть времени бездействует, включаясь ONLY, когда волатильность сжимается до статистически редкого минимума. Когда сжатие завершается направленным пробоем, подтверждённым объёмом, стратегия открывает позицию по направлению пробоя и использует расширение волатильности. Она также отличается от родственных стратегий пробоя канала только с длинными позициями (ADA/DOGE/BNB): здесь предусмотрены длинные позиции и короткие позиции AND на крупном активе, и, что особенно важно, стратегия NOT торгует каждый пробой канала — для входа требуется предварительное сжатие волатильности, отсекающее ложные пробои на боковом рынке, губительные для наивных систем пробоя. SINGLE-VENUE, SINGLE-INSTRUMENT (нет ловушки комиссий и базиса между площадками, артефакта агрегации капитала между счетами и ошибки учёта ротации нескольких инструментов — все это известные причины прежних неудач), на BTC (крупном активе с меньшей уязвимостью к новостным гэпам, что позволяет избежать обвалов отдельных альткоинов из-за событий, уничтоживших дневную книгу XRP), с барами 1H, чтобы стоп ATR срабатывал внутри бара, а не только при дневном закрытии. Используются только OHLCV (+объём), глубокая история Binance для надёжного walk-forward-анализа и проверки на отложенной выборке, а также небольшой набор параметров, чтобы снизить риск переобучения, повторяющегося на фабрике.

Исправление в итерации -2 для TypeError в Layer-2: `_atr_at() takes 5 positional arguments but 6 were given`. Метод был `@staticmethod`, но прокси стратегии Layer-2 вызывает его как привязанный метод, добавляя в начало `self` и передавая 6 аргументов сигнатуре с 5 аргументами. Исправление: преобразовать `_atr_at` в обычный метод экземпляра (`def _atr_at(self, highs, lows, closes, end, length)`) и убрать декоратор `@staticmethod`. Места вызова не изменились (`self._atr_at(highs, lows, closes, end, self.atr_len)`), поэтому это работает независимо от того, поддерживает ли среда выполнения staticmethod. Другая логика, импорты, параметры и поведение сигнала не затронуты — Layer 1 проходит, сигнал сжатия волатильности и пробоя сохранён.

Оптимизировать не стоит: базовый вариант принципиально лишён преимущества, а не просто близок к нему. За 6.5 лет и 56,856 баров по 1H, охватывающих бычий и медвежий рынки и боковое движение, стратегия показала убыток после издержек — profit_factor 0.963 (<1.0, валовая прибыль не покрывает валовые убытки), коэффициент Шарпа -0.195 (CI [-1.50, +0.90]), отрицательное математическое ожидание (-$22.6/сделку), total_return -4.7%, max_drawdown 50%; результаты разрознены по режимам (глубоко отрицательные 2022 -19.5% и……Показать большеСвернуть

Оптимизировать не стоит: базовый вариант принципиально лишён преимущества, а не просто близок к нему. За 6.5 лет и 56,856 баров по 1H, охватывающих бычий и медвежий рынки и боковое движение, стратегия показала убыток после издержек — profit_factor 0.963 (<1.0, валовая прибыль не покрывает валовые убытки), коэффициент Шарпа -0.195 (CI [-1.50, +0.90]), отрицательное математическое ожидание (-$22.6/сделку), total_return -4.7%, max_drawdown 50%; результаты разрознены по режимам (глубоко отрицательные 2022 -19.5% и 2023 -24.7%). Торговля с интервалом 1H создаёт серьёзное давление издержек (комиссии составили 12.21% валовой прибыли; impact_cost_pct 448% и ёмкость около $5k — признаки исчезающе малого валового преимущества, подтверждающие отсутствие запаса для покрытия комиссий). Код правильно реализует гипотезу (482 сбалансированных длинных и коротких сделок, экспозиция ~19%, выборочный запуск после сжатия волатильности), поэтому конкретных параметров для дальнейшей итерации нет: сама идея пробоя после сжатия волатильности не даёт направленного преимущества на BTC с интервалом 1H. Оптимизация убыточной пробойной базы методом best-of-N привела бы к подгонке конфигурации, не выдерживающей дефлированный коэффициент Шарпа, а не выявила бы реальное преимущество, и израсходовала бы бюджет в 2 часов. Если позже вернуться к идее сжатия, понадобится принципиально иная конструкция с более низкой частотой и база с положительным преимуществом до оптимизации — пересмотр исходной гипотезы, а не настройка параметров.

Реализация

Пробой после сжатия волатильности с длинными и короткими позициями на бессрочном контракте BTCUSDT.BINANCE USD-M, бары 1H. Запуск происходит только когда текущее значение ATR находится в нижнем квантиле vol_pct скользящего окна длиной coil_lookback (статистически редкое сжатие волатильности). Если при активном сигнале AND объём последнего бара превышает volume_mult от его скользящего среднего, стратегия открывает позицию в направлении пробоя канала Дончиана (закрытие выше максимума или ниже минимума за breakout_lookback, масштабированного на breakout_k). Позиция удерживается во время расширения волатильности с трейлинг-стопом Chandelier (chand_mult * ATR от текущего максимума или минимума позиции). Размер позиции зависит от капитала: риск ATR (risk_pct капитала на расстояние до стопа в ATR); номинал ограничен с учётом кредитного плеча.

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

Проверка не пройдена (Layer 2 — синтетические сценарии): Использованные параметры: ['atr_len', 'vol_pct', 'risk_pct', 'breakout_k', 'chand_mult', 'vol_ma_len', 'volume_mult', 'min_notional', 'coil_lookback', 'breakout_lookback', 'notional_cap_frac'] Проверьте, что __init__ задаёт все атрибуты из self.parameters.get(). - steady_uptrend: TypeError: BtcVolCompressionBreakoutLS._atr_at() принимает 5 позиционных аргумента, но передано 6 (время бара: 1735698180000) - steady_downtrend: TypeError:……Показать большеСвернуть

Проверка не пройдена (Layer 2 — синтетические сценарии): Использованные параметры: ['atr_len', 'vol_pct', 'risk_pct', 'breakout_k', 'chand_mult', 'vol_ma_len', 'volume_mult', 'min_notional', 'coil_lookback', 'breakout_lookback', 'notional_cap_frac'] Проверьте, что __init__ задаёт все атрибуты из self.parameters.get(). - steady_uptrend: TypeError: BtcVolCompressionBreakoutLS._atr_at() принимает 5 позиционных аргумента, но передано 6 (время бара: 1735698180000) - steady_downtrend: TypeError: BtcVolCompressionBreakoutLS._atr_at() принимает 5 позиционных аргумента, но передано 6 (время бара: 1735698180000) - flat_ranging: TypeError: BtcVolCompressionBreakoutLS._atr_at() принимает 5 позиционных аргумента, но передано 6 (время бара: 1735698180000) - volatility_spike: TypeError: BtcVolCompressionBreakoutLS._atr_at() принимает 5 позиционных аргумента, но передано 6 (время бара: 1735698180000) - zero_volume: TypeError: BtcVolCompressionBreakoutLS._atr_at() принимает 5 позиционных аргумента, но передано 6 (время бара: 1735698180000) - price_gap: TypeError: BtcVolCompressionBreakoutLS._atr_at() принимает 5 позиционных аргумента, но передано 6 (время бара: 1735698180000)

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

Шарп
-0,19
Общая доходность
-4,70%
Максимальная просадка
50,06%
Всего сделок
482
Доля прибыльных
31,3%
Профит-фактор
0,96

Стратегия работает и соответствует гипотезе: 482 сбалансированных длинных и коротких сделок, экспозиция всего 18.9% (стратегия правильно неактивна большую часть времени и выборочно запускается при редком сжатии волатильности), один инструмент BTC — ошибок в коде нет, пробой с фильтром сжатия волатильности реализован точно.

Большая выборка (56,856 баров по 1H, 6.5 лет) охватывает несколько рыночных режимов; гипотеза действительно независима от других и учитывает величину волатильности, а не направление доходности.

В основе нет преимущества: profit_factor 0.963 (<1.0), коэффициент Шарпа -0.195 (CI [-1.50, +0.90] пересекает 0), отрицательное математическое ожидание (-$22.6/сделку), total_return -4.7% за 6.5 лет, max_drawdown 50%.

Результаты разрознены по режимам, итог отрицательный: сильный 2020/2024/2026, но глубоко отрицательные 2022 (-19.5%) и 2023 (-24.7%) — устойчивого преимущества в разных режимах нет.

Серьёзные издержки при интервале 1H: комиссии составили 12.21% валовой прибыли; impact_cost_pct 448% и ёмкость ~$5k (признаки почти нулевого валового преимущества) подтверждают отсутствие запаса для покрытия комиссий.

Профиль пробойной стратегии с низкой долей прибыльных сделок (31%): крупная прибыль не покрывает множество небольших убытков — структурно слабое соотношение выплат ещё до оптимизации.

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

Даже тщательно реализованная независимая гипотеза нуждается в базе с положительным преимуществом до оптимизации. Пробой после сжатия волатильности не даёт направленного преимущества на BTC с интервалом 1H, а низкая доля прибыльных сделок и высокие комиссии при таком интервале не позволят настройкой добиться прибыльности: нужна переработка конструкции с более низкой частотой, а не перебор параметров.

Стратегию забросили на этапе проверки BACKTEST_REVIEW до оптимизации: вердикт рецензента был «забросить» ещё до запуска оптимизации, поскольку в базовом варианте принципиально не было преимущества (фактор прибыли <1.0, отрицательное математическое ожидание, результаты разрознены по режимам, глубоко отрицательные 2022 -19.5% и 2023 -24.7%), при этом издержки на интервале 1H были высокими и запаса для покрытия комиссий не оставалось.

Внутридневная стратегия с длинными и короткими позициями на одном инструменте, бессрочные контракты BTCUSDT.BINANCE с интервалом 1H. Она использовала кластеризацию волатильности: оставалась неактивной, пока реализованная волатильность (ATR) не сжималась до статистически редкого минимума, а затем торговала пробой направления, подтверждённый объёмом, и применяла трейлинг-стоп Chandelier.

За 6.5 лет и 56,856 баров по 1H стратегия совершила 482 сбалансированных длинных и коротких сделок (259 длинных, 223 коротких) при экспозиции всего ~18.9%, но преимущества не было: коэффициент Шарпа -0.195 (CI [-1.50, +0.90]), фактор прибыли 0.963, отрицательное математическое ожидание -$22.6/сделку, общая доходность -4.7%, доля прибыльных сделок 31% и максимальная просадка 50%; комиссии поглотили 12.21% валовой прибыли.

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