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

Стратегии

BTC Daily Volatility-Regime-Conditional Long/Short (тренд при низкой волатильности, возврат к среднему при высокой, только OHLCV, BINANCE USD-M)

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

BtcDailyVolRegimeConditionalLongShort

Порог допуска бэктеста: - метрики ненадёжны: 455 сделок / 2437 дней данных — слишком мало свидетельств (нужно не менее 5 сделок за не менее 10 дней); увеличь частоту сигналов или расширь окно

Гипотеза

Лонг/шорт, один инструмент, один таймфрейм, DAILY-BARS-ONLY, стратегия на BTCUSDT.BINANCE, OHLCV-ONLY: переключается между TREND-FOLLOWING (при низкой волатильности) и MEAN-REVERSION (при высокой волатильности) — двумя семействами стратегий, которые исторически работают в разных режимах. EXPLICITLY DESIGNED FOR MAXIMUM VERIFICATION SURVIVAL с учётом недавней цепочки сбоев доступности данных: моя предыдущая стратегия BtcOiSpikeDirectionalReversal не сработала, поскольку разработчик подставил бары 6-HOUR BTC……Показать большеСвернуть

Лонг/шорт, один инструмент, один таймфрейм, DAILY-BARS-ONLY, стратегия на BTCUSDT.BINANCE, OHLCV-ONLY: переключается между TREND-FOLLOWING (при низкой волатильности) и MEAN-REVERSION (при высокой волатильности) — двумя семействами стратегий, которые исторически работают в разных режимах. EXPLICITLY DESIGNED FOR MAXIMUM VERIFICATION SURVIVAL с учётом недавней цепочки сбоев доступности данных: моя предыдущая стратегия BtcOiSpikeDirectionalReversal не сработала, поскольку разработчик подставил бары 6-HOUR BTC (ожидается пополнение данных); BtcLiquidationCascadeReversal не сработала из-за подстановки 8-HOUR и покрытия дополнительных данных 62%; BtcCrossVenueRealizedFundingSpread не сработала из-за подстановки 12-HOUR. Причина: у внутридневных баров BTC и дополнительных данных есть проблемы с покрытием. THIS HYPOTHESIS USES ONLY BTCUSDT.BINANCE 1D BARS + ONLY OHLCV — это устраняет оба типа сбоев. bar_type MUST должны быть «BTCUSDT.BINANCE-1-DAY-LAST-EXTERNAL» — разработчик MUST NOT подставлять любой другой таймфрейм (4H, 6H, 8H и 12H — все подтверждённо не работают). Механизм: классификатор режима реализованной волатильности (60-дневное годовое стандартное отклонение логарифмических доходностей) делит динамику цены на TWO режима, для которых оптимальны DIFFERENT стратегии согласно хорошо описанной литературе о режимах Моссина—Линтнера, применённой к крипторынку Бондаренко—Помешковым (2024). В режимах LOW-VOL (RV процентиль < 25% за последние 365 дней) тренды сохраняются: открывать LONG, когда цена выше SMA(50) и импульс за 30 дней положительный; открывать SHORT, когда цена ниже SMA(50) и импульс отрицательный. В режимах HIGH-VOL (RV процентиль > 75%) тренды не сохраняются, а цены возвращаются к среднему: открывать SHORT, когда 1×ATR выше SMA(50); LONG, когда 1×ATR ниже SMA(50). Средний режим волатильности пропускается (преимущества нет). ADDRESSES LARGEST ACTIVE QUOTA GAP: направление long_short (11.6% против ≥45%; разрыв около 33%). MAXIMALLY VERIFICATION-ROBUST: нет зависимостей от supp_data (устраняет сбои покрытия open_interest, ликвидаций и L/S); нет внутридневных баров (устраняет сбои подстановки 4H/6H/8H/12H); одна площадка (нет зависимостей от данных разных площадок). SIX PARAMETERS — значительно проще неудачных стратегий. Условная по режиму конструкция EXPLICITLY ADDRESSES вывод аналитика о META-OBSERVATION хрупкости режимов: механизм одного режима работает либо на трендовом, либо на боковом рынке, но не на обоих; эта стратегия по своей конструкции справляется с BOTH, поскольку классификатор режима выбирает подходящую подстратегию.

Итерация с чистого запуска: механизм, импорты, сигнал, логика входа/выхода и расчёта размера позиции не затронуты. Единственное изменение — постепенный разгон периода прогрева: раньше min_bars_required требовал pct_lookback + rv_lookback + 2 = 427 дневных баров перед вычислением ANY, поэтому сигнал оставался на 0.0 (и сделки не совершались) первые ~14 месяцев любого окна — классический сбой с нулём сделок из-за долгого прогрева на коротких окнах проверки. Окно процентиля уже расширялось (rv_series[-pct_lookback:]), поэтому жёсткий барьер заменён явным порогом min_rv_samples=60 для числа наблюдений RV, на которых основан процентиль: ниже порога режим остаётся MID-VOL (без позиции, как и прежде), выше — распределение расширяется до полного 365. Прогрев сокращается с 427 до ~122 дневных баров, при этом режим никогда не определяется по малой выборке. Плечо 2.0 по-прежнему действительно используется в position_size (0.60 * 2.0 = 1.2x номинала относительно капитала), а хеш кода отличается от предыдущей итерации, поэтому Layer 0 его не отклонит.

Стратегия смены режимов для одного инструмента с катастрофической просадкой и высокой чувствительностью к комиссиям — не стоит 2 часов оптимизации, несмотря на заявленный коэффициент Шарпа около 1. max_drawdown — 69.7% с CI до 97.2%, намного ниже жёсткого порога отказа L19 50%; основная идея (классификатор режимов волатильности, работающий и на трендовом, и на боковом рынке и устраняющий хрупкость режимов) опровергнута: убыток в трёх отдельных годах (2022 -28%, 2023 -27%, 2025 -36%), период шока ставок-2022……Показать большеСвернуть

Стратегия смены режимов для одного инструмента с катастрофической просадкой и высокой чувствительностью к комиссиям — не стоит 2 часов оптимизации, несмотря на заявленный коэффициент Шарпа около 1. max_drawdown — 69.7% с CI до 97.2%, намного ниже жёсткого порога отказа L19 50%; основная идея (классификатор режимов волатильности, работающий и на трендовом, и на боковом рынке и устраняющий хрупкость режимов) опровергнута: убыток в трёх отдельных годах (2022 -28%, 2023 -27%, 2025 -36%), период шока ставок-2022 составляет -38%/61% DD, а доходность в спокойном режиме — -28%. Стратегия чувствительна к комиссиям: profit_factor 1.054 (глубоко в зоне L18 0.85-1.10), комиссии составляют 8.78% от валовой прибыли, avg_trade_return_pct 0.257% едва выше минимума, а total_return — всего +54.7% за 6.7 лет (Кальмар 0.128, recovery_factor 1.01) при просадке 70%. Доходность крайне волатильна и некорректно масштабирована (annualized_volatility 201.8%, downside_deviation 155, avg_position_pct 125%), поэтому коэффициент Шарпа 0.976 / PSR 0.982 ненадёжен на фоне этой DD, а в последнем тесте вне выборки длиной -20% содержится 2025 -36% год (высокий риск провала порога вне выборки). Это L30/L63 класс одноинструментальных OHLCV стратегий. Настройка параметров не устранит просадку 70% и не повысит чистое преимущество PF-1.05 до порогов продвижения. Характерный паттерн неудачи: risk_reject/fee_edge одноинструментальная стратегия со сменой режимов и направленной торговлей, >50% DD (L19/L18/L30).

Реализация

Лонг/шорт BTCUSDT.BINANCE DAILY, стратегия только на OHLCV с режимно-условными правилами. Классификатор годовой реализованной волатильности за 60 дней ранжируется по собственному скользящему распределению (расширяется до 365 наблюдений). В нижних 25% (низкая волатильность) стратегия торгует TREND: лонг выше SMA(50) при положительном импульсе за 30 дней, шорт ниже при отрицательном импульсе. В верхних 25% (высокая волатильность) стратегия торгует MEAN REVERSION: шорт, когда цена на 1xATR выше SMA(50); лонг, когда цена ниже на 1xATR. При средней волатильности позиции нет. Выход по стопу 6%, тейк-профиту 12%, временному стопу в 30 баров или правилу SMA с учётом режима (из тренда — при пересечении SMA против позиции; MR — когда цена возвращается к SMA). Размер позиции = капитал * 60% * плечо(2.0) / цена.

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

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

Аналитику/PM установить доступный для торговли капитал не выше примерно $50 тыс. ёмкости либо разработчику исключить/уменьшить самые малоликвидные альтернативные позиции HL (AVAXUSD/BNBUSD) и/или снизить max_leg_frac, чтобы ордера на каждую позицию укладывались в глубину книги HL 4H; затем повторно проверить capacity_usd и влияние на цену.

Ёмкость/влияние на цену: при 18% капитала на каждую позицию и 5 позициях книги Hyperliquid AVAXUSD/BNBUSD 4H не могут принять ордера при тестируемом капитале — capacity_usd $49,967, impact_cost_pct 141% (влияние на цену > валовой прибыли). Сама математика размера позиции разумна (ATR с равным риском, с ограничением, пропорционально капиталу — NOT чрезмерного вложения в один малоликвидный инструмент), поэтому это ограничение ликвидности площадки и возможности исполнения, а не очевидная ошибка расчёта размера позиции; влияние на цену уже учтено в опубликованных результатах. Но в заданной конфигурации стратегия торгуема только очень малым объёмом.

Рассмотри требование нового пересечения EMA (или паузы в N баров) после выхода по стопу ATR, прежде чем повторно входить в том же направлении, чтобы остановленная позиция не открывалась сразу снова в том же неудачном тренде.

Нет паузы после стопа: позиция, закрытая по жёсткому стопу ATR при всё ещё согласованном пересечении EMA (для длинной позиции fast>slow), повторно открывается уже на следующем баре через should_enter/on_extra_bar, после чего стоп может сработать снова — цикл ложных разворотов, повышающий оборот и вызывающий 38 последовательных убытков. В гипотезе указано закрытие при развороте пересечения OR или стопе ATR, но повторный вход не определён; это недостаток дизайна, а не нарушение спецификации.

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

Шарп
0,98
Общая доходность
54,74%
Максимальная просадка
69,65%
Всего сделок
554
Доля прибыльных
50,4%
Профит-фактор
1,05

Хорошо измерена (554 сделок за 6.7 лет); чистая дневная одноинструментальная стратегия OHLCV, без уязвимости из-за доступности данных; нижняя граница коэффициента Шарпа CI > 0.252 и 0 PSR 0.982

avg_trade_return_pct 0.257% номинально превышает минимальный порог комиссий по фьючерсам

max_drawdown 69.7% при CI до 97.2% — намного выше жёсткого порога отказа L19 50%; классификатор режимов NOT устранил хрупкость (шок ставок 2022 -38%/61% DD, спокойный режим -28%)

profit_factor 1.054 — чувствительна к комиссиям (зона L18), комиссия — 8.78% от валовой прибыли; total_return только +54.7%/6.7 г. (Калмар 0.128, recovery_factor 1.01)

annualized_volatility 201.8%, downside_deviation 155, avg_position_pct 125% — крайне волатильна; заявленному коэффициенту Шарпа нельзя доверять при 70% DD

Недавний режим плохой: 2022 -28%, 2023 -27%, 2025 -36%; в последнем тестовом периоде -20% есть год -36%; класс направленных стратегий на одном инструменте L30/L63

Анализ

Порог допуска бэктеста: - метрики ненадёжны: 455 сделок / 2437 дней данных — слишком мало свидетельств (нужно не менее 5 сделок за не менее 10 дней); увеличь частоту сигналов или расширь окно

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

Проверка не пройдена (Layer 2 — синтетические сценарии): Использованные параметры: ['low_pct', 'atr_mult', 'high_pct', 'atr_period', 'mom_period', 'sma_period', 'rv_lookback', 'min_notional', 'pct_lookback', 'position_pct', 'max_hold_bars', 'stop_loss_pct', 'take_profit_pct'] Убедись, что __init__ задаёт все атрибуты из self.parameters.get(). - steady_uptrend: TypeError: BtcDailyVolRegimeConditionalLongShort._rolling_std() принимает 2 позиционных аргументов, но передано 3 (время бара: 1735715160000) -……Показать большеСвернуть

Проверка не пройдена (Layer 2 — синтетические сценарии): Использованные параметры: ['low_pct', 'atr_mult', 'high_pct', 'atr_period', 'mom_period', 'sma_period', 'rv_lookback', 'min_notional', 'pct_lookback', 'position_pct', 'max_hold_bars', 'stop_loss_pct', 'take_profit_pct'] Убедись, что __init__ задаёт все атрибуты из self.parameters.get(). - steady_uptrend: TypeError: BtcDailyVolRegimeConditionalLongShort._rolling_std() принимает 2 позиционных аргументов, но передано 3 (время бара: 1735715160000) - steady_downtrend: TypeError: BtcDailyVolRegimeConditionalLongShort._rolling_std() принимает 2 позиционных аргументов, но передано 3 (время бара: 1735715160000) - flat_ranging: TypeError: BtcDailyVolRegimeConditionalLongShort._rolling_std() принимает 2 позиционных аргументов, но передано 3 (время бара: 1735715160000) - volatility_spike: TypeError: BtcDailyVolRegimeConditionalLongShort._rolling_std() принимает 2 позиционных аргументов, но передано 3 (время бара: 1735715160000) - zero_volume: TypeError: BtcDailyVolRegimeConditionalLongShort._rolling_std() принимает 2 позиционных аргументов, но передано 3 (время бара: 1735715160000) - price_gap: TypeError: BtcDailyVolRegimeConditionalLongShort._rolling_std() принимает 2 позиционных аргументов, но передано 3 (время бара: 1735715160000)

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