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

Стратегии

LTC 4H MACD Продолжение бычьего импульса, лонг

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

LtcFourHourMacdBullishMomentumContinuationLong

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

LtcFourHourMacdBullishMomentumContinuationLong — намеренно простая и устойчивая к переобучению попытка торговать по импульсу с помощью классического пересечения MACD(12/26/9) на барах LTC 4H и только OHLCV, чтобы избежать прежних проблем с дополнительными данными. Реализация была корректной: 219 входов в лонг за 6.5 лет. Но преимущество было только в 2020 (+74%); затем стратегия теряла деньги каждый год вплоть до 2026, завершив период с общей доходностью -37.3%, коэффициентом Шарпа -0.23 и максимальной просадкой 83.6%. На этапе проверки бэктеста аналитик отказался от стратегии: полностью учтённое рынком каноническое пересечение с убытками пять лет подряд не давало оптимизатору ничего для улучшения. Стратегия снята после 3 итераций, до оптимизации и рассмотрения аналитиком для продвижения.

Гипотеза

Лонг-онли стратегия на одном инструменте MOMENTUM-CONTINUATION на бессрочных фьючерсах LTCUSDT (Binance USD-M) использует классический индикатор MACD (12, 26, 9) на 4-часовых барах. CRITICAL DESIGN CHOICES разработана с учётом последних волн сбоев 4: (a) ZERO зависимость от дополнительных данных — системные дополнительные потоки данных (ставки финансирования, ликвидации, open_interest, taker_ratio, premium_index) ALL давали сбой в последних 4 циклах проверки гипотез из-за пустых или недоступных потоков; эта……Показать большеСвернуть

Лонг-онли стратегия на одном инструменте MOMENTUM-CONTINUATION на бессрочных фьючерсах LTCUSDT (Binance USD-M) использует классический индикатор MACD (12, 26, 9) на 4-часовых барах. CRITICAL DESIGN CHOICES разработана с учётом последних волн сбоев 4: (a) ZERO зависимость от дополнительных данных — системные дополнительные потоки данных (ставки финансирования, ликвидации, open_interest, taker_ratio, premium_index) ALL давали сбой в последних 4 циклах проверки гипотез из-за пустых или недоступных потоков; эта стратегия использует ONLY OHLCV. (b) NOT возврат к среднему — возврат к среднему с отклонением VWAP на альткоиновых бессрочных фьючерсах (XRP) был прямо опровергнут: отрицательный коэффициент Шарпа на протяжении 623 сделок; это стратегия моментум-CONTINUATION. (c) NOT контртрендовая короткая позиция — контртрендовая короткая позиция по ставке финансирования BTC была однозначно опровергнута («экстремальная ставка финансирования — сигнал продолжения движения, а не возврата к среднему» в современной микроструктуре крипторынка); эта стратегия торгует WITH моментум, только в лонг. (d) 4H + Binance USD-M — проверенная комбинация для верификации (каждая стратегия Hyperliquid с дневным паттерном провалила аудиторскую проверку). (e) NEW символ — LTC — один из бессрочных криптоконтрактов с наиболее длинной историей и высокой ликвидностью (10+ года истории спотовой цены), что даёт обширный охват бэктестинга; сейчас его нет в портфеле. (f) Используются MACD с каноническими параметрами FIXED (12/26/9) — это универсальные значения по умолчанию, NOT подогнанные по кривой, что снимает опасения переобучения, отмеченные в отзывах о сбоях.

Итерация 3 исправляет только указанную ошибку уровня -2: `_ema_series() takes 2 positional arguments but 3 were given`. Первопричина — клонирование `_Wrapper` верификатором (strategy_verifier.py:118-132), который повторно связывает каждый вызываемый атрибут через `types.MethodType` и добавляет лишний первый аргумент любой статической функции или обычной функции-помощника. Минимальное надёжное исправление — полностью удалить метод-помощник и вычислять EMA идентичной вложенной функцией LOCAL (`ema_series`) внутри `calculate_signal`. Обработчик не копирует и не связывает замыкание повторно, поэтому TypeError не повторится. Математика EMA, построение линии/сигнала/гистограммы MACD, условия бычьего и медвежьего пересечения, непрерывный незамороженный сигнал и вся логика should_enter/should_exit/position_size остаются без изменений до байта; прежние пройденные статические проверки уровня -1 и механизм входа/выхода сохраняются. Импорты чистые (только numpy). Кредитное плечо действительно учитывается при расчёте размера позиции (капитал*position_pct*плечо).

Стратегия в корне убыточна на большой, корректно реализованной выборке из 219 сделок — это не ошибка кода и не эффект малой выборки. Отрицательное матожидание (-369/сделку), profit_factor 0.907, коэффициент Шарпа -0.23, Сортино -0.48 и максимальная просадка 83.6%. Прибыльным был только 2020 (+74%); все последующие годы принесли убыток (2022 -11%, 2023 -30%, 2024 -13%, 2025 -76%, 2026 -16%), что указывает на угасшее или отсутствующее преимущество. Каноническое продолжение после бычьего пересечения MACD(12/26/9), только в лонг и на одном альткоин-перпетуале, — полностью учтённая рынком стратегия без преимущества. Оптимизация меняет параметры в рамках этого механизма, но не создаст матожидание, если большая выборка показывает стабильные убытки за 5 лет. Реализация корректна, дорабатывать её не стоит; оптимизация не стоит 2 часов.

Реализация

Лонговая стратегия продолжения импульса по одному инструменту на основе MACD(12/26/9) для бессрочных фьючерсов LTCUSDT.BINANCE USD-M, бары 4H, только OHLCV (без дополнительных данных). Открывает лонг при бычьем пересечении гистограммы MACD, когда линия MACD выше нуля (сделки WITH уже сформированный бычий импульс); закрывает позицию при медвежьем пересечении, стоп-лоссе 4% или тейк-профите 8%. Кредитное плечо 2.0, размер позиции равен 0.60*2.0 = 1.2x капитала в номинальном выражении.

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

Проверка не пройдена (уровень 2 — синтетические сценарии): Использованные параметры: ['fast_period', 'slow_period', 'min_notional', 'position_pct', 'signal_period', 'stop_loss_pct', 'take_profit_pct', 'require_above_zero'] Убедитесь, что __init__ задаёт все атрибуты из self.parameters.get(). - steady_uptrend: TypeError: LtcFourHourMacdBullishMomentumContinuationLong._ema_series() принимает 2 позиционных аргументов, но передано 3 (временная метка бара: 1735691940000) - steady_downtrend: TypeError:……Показать большеСвернуть

Проверка не пройдена (уровень 2 — синтетические сценарии): Использованные параметры: ['fast_period', 'slow_period', 'min_notional', 'position_pct', 'signal_period', 'stop_loss_pct', 'take_profit_pct', 'require_above_zero'] Убедитесь, что __init__ задаёт все атрибуты из self.parameters.get(). - steady_uptrend: TypeError: LtcFourHourMacdBullishMomentumContinuationLong._ema_series() принимает 2 позиционных аргументов, но передано 3 (временная метка бара: 1735691940000) - steady_downtrend: TypeError: LtcFourHourMacdBullishMomentumContinuationLong._ema_series() принимает 2 позиционных аргументов, но передано 3 (временная метка бара: 1735691940000) - flat_ranging: TypeError: LtcFourHourMacdBullishMomentumContinuationLong._ema_series() принимает 2 позиционных аргументов, но передано 3 (временная метка бара: 1735691940000) - volatility_spike: TypeError: LtcFourHourMacdBullishMomentumContinuationLong._ema_series() принимает 2 позиционных аргументов, но передано 3 (временная метка бара: 1735691940000) - zero_volume: TypeError: LtcFourHourMacdBullishMomentumContinuationLong._ema_series() принимает 2 позиционных аргументов, но передано 3 (временная метка бара: 1735691940000) - price_gap: TypeError: LtcFourHourMacdBullishMomentumContinuationLong._ema_series() принимает 2 позиционных аргументов, но передано 3 (временная метка бара: 1735691940000)

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

Шарп
-0,23
Общая доходность
-37,29%
Максимальная просадка
83,63%
Всего сделок
219
Доля прибыльных
31,1%
Профит-фактор
0,91

Корректная реализация: 219 запланированных входов в лонг по продолжению MACD, только OHLCV, достаточная выборка и охват 6.5 лет.

Один действительно прибыльный год (2020, +74%) показывает, что сигнал не инвертирован.

В целом стратегия убыточна на большой выборке: total_return -37.3%, коэффициент Шарпа -0.23, Сортино -0.48, profit_factor 0.907, матожидание -369/сделку.

Катастрофический риск: max_drawdown 83.6%, просадка длится 1833 дней, до 12 убытков подряд.

Преимущество есть только в 2020, затем стратегия теряет деньги 5 лет подряд (2022 -11%, 2023 -30%, 2024 -13%, 2025 -76%, 2026 -16%) — классический сигнал с угасшим преимуществом или без него.

Отрицательная альфа (-0.031) и information_ratio (-0.35) по сравнению с покупкой и удержанием LTC; каноническое пересечение MACD полностью учтено рынком, остаточного преимущества для оптимизации нет.

Анализ

Пока не оптимизируй NOT: бэктест недействителен из-за ошибки кредитного плеча при накоплении позиций. SPECIFIC FIX: в should_enter() возвращай None, если позиция уже открыта (например, `if self.cache.positions_open(instrument_id=self.instrument_id): return None`), прежде чем проверять self._armed. Сейчас каждое новое бычье пересечение MACD во время восходящего тренда добавляет ещё один транш 1.2x к уже открытой длинной позиции, увеличивая номинал примерно до 6x капитала (avg_position_pct 595.6%) и создавая……Показать большеСвернуть

Пока не оптимизируй NOT: бэктест недействителен из-за ошибки кредитного плеча при накоплении позиций. SPECIFIC FIX: в should_enter() возвращай None, если позиция уже открыта (например, `if self.cache.positions_open(instrument_id=self.instrument_id): return None`), прежде чем проверять self._armed. Сейчас каждое новое бычье пересечение MACD во время восходящего тренда добавляет ещё один транш 1.2x к уже открытой длинной позиции, увеличивая номинал примерно до 6x капитала (avg_position_pct 595.6%) и создавая невозможные дневные изменения свыше 100% и годовую доходность ниже -100%. После добавления проверки отсутствия позиции перезапусти тест и убедись, что avg_position_pct близок к заданному значению 120%, а дневная доходность остаётся в разумных пределах. При желании также проверь, что position_size() пересчитывается от текущего капитала при каждом входе (так и есть), чтобы размер позиции снижался вместе с капиталом. После исправления расчёта размера можно оценить реальное преимущество продолжения MACD; учти, что загрязнённый запуск уже указывает на слабый сигнал (PF 0.89, доля прибыльных сделок 30.6%), поэтому, если чистый повторный запуск тоже даст убыток, стратегию следует отбросить, а не оптимизировать.

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

Канонические, широко известные индикаторы, такие как пересечение MACD(12/26/9) на одном крупном перпетуальном фьючерсе, фактически полностью учтены рынком: сигнал, работавший только в 2020 и угасавший пять лет подряд, не имеет преимущества, которое можно было бы восстановить оптимизацией.

На этапе проверки бэктеста до оптимизации аналитик вынес вердикт «отказаться»: корректно реализованный сигнал на большой выборке имеет отрицательное матожидание и не оставляет преимущества для оптимизации, поэтому до оптимизации и последующих этапов дело не дошло.

Лонговая стратегия продолжения импульса, использующая только OHLCV, на перпетуальных фьючерсах LTCUSDT 4H. Вход выполнялся при каноническом бычьем пересечении гистограммы MACD(12/26/9), когда линия MACD была выше нуля; выход — при медвежьем пересечении, стоп-лоссе или тейк-профите; кредитное плечо 2x.

За примерно 6.5 лет стратегия дала 219 чётких входов в лонг, но принесла убыток: общая доходность -37.3%, коэффициент Шарпа -0.23, Сортино -0.48, фактор прибыли 0.907, матожидание -$369/сделку, доля прибыльных сделок 31% и максимальная просадка 83.6%; прибыльным был только 2020 (+74%), а каждый год с 2022 по 2026 завершился убытком (2025 -76%).

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