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

Стратегии

BTC Импульс с подтверждением премией бессрочного контракта, лонг-шорт (один инструмент: бессрочный контракт BTCUSDT.BINANCE, бары 4H — торговать импульс цены ONLY, только когда премия между mark и индексом PREMIUM подтверждает направленную уверенность с плечом; вне рынка при расхождении, ATR-трейлинг, 3-параметр)

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

BtcPerpPremiumConfirmedMomentumLS

Точная, плотная реализация: реальный ряд премии/ставки финансирования загружается, и стратегия торгует на измеримой выборке из 271 сделок за 6.7 лет (metrics_reliable=true), поэтому преимущество действительно измерено,…

Гипотеза

Стратегия LONG-SHORT по одному инструменту на BTCUSDT.BINANCE USD-M perpetual торгует импульс цены на 4H ONLY, только когда премия между mark и index бессрочного контракта PREMIUM (базис) подтверждает направленность спроса с плечом; при расхождении цены и премии стратегия вне рынка. Она нацелена на отдельный EDGE SOURCE — настроения по плечу и базису — на инструменте ONE, который в ходе этой сессии убедительно показал пригодность для направленной торговли (BTC; все альтернативные направленные варианты по цене,……Показать большеСвернуть

Стратегия LONG-SHORT по одному инструменту на BTCUSDT.BINANCE USD-M perpetual торгует импульс цены на 4H ONLY, только когда премия между mark и index бессрочного контракта PREMIUM (базис) подтверждает направленность спроса с плечом; при расхождении цены и премии стратегия вне рынка. Она нацелена на отдельный EDGE SOURCE — настроения по плечу и базису — на инструменте ONE, который в ходе этой сессии убедительно показал пригодность для направленной торговли (BTC; все альтернативные направленные варианты по цене, объёму, структуре, ADX оказались без преимущества, и сохранился только импульс BTC). Это завершает проверку ортогональных сигналов, которую фактически проводит фабрика стратегий на BTC: мои идеи в очереди подтверждают импульс агрессивностью FLOW (соотношение taker) и позиционированием STOCK (открытый интерес); здесь используется PREMIUM (цена плеча) — принципиально иной поток данных. Тезис: движение цены, при котором бессрочный контракт одновременно торгуется с премией в том же направлении, отражает устойчивый спрос с плечом; движение цены против базиса (например, цена растёт, а контракт торгуется со скидкой — движение ведёт спотовый рынок, поддержки плечом нет) не подтверждено и обычно не продолжается. Стратегия применяет доказавший себя принцип SELECTIVITY выжившей стратегии: торговать только при согласии независимого подтверждения, иначе оставаться вне рынка. Она учитывает все подтверждённые причины неудач: для разработчика сохранены DEAD SIMPLE — дополнительный скаляр ONE (premium_index), торгуемый инструмент SAME и стандартное инкрементальное сглаживание, — чтобы избежать полной замены стратегии, погубившей прежние идеи с дополнительными сигналами; частота 4H даёт около MEASURABLE ~150-250 сделок в выборке (это не низкочастотный фильтр); этапы BTC 4H (~2-4%) перекрывают комиссию около 0.10%. Стратегия пополняет недоукомплектованную корзину LONG-SHORT (13.3% против книги только с длинными позициями 86.7%). Всего 3 параметров.

В предыдущей итерации нулевое число сделок ошибочно объяснили разбором двух ключей funding_rates. Исправление не могло помочь, потому что до funding_rates выполнение не доходило. Я проследил фактическую цепочку. premium_index отсутствует в SUPP_KEYS PipelineProcessor, поэтому песочница уровня -3 не загружает настоящий ряд и подставляет synthetic_scenarios._gen_synthetic_premium_index, который выдаёт bars[::60] — одну запись на каждые 60 баров, то есть одну на 10 DAYS при периоде 4H. Эти синтетические строки……Показать большеСвернуть

В предыдущей итерации нулевое число сделок ошибочно объяснили разбором двух ключей funding_rates. Исправление не могло помочь, потому что до funding_rates выполнение не доходило. Я проследил фактическую цепочку. premium_index отсутствует в SUPP_KEYS PipelineProcessor, поэтому песочница уровня -3 не загружает настоящий ряд и подставляет synthetic_scenarios._gen_synthetic_premium_index, который выдаёт bars[::60] — одну запись на каждые 60 баров, то есть одну на 10 DAYS при периоде 4H. Эти синтетические строки разбираются корректно (допустимая временная метка, поле close с премией) и проходят _finalize: около 240 строк при минимуме выборки 20, поэтому _prem_source выбирает premium_index, а цикл кандидатов завершается до попытки загрузить funding_rates. Но _prem_z нужно не менее prem_min_z_samples (20) значений в z-окне длиной 30 дней, а при интервале 10 дней окно вмещает около 3; поэтому на каждом баре возвращается None, confirm_dir остаётся 0, и вход не срабатывает — именно это и показывают 0 входов на -14,360 барах. Ограничение устаревания 24h также не проходит примерно на 90% баров при интервале в 10 дней. Между тем funding_rates IS в SUPP_KEYS — настоящий плотный ряд: я проверил 85,697 строк BTCUSDT с 2020-01-01 по 2026-09-04 с периодом 8h; в окне длиной 30 дней получается 90 значений, что укладывается в ограничение устаревания 24h. Пригодный ряд оказался скрыт за непригодным. Исправление — одна новая проверка, _density_ok: кандидат принимается, только если медианный интервал между значениями укладывается в prem_max_lag_ns, а в окне prem_z_days ожидается не менее prem_min_z_samples значений; иначе кандидат отклоняется с записью медианного интервала, и цикл переходит к следующему источнику того же типа данных. Это проверка пригодности данных, а не ослабление преимущества: пороги не менялись, фильтр подтверждения не затронут, а стратегия по-прежнему отказывается торговать без достоверного значения премии. Исправление корректно в обеих средах: в песочнице редкий синтетический ряд premium_index отклоняется, а настоящий 8h funding_rates используется; в полном бэктесте настоящий premium_index (1-минутные premiumIndexKlines) проходит проверку плотности и получает приоритет, как и предусмотрено гипотезой. Импорты, математика сигнала, логика входа и выхода, поиск по префиксным суммам за O(log n) и расчёт размера позиции в остальном не менялись; также я добавил _param_bounds, повторяющий ограничения.

Надёжная выборка: 271 сделок за 6.7 лет, avg_trade_return_pct 0.123% (ниже минимальной комиссии Binance USD-M 0.15%) и profit_factor 1.0067 — классический признак fee_edge: валовое преимущество целиком укладывается в затраты ~0.10% за полный цикл. information_ratio -0.82 относительно «купи и держи», коэффициент Шарпа 0.164 (CI низкий -0.60 пересекает ноль) и impact_cost_pct 73.97% (ёмкость лишь около $183k) подтверждают отсутствие чистого преимущества. Оптимизация не поднимет преимущество на сделку, если оно ниже торговых издержек, поэтому опасения насчёт преимущества QA подтвердились на полном бэктесте. Подтверждение премией не добавляет направленной устойчивости (разница между режимами почти нулевая). Не стоит тратить 2 часов на оптимизацию.

Реализация

Лонг-шорт импульс за 4 часов по бессрочному контракту BTCUSDT.BINANCE USD-M; сделка открывается, только когда премия между mark бессрочного контракта и индексом подтверждает то же направление. Импульс — изменение цены закрытия относительно предыдущего закрытия за mom_lookback баров, делённое на ATR; премия берётся из дополнительного ряда, сглаживается за 24 часов и стандартизуется как z-оценка относительно среднего и стандартного отклонения за предыдущие 30 дней. Торговый сигнал — импульс, взвешенный уверенностью……Показать большеСвернуть

Лонг-шорт импульс за 4 часов по бессрочному контракту BTCUSDT.BINANCE USD-M; сделка открывается, только когда премия между mark бессрочного контракта и индексом подтверждает то же направление. Импульс — изменение цены закрытия относительно предыдущего закрытия за mom_lookback баров, делённое на ATR; премия берётся из дополнительного ряда, сглаживается за 24 часов и стандартизуется как z-оценка относительно среднего и стандартного отклонения за предыдущие 30 дней. Торговый сигнал — импульс, взвешенный уверенностью по премии: min(1, |z|/prem_thresh); ветвь расхождения ограничена ниже порога входа, поэтому импульс без согласия премии никогда не запускает сделку. Для входа сигнал должен пересечь entry_thresh_atr, а премия — подтвердить направление; допустимость входа на предыдущем баре пересчитывается по истории, а не сохраняется в состоянии, поэтому поведение одинаково после перезапуска и при повторном воспроизведении. Выходы: потеря импульса с гистерезисом, разворот премии через полный порог против позиции и трейлинг-стоп ATR от лучшей цены закрытия после входа. Размер позиции рассчитан на риск 2% капитала с учётом расстояния до трейлинг-стопа, ограничен номиналом 1x капитала и округляется вниз с шагом 0.001 инструмента BTC и минимумом $100. Если нет пригодного значения премии, стратегия не открывает позицию — запасного варианта только по цене нет.

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

Проверка не пройдена (уровень 3 — бэктест в песочнице): сделок нет Тип бара: BTCUSDT.BINANCE-4-HOUR-LAST-EXTERNAL, обработано баров: 14391 Диагностика: should_enter() возвращал направление 0 раз за 14360 проверенных баров → ваш ENTRY CONDITION ни разу не сработал. Ослабьте логику входа или пороги. Убедитесь, что стратегия совершает сделки на заданных данных и параметрах.

Проверьте в логах полного бэктеста, что _prem_source разрешается в premium_index (а не funding_rates); если система незаметно продолжает использовать ставку финансирования, стратегия тестирует связанный, но другой поток данных, чем предполагает гипотеза.

В песочнице уровня -3 сигнал подтверждения — funding_rates с периодом 8h, а не premium_index (mark относительно индекса), на котором основана гипотеза: premium_index отсутствует в песочнице SUPP_KEYS, а синтетический заменитель слишком редкий для прохождения проверки плотности. Разработчик это документирует и считает финансирование средним по времени значением премии того же типа за 8h (в гипотезе оно указано как альтернативное значение того же типа), поэтому это допустимо, но преимущество в песочнице измерено по прокси, а не по нужному потоку данных. Проверьте, что реальный premium_index загружается и получает приоритет в полном бэктесте.

Действия не требуются, если только фреймворк не использует собственную семантику min_bars_required; значение переопределения разумно.

min_bars_required(self) переопределяет метод фреймворка (предупреждение статического анализа base_shadow). Он возвращает max(atr_period+2, mom_lookback+2), что даёт разумный прогрев и учитывает переопределение параметра, поэтому поведение корректно; замечание связано только с тем, что метод затеняет базовую реализацию.

Песочница (одиночный неоптимизированный запуск) показывает avg_trade_return_pct 0.024% (< минимальной комиссии фьючерсов 0.15%), profit_factor 0.96, отрицательное матожидание (-$26/сделку), win_rate 33% и information_ratio -0.78 против стратегии «купи и держи» на 374 сделках. Это проверка работоспособности на параметрах по умолчанию, поэтому она не блокирует исследование, но преимущество механизма на сделку невелико, а ось подтверждения в песочнице — funding_rates (8 ч), а не названный в гипотезе 1-минутный premium_index. Аналитику следует проверить на полном бэктесте, что (а) настоящая premium_index действительно загружается и проходит порог плотности (так что входы определяет задуманный поток данных, а не прокси-финансирования), и (б) заявленные в гипотезе ноги 2-4% BTC 4H дают результат за вычетом круговой комиссии ~0.10% и комиссионных издержек 7.8%, наблюдаемых здесь. Разброс по режимам невелик (коэффициент Шарпа около нуля в спокойном, обычном и стрессовом режимах), что указывает на слабую направленную устойчивость подтверждённого сигнала.

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

Шарп
0,16
Общая доходность
18,57%
Максимальная просадка
22,94%
Всего сделок
271
Доля прибыльных
35,1%
Профит-фактор
1,01

Точная, плотная реализация: реальный ряд премии/ставки финансирования загружается, и стратегия торгует на измеримой выборке из 271 сделок за 6.7 лет (metrics_reliable=true), поэтому преимущество действительно измерено, а не осталось неизмеренным.

Разумный контроль просадки (max_drawdown 22.9%) и почти нулевая бета к рынку (0.017) — механизм работает, как заявлено, просто у него нет преимущества.

avg_trade_return_pct 0.123% составляет BELOW от минимальной комиссии Binance USD-M 0.15% — преимущество на сделку меньше затрат на полный цикл ~0.10% (L22).

profit_factor 1.0067 на 271 сделках — признак fee_edge: валовое преимущество целиком съедается комиссиями, и настройкой его нельзя поднять выше издержек (L18).

information_ratio -0.82 против значимого ориентира «купи и держи»; альфа ~0.028 пренебрежимо мала, а коэффициент Шарпа 0.164, при этом sharpe_ci_low -0.60 охватывает ноль.

impact_cost_pct 73.97% и capacity_usd ~$183k — влияние на рынок съедает ~3/4 валовой прибыли; преимущество реально лишь в игрушечном масштабе.

Разница между режимами почти нулевая в спокойном, обычном и стрессовом рынках; в 4 из 7 лет результат отрицательный — подтверждённый сигнал не обладает направленной устойчивостью.

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

Проверка не пройдена (уровень 3 — бэктест в песочнице): сделок нет Тип бара: BTCUSDT.BINANCE-4-HOUR-LAST-EXTERNAL, обработано баров: 2182 Диагностика: should_enter() возвращал направление 0 раз за 2151 проверенных баров → ваш ENTRY CONDITION ни разу не сработал. Ослабьте логику входа или пороги. Убедитесь, что стратегия совершает сделки на заданных данных и параметрах.

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