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

Стратегии

Ротация между активами по относительному импульсу для SPY/TLT/GLD (USEQ, дневные бары, ежемесячная ребалансировка, удержание актива с наивысшим результатом за 6 месяцев, 2 параметра) — бэктест стратегии

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

CrossAssetRelativeMomentumRotationSpyTltGld

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

Эта стратегия точно реализовала ротацию по относительному импульсу между активами в стиле Фабера/Антонначчи, намеренно используя лишь два параметра и десятилетия истории USEQ с поправкой на сплиты, чтобы противостоять переобучению. Сделки с большим запасом покрывали комиссии (avg_trade_return_pct 1.67%), но преимущество было слабым и шумным: базовый бэктест показал отрицательную альфу относительно равновзвешенной корзины, а после оптимизации в 3 фаз walk-forward-анализ выявил is_overfitted=TRUE, PBO превысил 0.5, а дефлированный коэффициент Шарпа снизился до 0.0 — выбранный коэффициент Шарпа не отличался от шума выбора лучшего результата из N вариантов. При отсутствии устойчивой области параметров (lookback_days выявил обрыв), недостаточно мощном резерве вне выборки и почти идентичном уже провалившемся варианте QQQ/GLD/TLT аналитик отказался от стратегии из-за недостаточной устойчивости преимущества, а не из-за чувствительности к комиссиям. От стратегии отказались на этапе анализа после оптимизации, после одной итерации; до проверки риска или бумажной торговли она не дошла.

Гипотеза

Длинная стратегия ROTATION с низкой оборачиваемостью на трёх высоколиквидных, структурно UNCORRELATED ETF US на площадке USEQ: SPY (бета рынка акций США US), TLT (долгосрочные казначейские облигации), GLD (золото). Каждый месяц стратегия ранжирует три актива по общей доходности за последние 6 месяцев и держит 100% капитала в активе с наивысшим рейтингом SINGLE до следующей ребалансировки. Это NOT замена символов/площадки криптовалютных лидеров импульса (которые мета-алгоритм помечает как провалившиеся, L91), NOT……Показать большеСвернуть

Длинная стратегия ROTATION с низкой оборачиваемостью на трёх высоколиквидных, структурно UNCORRELATED ETF US на площадке USEQ: SPY (бета рынка акций США US), TLT (долгосрочные казначейские облигации), GLD (золото). Каждый месяц стратегия ранжирует три актива по общей доходности за последние 6 месяцев и держит 100% капитала в активе с наивысшим рейтингом SINGLE до следующей ребалансировки. Это NOT замена символов/площадки криптовалютных лидеров импульса (которые мета-алгоритм помечает как провалившиеся, L91), NOT добавление фильтра режима/волатильности к направленному сигналу (L92) и NOT одна из USEQ классических аномалий в списке провалов L74 (нет сезонности, возврата к среднему в секторе, тренда dual-TF, пар с коинтеграцией и выбора момента по режиму волатильности). Она также отличается от стратегии переключения риска и защиты с гистерезисом SPY/TLT, находящейся в конвейере: та бинарно переключается между двумя активами по тренду одного актива SMA; эта же ранжирует RANKS три актива по их собственному поперечному импульсу и всегда держит тот рискованный или защитный актив, который объективно лидирует. Механизм — хорошо задокументированный эффект относительной силы между активами (класс Фабера/Антонначчи): лидирующий макроактив обычно сохраняет лидерство на горизонте 1-3 месяцев, а поскольку корреляция трёх активов отрицательная или близка к нулю, при снижении акций ротация естественно переводит позиции в казначейские облигации или золото, не открывая коротких позиций. Намеренно 2 параметра (6 месяцев для окна анализа, количество удерживаемых активов — 1), чтобы бороться с главным фактором гибели стратегий #2 (переобучение, 376 провалов); десятилетия дневной истории USEQ с поправкой на сплиты дают огромный честный период вне выборки.

Точно реализует заданный механизм относительной силы между активами Фабера/Антонначчи: ранжирование по доходности за последние 6 месяцев, удержание единственного лидера, ежемесячная ребалансировка. График ребалансировки привязан ко времени CALENDAR (год*12+месяц вычисляются из собственной временной метки бара с помощью чистой арифметики гражданского календаря), а не к счётчику баров относительно запуска процесса, поэтому он одинаков при перезапусках, бэктестах и воспроизведении бумажной торговли. Все три……Показать большеСвернуть

Точно реализует заданный механизм относительной силы между активами Фабера/Антонначчи: ранжирование по доходности за последние 6 месяцев, удержание единственного лидера, ежемесячная ребалансировка. График ребалансировки привязан ко времени CALENDAR (год*12+месяц вычисляются из собственной временной метки бара с помощью чистой арифметики гражданского календаря), а не к счётчику баров относительно запуска процесса, поэтому он одинаков при перезапусках, бэктестах и воспроизведении бумажной торговли. Все три компонента используют один календарь сессий USEQ, а данные берутся из синхронизированного буфера закрытия ONE (deque строк с одинаковой временной меткой), поэтому индексные окна анализа не могут рассинхронизироваться; барьер выравнивания по времени в базовом шаблоне уже откладывает обработку, пока все три компонента не передадут бар сессии. Размер позиции рассчитывается относительно капитала через get_account_equity() и округляется вниз до целых акций (точность размера USEQ — 0); убыточные позиции закрываются до покупки лидера, чтобы высвободить средства для покупки, а позиция в неизменившемся лидере не трогается, если разница в количестве акций не превышает $250, что сохраняет низкую оборачиваемость, необходимую гипотезе. Плечо остаётся 1.0, стратегия строго длинная (ордер SELL выставляется только против уже открытой длинной позиции), поэтому маржа Reg-T для USEQ не используется. calculate_signal возвращает непрерывно меняющуюся дневную величину — избыточный импульс лидера относительно среднего по корзине; она пересчитывается в каждую сессию, хотя сделка совершается ежемесячно. Площадка оставлена USEQ согласно гипотезе: все три инструмента — ETF US, и только USEQ торгует ими.

не прошёл дефлированный коэффициент Шарпа: DSR=0.0, ожидаемый максимум=2.75 на 225 испытаниях — выбранный коэффициент Шарпа (0.318, OOS 0.180) неотличим от шума, возникающего при выборе лучшего результата из N вариантов; ситуацию усугубляют два неустранимых провала жёстких порогов допуска (проверка скользящим вперёд окном is_overfitted=TRUE при IS 1.159 -> OOS 0.180, а также PBO 0.5472 > 0.5). Коэффициент Шарпа CI [-0.016, 0.654] охватывает ноль, is_significant=false, и кандидат не проходит проверку на уровне……Показать большеСвернуть

не прошёл дефлированный коэффициент Шарпа: DSR=0.0, ожидаемый максимум=2.75 на 225 испытаниях — выбранный коэффициент Шарпа (0.318, OOS 0.180) неотличим от шума, возникающего при выборе лучшего результата из N вариантов; ситуацию усугубляют два неустранимых провала жёстких порогов допуска (проверка скользящим вперёд окном is_overfitted=TRUE при IS 1.159 -> OOS 0.180, а также PBO 0.5472 > 0.5). Коэффициент Шарпа CI [-0.016, 0.654] охватывает ноль, is_significant=false, и кандидат не проходит проверку на уровне программы FDR (сохраняет 4 из 249). Это провал устойчивости и преимущества стратегии, а не хрупкости к комиссиям (NOT avg_trade_return_pct 1.67% превышает порог USEQ) — сделки корректно реализуют механизм относительного импульса между классами активов, поэтому проверка справедлива, а сама предпосылка просто слаба для этой вселенной SPY/TLT/GLD. Нет устойчивой области параметров, к которой можно было бы приблизиться настройкой: lookback_days — резкий обрыв, весь анализ чувствительности даёт максимум около 0.49 по Шарпу, а oos_vault составляет UNDERPOWERED (около 21 сделок против необходимых 100), поскольку периодичность ежемесячной ротации структурно слишком медленна для проверки на доступной истории — 2-й проход оптимизации лишь подогнал бы модель под шум. Практически идентичная родственная стратегия ротации двойного импульса QQQ/GLD/TLT (сходство 0.83) уже провалилась. Характер провала: переобучение / отсутствие обобщения (ротация по импульсу между классами активов ETF).

Реализация

Длинная ротация по относительному импульсу между активами на трёх некоррелированных ETF USEQ (SPY — бета акций, TLT — долгосрочные казначейские облигации, GLD — золото) с барами длиной 1-DAY сессий. В первую сессию каждого календарного месяца активы ранжируются по общей доходности за последние 6 месяцев (126 сессий), а 97% капитала вкладывается в актив с наивысшим рейтингом и не меняется до начала следующего месяца. Оборачиваемость составляет несколько сделок с закрытием позиции в год, поэтому спред и рыночное воздействие USEQ около 0.02-0.05% за сделку с закрытием позиции незначительны по сравнению с многопроцентной доходностью удержания за месяц. Всего два параметра преимущества: lookback_days, top_n. Коротких позиций нет; при снижении акций ранжирование естественно переводит портфель в казначейские облигации или золото.

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

Изменения не требуются. При желании можно переименовать, чтобы избежать предупреждения линтера, но переопределение намеренное и корректное.

min_bars_required(self) перекрывает метод базового фреймворка. Статический анализ отметил это, но здесь это проблема FALSE-POSITIVE: базовый шаблон явно вызывает self.min_bars_required() из _maybe_process_primary() (base_template.py, строка около 479), поэтому переопределение IS учитывается как условие прогрева. Кроме того, у calculate_signal есть собственная проверка: _trailing_returns возвращает None, пока не накопится lookback_days+1 согласованных строк, поэтому сигналы в любом случае не вычисляются при недостаточной истории. Функционального дефекта нет.

Ротация с низкой оборачиваемостью: в тестовой среде всего 17 сделок примерно за 1650 дней, поскольку стратегия торгует только при смене лидера (по замыслу пропускаются ребалансировки, когда лидер не меняется или разница меньше $250). За всю историю USEQ доступный период торговли ограничен GLD (данные примерно с 2004) и TLT (примерно до 2002), поэтому честная выборка охватывает около 21 лет ежемесячных возможностей для ребалансировки и, вероятно, около 40-90 фактических сделок с закрытием позиции — для ротационного портфеля это измеримо, но маловато. Аналитику следует подтвердить, что число сделок за всю историю достаточно для устойчивого walk-forward-анализа. Механизм — хорошо задокументированный эффект относительной силы между активами Фабера/Антонначчи, а не перенастройка провалившегося семейства криптовалют/USEQ. Экономика здорова (комиссии USEQ равны нулю, avg_trade_return_pct 3.56%, воздействие рынка незначительно по сравнению с многопроцентным месячным удержанием).

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

Шарп
0,24
Общая доходность
137,16%
Максимальная просадка
39,65%
Всего сделок
77
Доля прибыльных
48,1%
Профит-фактор
1,60

Сделки реализуют заявленный механизм: 77 длинных сделок с закрытием позиции, 0 коротких позиций, ежемесячная периодичность, переход в самый сильный из SPY/TLT/GLD. Такая картина соответствует гипотезе относительной силы между активами Фабера/Антонначчи.

Для ротационного портфеля с низкой оборачиваемостью выборка достаточная и надёжная: 77 сделок примерно за 21 лет доступной истории торгов (период ограничен GLD, начиная с 2004), metrics_reliable=true. Достаточно для walk-forward-анализа.

Издержки покрываются с большим запасом: avg_trade_return_pct 1.32% >> минимальный уровень USEQ ~0.05%; только total_impact — $3.5 тыс., комиссия 0. Это NOT случай, где преимущество зависит от комиссий.

Положительное преимущество до издержек (PF 1.60, total_return +137%, recovery_factor 3.85) и намеренно крошечное пространство поиска с 2 параметрами (lookback_days, top_n), снижающее риск переобучения; десятилетия истории USEQ с поправкой на сплиты дают честный запас OOS.

Легитимное семейство макроротации, явно отличающееся от провалившихся клонов импульса отдельных акций (L90/L82) и списка провалов классических аномалий USEQ (L74/L75).

NEGATIVE альфа (-0.68%) и NEGATIVE информационный коэффициент (-0.284) относительно равновзвешенной корзины SPY/TLT/GLD (benchmark_meaningful=true): импульс SELECTION уступил простому равному распределению между тремя активами с поправкой на риск. Именно это должна улучшить оптимизация: если ни одно сочетание окна анализа/top_n не даёт положительной альфы относительно равного распределения, сигнал выбора не добавляет ценности.

Коэффициент Шарпа 0.241 с интервалом CI [-0.097, 0.592], охватывающим ноль; CAGR всего 4.16% примерно за 21 лет — преимущество слабое и шумное; базовый бэктест близок к потолку.

Максимальная просадка 39.6% (увеличилась до 72% после CI) и убыточные годы -30% (шок процентных ставок 2022), -18.8% (2020), -18% (2012) противоречат тезису о том, что во время снижения акций ротация занимает защитные позиции: концентрация в одном активе 100% привела к резким сменам позиций, а не к защите.

Анализ

Механизм реализован точно: 85 длинных сделок с закрытием позиции, 0 коротких позиций, ежемесячная периодичность, переход в самый сильный из SPY/TLT/GLD; сделки соответствуют гипотезе относительной силы между активами Фабера/Антонначчи.

avg_trade_return_pct 1.67% с большим запасом превышает минимальный уровень комиссий USEQ (~0.05%), поэтому это NOT провал из-за чувствительности к издержкам: проблема в устойчивости преимущества, а не в комиссиях.

Намеренно крошечное пространство поиска с 2 параметрами и десятилетия дневной истории с поправкой на сплиты дают честный запас для OOS; profit_factor 1.81 и win_rate 0.494 выглядят достойно на верхнем уровне.

Результат на отложенной выборке формально положительный (коэффициент Шарпа 0.036 на 22 сделках), и consistent_with_oos=true — катастрофического ухудшения вперёд нет.

Не пройдены два жёстких критерия UNWAIVABLE: walk-forward-анализ is_overfitted=TRUE (средний коэффициент Шарпа IS изменился на OOS 0.180 с 1.159, окна 0.0 / +0.75 / -0.21) и PBO 0.5472 > 0.5 — скорее всего, выбор параметров привёл к переобучению.

Проверка устойчивости подтверждает, что выбранный коэффициент Шарпа — шум выбора лучшего из N вариантов: deflated_sharpe 0.0 << 0.95, is_significant=false, коэффициент Шарпа CI [-0.016, 0.654] охватывает ноль, ожидаемый максимальный коэффициент Шарпа 2.75 за 225 испытаний намного выше реализованного 0.318, и стратегия NOT проходит проверку на уровне программы FDR (сохраняет 4 из 249, candidate_p 1.0).

Оптимизированный коэффициент Шарпа OOS 0.180 намного ниже любого порога для продвижения (и ниже порога отказа 0.3); общий коэффициент Шарпа 0.318, коэффициент Сортино 0.35, max_drawdown 28% (rate_shock_2022 -27.7% / 28% DD), восстановление слабое.

Для lookback_days отмечена чувствительность параметра CLIFF (результат меняется от 0.31 до 0.49 без устойчивого плато), а лучший результат всего перебора — около 0.49 по коэффициенту Шарпа: устойчивой области параметров для настройки нет.

oos_vault выявил UNDERPOWERED (ожидается около 21 сделок против необходимых 100): механизм структурно слишком медленен для проверки на доступной истории, поэтому второй проход оптимизации 2 лишь подогнал бы кривую под шум.

Похожая стратегия в хранилище результатов (QQQ/GLD/TLT, защитная ротация по двойному импульсу, сходство 0.83) уже провалилась risk_reject на этапе 44% DD — это семейство ротации ETF между активами не даёт преимущества, пригодного для внедрения.

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

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

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

Аналитик отказался от стратегии после оптимизации: не пройдены два обязательных жёстких критерия (walk-forward-анализ is_overfitted=TRUE, коэффициент Шарпа IS обрушился с 1.159 до OOS 0.180, и PBO 0.5472 > 0.5); дефлированный коэффициент Шарпа составил 0.0 при ожидаемом максимуме 2.75 за 225 испытаний, is_significant=false, и стратегия не прошла проверку на уровне программы FDR.

Длинная ежемесячная ротация между активами по относительному импульсу с 2 параметрами на USEQ: ранжирует SPY, TLT и GLD по доходности за последние 6 месяцев и держит 100% капитала в активе с наивысшим результатом. Бэктест стратегии.

Базовый бэктест дал результат +137% (CAGR 4.16%) примерно за 21 торговых лет и 77 сделок, но коэффициент Шарпа был слабым: 0.24 (CI [-0.10, 0.59]), максимальная просадка 39.6%, а альфа (-0.68%) и информационный коэффициент (-0.284) относительно равновзвешенной корзины SPY/TLT/GLD отрицательны. После оптимизации коэффициент Шарпа вырос до 0.318 (доходность +234%, PF 1.81, DD 28%), но коэффициент Шарпа OOS в walk-forward-анализе составил лишь 0.18.

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