Cách tính Relative Strength và Alpha cho ETF
Tìm hiểu cách xếp hạng ETF theo Relative Strength dựa trên lợi nhuận hai mươi phiên so với SPY. Xem xét tác động của phân bổ alpha đến hệ số chặn khi mô hình hồi quy đã khớp.
Chiến lược relative strength (sức mạnh tương đối) của ETF xếp hạng một nhóm nhỏ các quỹ dựa trên mức độ lợi nhuận gần đây của chúng so với một chỉ số tham chiếu (benchmark), sau đó nắm giữ các quỹ đứng đầu. Quy tắc mà bài viết này phân tích chỉ gói gọn trong một dòng: cứ mỗi hai mươi phiên, hãy xếp hạng danh mục theo lợi nhuận trong hai mươi phiên trừ đi lợi nhuận của SPY trong cùng khoảng thời gian đó, rồi nắm giữ hai cái tên đứng đầu trong các danh mục gối đầu (overlapping sleeves). Việc phân bổ (attribution) là nơi một chiến lược như vậy được kiểm chứng. Trong một kết quả chạy thử nghiệm được công bố với đúng thiết kế này, hệ số chặn (intercept) vốn được coi là alpha chỉ đạt mức 0,38% mỗi năm sau khi mô hình hồi quy tính đến các mức độ phơi nhiễm (exposures) mà quy tắc này vốn đã mua.
Cách thức hoạt động của quy tắc relative strength cho ETF
Relative strength là một phép so sánh, không phải là lợi nhuận. Một quỹ tăng 3% trong hai mươi phiên trong khi chỉ số tham chiếu tăng 5% sẽ có relative strength âm. Một quỹ giảm 1% trong khi chỉ số tham chiếu giảm 4% sẽ có relative strength dương. Con số dùng để xếp hạng là lợi nhuận vượt trội (excess return): tỷ lệ thay đổi của quỹ trong một khoảng thời gian cố định, trừ đi tỷ lệ thay đổi của chỉ số tham chiếu trong cùng khoảng thời gian đó, được đo lường theo từng phiên.
Có hai lựa chọn quan trọng ở đây. Khoảng thời gian nhìn lại (lookback) xác định dữ liệu lịch sử mà bảng xếp hạng sẽ xem xét, với hai mươi phiên tương đương khoảng một tháng giao dịch. Thời gian nắm giữ (holding period) xác định thời gian một quỹ chiến thắng được giữ trong danh mục. Khi hai khoảng thời gian này bằng nhau, toàn bộ danh mục sẽ được cơ cấu lại vào một ngày trong tháng và kết quả phụ thuộc hoàn toàn vào ngày bạn bắt đầu. Các danh mục gối đầu (overlapping sleeves) loại bỏ sự phụ thuộc này: chạy nhiều bản sao của cùng một quy tắc nhưng lệch nhau vài phiên, phân bổ vốn cho mỗi danh mục, và danh mục tổng hợp sẽ nắm giữ một hỗn hợp luân phiên thay vì đặt cược vào một ngày bắt đầu duy nhất.
Bảng dưới đây thực hiện bước xếp hạng trên một danh mục gồm chín quỹ ETF bao gồm thị trường chung, các ngành, quốc tế và kim loại, sử dụng dữ liệu đóng cửa của hai mươi mốt phiên gần nhất để lợi nhuận bao phủ chính xác hai mươi phiên.
Câu lệnh SQL chính xác đằng sau mỗi con số
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Ở vị trí dẫn đầu bảng xếp hạng, GLD đạt lợi nhuận 8.69% trong hai mươi phiên đó, tương đương 6.34 điểm so với SPY. Ở cuối bảng, XLU đạt -5.81 điểm. Mỗi hàng thể hiện toàn bộ ý tưởng qua hai thanh: hiệu suất của quỹ và phần còn lại sau khi đã trừ đi biến động của SPY trong cùng khoảng thời gian. Khoảng cách giữa hai thanh là con số giống nhau trong tất cả 9 hàng, vì mọi quỹ đều được đo lường so với một chỉ số tham chiếu trong một khoảng thời gian.
Phân bổ alpha thực sự đo lường điều gì
Phân bổ alpha là một phép hồi quy. Đặt chuỗi lợi nhuận của chiến lược lên bàn cân so sánh với một hoặc nhiều chuỗi lợi nhuận của chỉ số tham chiếu và vẽ một đường thẳng qua các điểm dữ liệu. Độ dốc (slope) trên mỗi chỉ số tham chiếu là mức độ phơi nhiễm: mức độ biến động của chiến lược tương ứng với tài sản đó. Hệ số chặn (intercept) là phần còn lại sau khi đã tính toán các mức phơi nhiễm, và phần dư này được gọi là alpha. R bình phương (R squared) là con số thứ ba, thể hiện tỷ lệ biến động của chiến lược được giải thích bởi các chỉ số tham chiếu, chạy từ 0% (các chỉ số không giải thích được gì) đến 100% (chiến lược chính là các chỉ số cộng với một hằng số).
Hồi quy một quy tắc luân chuyển so với một chỉ số thị trường chung thường tạo cảm giác đây là một chiến lược độc đáo. Trong phân bổ được công bố cho một quy tắc có hình thái này, được công khai mã nguồn vào tháng tám năm 2026 và chạy trên giá tổng hợp tất định, phép khớp đơn chỉ số tham chiếu đó tạo ra R bình phương là 14,0%. Sáu phần bảy biến động của chiến lược không được giải thích, điều này trên trang giấy trông như sự độc đáo. Thay thế bằng các đại diện (proxies) cho các mức phơi nhiễm mà quy tắc thực sự đang nắm giữ, như xu hướng momentum và sự tập trung ngành của danh mục hai mã, đã đẩy R bình phương lên 63,6% và kéo hệ số chặn xuống 0,38% một năm. Cùng một chuỗi lợi nhuận và cùng một mã nguồn. Chỉ là một tập so sánh khác. Chiến lược này thực chất chỉ đang "thuê" các mức phơi nhiễm đã biết.
Nghiên cứu đó tạo ra giá của chính nó từ một hạt giống (seed) cố định, vì vậy một độc giả không có nhà cung cấp dữ liệu vẫn có thể tái tạo mọi con số mà nó in ra. Nó cũng chỉ mới vài ngày tuổi tại thời điểm viết bài, và một dự án non trẻ như vậy thay đổi hàng tuần. Hãy ghi lại chính xác commit hoặc bản phát hành (tagged release) mà bạn đã chạy trước khi trích dẫn một con số từ đó: các con số phân bổ sẽ thay đổi bất cứ khi nào các đại diện nhân tố hoặc cửa sổ mẫu thay đổi. Ghi chú của chúng tôi về công cụ backtest có thể tái tạo đề cập đến thói quen tương tự từ hướng ngược lại.
Bài học vẫn tồn tại mà không cần đến từ vựng của mô hình nhân tố. Chỉ số tham chiếu mà bạn dùng để hồi quy quyết định mức alpha mà bạn có vẻ đang sở hữu, vì vậy hãy chọn nó trước khi nhìn vào hệ số chặn và ghi lại lý do tại sao đó là phép so sánh đúng đắn. Một tập so sánh được chọn sau khi đã thấy kết quả chỉ là thước đo cho sự lựa chọn so sánh đó.
Bao nhiêu phần của một ETF đã là chỉ số tham chiếu
Bạn không cần một mô hình nhân tố đầy đủ để thấy trước vấn đề. Hãy lấy lợi nhuận hàng ngày của một quỹ, đặt chúng so với lợi nhuận hàng ngày của SPY trong cùng các phiên, và bình phương hệ số tương quan. Điều đó cho thấy tỷ lệ biến động hàng ngày của quỹ mà một chỉ số thị trường chung đã giải thích được.
Câu lệnh SQL chính xác đằng sau mỗi con số
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 DESCTrong hai năm qua, QQQ có R bình phương đơn chỉ số tham chiếu cao nhất trong danh mục này ở mức 90.3%, và GLD thấp nhất ở mức 3.1%. Một danh mục được tập hợp từ các quỹ ở mức cao của biểu đồ đó gần như là một sự diễn đạt lại của chỉ số tham chiếu dưới một trọng số khác, và bất kỳ hệ số chặn nào được đo lường so với thứ gì đó không phải là chỉ số tham chiếu sẽ âm thầm hấp thụ sự khác biệt đó. Mức thấp là nơi một sự luân chuyển có thể thêm vào một dòng lợi nhuận mà thị trường chung chưa có, và đó cũng là nơi một danh mục hai mã không còn giống một danh mục đa dạng hóa.
Tần suất thay đổi của quỹ dẫn đầu
Một quy tắc xếp hạng chỉ có thứ để phân loại khi các quỹ không đồng nhất với nhau. Bảng dưới đây đo lường lợi nhuận theo tháng dương lịch của mỗi quỹ so với SPY trong cùng tháng đó, sau đó giữ lại danh mục mạnh nhất và yếu nhất cho mỗi tháng.
Câu lệnh SQL chính xác đằng sau mỗi con số
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.mQua 13 tháng hoàn chỉnh, chuỗi bắt đầu vào 2025-07 với XLK dẫn đầu. Trong tháng hoàn chỉnh gần nhất, 2026-07, danh mục mạnh nhất là XLE ở mức 12.59 điểm so với SPY, trong khi danh mục yếu nhất đạt -5.7. Khoảng cách giữa hai đường là sự phân tán mà quy tắc xếp hạng dựa vào đó để hoạt động. Những tháng mà các đường này tiến lại gần nhau là những tháng mà việc phân loại gần như mang tính tùy ý, và một quy tắc giao dịch dựa trên mọi bảng xếp hạng sẽ phải trả chi phí giao dịch trong tất cả các tháng đó. Các ranh giới tháng cần được chú ý đặc biệt ở đây; cách đo lường lợi nhuận hàng tháng sẽ giải thích các quy ước này.
Sự tập trung hai mã có phải là rủi ro thực sự?
Biến động (volatility) là phiên bản đơn giản nhất của câu hỏi đó. Bảng này chuẩn hóa biến động lợi nhuận hàng ngày của mỗi quỹ trong cùng hai năm và lấy SPY làm thanh tham chiếu, cùng với phiên giao dịch tệ nhất mà mỗi quỹ từng ghi nhận.
Câu lệnh SQL chính xác đằng sau mỗi con số
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 nằm ở mức rộng với 27.7% hàng năm, với phiên tệ nhất là -6.82%, và XLU ở mức hẹp với 15.8%. Một quy tắc nắm giữ hai mã cùng lúc sẽ rút ra từ phạm vi này mà không tính trung bình, và các đợt sụt giảm sâu hơn đi kèm với mức rộng sẽ được tính trong phân bổ như là mức độ phơi nhiễm thay vì kỹ năng. Ghi chú về bất thường biến động thấp bao gồm hồ sơ dài hạn ở mức hẹp của cùng biểu đồ đó.
Bốn bước kiểm tra cho backtest luân chuyển của bạn
- Rò rỉ tín hiệu trong cùng ngày. Nếu bảng xếp hạng hai mươi phiên được tính toán đến khi đóng cửa một phiên và lệnh được khớp tại chính giá đóng cửa đó, bài kiểm tra đang giao dịch dựa trên thông tin mà nó chưa có tại thời điểm giao dịch. Hãy xếp hạng dựa trên dữ liệu đến phiên t, khớp lệnh tại phiên t cộng một, và so sánh hai phiên bản: khoảng cách giữa chúng là quy mô của sự rò rỉ. Thiên kiến nhìn trước (Look-ahead bias) cho thấy khoảng cách đó lớn đến mức nào.
- Tỷ lệ sống sót trong danh sách quỹ. Một danh mục được tập hợp từ các quỹ tồn tại ngày nay sẽ loại trừ mọi quỹ đã đóng cửa hoặc sáp nhập trong quá trình đó, và các quỹ đóng cửa thường tập trung vào những sản phẩm có hiệu suất kém nhất. Thiên kiến sống sót (Survivorship bias) áp dụng cho danh sách ETF cũng giống như đối với danh sách cổ phiếu.
- Chỉ số tham chiếu được chọn trước. Hãy viết ra tập so sánh trước khi thực hiện phép hồi quy đầu tiên, bao gồm các đại diện cho các mức phơi nhiễm mà bạn kỳ vọng quy tắc sẽ nắm giữ. Hệ số chặn chỉ có ý nghĩa khi so với một chỉ số tham chiếu mà bạn đã cam kết từ trước.
- Đo lường trực tiếp sự tập trung. Chạy cùng một bảng xếp hạng nhưng nắm giữ hai mã đứng đầu, sau đó là bốn mã đứng đầu, rồi đến trọng số bằng nhau của toàn bộ danh mục. Nếu phần lớn lợi thế được báo cáo nằm ở phiên bản hai mã, thì sự tập trung chính là vị thế, và việc xếp hạng chỉ là cách để chọn sự tập trung nào cần thực hiện.
Câu hỏi thường gặp
Relative strength của ETF là gì?
Relative strength là lợi nhuận của một quỹ trong một khoảng thời gian nhìn lại cố định trừ đi lợi nhuận của chỉ số tham chiếu trong cùng khoảng thời gian đó. Một bảng xếp hạng dựa trên chỉ số này sẽ đưa các quỹ vượt trội hơn chỉ số tham chiếu lên trên, bất kể lợi nhuận thô của chúng có dương hay không.
Phân bổ alpha là gì?
Đó là phép hồi quy lợi nhuận của một chiến lược trên một hoặc nhiều chuỗi lợi nhuận của chỉ số tham chiếu. Các độ dốc đo lường mức độ phơi nhiễm mà chiến lược đó mang lại, và hệ số chặn là lợi nhuận còn lại sau khi các mức phơi nhiễm đó đã được tính toán. Hệ số chặn đó là con số thường được báo cáo là alpha.
R bình phương cao có nghĩa là chiến lược đó tệ không?
Không. R bình phương cao có nghĩa là các chỉ số tham chiếu giải thích phần lớn biến động của chiến lược, đó là một tuyên bố về sự chồng chéo thay vì về chất lượng. Điều thay đổi là hệ số chặn: các mức phơi nhiễm mà phép hồi quy giờ đây có thể nhìn thấy sẽ không còn được tính là sự độc đáo nữa.
Tại sao nên nắm giữ các danh mục gối đầu thay vì một danh mục duy nhất?
Một danh mục duy nhất được tái cơ cấu sau mỗi hai mươi phiên khiến kết quả phụ thuộc vào ngày bắt đầu. Việc chạy nhiều bản sao lệch nhau của cùng một quy tắc sẽ làm trung bình hóa sự lựa chọn đó và phân bổ chi phí giao dịch ra khắp tháng thay vì tập trung vào một ngày duy nhất.
Mỗi bảng ở đây đi kèm với mã SQL đã tạo ra nó. Hãy mở một bảng, thay thế bằng danh sách quỹ của riêng bạn, và chạy lại bảng xếp hạng trên thiết bị đầu cuối Strasmore để theo dõi sự thay đổi của thứ tự.