Strasmore Research
Deep Dives · Matt ConnorBy Matt Connor ·

ETF relative strength: стратегія та атрибуція альфи

Дізнайтеся як працює ранжування ETF за відносною силою до SPY. Аналізуємо вплив атрибуції на інтерсепт та реальну альфу після врахування ризикових факторів у моделі.

ETF relative strength ранжує невеликий кошик фондів за тим, наскільки дохідність кожного з них перевищує або не досягає показників бенчмарку, після чого утримує лідерів рейтингу. Правило, яке ми розбираємо в цій статті, складається з одного рядка: кожні 20 сесій ранжувати всесвіт активів за 20-сесійною дохідністю мінус дохідність SPY за той самий період, а потім утримувати два найкращі активи в межах перекривних «рукавів» (overlapping sleeves). Атрибуція — це етап, на якому подібна стратегія проходить перевірку. В одному з опублікованих тестів цієї моделі інтерсепт, який могли б видати за альфу, становив 0,38% річних після того, як у регресію було включено фактори ризику, що їх стратегія фактично купувала.

Як працює правило ETF relative strength

Relative strength — це порівняння, а не дохідність. Фонд, що зріс на 3% за 20 сесій, тоді як бенчмарк зріс на 5%, має від’ємну відносну силу. Фонд, що впав на 1%, тоді як бенчмарк впав на 4%, має додатну відносну силу. Показник, за яким проводиться ранжування, — це надлишкова дохідність (excess return): відсоткова зміна ціни фонду за фіксований період мінус відсоткова зміна бенчмарку за той самий період, розрахована сесія за сесією.

На цьому етапі виникають два вибори. Період ретроспективного аналізу (lookback) визначає, яку глибину історії бачить рейтинг; 20 сесій — це приблизно один торговельний місяць. Період утримання (holding period) визначає, як довго лідер залишається в портфелі. Коли ці два параметри збігаються, весь портфель оновлюється в одну дату на місяць, і результат повністю залежить від того, в який день ви почали. Перекривні «рукави» усувають цю залежність: ви запускаєте кілька копій одного правила, зміщених на кілька сесій, розподіляєте капітал між ними, і зведений портфель утримує динамічний мікс, а не ставку, що залежить від однієї дати старту.

Нижче наведено панель, де крок ранжування застосовано до всесвіту з дев’яти ETF (широкий ринок, сектори, міжнародні активи та метали) з використанням останніх 21 денних ціни закриття, щоб дохідність охоплювала рівно 20 сесій.

Запит20-денна дохідність відносно SPY у всесвіті з дев'яти ETF
Точний SQL-код для кожного числа
WITH bounds AS
(
    SELECT
        min(d) AS first_day,
        max(d) AS last_day
    FROM
    (
        SELECT date AS d
        FROM global_markets.stocks_daily_aggs
        WHERE ticker = 'SPY'
          AND date >= today() - 120
        GROUP BY d
        ORDER BY d DESC
        LIMIT 21
    )
)
SELECT
    sleeve.ticker                            AS etf,
    sleeve.ret_pct                           AS return_pct,
    round(sleeve.ret_pct - bench.ret_pct, 2) AS excess_vs_spy_pct
FROM
(
    SELECT
        ticker,
        round((argMax(toFloat64(close), date) / argMin(toFloat64(close), date) - 1) * 100, 2) AS ret_pct
    FROM global_markets.stocks_daily_aggs
    WHERE ticker IN ('QQQ', 'IWM', 'XLK', 'XLE', 'XLF', 'XLV', 'XLU', 'GLD', 'EFA')
      AND date >= (SELECT first_day FROM bounds)
      AND date <= (SELECT last_day FROM bounds)
    GROUP BY ticker
) AS sleeve
CROSS JOIN
(
    SELECT
        round((argMax(toFloat64(close), date) / argMin(toFloat64(close), date) - 1) * 100, 2) AS ret_pct
    FROM global_markets.stocks_daily_aggs
    WHERE ticker = 'SPY'
      AND date >= (SELECT first_day FROM bounds)
      AND date <= (SELECT last_day FROM bounds)
) AS bench
ORDER BY excess_vs_spy_pct DESC
Run this yourself

На вершині рейтингу GLD показав 8.69% за ці 20 сесій, що на 6.34 пунктів краще за SPY. У кінці списку XLU опинився на рівні -5.81 пунктів. Кожен рядок відображає суть ідеї у двох стовпчиках: що зробив фонд і що залишається після вирахування руху SPY за той самий період. Відстань між двома стовпчиками однакова для всіх 9 рядків, оскільки кожен фонд порівнюється з одним бенчмарком за один період.

Що насправді вимірює атрибуція альфи

Атрибуція альфи — це регресія. Ви вибудовуєте ряд дохідності стратегії відносно одного або кількох рядів дохідності бенчмарків і проводите пряму лінію через хмару точок. Нахил (slope) для кожного бенчмарку — це експозиція: наскільки стратегія рухається синхронно з цим активом. Інтерсепт — це те, що залишається після врахування цих експозицій, і саме цей залишок називають альфою. R-квадрат — третій показник, частка варіативності стратегії, яку пояснюють бенчмарки; він варіюється від 0% (бенчмарки нічого не пояснюють) до 100% (стратегія — це бенчмарки плюс константа).

Якщо застосувати регресію стратегії ротації до одного бенчмарку широкого ринку, вона зазвичай виглядає оригінальною. В опублікованій атрибуції правила такої форми, оприлюдненій у серпні 2026 року та протестованій на детермінованих синтетичних цінах, такий однофакторний підхід дав R-квадрат 14,0%. Шість сьомих варіативності стратегії залишилися непоясненими, що на папері виглядає як оригінальність. Заміна на проксі-активи, що відповідають експозиціям, які стратегія фактично утримувала (momentum-нахил та секторна концентрація, властива портфелю з двох назв), підвищила R-квадрат до 63,6% і знизила інтерсепт до 0,38% річних. Той самий ряд дохідності, той самий код. Інший набір для порівняння. Стратегія просто «орендувала» відомі фактори ризику.

Це дослідження генерує власні ціни з фіксованого початкового значення, тому читач без доступу до постачальника даних може відтворити кожну цифру. Крім того, проєкту лише кілька днів, а такі розробки змінюються щотижня. Зафіксуйте точний коміт або тег релізу, на якому ви проводили тест, перш ніж цитувати цифри: показники атрибуції змінюються щоразу, коли змінюються проксі-фактори або вікно вибірки. Наша нотатка про інструментарій для відтворюваного бектесту розглядає цю саму звичку з іншого боку.

Урок залишається актуальним і без термінології факторних моделей. Бенчмарк, відносно якого ви проводите регресію, визначає, скільки альфи у вас «з’являється», тому обирайте його до того, як подивитеся на інтерсепт, і запишіть, чому саме це порівняння є коректним. Набір для порівняння, обраний після отримання результату, вимірює лише вдалість вибору порівняння.

Яка частина ETF вже є бенчмарком

Вам не потрібна повна факторна модель, щоб побачити проблему. Візьміть денну дохідність фонду, вибудуйте її відносно денної дохідності SPY за ті самі сесії та піднесіть кореляцію до квадрата. Це дасть частку денної варіативності фонду, яку вже пояснює один широкий ринковий бенчмарк.

ЗапитЧастка щоденної варіації кожного фонду, що пояснюється SPY, за останні два роки
Точний SQL-код для кожного числа
WITH daily AS
(
    SELECT
        ticker,
        date,
        toFloat64(close) AS px,
        lagInFrame(toFloat64(close)) OVER (PARTITION BY ticker ORDER BY date ROWS BETWEEN 1 PRECEDING AND CURRENT ROW) AS prev_px
    FROM global_markets.stocks_daily_aggs
    WHERE ticker IN ('SPY', 'QQQ', 'IWM', 'XLK', 'XLE', 'XLF', 'XLV', 'XLU', 'GLD', 'EFA')
      AND date >= today() - 760
)
SELECT
    sleeve.ticker                                                AS etf,
    round(pow(corr(sleeve.fund_ret, bench.spy_ret), 2) * 100, 1) AS r_squared_vs_spy_pct
FROM
(
    SELECT ticker, date, px / prev_px - 1 AS fund_ret
    FROM daily
    WHERE prev_px > 0
      AND ticker != 'SPY'
) AS sleeve
INNER JOIN
(
    SELECT date, px / prev_px - 1 AS spy_ret
    FROM daily
    WHERE prev_px > 0
      AND ticker = 'SPY'
) AS bench USING (date)
GROUP BY sleeve.ticker
ORDER BY r_squared_vs_spy_pct DESC
Run this yourself

За останні два роки QQQ мав найвищий R-квадрат серед усіх фондів у цьому всесвіті на рівні 90.3%, а GLD — найнижчий на рівні 3.1%. «Рукав», зібраний з активів верхньої частини цього графіка, є майже повторенням бенчмарку з іншими вагами, і будь-який інтерсепт, виміряний відносно чогось іншого, ніж бенчмарк, непомітно поглине цю різницю. Нижня частина — це те місце, де ротація може додати потік дохідності, якого ще немає на широкому ринку, але це також місце, де портфель із двох назв перестає бути диверсифікованим.

Як часто змінюється фонд-лідер

Правило ранжування має сенс лише тоді, коли фонди демонструють різні результати. На панелі нижче вимірюється дохідність кожного фонду за календарний місяць відносно SPY за той самий місяць, після чого обираються найсильніший і найслабший «рукави» для кожного місяця.

ЗапитНайсильніші та найслабші сектори відносно SPY за календарний місяць
Точний SQL-код для кожного числа
WITH monthly AS
(
    SELECT
        toStartOfMonth(date)           AS m,
        ticker,
        argMin(toFloat64(close), date) AS first_close,
        argMax(toFloat64(close), date) AS last_close
    FROM global_markets.stocks_daily_aggs
    WHERE ticker IN ('SPY', 'QQQ', 'IWM', 'XLK', 'XLE', 'XLF', 'XLV', 'XLU', 'GLD', 'EFA')
      AND date >= toStartOfMonth(today() - 400)
      AND date <  toStartOfMonth(today())
    GROUP BY m, ticker
)
SELECT
    formatDateTime(x.m, '%Y-%m')   AS month,
    argMax(x.ticker, x.excess_pct) AS leading_etf,
    round(max(x.excess_pct), 2)    AS leader_excess_pct,
    round(min(x.excess_pct), 2)    AS laggard_excess_pct
FROM
(
    SELECT
        sleeve.m      AS m,
        sleeve.ticker AS ticker,
        (sleeve.last_close / sleeve.first_close - 1) * 100
          - (bench.spy_last / bench.spy_first - 1) * 100 AS excess_pct
    FROM monthly AS sleeve
    INNER JOIN
    (
        SELECT
            m,
            first_close AS spy_first,
            last_close  AS spy_last
        FROM monthly
        WHERE ticker = 'SPY'
    ) AS bench USING (m)
    WHERE sleeve.ticker != 'SPY'
) AS x
GROUP BY x.m
ORDER BY x.m
Run this yourself

За 13 повних місяців серія починається в 2025-07 з XLK на чолі. У найостаннішому повному місяці, 2026-07, найсильнішим «рукавом» був XLE з показником 12.59 пунктів відносно SPY, тоді як найслабший становив -5.7. Відстань між двома лініями — це дисперсія, на якій «годується» правило ранжування. Місяці, де лінії зближуються, — це місяці, коли сортування є майже довільним, і правило, яке торгує на кожному ранжуванні, сплачує комісійні за оборот у всіх таких випадках. Межі місяців тут потребують окремої уваги; як вимірюється місячна дохідність роз’яснює ці умовності.

Чи є концентрація на двох назвах справжнім ризиком?

Волатильність — це найпростіша версія цього питання. Ця панель ріалізує варіативність денної дохідності кожного фонду за ті самі два роки та використовує SPY як еталон, поряд із найгіршою окремою сесією кожного з них.

ЗапитРічна волатильність та найгірша окрема сесія за останні два роки
Точний SQL-код для кожного числа
WITH daily AS
(
    SELECT
        ticker,
        date,
        toFloat64(close) AS px,
        lagInFrame(toFloat64(close)) OVER (PARTITION BY ticker ORDER BY date ROWS BETWEEN 1 PRECEDING AND CURRENT ROW) AS prev_px
    FROM global_markets.stocks_daily_aggs
    WHERE ticker IN ('SPY', 'QQQ', 'IWM', 'XLK', 'XLE', 'XLF', 'XLV', 'XLU', 'GLD', 'EFA')
      AND date >= today() - 760
)
SELECT
    ticker                                                   AS etf,
    round(stddevSamp(px / prev_px - 1) * sqrt(252) * 100, 1) AS annual_vol_pct,
    round(min(px / prev_px - 1) * 100, 2)                    AS worst_day_pct
FROM daily
WHERE prev_px > 0
GROUP BY ticker
ORDER BY annual_vol_pct DESC
Run this yourself

XLK опинився на широкому краї з 27.7% річних, з найгіршою окремою сесією -6.82%, а XLU — на вузькому краї з 15.8%. Правило, що утримує дві назви одночасно, черпає результати з цього діапазону без усереднення, і глибші просадки, що супроводжують «широкий край», в атрибуції відображаються як експозиція, а не як майстерність. Нотатка про аномалію низької волатильності охоплює довгострокові результати на вузькому краї того самого графіка.

Чотири перевірки для вашого бектесту ротації

  1. Витік сигналу в той самий день. Якщо 20-сесійний рейтинг розраховується за ціною закриття сесії, а виконання угоди записується за тією самою ціною, тест торгує на інформації, якої він не мав у момент угоди. Ранжуйте за даними на кінець сесії t, виконуйте угоду на сесії t плюс один і порівняйте дві версії: розрив між ними — це розмір витоку. Look-ahead bias показує, наскільки великим стає цей розрив.
  2. Виживання у списку фондів. Всесвіт активів, зібраний із фондів, що існують сьогодні, виключає всі фонди, які закрилися або злилися, а закриття частіше стаються серед продуктів із найгіршими показниками. Survivorship bias застосовується до списку ETF так само, як і до списку акцій.
  3. Бенчмарк, обраний заздалегідь. Запишіть набір для порівняння до першої регресії, включаючи проксі-активи для експозицій, які, як ви очікуєте, утримуватиме правило. Інтерсепт має значення лише відносно бенчмарку, на який ви погодилися заздалегідь.
  4. Концентрація, виміряна безпосередньо. Запустіть те саме ранжування, утримуючи дві найкращі назви, потім чотири, потім рівноважний кошик усього всесвіту. Якщо більша частина заявленої переваги припадає на версію з двома назвами, то концентрація і є позицією, а ранжування — лише спосіб вибору того, яку концентрацію взяти.

FAQ

Що таке ETF relative strength?

Relative strength — це дохідність фонду за фіксований період ретроспективного аналізу мінус дохідність бенчмарку за той самий період. Ранжування за цим показником ставить на перші місця фонди, які випередили бенчмарк, незалежно від того, чи була їхня абсолютна дохідність додатною.

Що таке атрибуція альфи?

Це регресія дохідності стратегії відносно одного або кількох рядів дохідності бенчмарків. Нахили (slopes) вимірюють експозиції, які несе стратегія, а інтерсепт — це дохідність, що залишається після врахування цих експозицій. Цей інтерсепт і є показником, який зазвичай звітують як альфу.

Чи означає високий R-квадрат, що стратегія погана?

Ні. Високий R-квадрат означає, що бенчмарки пояснюють більшу частину варіативності стратегії, що є твердженням про перекриття, а не про якість. Змінюється інтерсепт: експозиції, які тепер бачить регресія, перестають вважатися оригінальністю.

Чому краще утримувати перекривні «рукави», аніж один портфель?

Один портфель, що ребалансується кожні 20 сесій, робить результат залежним від дати старту. Запуск кількох зміщених копій одного правила усереднює цей вибір і розподіляє оборот протягом місяця, замість того щоб концентрувати його на одній даті.


Кожна панель тут постачається з SQL-кодом, який її створив. Відкрийте будь-яку, підставте власний список фондів і запустіть ранжування на терміналі Strasmore, щоб побачити, як змінюється черговість.

#etfs#momentum#quant#factor models#attribution