Relative strength ETF e calcolo alpha attribution
La relative strength degli ETF classifica i fondi sul rendimento a venti sedute rispetto a SPY. Scopri come l'alpha attribution modifica l'intercetta quando il benchmark si adatta.
Come funziona la regola di relative strength degli ETF
La relative strength è un confronto, non un rendimento. Un fondo che guadagna il 3% in 20 sedute mentre il benchmark sale del 5% ha una relative strength negativa. Un fondo che perde l'1% mentre il benchmark scende del 4% ha una relative strength positiva. Il valore su cui si basa il ranking è l'excess return: la variazione percentuale del fondo su una finestra temporale fissa, meno la variazione percentuale del benchmark sulla stessa finestra, misurata seduta per seduta.
A questo si aggiungono due scelte. Il lookback definisce quanta storia osserva il ranking; 20 sedute equivalgono approssimativamente a un mese di trading. L'holding period stabilisce per quanto tempo un titolo vincente rimane in portafoglio. Quando i due periodi coincidono, l'intero portafoglio viene ruotato in un'unica data al mese e il risultato dipende interamente dalla data di avvio scelta. Le "sleeves" sovrapposte eliminano questa dipendenza: si eseguono diverse copie della stessa regola scaglionate di alcune sedute, si alloca una frazione del capitale su ciascuna e il portafoglio aggregato mantiene un mix dinamico anziché una scommessa legata a una singola data di inizio.
Il pannello sottostante esegue la fase di ranking su un universo di nove ETF tra broad-market, settoriali, internazionali e metalli, utilizzando le ultime 21 chiusure giornaliere in modo che il rendimento copra esattamente 20 sedute.
L'esatto SQL dietro ogni numero
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 DESCIn cima al ranking, GLD ha reso 8.69% in quelle 20 sedute, 6.34 punti rispetto a SPY. In fondo, XLU si è attestato a -5.81 punti. Ogni riga racchiude l'intero concetto in due barre: la performance del fondo e ciò che resta una volta sottratto il movimento di SPY sulla stessa finestra. La distanza tra le due barre è identica in tutte le 9 righe, poiché ogni fondo è misurato contro un unico benchmark su una singola finestra.
Cosa misura realmente l'attribuzione dell'alpha
L'attribuzione dell'alpha è una regressione. Si allineano le serie storiche dei rendimenti della strategia contro una o più serie di rendimenti di benchmark e si traccia una retta attraverso la nuvola di punti. La pendenza su ciascun benchmark rappresenta un'esposizione: quanto la strategia si muove in sincronia con quell'asset. L'intercetta è ciò che rimane dopo aver remunerato tali esposizioni, e quel residuo è ciò che viene definito alpha. L'R quadro è il terzo valore, ovvero la quota di variazione della strategia spiegata dai benchmark, che va dallo 0% (i benchmark non spiegano nulla) al 100% (la strategia è pari ai benchmark più una costante).
Se si esegue la regressione di una regola di rotazione contro un singolo indice broad-market, solitamente appare originale. Nell'attribuzione pubblicata di una regola di questo tipo, resa open-source nell'agosto 2026 e testata su prezzi sintetici deterministici, quel fit a singolo benchmark ha prodotto un R quadro del 14,0%. Sei settimi della variazione della strategia non erano spiegati, il che appare sulla carta come originalità. Sostituendo i benchmark con proxy delle esposizioni effettivamente detenute dalla regola, ovvero un tilt momentum e la concentrazione settoriale tipica di un portafoglio a due titoli, l'R quadro è salito al 63,6% e l'intercetta è scesa allo 0,38% annuo. Stessa serie di rendimenti e stesso codice. Un set di confronto diverso. La strategia stava semplicemente "affittando" esposizioni ben note.
Quello studio genera i propri prezzi da un seed fisso, quindi un lettore senza un fornitore di dati può riprodurre ogni cifra pubblicata. Inoltre, è un progetto che ha solo pochi giorni al momento della stesura e un lavoro così giovane cambia settimanalmente. Si indichi l'esatto commit o la release taggata utilizzata prima di citare un numero: le cifre di attribuzione cambiano ogni volta che variano i proxy dei fattori o la finestra temporale del campione. La nostra nota su strumenti di backtest riproducibili copre la stessa abitudine vista dall'altra prospettiva.
La lezione rimane valida anche senza il vocabolario dei modelli fattoriali. Il benchmark contro cui si esegue la regressione determina quanto alpha si sembra avere; quindi, lo si scelga prima di guardare l'intercetta e si metta per iscritto perché sia il confronto corretto. Un set di confronto scelto dopo aver visto il risultato misura solo la scelta del confronto stesso.
Quanto di un ETF è già il benchmark
Non serve un modello fattoriale completo per vedere il problema in arrivo. Si prendano i rendimenti giornalieri di un fondo, li si allinei contro i rendimenti giornalieri di SPY nelle stesse sedute e si elevi al quadrato la correlazione. Questo fornisce la quota di variazione giornaliera del fondo già spiegata da un singolo benchmark broad-market.
L'esatto SQL dietro ogni numero
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 DESCNegli ultimi due anni, QQQ ha registrato l'R quadro a singolo benchmark più alto in questo universo al 90.3%, e GLD il più basso al 3.1%. Una sleeve composta dalla parte alta di quel grafico è quasi una riproposizione del benchmark con una ponderazione diversa, e qualsiasi intercetta misurata contro qualcosa che non sia il benchmark assorbirà silenziosamente la differenza. La parte bassa è dove una rotazione può aggiungere un flusso di rendimento che il mercato ampio non contiene già, ed è anche dove un portafoglio a due titoli smette di assomigliare a un portafoglio diversificato.
Quanto spesso cambia il fondo leader
Una regola di ranking ha qualcosa da ordinare solo quando i fondi divergono. Il pannello sottostante misura il rendimento mensile di ogni fondo rispetto a quello di SPY nello stesso mese, mantenendo poi la sleeve più forte e quella più debole per ogni mese.
L'esatto SQL dietro ogni numero
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.mSu 13 mesi completi, la serie inizia in 2025-07 con XLK in testa. Nel mese completo più recente, 2026-07, la sleeve più forte è stata XLE al 12.59 punti rispetto a SPY, mentre la più debole ha misurato -5.7. La distanza tra le due linee è la dispersione di cui si nutre una regola di ranking. I mesi in cui le linee si avvicinano sono mesi in cui l'ordinamento è quasi arbitrario, e una regola che opera su ogni ranking paga il turnover in tutti questi casi. I confini mensili meritano attenzione: come vengono misurati i rendimenti mensili illustra le convenzioni.
La concentrazione su due titoli è il vero rischio?
La volatilità è la versione più semplice di questa domanda. Questo pannello annualizza la variazione dei rendimenti giornalieri di ogni fondo negli stessi due anni e riporta SPY come barra di riferimento, insieme alla peggiore singola seduta registrata da ciascuno.
L'esatto SQL dietro ogni numero
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 DESCXLK si è collocato nella parte alta con 27.7% annualizzato, con una peggiore seduta singola del -6.82%, e XLU nella parte bassa con 15.8%. Una regola che detiene due titoli alla volta attinge da questo intervallo senza mediarlo, e i drawdown più profondi che derivano dalla parte alta finiscono nell'attribuzione come esposizione piuttosto che come abilità. La nota sull'anomalia della bassa volatilità copre lo storico di lungo periodo della parte bassa dello stesso grafico.
Quattro controlli per il proprio backtest di rotazione
- Leakage del segnale intraday. Se il ranking a 20 sedute viene calcolato sulla chiusura di una seduta e l'esecuzione avviene a quella stessa chiusura, il test opera su informazioni non ancora disponibili al momento dell'operazione. Si esegua il ranking sui dati fino alla seduta t, si esegua l'operazione alla seduta t più uno e si confrontino le due versioni: il divario tra esse è l'entità del leak. Look-ahead bias mostra quanto diventa grande quel divario.
- Survivorship nell'elenco dei fondi. Un universo composto solo dai fondi esistenti oggi esclude ogni fondo che ha chiuso o si è fuso nel tempo, e le chiusure si concentrano nei prodotti che hanno performato peggio. Survivorship bias si applica a un elenco di ETF esattamente come a un elenco di azioni.
- Benchmark scelto in anticipo. Si scriva il set di confronto prima della prima regressione, includendo proxy per le esposizioni che si prevede la regola deterrà. L'intercetta ha significato solo contro un benchmark a cui ci si è impegnati in anticipo.
- Concentrazione misurata direttamente. Si esegua lo stesso ranking mantenendo i primi due titoli, poi i primi quattro, poi un peso uguale dell'intero universo. Se la maggior parte del vantaggio riportato risiede nella versione a due titoli, la concentrazione è la posizione, e il ranking è solo un modo per scegliere quale concentrazione assumere.
FAQ
Cos'è la relative strength degli ETF?
La relative strength è il rendimento di un fondo su un lookback fisso meno il rendimento di un benchmark sulla stessa finestra. Un ranking basato su questo parametro mette in cima i fondi che hanno sovraperformato il benchmark, indipendentemente dal fatto che i loro rendimenti assoluti siano stati positivi.
Cos'è l'attribuzione dell'alpha?
È una regressione dei rendimenti di una strategia su una o più serie di rendimenti di benchmark. Le pendenze misurano le esposizioni che la strategia detiene e l'intercetta è il rendimento residuo una volta che tali esposizioni sono state contabilizzate. Quell'intercetta è il numero solitamente riportato come alpha.
Un R quadro elevato significa che una strategia è cattiva?
No. Un R quadro elevato significa che i benchmark spiegano la maggior parte della variazione della strategia, il che è un'affermazione sulla sovrapposizione piuttosto che sulla qualità. Ciò che cambia è l'intercetta: le esposizioni che la regressione ora può vedere smettono di essere conteggiate come originalità.
Perché mantenere sleeves sovrapposte invece di un unico portafoglio?
Un singolo portafoglio ribilanciato ogni 20 sedute rende il risultato dipendente dalla data di inizio. Eseguire diverse copie scaglionate della stessa regola media quella scelta e distribuisce il turnover lungo tutto il mese anziché concentrarlo in un'unica data.
Ogni pannello qui presente è accompagnato dal codice SQL che lo ha prodotto. Aprine uno, inserisci il tuo elenco di fondi e riesegui il ranking sul terminale Strasmore per osservare il movimento dell'ordinamento.