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

Стратегии

C — моментум временного ряда / тренд Donchian (бессрочный контракт BTC)

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

BtcDailyDonchianTimeSeriesMomentumLS

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

BtcDailyDonchianTimeSeriesMomentumLS была классической стратегией следования за трендом на основе моментума временного ряда и пробоя Donchian в длинную и короткую стороны на бессрочных контрактах BTC. В итерации-2 исправили расчёт размера позиции: заявленное плечо стало реальным множителем, а не неработающим ограничителем. Впечатляющая итоговая доходность 366% оказалась пустой оболочкой: за 6.5 лет было всего 42 сделок при доле прибыльных 35.7%; доверительный интервал коэффициента Шарпа 0.493 пересекал ноль, а максимальная просадка 76.5% нарушила жёсткий предел для отказа. Аналитик установил, что доходность в основном объяснялась эффектом плеча и сложного процента (средняя позиция — около 1692% капитала, эксцесс 69.6), а также 254.6% нереализованной бумажной прибыли по незакрытым позициям; информационное отношение было отрицательным, а фактор прибыли — на грани. На этапе проверки бэктеста от стратегии отказались как от ещё одного представителя семейства клонов тренда OHLCV на одном инструменте с выживаемостью 0/213; оптимизация признана нецелесообразной.

Гипотеза

ECONOMIC HYPOTHESIS: тренды BTC сохраняются из-за замедленной реакции, импульса и устойчивости потоков. VENUE: бессрочный контракт BINANCE USD-M, BTCUSDT, MARGIN, плечо>1 (возможны короткие позиции). TIMEFRAME: 1 дней. ENTRY: длинная позиция, когда цена закрытия пробивает максимум за предыдущие N дней; короткая — когда цена закрытия пробивает минимум за предыдущие N дней. Проведи перебор N за 20-55 дней (укажи диапазон FULL, выяви прибыльное плато, отметь зависимость преимущества от узкого диапазона N). EXIT:……Показать большеСвернуть

ECONOMIC HYPOTHESIS: тренды BTC сохраняются из-за замедленной реакции, импульса и устойчивости потоков. VENUE: бессрочный контракт BINANCE USD-M, BTCUSDT, MARGIN, плечо>1 (возможны короткие позиции). TIMEFRAME: 1 дней. ENTRY: длинная позиция, когда цена закрытия пробивает максимум за предыдущие N дней; короткая — когда цена закрытия пробивает минимум за предыдущие N дней. Проведи перебор N за 20-55 дней (укажи диапазон FULL, выяви прибыльное плато, отметь зависимость преимущества от узкого диапазона N). EXIT: основной вариант = скользящий стоп chandelier 3x ATR; вариант проверки устойчивости = выход при пробое противоположной границы канала (N/2). NO фиксированный тейк-профит (цель — следовать за продолжительными трендами). RISK: размер позиции с поправкой на волатильность, если поддерживается; NOT подбирай размер позиции для искусственного создания доходности. COSTS: реалистичные комиссии тейкера и проскальзывание; финансирование не применяется к тренду с дневным удержанием, но учитывай его, если позиции остаются открытыми в моменты начисления финансирования. CONSTRAINTS: длинные и короткие позиции; NO RSI; NO ограничение в одну сделку в день; NO правило пропуска после убытка; не проводи NOT агрессивную оптимизацию до первоначального отчёта. Укажи валовой AND и чистый результат. Отдавай приоритет устойчивости и плато параметров, а не максимальной доходности.

Исправление в итерации -2 для отклонения `leverage_set_but_unused`, о котором сообщалось; больше ничего не менялось — логика сигнала, логика входа и выхода, импорты, структура класса и ограничения параметров побайтно идентичны предыдущей версии (прошедшей Layer 1/2). Два изменения, оба касаются только размера позиции: (1) `position_size` теперь напрямую считывает `self.config.leverage` (предыдущая форма `getattr(self.config, "leverage", 1.0)` не соответствовала проверке токенов гейта); значение также сохраняется……Показать большеСвернуть

Исправление в итерации -2 для отклонения `leverage_set_but_unused`, о котором сообщалось; больше ничего не менялось — логика сигнала, логика входа и выхода, импорты, структура класса и ограничения параметров побайтно идентичны предыдущей версии (прошедшей Layer 1/2). Два изменения, оба касаются только размера позиции: (1) `position_size` теперь напрямую считывает `self.config.leverage` (предыдущая форма `getattr(self.config, "leverage", 1.0)` не соответствовала проверке токенов гейта); значение также сохраняется в `self.leverage` в `__init__`; (2) что важнее, кредитное плечо теперь является настоящим MULTIPLIER номинала с целевой волатильностью, а не верхним пределом. Раньше множитель был `min(target_vol/realized_vol, leverage * max_gross_frac)` — при реализованной волатильности BTC, обычно равной 0.4-0.9 в годовом выражении, отношение целевой волатильности составляло около 0.4-0.9 и никогда не достигало лимита 2.0; поэтому кредитное плечо не влияло на результат, а арифметически бэктест совпадал с 1x — именно это и отмечает гейт. Теперь `notional = equity * min(target_vol/realized_vol, max_gross_frac) * leverage`, поэтому бюджет 2x фактически задействован, и модель маржи начинает ограничивать позицию. Проверено на синтетическом дневном ряду: номинал каждой входной позиции примерно вдвое больше, чем по прежней формуле; сигнал остаётся непрерывным (361 разных значений на 400 барах, около 21 входов на пробое), а стратегия по-прежнему соблюдает `max_gross_frac` до применения кредитного плеча, поэтому валовая экспозиция ограничена значением «кредитное плечо × капитал», а не растёт без ограничений.

ohlcv_trend_clone_leverage_artifact_unmeasured: дневной пробой Donchian/TSMOM на одном инструменте BTC — семейство трендовых стратегий OHLCV с выживаемостью 0/213 (L9/L41). Всего 42 сделок — коэффициент Шарпа 0.493 статистически не измерен, поскольку CI [-0.131, 1.064] пересекает ноль (L10). max_drawdown 76.5% (максимум CI 94.9%) превышает жёсткий предел для отказа (L19). Итоговая доходность 366% объясняется эффектом плеча и сложного процента на капитал (avg_position_pct 1692%, отдельные дневные доходности +4195%/+2418%/+877%, эксцесс 69.6) и 254.6% нереализованной бумажной прибылью по незакрытым позициям — это преимущество ещё не было реализовано; information_ratio отрицателен (-0.139), а PF 1.095 на грани. Подбор 8 параметров на выборке из 42 сделок, движимой всплесками, не позволит достичь порога для продвижения стратегии; запуск оптимизации на 2 часов нецелесообразен.

Реализация

Бессрочный контракт BTCUSDT.BINANCE USD-M, бары 1-DAY, моментум временного ряда в длинную и короткую стороны. calculate_signal возвращает непрерывную нормализованную позицию цены закрытия внутри канала Donchian за предыдущие N дней ((close - channel_mid) / channel_half_width), рассчитанную только по барам до текущего; |signal| > 1 означает, что цена закрытия пробила максимум (+) или минимум (-) за предыдущие N дней. Вход: BUY выше +entry_threshold, SELL ниже -entry_threshold. Выход (основной,……Показать большеСвернуть

Бессрочный контракт BTCUSDT.BINANCE USD-M, бары 1-DAY, моментум временного ряда в длинную и короткую стороны. calculate_signal возвращает непрерывную нормализованную позицию цены закрытия внутри канала Donchian за предыдущие N дней ((close - channel_mid) / channel_half_width), рассчитанную только по барам до текущего; |signal| > 1 означает, что цена закрытия пробила максимум (+) или минимум (-) за предыдущие N дней. Вход: BUY выше +entry_threshold, SELL ниже -entry_threshold. Выход (основной, exit_mode='chandelier'): скользящий стоп 3x ATR(20) от экстремума, достигнутого с момента открытия позиции, плюс безусловное закрытие при полном пробое канала в противоположную сторону за N дней; вариант проверки устойчивости exit_mode='opposite_channel' закрывает позицию при пробое канала за N/2 дней. Фиксированного тейк-профита нет, чтобы позволить тренду продолжаться. Размер позиции задаётся с таргетированием волатильности: номинал = equity * min(target_vol / realized_vol, max_gross_frac) * config.leverage. Это примерно сохраняет постоянный риск на сделку при разных режимах волатильности и задействует заявленный бюджет маржи 2x.

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

Проверка не пройдена (leverage_set_but_unused): в конфигурации задано плечо=2.0, но стратегия не использует плечо при расчёте размера позиции. Рассчитывай размер позиции с его учётом — номинал = капитал * доля * плечо / цена (считывай self.config.leverage) — или задай плечо=1.0. В текущем виде плечо не влияет на результат, и бэктест идентичен 1x.

Проведи бэктест за несколько лет, чтобы перебор N (20-55) дал статистически значимое число сделок для каждого N; укажи диапазон плато параметров, а не отдельные метрики.

Очень низкая частота сделок: в песочнице было всего 5 сделок за 362 дневных баров, а показатель sharpe_ci_low равен -0.5492 (CI пересекает ноль). Это свойственно следованию за трендом Donchian на дневных барах с периодом 40 дней; гипотеза прямо предполагает низкую частоту сделок и следование за трендом, поэтому это не дефект кода. Однако метрики песочницы зашумлены и ненадёжны.

Выбери окно предыдущих N баров без текущего бара (list(self._highs)[-(n+1):-1]), чтобы использовать тот же принцип, что и для входа.

Небольшая утечка будущих данных только в неосновном выходе 'opposite_channel': calculate_signal добавляет текущий бар в self._highs/_lows до запуска should_exit, поэтому окно min/max в этой ветке включает текущий бар. Логика входа и основной выход chandelier не затронуты.

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

Шарп
0,49
Общая доходность
366,23%
Максимальная просадка
76,50%
Всего сделок
42
Доля прибыльных
35,7%
Профит-фактор
1,10

avg_trade_return_pct формально превышает порог комиссий, но результат объясняется эффектом плеча и сложного процента

Механизм (Donchian TSMOM) — обоснованный и чётко определённый шаблон следования за трендом

Клон трендовой/моментум-стратегии на одном инструменте OHLCV — класс выживаемости 0/213 (L9/L41)

Всего 42 сделок за ~6.5 год — коэффициент Шарпа 0.493, а CI [-0.131, 1.064] пересекает ноль (не измерен, L10)

max_drawdown 76.5% (максимум CI 94.9%) — превышен жёсткий предел для отказа (L19)

avg_position_pct 1692% + дневная доходность +4195%/+2418%/+877% — эффект плеча и сложного процента на капитал (L36); return_kurtosis 69.6, асимметрия 3.77

end_unrealized_pct 254.6% на 366% total_return — итоговая цифра отражает нереализованную бумажную прибыль по незакрытой позиции, а не преимущество, которое было реализовано

information_ratio -0.139 (альфы относительно стратегии «купи и держи» нет); PF 1.095 — на грани; убыточные годы 2023 -114%, 2025 -68%

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

Высокая итоговая доходность может быть иллюзией: плечо и сложный процент на капитал, всплески экстремального эксцесса и нереализованная бумажная прибыль по незакрытым позициям могут раздуть результат, хотя преимущество с поправкой на риск (коэффициент Шарпа, информационное отношение, просадка) не проходит ни одного порога. Кроме того, чтобы статистически оценить клоны тренда, нужно достаточно сделок.

На этапе проверки бэктеста до оптимизации аналитик вынес вердикт «отказаться»: это клон тренда/моментума на одном инструменте OHLCV из семейства выживаемости 0/213; выборка из 42 сделок не позволила статистически измерить коэффициент Шарпа, а CI пересекал ноль; просадка 76.5% стала основанием для безусловного отказа, а заявленная доходность была следствием плеча, сложного процента и нереализованной прибыли, а не реализованного преимущества. Стратегия не дошла до оптимизации, последующей проверки аналитиком или проверки рисков.

Длинная и короткая стратегия дневного моментума временного ряда / пробоя канала Donchian на бессрочном контракте BTCUSDT Binance USD-M: открывает длинную позицию при пробое максимума за предыдущие N дней и короткую — при пробое минимума, следует за трендом с помощью скользящего стопа chandelier 3x ATR, не использует фиксированный тейк-профит и рассчитывает размер позиции с таргетированием волатильности, задействуя заявленное плечо как настоящий множитель.

Примерно за 6.5 лет и всего 42 сделок (24 длинных / 18 коротких, доля прибыльных 35.7%) стратегия показала итоговую доходность 366%, но коэффициент Шарпа составил лишь 0.493 (95% CI [-0.131, 1.064]), фактор прибыли — 1.095, информационное отношение — -0.139, а максимальная просадка — 76.5% (максимум CI 94.9%). Указанные значения avg_trade_return_pct для 4.95% и доходности 366% признаны следствием плеча и сложного процента (avg_position_pct 1692%, эксцесс 69.6, асимметрия 3.77); 254.6% итоговой доходности составила нереализованная бумажная прибыль по незакрытым позициям.

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