跳至主要內容
美股研究 約 7 分鐘閱讀

S&P 500 納入與剔除回測:股票納入指數後會漲嗎?18 組參數全輸 QQQ

股票納入 S&P 500 後會漲嗎?2016 到 2026 年在名單變動隔天買進納入與剔除股,18 組參數全部輸 QQQ。納入股在名單日前 20 天已先贏 QQQ 5.2 個百分點,120 天後只剩 1.9 個百分點,附程式可重跑。

免安裝,用 AI 重跑這篇的策略

在瀏覽器開啟 FinLab Studio,AI 依本文的條件重跑回測,接著可以改條件再測。

在 Studio 重跑
18 組參數全輸 QQQ

S&P 500 納入與剔除回測:買進納入股與剔除股對 RSP 與 QQQ 含息的累積淨值,2016 至 2026 年

依本文重跑

執行這個策略

複製提示詞,讓 AI 依照上方證據的資料、條件與風險檢查重跑一次。

告訴你的AI:

幫我設定 FinLab,重跑 S&P 500 納入與剔除回測,請讀:https://finlab.finance/setup?relatedUrl=/blog/sp-500-additions-backtest

免安裝,開啟 FinLab Studio

股票納入 S&P 500 後會漲嗎?2016 年 7 月到 2026 年 11 月,我們在股票出現在名單的隔天買進,持有 20、60 或 120 個交易日。18 組參數沒有一組贏含息的 QQQ。納入股持有 60 日、單檔上限 10% 的組合,年化 6.0%、夏普 0.47。剔除股的後半段更差。事件前後的路徑可以說明一部分:納入股在我們的名單日期之前 20 天,平均已經贏 QQQ 5.2 個百分點,120 天後大部分又吐回去。2022 年 11 月起快照每天都有,第 120 天的平均領先比名單日高,但中位數從 +6.69 掉到 -9.58 個百分點,規則夏普 0.48,QQQ 是 1.20。直接在公告當下交易可能是另一回事,本文沒有測。

大家會搜尋這個題目,是因為機制聽起來很有說服力:股票一納入,指數基金就必須買,股價應該會漲。這個測試能回答的是,變動出現在公開名單之後股票怎麼走,因為這是模型不用預知未來就能用的日期。

S&P 500 納入與剔除關鍵數字

規則 持有 單檔上限 日夏普 年化報酬 最大回撤 前後兩段夏普 每邊 0.1% 夏普 平均持股
S&P 500 納入 60 日 10% 0.47 6.0% -25.3% 0.57 / 0.39 0.44 4.5
S&P 500 剔除 60 日 10% 0.52 5.4% -27.9% 0.79 / 0.20 0.50 2.7
QQQ 含息 0.93 20.0% -35.1% 1.27 / 0.60 0.92
SPY 含息 0.86 14.8% -33.7%
RSP 等權 S&P 500 0.72 12.0% -39.0%

區間是 2016-07-05 至 2026-11-06。剔除規則從 2016-11-08 開始,和同一段日期的 QQQ 比(QQQ 夏普 0.91)。兩條規則都不是滿倉:原設定下納入規則平均投入 45%,剔除規則 27%,因為同一時間的事件很少。

納入與剔除規則怎麼寫

  • 納入。 上一次快照不在 S&P 500 名單、這次在,隔一個交易日買進,持有 20、60 或 120 個交易日。
  • 剔除。 上一次快照在名單、這次不在,用同樣方式買進,持有天數相同。被剔除的股票常常已經跌很多,部分研究發現會反彈,所以規則是買進而非放空。
  • 權重。 目前持股等權,單檔上限帳戶的 5%、10% 或 20%,其餘留現金。
  • 排除。 代號變更、同公司重組,以及一週內就被改回的名單編輯,都不算真的納入或剔除,共刪掉 32 對。股票在名單日要有價格。205 次剔除裡,67 檔那時已經停止交易,10 檔在 FinLab 沒有價格資料,9 檔當天沒有價格,所以只有 119 次能交易;204 次納入有 201 次能交易。剔除規則的結果只涵蓋名單變動時還在交易的股票。

名單日期是維基百科 S&P 500 成分股頁面的快照顯示變動的那天,這是本研究最主要的限制。S&P 道瓊指數公司會提前公告變動,快照則在之後。特斯拉就是例子:S&P 在 2020 年 11 月 16 日公告納入,12 月 21 日生效,我們的資料顯示納入日是 12 月 28 日。依 FinLab 的資料說明,2022 年 11 月 8 日以前,快照間隔的中位數是 8 天,最長 36 天,所以日期常常晚於公告日,甚至晚於生效日。從那天起快照每天都有,但仍然是觀察日:變動可能晚一週以上才出現,維基百科提前編輯時也可能提早出現。2025 年 9 月就有三檔納入股提早兩週出現,隔天被改回,生效後才再次納入。下面兩段期間的結果都會列出。

S&P 500 納入前後的路徑

S&P 500 名單變動前 20 日到後 120 日的平均累積報酬減 QQQ,171 次納入與 110 次剔除

納入股在名單日期前 20 個交易日,贏 QQQ 5.23 個百分點。之後 60 天維持領先約 4.2 到 6.1 個百分點,120 天時回落到領先 1.88 個百分點。對 RSP 則是 120 天領先 7.13 個百分點,因為這十年 QQQ 本身就大幅領先等權指數;相對 QQQ 的領先在名單日後第 41 天達到 6.08 個百分點的高點,之後縮小。

剔除股在名單日期前 20 天比 QQQ 少 4.46 個百分點。相對 RSP 是少 3.72 個百分點,120 天時約持平(-0.04),對等權指數算有反彈,對 QQQ 沒有,最後落後 5.06 個百分點。

這裡只用前 20 天與後 120 天都有價格的事件,171 次納入和 110 次剔除,所以比可交易事件的 201 次與 119 次少。

期間 事件數 QQQ,第 0 日 QQQ,第 20 日 QQQ,第 60 日 QQQ,第 120 日 RSP,第 120 日
納入,全部 171 +5.23 +4.30 +4.23 +1.88 +7.13
納入,快照間隔數天(至 2022-11-07) 117 +4.15 +3.96 +1.38 -3.00 +1.00
納入,每日快照(2022-11-08 起) 54 +7.57 +5.03 +10.39 +12.44 +20.41
剔除,全部 110 -4.46 -5.33 -6.08 -5.06 -0.04
剔除,快照間隔數天 67 -5.00 -4.86 -5.03 -1.71 +1.99
剔除,每日快照 43 -3.61 -6.06 -7.71 -10.27 -3.20

數字是從名單日期前 20 天起算的百分點。每日快照這段,平均納入股相對 QQQ 在第 120 天的 +12.44 個百分點高於名單日的 +7.57,中間第 20 天曾回落到 +5.03。中位數從 +6.69 掉到 -9.58,領先 QQQ 的比例從 72% 降到 41%,平均值靠少數大贏家撐住。納入規則 2022-11-08 起夏普 0.48,QQQ 是 1.20;在那之前 0.48,QQQ 是 0.77。後段只有 54 次納入和 43 次剔除,當作觀察就好,不足以說明市場機制已經改變。

Harris 與 Gurel(1986)發現納入指數的股價效果很大但短暫,和指數基金買盤造成價格壓力、之後回落一致。Shleifer(1986)則認為同樣的買盤壓力顯示股票的需求曲線向下傾斜。Chen、Noronha 與 Singal(2004)發現納入與剔除不對稱:納入的漲幅持續,剔除的跌幅會反彈。Greenwood 與 Sammon(2022)量到納入效果從 1980 年代的 3.4%、1990 年代的 7.6%,降到過去十年的 0.8%,剔除效果在 2010 到 2020 年只有 -0.6%。我們的日期比他們的晚,數字不能直接比較。本文的樣本裡,領先 QQQ 的納入股比例從名單日的 60%,降到第 120 天的 40%。

成交日之後的報酬

S&P 500 納入與剔除股從成交日起持有 20、60、120、240 日的平均與中位數報酬減 QQQ

這張圖從成交日(訊號隔天)開始算,回答的是規則實際面對的問題。

  • 納入。 相對 QQQ 的平均報酬,20 日 -0.71、60 日 -1.09、120 日 -0.85、240 日 -9.98 個百分點。中位數落後更多:-1.15、-3.22、-7.03、-14.69 個百分點。120 天時只有 36.4% 的納入股領先 QQQ。
  • 剔除。 平均 20 日 -1.24、60 日 -0.76、120 日 +0.45、240 日 -5.90 個百分點;中位數 -2.22、-3.96、-4.92、-14.38 個百分點。平均值同樣被少數大幅反彈拉高。

兩條規則的平均都高於中位數,平均報酬多半來自少數贏家,大多數股票都輸給 QQQ。

為什麼每組參數都沒過

S&P 500 納入與剔除 9 組參數的日夏普,依持有天數與單檔上限

18 組全部低於 QQQ 的 0.91 到 0.93。持有天數短的最差:持有 20 日,納入 0.21 到 0.23,剔除 0.10 到 0.11。從 20 日拉長到 60 日,兩條規則都變好;拉到 120 日,納入沒有差別(0.44 到 0.46,60 日是 0.47 到 0.51),剔除則升到 0.66,仍比 QQQ 的 0.91 少 0.25。

單檔上限的影響比看起來小。納入規則平均只持有 1.5 到 8.9 檔,上限提高主要改變的是投入比例。持有 60 日時,上限 5% 到 20%,夏普只從 0.47 變成 0.51,平均投入比例卻從 23% 升到 80%。成本影響也小,因為交易少:每邊 0.1% 下夏普從 0.47 變成 0.44。

驗證條件和其他公司行動規則相同,在看到結果前固定,全部沒過:

  1. 9 組參數至少 7 組贏 QQQ。
  2. 前後兩段都贏。納入 0.57 和 0.39,QQQ 是 1.27 和 0.60;剔除 0.79 和 0.20,QQQ 是 1.26 和 0.57。
  3. 每邊 0.1% 也贏。納入 0.44,剔除 0.50。
  4. 扣 BIL 後也贏。兩者都是 0.32,QQQ 是 0.83 和 0.80。
  5. 拿掉最好的年份也贏。2022 年納入領先 QQQ 33.7 個百分點,剔除領先 32.9 個百分點;拿掉這一年,納入 0.50、剔除 0.56,QQQ 是 1.26 和 1.25。

事件也太少,分散不了風險。整段測試裡,一年能交易的只有約 20 次納入和 12 次剔除,如下圖。

回測中可交易的 S&P 500 納入與剔除次數,依日曆年,2016 至 2026 年

和其他研究對照

指數效果討論的是資金流,站上其他 S&P 500 個股研究討論的是價格訊號。黃金交叉回測和 52 週新高選股回測都在 S&P 500 成分股上測試,同樣沒有贏 QQQ。其他公司行動見六種事件訊號的總覽,台股的版本見台股公司行動事件回測。

程式碼

這段是納入規則原設定,為了容易讀,保留了所有名單變動,所以會把 FISV 變 FI 這樣的代號變更當成納入。用到 2026-11-06 的資料,它印出的日夏普是 0.41、年化報酬 5.2%。research.py 排除代號變更與同公司重組,夏普是 0.47,這個清理對結果有明顯影響,自己測的時候也值得做。

顯示程式碼
import finlab
import numpy as np
import pandas as pd
from finlab import data
from finlab.backtest import sim
 
finlab.login()
data.set_market("us")
data.truncate_end = "2026-11-06"
 
close = data.get("us_price:adj_close")
days = close.index
 
# 每個快照日的成分股名單
members = data.get("us_index_constituents:sp500").fillna(False).astype(bool)
members = members.loc[:, members.columns.isin(close.columns)]
 
# 上一次快照不在名單、這一次在,就算納入
change = members.astype(int).diff().loc["2016-07-01":"2026-11-06"]
additions = change == 1
 
# 快照日對到下一個交易日,用那天收盤算訊號,再隔一天成交
rows = np.searchsorted(days.values, additions.index.values)
events = pd.DataFrame(False, index=days, columns=additions.columns)
for row, stocks in zip(rows, additions.values):
    if row < len(days):
        events.iloc[row] = events.iloc[row].values | stocks
 
# 每檔納入股持有 60 個交易日,單檔上限 10%
position = (events & pd.DataFrame(close[additions.columns].notna()).reindex(index=days).fillna(False))
position = position.astype(float).rolling(60, min_periods=1).max() > 0
position = position.loc["2016-07-01":"2026-11-06"]
position = position.loc[:, position.any()]
 
report = sim(position, resample=None, position_limit=0.10, upload=False)
returns = report.creturn.pct_change().dropna()
print("日夏普:", round(returns.mean() / returns.std() * 252 ** 0.5, 2))
print("年化報酬:", round(report.creturn.iloc[-1] ** (252 / len(report.creturn)) - 1, 3))

不想自己寫也可以。照 AI 輔助安裝流程裝好 FinLab skill,或直接到 FinLab Studio 用白話請 AI 重跑,例如「S&P 500 納入股從公告日起持有 5 天」或「只買 60 日跌超過 20% 的剔除股」。

回測方法

項目 做法
回測區間 2016-07-01 至 2026-11-06。FinLab 美股價格從 2016 年 1 月開始,S&P 500 名單從 2015 年 1 月開始
股票池 排除代號變更、同公司重組與一週內改回的名單編輯後,納入或剔除 S&P 500 且名單日有價格的股票
流動性 以 S&P 500 成分資格取代成交值濾網。未估容量
訊號 用維基百科快照觀察到的名單日期,當天已公開(控制前視偏差)。這個日期可能晚於實際公告,2022 年 11 月 8 日以前特別明顯
成交 收盤算訊號,隔天收盤成交,使用還原價
權重 目前持股等權,單檔上限 5%、10% 或 20%,其餘留現金。目標權重單邊週轉率一年約 1.9 次(納入)和 1.1 次(剔除)
成本 finlab sim() 美股預設 0,另跑每邊 0.1%。未另估滑價
稅 未計
樣本 全段都是樣本內,前後兩段只檢查穩定度,沒有做樣本外驗證

這個結果能說明什麼

這條規則測的是你拿公開名單能做什麼。在那個日期,買進納入股或剔除股並持有,18 組參數都沒有贏 QQQ,也沒有一組達到 RSP 的 0.72。本文沒有測公告當下買進。5.2 個百分點的事前漲幅,有一部分可能發生在實際公告之後、一部分在之前,這些日期分不開。上面 Greenwood 與 Sammon 圍繞公告日量到的數字,遠小於這段事前漲幅。

剔除股在名單變動時已經比 QQQ 少約 4.5 個百分點,之後 120 天也沒有把差距補回來。

其他研究可以看配息調升與拆股的回測、除息捕捉策略回測、QQQ、SPY、VOO、VTI 比較和美股量化交易策略比較。剛接觸規則化投資,可以先看量化交易入門。

常見問題

股票納入 S&P 500 後會漲嗎?

很多在納入前就漲了。這個樣本裡,納入股在名單日期前 20 天贏 QQQ 5.23 個百分點,名單日後 120 天領先 1.88 個百分點。名單變動隔天買進、持有 60 日,夏普 0.47,QQQ 是 0.93。2022 年 11 月之後,平均納入股到第 120 天比名單日高,但中位數落後 QQQ。

被 S&P 500 剔除的股票會怎麼樣?

名單日期前 20 天比 QQQ 少約 4.5 個百分點,之後也沒有追上,120 天時落後 5.06 個百分點。相對等權的 RSP,120 天時約持平。

S&P 500 的指數效果消失了嗎?

學術證據顯示比以前小很多。Greenwood 與 Sammon(2022)估計過去十年納入的平均報酬是 0.8%,1990 年代是 7.6%。本文的日期較晚也較不精確,又只涵蓋 2016 到 2026 年,無法驗證這個下降。

S&P 500 多久換一次股票?

測試裡約 10 年可交易的有 201 次納入和 119 次剔除,一年約 20 次納入、12 次剔除。原始名單的變動更多,但代號變更和名單日沒有價格的股票都排除了。

為什麼程式印出 0.41,文章寫 0.47?

文章的程式為了容易讀,保留所有名單變動,包含 FISV 變 FI 這類代號變更。research.py 刪掉 32 對這樣的變動,所以是 0.47。

這代表指數基金不重要嗎?

不代表。指數持股的規模是另一個問題。這個測試只量名單公開之後買進能賺多少,結果沒有比持有 QQQ 好。

可以自己重跑嗎?

可以。透過 AI 輔助安裝流程裝好 FinLab skill,下載下面的 research.py,執行 python research.py。

延伸閱讀

下載資源

檔案 內容
research.py 完整研究:納入與剔除規則、18 組參數、前後兩段、成本重跑與事件路徑
data.csv 兩條規則原設定,加上 QQQ、SPY、RSP 的每日淨值
metrics.json 本文背後的統計,包含 18 組參數與報酬路徑

投資警語:本文僅供教學參考,不構成投資建議,也不推薦任何個股。過去績效不代表未來表現,投資有風險。本文所有回測均為全段樣本內結果,前後兩段未經樣本外驗證。

最後更新:2026-11|回測區間:2016-07~2026-11|資料截至 2026-11-06,重跑日 2026-11-09|基準:QQQ 含息|作者:FinLab 量化研究團隊(經量化研究員審閱)

FinLab AI

想建立自己的策略?

用自然語言描述你的選股想法,AI 自動驗證、回測、給你答案

免費開始

更多多因子選股研究

查看全部