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

Стратегии

Ротация импульса 3 макроактивов: удерживай макроактив с самым сильным трендом из {US акций, долгосрочных гособлигаций и золота}, уходя в денежные средства при отрицательном абсолютном импульсе (SPY/TLT/GLD.USEQ, дневные бары, ежемесячная ребалансировка, 3 параметров)

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

MacroThreeAssetMomentumRotationCashEscape

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

Стратегия предложила классическую макроротацию на основе двойного импульса между SPY, TLT и GLD с уходом в денежные средства; цель — недостаточно представленная в наборе акций площадка с чистой дневной историей длиной около 21 лет. Первичный бэктест с большим запасом прошёл экономический порог площадки (среднее на сделку 1.77%, фактор прибыли 1.80) и получил вердикт «оптимизировать», но базовые метрики были слабыми (коэффициент Шарпа 0.27, просадка 43%) и противоречили утверждению гипотезы о «вдвое меньшей просадке». Оптимизация выявила настоящую проблему: внутривыборочный коэффициент Шарпа 0.91 в скользящем анализе вне выборки сменился на -0.60 во всех трёх окнах; при этом PBO 0.66, DSR 0.0, а также не пройдена проверка на уровне программы FDR. Поскольку несколько строгих проверок достоверности провалены, параметр периода наблюдения имеет резкий порог, а два почти идентичных варианта уже отклонены, аналитик заключил, что преимущество подогнано под шум, и отказался от стратегии после одной итерации.

Гипотеза

LONG-ONLY, SINGLE-SLEEVE-AT-A-TIME макроротация REGIME ROTATION между тремя высоколиквидными, структурно некоррелированными US ETF: SPY (бета американского рынка акций US), TLT (долгосрочные казначейские облигации), GLD (золото). Каждый месяц стратегия ранжирует их по импульсу общей доходности за предшествующий период и держит 100% наиболее сильного сегмента, применяя фильтр импульса ABSOLUTE: если доходность лидера за предшествующий период отрицательна, стратегия переходит в деньги (краткосрочные казначейские……Показать большеСвернуть

LONG-ONLY, SINGLE-SLEEVE-AT-A-TIME макроротация REGIME ROTATION между тремя высоколиквидными, структурно некоррелированными US ETF: SPY (бета американского рынка акций US), TLT (долгосрочные казначейские облигации), GLD (золото). Каждый месяц стратегия ранжирует их по импульсу общей доходности за предшествующий период и держит 100% наиболее сильного сегмента, применяя фильтр импульса ABSOLUTE: если доходность лидера за предшествующий период отрицательна, стратегия переходит в деньги (краткосрочные казначейские векселя как прокси / без позиции). Это намеренное DEPARTURE от семейства пересекающихся идей: стратегия NOT криптовалютная парная сделка по соотношению, NOT нейтральна к доллару, NOT SOL/ETH, NOT использует механизм тренда/возврата к среднему на одном бессрочном контракте, NOT опирается на финансирование/OI/премию/ликвидации/тики сделок, NOT опционы, NOT внутридневная стратегия с частыми сделками и NOT отраслевая корзина с поперечным отбором по дисперсии (класс, который провалился на истории за 27 лет USEQ: этот механизм ранжирует MANY коррелированных инструментов в одном классе активов и сводится к шуму; здесь же ранжируются THREE глубоко некоррелированных макросегментов, режимы которых меняются на горизонте нескольких кварталов). Источник преимущества — хорошо изученная структура макроимпульса и защитного выхода (двойной импульс в стиле Антоначчи): капитал постоянно перемещается между режимом акций с высоким риском, режимом спроса на долгосрочные облигации и режимом инфляции/реальных активов. Удержание сегмента с текущим восходящим трендом и жёсткий выход в деньги, когда ни один сегмент не растёт, исторически приводили к повышению доходности с поправкой на риск и примерно вдвое меньшей просадке по сравнению со стратегией «купи и держи» на акциях. Стратегия заполняет слабо представленный в EQUITY сегмент (BTC, не крипто и не 62% — корпус данных BTC) низкочастотным механизмом с малым числом параметров, для которого доступна чистая история с дневной периодичностью и корректировкой на дробление акций за DECADES (GLD с 2004 → около 21 лет). Этого достаточно для полноценного walk-forward-анализа; стратегия также некоррелирована с долгосрочными криптовалютными стратегиями на импульсе, которые сохранились на фабрике стратегий.

Буквально реализует гипотезу: три некоррелированных макросегмента (SPY/TLT/GLD.USEQ), дневные бары, ребалансировка по календарным месяцам, выбор сегмента по относительному импульсу и защитный выход в наличные по абсолютному импульсу в стиле Антоначчи; ровно три свободных параметра модели (lookback_days, skip_days, abs_threshold) плюс доля капитала для расчёта размера позиции. Площадка — USEQ, как заявлено: только длинные позиции, плечо 1.0, целочисленный размер позиции (USEQ точность размера 0); маржа не……Показать большеСвернуть

Буквально реализует гипотезу: три некоррелированных макросегмента (SPY/TLT/GLD.USEQ), дневные бары, ребалансировка по календарным месяцам, выбор сегмента по относительному импульсу и защитный выход в наличные по абсолютному импульсу в стиле Антоначчи; ровно три свободных параметра модели (lookback_days, skip_days, abs_threshold) плюс доля капитала для расчёта размера позиции. Площадка — USEQ, как заявлено: только длинные позиции, плечо 1.0, целочисленный размер позиции (USEQ точность размера 0); маржа не запрашивается и не используется. Оборот — несколько переключений в год при примерно 0.02-0.05% затратах на полный цикл сделки USEQ и удержании позиций по несколько месяцев, поэтому преимущество на сделку на порядки выше уровня комиссий. Разогрев — 128 сессий при стандартном окне анализа, малая доля как от синтетических сценариев длиной 500 баров, так и от дневного тестового периода примерно в 1650 сессий; поэтому во время проверки месячная сетка срабатывает десятки раз. Для исполнения нескольких инструментов используются _submit_entry_instrument/_submit_exit_position из базового шаблона и общий шлюз для ожидающих ордеров, поскольку отдельные инструменты не взаимозачитываются. Оговорка, заявленная как обязательная и всё же реализованная по запросу: «переход в наличные» моделируется как отсутствие позиции (нулевая доходность наличных), а не как короткая позиция в казначейских векселях; поэтому бэктест немного занижает доходность защитного состояния по сравнению с реальным сегментом BIL/SHY.

Переобучение с отрицательной обобщающей способностью вне выборки. В walk-forward-анализе IS 0.91 -> OOS -0.604 при is_overfitted=true и NEGATIVE OOS Sharpe во всех трёх окнах (-1.44/-0.29/-0.07) — преимущество макроротации меняет знак на новых данных, а не просто ослабевает. Это количественно подтверждает неудачная поправка коэффициента Шарпа на смещение: DSR=0.0, ожидаемый максимум=1.43 при 225 испытаниях (38 эффективных), PBO=0.66>0.5, is_significant=false; стратегия также не проходит проверку на уровне……Показать большеСвернуть

Переобучение с отрицательной обобщающей способностью вне выборки. В walk-forward-анализе IS 0.91 -> OOS -0.604 при is_overfitted=true и NEGATIVE OOS Sharpe во всех трёх окнах (-1.44/-0.29/-0.07) — преимущество макроротации меняет знак на новых данных, а не просто ослабевает. Это количественно подтверждает неудачная поправка коэффициента Шарпа на смещение: DSR=0.0, ожидаемый максимум=1.43 при 225 испытаниях (38 эффективных), PBO=0.66>0.5, is_significant=false; стратегия также не проходит проверку на уровне программы FDR (сохранено 4 из 274). Не пройдены три критерия достоверности HARD (OOS<=0, is_overfitted, PBO>0.5), поэтому переход к следующему этапу невозможен, и исключений нет. Анализ чувствительности показывает, что lookback_days — пороговый параметр (0.79->0.21 при изменении на +-20%); устойчивой области параметров для дальнейших итераций нет — результат подогнан под шум, а не отражает закономерность в пространстве параметров. Причина не в комиссиях (показатель 2.05% на сделку хороший) и не в исправимой ошибке кода. Это повторный провал семейства стратегий ротации по двойному импульсу SPY/TLT/GLD, которое уже дважды не прошло проверку в корпусе (относительный импульс SPY/TLT/GLD: симуляция 0.84 с переобучением заброшена; стратегия двойного импульса с уходом в денежные средства QQQ/GLD/TLT: симуляция 0.78 заброшена после risk_reject). Механизм обоснован в литературе, но на этой площадке он вновь и вновь переобучается на той же истории трёх макроактивов; смена набора инструментов привела бы к новому переобучению, а не исправила бы недостаток исходной предпосылки. Переобучение — стратегию следует забросить.

Реализация

Ротация макрорежимов только в лонг, с удержанием одного актива за раз, на дневных барах USEQ по SPY (US акции), TLT (долгосрочные гособлигации) и GLD (золото). В первую сессию каждого календарного месяца три актива ранжируются по полной доходности за последние lookback_days сессий (заканчивающихся за skip_days сессий до этого), и 95% капитала вкладывается в лидера целым числом акций. Фильтр абсолютного импульса отменяет ранжирование: если доходность лидера за этот период не превосходит abs_threshold, портфель полностью переходит в CASH (без позиции) до следующего ежемесячного решения. Одновременно удерживается только один актив; прежняя позиция сначала закрывается, а новый вход откладывается до следующего бара, чтобы средства от продажи стали доступны для покупки. calculate_signal возвращает импульс лидера за последние сессии на каждом баре (непрерывная переменная решения); сетка ребалансировки привязана к году и месяцу самого бара, поэтому она одинакова при перезапусках, бэктестах и бумажной торговле; кредитное плечо и короткие позиции не используются.

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

Подтвердите предполагаемое условие прогрева; дублирующие внутренние проверки None в _momentum обеспечивают безопасный отказ при любом несовпадении (сделки не будет), поэтому исправление строго не требуется.

min_bars_required() переопределяет метод базовой платформы. Платформа использует его для проверки возможности запуска основного пути сигнала (строка 480: len(self._bars) < _need). Переопределённый метод возвращает lookback_days+skip_days+2, что согласуется с внутренней проверкой _momentum (период анализа плюс пропуск +1 на каждый буфер), поэтому сигнал не срабатывает при недостаточной истории. Поведение безопасно, но стоит отметить затенение метода.

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

При перезапуске процесса _last_month_key сбрасывается в None (состояние в памяти), поэтому первый основной бар после перезапуска заново определяет целевой актив по текущему импульсу, не дожидаясь календарной границы месяца. Поскольку целевой актив детерминированно зависит от импульса, а сделки совершаются только при held != target, правильно сформированный портфель не будет совершать лишних сделок; перезапуск в середине месяца может привести к ребалансировке немного раньше, чем при строго ежемесячном графике. Это безвредно по сравнению с антипаттерном check-20: расписание IS привязано к метке времени бара, а не к счётчику баров, но строгая календарная синхронизация немного ослабляется.

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

Шарп
0,27
Общая доходность
175,86%
Максимальная просадка
43,07%
Всего сделок
77
Доля прибыльных
51,9%
Профит-фактор
1,80

Обоснованный, хорошо документированный механизм (двойной импульс в стиле Antonacci / GEM), NOT клон импульса одной акции и NOT только что провалившаяся отраслевая корзина с фильтром по разбросу — стратегия переключается между THREE структурно некоррелированными макросегментами (SPY/TLT/GLD) и уходит в денежные средства.

Экономика с большим запасом превышает минимальный порог площадки: avg_trade_return_pct 1.765% (порог USEQ 0.05%, предпочтительно >0.10%), profit_factor 1.80, положительное математическое ожидание, комиссии составляют 0% от валовой прибыли — это NOT не случай с преимуществом за счёт комиссий.

Выборка численно достаточна: 77 ротаций примерно за 21 лет (GLD содержит 2004); только длинные позиции, как и предполагает гипотеза (0 коротких позиций); сделки соответствуют механизму ротации между отдельными активами. entry_diag показывает 0 лишь потому, что все инструменты вручную проводятся через _submit_entry_instrument (счётчики базового пути их не отслеживают); наличие 77 сделок и доходности 175% подтверждает, что стратегия сработала.

Три чистых параметра с ограниченным диапазоном (lookback_days, skip_days, abs_threshold) и около 21 лет дневных данных с поправкой на дробление акций позволяют провести полноценный walk-forward-анализ и восполнить недостаточную представленность акций вне крипторынка на площадке EQUITY.

Записи, которые выглядят неправдоподобно, в разреженном отображении daily_returns (например, +49% нояб.-2025) — это выборочные накопленные доходности между датами сделок, а не скачки доходности за один день NOT MTM. Это подтверждено сверкой annualized_volatility 14.3% по 5217 дневным наблюдениям; артефакта нет.

Базовые метрики при параметрах по умолчанию слабы: коэффициент Шарпа 0.27 (интервал CI [-0.05, 0.61] пересекает ~0), max_drawdown 43% — это напрямую CONTRADICTS центральное утверждение гипотезы о «примерно вдвое меньшей просадке».

Альфа отрицательная (-0.0032), а information_ratio -0.24 относительно равновзвешенной корзины 3–ETF (benchmark_meaningful=true): при настройках по умолчанию ротация почти не добавляет ценности по сравнению с равным распределением между тремя активами.

По умолчанию для abs_threshold задано значение 0.0, поэтому «выход в денежные средства» почти никогда не срабатывает — exposure_pct 95%; защитная структура, от которой зависит преимущество, фактически не проверена, пока параметр не настроен.

CAGR 4.76% умеренный; анализ режимов показывает, что преимущество сосредоточено в спокойных терцилях и почти отсутствует в стрессовых.

Анализ

Обоснованный и хорошо документированный механизм (двойной импульс Антоначи / GEM) на недостаточно представленной площадке для акций; это не клон стратегии на одной акции.

Экономика каждой сделки уверенно проходит минимальный порог комиссий USEQ, близкий к нулю (avg_trade_return_pct 2.05%), поэтому причина NOT в комиссиях.

Чувствительность в основном остаётся неизменной, за исключением периода анализа; profit_factor 1.91 и win_rate 0.57 выглядят разумно внутри выборки.

Однозначно OVERFIT: в walk-forward-анализе IS 0.91 -> OOS -0.604; отрицательный результат во всех трёх окнах OOS (-1.44, -0.29, -0.07). Преимущество REVERSES вне выборки, а не просто снижается.

PBO 0.66 > 0.5, а DSR 0.0 / is_significant=false / не пройдена проверка программы FDR (сохраняет 4 из 274): выбранный коэффициент Шарпа неотличим от шума максимума среди N вариантов после 225 испытаний (ожидаемый максимум 1.43 >> выбранный 0.32).

lookback_days — параметр с резким порогом (коэффициент Шарпа 0.79 -> 0.21 на сетке +-20%), поэтому устойчивой области для настройки нет.

Максимальная просадка 34.3% превышает собственный заранее установленный предел гипотезы 18%; целевой уровень по заранее установленному критерию min_oos_sharpe 0.8 не достигнут: -0.60.

Почти идентичные родственные стратегии уже провалились: ротация по относительному импульсу SPY/TLT/GLD (переобучение, заброшена; симуляция 0.84) и стратегия двойного импульса с уходом в денежные средства QQQ/GLD/TLT (заброшена: risk_reject, симуляция 0.78).

Коррекция Бенджамини — Хохберга при q=0.10 среди 274 кандидатов программы оставляет 4. Кандидата, не прошедшего эту проверку, нельзя отличить от собственного шума программы, какими бы хорошими ни выглядели его отдельные статистические показатели.

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

Даже обоснованный в литературе механизм может снова и снова переобучаться на одной и той же ограниченной истории макроданных (это семейство SPY/TLT/GLD уже дважды провалилось). Поэтому для медленной ротации с малой выборкой единственная настоящая проверка вне выборки — бумажная торговля в перспективе, а не подогнанные показатели бэктеста.

После оптимизации аналитик забросил стратегию, признав её явно переобученной: провалены три жёстких критерия достоверности (OOS Sharpe <= 0, is_overfitted=true, PBO 0.66 > 0.5); скорректированный коэффициент Шарпа составил 0.0 и не был значимым при 225 испытаниях; стратегия не прошла проверку на уровне программы FDR; параметр lookback_days оказался пороговым (0.79 -> 0.21), поэтому устойчивой области для дальнейших итераций не осталось.

Ротация по двойному импульсу в стиле Антоначчи: только лонг, по одному активу за раз. Каждый месяц удерживается актив с самым сильным трендом из SPY, TLT или GLD — трёх структурно некоррелированных макросегментов. Если даже лидер не растёт, стратегия переходит в денежные средства, чтобы заполнить недостаточно представленный сегмент рынка акций вне крипторынка.

При параметрах по умолчанию бэктест показал общую доходность 175.86% (CAGR 4.76%) примерно за 21 лет и 77 сделок; коэффициент прибыльности составил 1.80, средняя доходность на сделку — 1.77%. Но коэффициент Шарпа составил лишь 0.27 (CI [-0.05, 0.61]), а максимальная просадка — 43%. После оптимизации результат вне выборки ухудшился ещё сильнее: внутривыборочный коэффициент Шарпа в walk-forward-анализе 0.91 сменился на OOS -0.60 (отрицательное значение во всех трёх окнах: -1.44/-0.29/-0.07).

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