Стратегии
Бэктест стратегии секторного моментума с фильтром дисперсии, долларово-нейтральная торговая стратегия лонг/шорт (US акций США, SPDR секторных ETF, дневные бары, ежемесячная ребалансировка): переход в лидирующие сектора за 6 месяцев и короткие позиции в отстающих ONLY, когда дисперсия доходностей достаточно высока; без позиций, когда сектора движутся вместе.
Итог: Отменено
SectorDispersionGatedCrossSectionalMomentumLS
Сводка по итогам
Фильтр дисперсии, который действительно ограничивает сделки, не спасёт поперечный сигнал секторного моментума, если преимущество на сделку до издержек отрицательно; сначала проверь основную гипотезу на лучших доступных данных, затем добавляй фильтры.
Гипотеза
Реализация
Долларово-нейтральная поперечная ротация по моментуму между 9 секторными ETF SPDR US с длинной историей (XLK, XLF, XLE, XLV, XLI, XLY, XLP, XLU, XLB) на дневных барах USEQ, ребалансировка в первую сессию каждого календарного месяца. Доходность формирования каждого сектора — это доходность за 126 сессий, заканчивающуюся за 10 сессий до этого (окно пропуска, чтобы избежать краткосрочного разворота). Поперечное стандартное отклонение этих доходностей формирования 9 ранжируется по процентилю относительно собственной скользящей истории за 252 сессий; если ранг ниже disp_pct_gate (0.60), сектора движутся вместе, и портфель остаётся вне рынка FLAT весь месяц. Иначе стратегия покупает верхние 3 и продаёт нижние 3 с равным взвешиванием DOLLAR, чтобы номинал обеих сторон совпадал (структурная долларовая нейтральность). Валовая экспозиция намеренно низкая — 0.60x от капитала (0.30x в лонг + 0.30x в шорт), плечо 1.0. Ребалансировка выполняется дельта-заявками на изменение чистой позиции в целых акциях по каждой стороне, поэтому неизменившийся лидер сохраняет позицию, а оборот остаётся низким.
Результаты верификации
Проверь, что базовый класс учитывает переопределённый min_bars_required; иначе переименуй метод в помощник, не затеняющий базовый, и добавь явную фильтрацию (она уже есть в коде).
`min_bars_required(self)` переопределяет метод базового фреймворка; статический анализ указывает, что базовая реализация может использовать собственную реализацию для фильтрации прогрева. Стратегия также самостоятельно фильтрует прогрев (возвращает 0.0 / прокси, пока не накоплена история формирования + пропуска и не выполнено условие min_disp_obs), поэтому поведение безопасно, но проверь, что переопределение действительно применяется, а базовый класс не игнорирует его молча.
Обзор бэктеста
- Шарп
- -0,07
- Общая доходность
- -13,67%
- Максимальная просадка
- 19,56%
- Всего сделок
- 376
- Доля прибыльных
- 43,4%
- Профит-фактор
- 0,87
Реальный поворот в механизме и классе активов после неудачных направленных криптовалютных стратегий; корректная долларово-нейтральная конструкция лонг/шорт с окном пропуска при формировании и фильтром поперечной дисперсии.
Максимально чистая тестовая среда: дневные бары 6968 / около 27 лет истории секторных ETF 9 SPDR на почти безфрикционной площадке USEQ, 376 сделок — убедительная и надёжная выборка. Комиссия — $0, влияние на рынок — всего $1367 (0.0% от валового объёма), так что вопрос только в наличии преимущества.
Фильтр дисперсии теперь действительно действует (disp_pct_gate 0.60), поэтому центральное утверждение гипотезы проверено честно.
Отрицательное ожидание на убедительной выборке: avg_trade_return_pct -0.59% (ниже ZERO, намного меньше порога USEQ около 0.05%), profit_factor 0.873 (<1), total_return -13.67%, Шарп -0.067, Сортино -0.064, ожидание -$48/сделку.
Отрицательный валовый сигнал, а не чрезмерная чувствительность к комиссиям (комиссии около 0 на USEQ); значит, гипотеза о моментуме с поперечной дисперсией опровергнута на данных за десятилетия из самого пригодного для бэктестинга набора фабрики.
Убытки в большинстве календарных лет (примерно 16 из 24) и отрицательный результат в терцилях низкой (-12.6%) и высокой (-8.6%) волатильности; фильтр не помог. Это подтверждает заранее зарегистрированное опасение QA относительно преимущества.
Это итерация 3; предыдущий полный прогон за 27 лет также дал отрицательный валовый результат — выполнено заранее установленное самим разработчиком условие отказа (отрицательный валовый результат при активном фильтре).
Анализ
Фильтр бэктеста: - метрики ненадёжны: несогласованность — знак Шарпа 0.07 не совпадает со знаком total_return -43.90%; Шарп рассчитан по серии mtm_equity_curve, тогда как доходность берётся с кривой капитала. Оценивай по кривой капитала.
История итераций
Проверка не пройдена (leverage_set_but_unused): конфигурация задаёт плечо=2.0, но стратегия не учитывает плечо при расчёте размера позиции. Рассчитывай размер позиции с его учётом — номинал = капитал * доля * плечо / цена (читай self.config.leverage) — или задай плечо=1.0. Сейчас параметр плеча не действует, и бэктест совпадает с 1x.
Сводка по итогам
Аналитик вынес вердикт «отказаться» при проверке бэктеста до оптимизации: при комиссиях USEQ в размере $0 и влиянии на рынок всего 0.0% от валового объёма отрицательное ожидание указывает на отрицательный валовый сигнал (гипотеза опровергнута), а не на чрезмерную чувствительность к комиссиям. Поэтому оптимизацию не проводили и до следующих этапов не дошли.
Долларово-нейтральная поперечная ротация по моментуму за 6 месяцев между 9 секторными ETF US SPDR (ежемесячная ребалансировка, лонг верхних K / шорт нижних K); сделки открываются, только когда поперечная дисперсия доходностей достаточно высока для извлечения спреда.
За решающий бэктест длительностью 27 лет, на 6968 барах и с 376 сделками стратегия показала общую доходность -13.67% (CAGR -57.46%), коэффициенты Шарпа -0.067 и Сортино -0.064, фактор прибыли 0.873, долю прибыльных сделок 43.4% и просадку avg_trade_return_pct от -0.59%. Примерно в 16 из 24 лет стратегия была убыточной, как и в терцилях спокойной (-12.6%) и стрессовой (-8.6%) волатильности.
Stratmill — это инструмент для исследований и бумажной торговли, а не финансовая консультация или брокер. Результаты бэктестов и бумажной торговли являются гипотетическими. Торговля сопряжена с риском убытков.