Analisis ETF Relative Strength dan Atribusi Alpha
Strategi ETF relative strength memeringkat dana berdasarkan return dua puluh sesi terhadap SPY. Pelajari bagaimana atribusi alpha mengoreksi intercept setelah regresi benchmark.
ETF relative strength memeringkat sekumpulan kecil dana berdasarkan seberapa jauh return terkini masing-masing dana berada di atas atau di bawah benchmark, lalu menahan nama-nama yang berada di posisi teratas. Aturan yang dibedah dalam tulisan ini hanya satu baris: setiap 20 sesi, peringkat seluruh universe berdasarkan return 20-sesi dikurangi SPY pada periode yang sama, lalu tahan dua nama teratas dalam sleeve yang tumpang tindih. Atribusi adalah tempat strategi semacam itu diuji, dan dalam satu publikasi yang menggunakan desain persis seperti ini, intercept yang seharusnya dilaporkan sebagai alpha ternyata hanya sebesar 0,38% per tahun setelah regresi menyertakan eksposur yang memang sudah dibeli oleh aturan tersebut.
Cara kerja aturan ETF relative strength
Relative strength adalah perbandingan, bukan return. Sebuah dana yang naik 3% selama 20 sesi sementara benchmark naik 5% memiliki relative strength negatif. Sebuah dana yang turun 1% sementara benchmark turun 4% memiliki relative strength positif. Angka yang digunakan untuk pemeringkatan adalah excess return: persentase perubahan dana selama periode tetap, dikurangi persentase perubahan benchmark selama periode yang sama, yang diukur sesi demi sesi.
Dua pilihan mendasari hal tersebut. Lookback menentukan seberapa banyak histori yang dilihat oleh pemeringkatan, dengan 20 sesi kira-kira setara dengan satu bulan kalender perdagangan. Holding period menentukan berapa lama pemenang tetap berada dalam portofolio. Ketika keduanya sama, seluruh portofolio dirotasi pada satu tanggal dalam sebulan dan seluruh hasil bergantung pada tanggal kapan Anda memulai. Sleeve yang tumpang tindih menghilangkan ketergantungan tersebut: jalankan beberapa salinan aturan yang sama dengan selisih beberapa sesi, alokasikan setiap bagian dengan fraksi modal, dan portofolio gabungan akan menahan campuran yang bergulir alih-alih taruhan pada satu tanggal mulai.
Panel di bawah menjalankan langkah pemeringkatan pada universe sembilan ETF yang terdiri dari pasar luas, sektor, internasional, dan logam, menggunakan 21 penutupan harian terakhir sehingga return mencakup tepat 20 sesi.
SQL tepat di balik setiap angka
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 DESCDi puncak peringkat, GLD menghasilkan 8.69% selama 20 sesi tersebut, 6.34 poin terhadap SPY. Di posisi terbawah, XLU berada di -5.81 poin. Setiap baris membawa keseluruhan ide dalam dua batang: apa yang dilakukan dana tersebut, dan apa yang tersisa setelah pergerakan SPY pada periode yang sama dikeluarkan. Jarak antara kedua batang tersebut adalah angka yang sama di semua 9 baris, karena setiap dana diukur terhadap satu benchmark selama satu periode.
Apa yang sebenarnya diukur oleh atribusi alpha
Atribusi alpha adalah sebuah regresi. Sejajarkan seri return strategi terhadap satu atau lebih seri return benchmark dan buat garis lurus melalui scatter plot. Slope pada setiap benchmark adalah eksposur: seberapa besar strategi bergerak searah dengan instrumen tersebut. Intercept adalah apa yang tersisa setelah eksposur tersebut diperhitungkan, dan sisa itulah yang disebut sebagai alpha. R squared adalah angka ketiga, yaitu porsi variasi strategi yang dijelaskan oleh seri benchmark, mulai dari 0% (benchmark tidak menjelaskan apa pun) hingga 100% (strategi adalah benchmark ditambah konstanta).
Regresikan aturan rotasi terhadap satu seri pasar luas dan biasanya akan terlihat orisinal. Dalam atribusi yang dipublikasikan untuk aturan dengan bentuk ini, yang dibuka untuk umum pada Agustus 2026 dan dijalankan pada harga sintetis deterministik, kecocokan benchmark tunggal tersebut menghasilkan R squared sebesar 14,0%. Enam per tujuh dari variasi strategi tidak terjelaskan, yang di atas kertas terbaca sebagai orisinalitas. Dengan mengganti proksi untuk eksposur yang sebenarnya dipegang oleh aturan tersebut, yaitu momentum tilt dan konsentrasi sektor yang dibawa oleh portofolio dua nama, R squared meningkat menjadi 63,6% dan menarik intercept ke 0,38% per tahun. Seri return dan kode yang sama. Kumpulan perbandingan yang berbeda. Strategi tersebut ternyata hanya menyewa eksposur yang sudah dikenal.
Studi tersebut menghasilkan harganya sendiri dari seed tetap, sehingga pembaca tanpa vendor data dapat mereproduksi setiap angka yang dicetaknya. Studi ini juga baru berusia beberapa hari saat tulisan ini dibuat, dan proyek semuda itu berubah setiap minggu. Pastikan commit atau tagged release yang tepat yang Anda jalankan sebelum mengutip angka darinya: angka atribusi berubah setiap kali proksi faktor atau periode sampel berubah. Catatan kami tentang perangkat backtest yang dapat direproduksi membahas kebiasaan yang sama dari arah sebaliknya.
Pelajaran ini tetap berlaku tanpa kosakata model faktor. Benchmark yang Anda gunakan untuk regresi menentukan seberapa besar alpha yang Anda miliki, jadi pilihlah sebelum Anda melihat intercept dan tuliskan mengapa itu adalah perbandingan yang tepat. Kumpulan perbandingan yang dipilih setelah melihat hasil hanya mengukur pilihan perbandingan tersebut.
Seberapa besar porsi ETF yang sudah menjadi benchmark
Anda tidak memerlukan model faktor lengkap untuk melihat masalah yang akan datang. Ambil return harian satu dana, sejajarkan dengan return harian SPY pada sesi yang sama, dan kuadratkan korelasinya. Itu memberikan porsi variasi harian dana yang sudah dijelaskan oleh satu benchmark pasar luas.
SQL tepat di balik setiap angka
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 DESCSelama dua tahun terakhir, QQQ memiliki R squared benchmark tunggal tertinggi di universe ini sebesar 90.3%, dan GLD yang terendah sebesar 3.1%. Sleeve yang disusun dari sisi atas grafik tersebut hampir merupakan pernyataan ulang dari benchmark dengan pembobotan yang berbeda, dan intercept apa pun yang diukur terhadap sesuatu selain benchmark akan secara diam-diam menyerap perbedaannya. Sisi bawah adalah tempat rotasi dapat menambahkan aliran return yang tidak dimiliki oleh pasar luas, dan di situlah portofolio dua nama berhenti menyerupai portofolio yang terdiversifikasi.
Seberapa sering dana teratas berubah
Aturan pemeringkatan hanya memiliki sesuatu untuk diurutkan ketika dana-dana tersebut tidak sejalan. Panel di bawah mengukur return bulan kalender setiap dana terhadap SPY selama bulan yang sama, lalu menyimpan sleeve terkuat dan terlemah untuk setiap bulan.
SQL tepat di balik setiap angka
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.mSelama 13 bulan penuh, seri ini dibuka pada 2025-07 dengan XLK di depan. Pada bulan penuh terakhir, 2026-07, sleeve terkuat adalah XLE sebesar 12.59 poin terhadap SPY, sementara yang terlemah diukur sebesar -5.7. Jarak antara kedua garis tersebut adalah dispersi yang menjadi bahan bakar aturan pemeringkatan. Bulan-bulan di mana garis-garis tersebut menyempit adalah bulan-bulan di mana pengurutan hampir bersifat arbitrer, dan aturan yang melakukan perdagangan pada setiap pemeringkatan akan membayar turnover di semua bulan tersebut. Batas bulan memerlukan perhatian khusus di sini; bagaimana return bulanan diukur menjelaskan konvensi tersebut.
Apakah konsentrasi dua nama adalah risiko yang sebenarnya?
Volatilitas adalah versi paling sederhana dari pertanyaan tersebut. Panel ini melakukan annualisasi pada variasi return harian setiap dana selama dua tahun yang sama dan membawa SPY sebagai batang referensi, di samping sesi terburuk yang pernah dicetak oleh masing-masing dana.
SQL tepat di balik setiap angka
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 berada di sisi lebar sebesar 27.7% secara tahunan, dengan sesi terburuk sebesar -6.82%, dan XLU di sisi sempit sebesar 15.8%. Aturan yang menahan dua nama sekaligus mengambil dari rentang ini tanpa melakukan rata-rata, dan drawdown yang lebih dalam yang menyertai sisi lebar akan muncul dalam atribusi sebagai eksposur, bukan sebagai keahlian. Catatan anomali volatilitas rendah membahas catatan jangka panjang di sisi sempit dari grafik yang sama.
Empat pemeriksaan untuk backtest rotasi Anda sendiri
- Kebocoran sinyal pada hari yang sama. Jika pemeringkatan 20-sesi dihitung hingga penutupan sesi dan eksekusi dibukukan pada penutupan yang sama, pengujian tersebut memperdagangkan informasi yang tidak dimilikinya pada saat perdagangan. Peringkat berdasarkan data hingga sesi t, eksekusi pada sesi t ditambah satu, dan bandingkan kedua versi tersebut: kesenjangan di antara keduanya adalah besarnya kebocoran. Look-ahead bias menunjukkan seberapa besar kesenjangan tersebut.
- Survivorship dalam daftar dana. Universe yang disusun dari dana yang ada saat ini mengecualikan setiap dana yang ditutup atau digabung selama periode tersebut, dan penutupan dana cenderung terjadi pada produk yang berkinerja terburuk. Survivorship bias berlaku untuk daftar ETF persis seperti halnya pada daftar saham.
- Benchmark dipilih sebelumnya. Tuliskan kumpulan perbandingan sebelum regresi pertama, termasuk proksi untuk eksposur yang Anda harapkan akan dipegang oleh aturan tersebut. Intercept hanya berarti sesuatu jika dibandingkan dengan benchmark yang Anda komitmenkan sebelumnya.
- Konsentrasi diukur secara langsung. Jalankan pemeringkatan yang sama dengan menahan dua nama teratas, lalu empat teratas, lalu bobot yang sama dari seluruh universe. Jika sebagian besar keunggulan yang dilaporkan ada pada versi dua nama, maka konsentrasi adalah posisinya, dan pemeringkatan hanyalah cara untuk memilih konsentrasi mana yang akan diambil.
FAQ
Apa itu ETF relative strength?
Relative strength adalah return dana selama lookback tetap dikurangi return benchmark selama periode yang sama. Pemeringkatan yang diurutkan berdasarkan hal ini menempatkan dana yang mengungguli benchmark di posisi teratas, terlepas dari apakah return mentahnya positif atau tidak.
Apa itu atribusi alpha?
Ini adalah regresi return strategi terhadap satu atau lebih seri return benchmark. Slope mengukur eksposur yang dibawa oleh strategi, dan intercept adalah return yang tersisa setelah eksposur tersebut diperhitungkan. Intercept itulah angka yang biasanya dilaporkan sebagai alpha.
Apakah R squared yang tinggi berarti strategi tersebut buruk?
Tidak. R squared yang tinggi berarti benchmark menjelaskan sebagian besar variasi strategi, yang merupakan pernyataan tentang tumpang tindih, bukan tentang kualitas. Yang berubah adalah intercept: eksposur yang sekarang dapat dilihat oleh regresi tidak lagi dihitung sebagai orisinalitas.
Mengapa menahan sleeve yang tumpang tindih alih-alih satu portofolio?
Satu portofolio yang diseimbangkan kembali setiap 20 sesi membuat hasil bergantung pada tanggal mulai. Menjalankan beberapa salinan aturan yang sama dengan selisih waktu akan meratakan pilihan tersebut dan menyebarkan turnover sepanjang bulan alih-alih memusatkannya pada satu tanggal.
Setiap panel di sini dikirimkan bersama SQL yang menghasilkannya. Buka satu, masukkan daftar dana Anda sendiri, dan jalankan kembali pemeringkatan pada terminal Strasmore untuk melihat perubahan urutannya.