
執行這個策略
複製提示詞,讓 AI 依照上方證據的資料、條件與風險檢查重跑一次。
告訴你的AI:
幫我設定 FinLab,重跑 0050、0051、0056 成分股調整預測與 ETF 受益人數擇時的回測,和 0050 含息比較,請讀:https://finlab.finance/setup?relatedUrl=/blog/0050-0056-constituent-change-backtest
0050 成分股調整確實會推動股價:2013 年 6 月以來 54 次季審核,台灣 50 指數的 63 檔實際納入股,從公告到換股日平均贏 0050 含息 4.0%(中位數 3.4%,三分之二贏),換股後 20 個交易日平均輸 0050 1.8%。但這段超額報酬大多在公告之後才出現,提前用市值排名卡位只多賺一點。我們用 finlab 照指數公司的公開規則重建台灣 50、中型 100 與高股息(0056)的歷次審核,把 5 個說法做成策略,每個換 9 組參數、切前後兩段、扣手續費與證交稅,和同期 0050 含息比日夏普:45 組只有 4 組贏,沒有一個訊號三項驗證都過。
重建的名單跟公開的調整紀錄大致對得上:台灣 50 每次審核後的 50 檔,重建版有 48 到 50 檔相同,63 檔實際納入股猜中 49 檔。高股息就差得多,指數用的分析師預估殖利率 FinLab 沒有,重建版跟今天的 0056 只有 34 檔相同。00878 要用 MSCI 的 ESG 評等,MSCI 季度調整要用 MSCI 自己的成分股名單與自由流通市值,這兩題我們寫明做不到,沒有拿近似值回測。
關鍵數字
| 訊號(原參數) | 年化報酬 | 日夏普 | 最大回撤 | 前/後半段日夏普 | 9 組參數贏 0050 | 同期 0050 年化/日夏普 |
|---|---|---|---|---|---|---|
| S1 台灣 50 預期納入:換股日前 15 個交易日買進,換股日賣出 | 2.9% | 0.25 | -34.8% | 0.07/0.35 | 0 組 | 19.5%/1.06 |
| S2 台灣 50 預期剔除:換股日收盤買進,持有 60 天 | 8.1% | 0.42 | -56.1% | 0.32/0.51 | 0 組 | 20.1%/1.09 |
| S3 中型 100 預期納入:換股日前 15 個交易日買進,換股日賣出 | 3.3% | 0.28 | -40.2% | -0.26/0.68 | 0 組 | 20.3%/1.10 |
| S4 高股息(0056)預期納入:換股日前 15 個交易日買進,換股後第 5 天賣出 | 1.6% | 0.25 | -11.1% | 0.90/-0.17 | 0 組 | 46.5%/1.72 |
| S6 全體 ETF 受益人數 3 個月成長率在近 60 個月前 20% 時換現金,其餘時間持有 0050 | 14.4% | 0.94 | -28.3% | 0.71/1.15 | 4 組 | 16.7%/0.95 |
每個策略從第一次持股起算到 2026-10-30,0050 含息從同一天起算。S1 從 2013-05-29、S2 從 2013-06-20、S3 從 2013-08-28、S4 從 2023-05-25、S6 從 2009-09-01 起。同期 0050 前後兩段的日夏普:S1 0.84/1.28、S2 0.88/1.49、S3 0.66/1.40、S4 1.59/2.60、S6 0.68/1.17。
研究問題:7 個說法,各用哪份資料驗證
| 說法 | finlab 資料 | 文獻與規則 |
|---|---|---|
| 0050 納入股在生效前會被買上去,用市值排名可以提前卡位 | etl:market_value(全市值)、security_categories(上市/上櫃)、company_basic_info(上市日期) |
Shleifer (1986);FTSE TWSE Taiwan Index Series Ground Rules |
| 0050 剔除股在換股日被賣完以後會反彈 | 同上 | Chen, Noronha & Singal (2004)、Harris & Gurel (1986) |
| 中型 100(0051)的預期納入股也一樣 | 同上 | 同上 |
| 0056 換股可以照高股息指數規則預測 | price_earning_ratio:殖利率(%)、price:成交金額、financial_statement 權益與股本 |
FTSE TWSE Taiwan Dividend+ Index Ground Rules |
| 00878、00919 換股也能照規則重建 | — | 各指數編製規則 |
| 散戶一窩蜂買 ETF 時,大盤之後會比較差 | tw_etf_beneficiary_stats(全體 ETF 受益人數,2007 年起月資料) |
Brown, Davies & Ringgenberg (2021) |
| MSCI 季度調整可以用市值和流動性預測 | — | MSCI 指數方法 |
指數規則照富時(FTSE Russell)2026 年 8 月版的 台灣指數系列編製規則 與 高股息指數編製規則:
- 審核時間: 台灣 50、中型 100 每年 3、6、9、12 月審核,高股息 6、12 月。資料截止日是生效那個週一往前 4 週的週一,當月第一個星期五盤後公告,第三個星期五收盤後換股。
- 台灣 50: 只收上市股票,依全市值排名,非成分股升到第 40 名以內納入,成分股掉到第 61 名以後剔除,再補足或刪減到 50 檔。
- 中型 100: 台灣 50 以外的下 100 檔,升到第 130 名以內納入,掉到第 171 名以後剔除。
- 高股息: 從台灣 50 加中型 100 裡挑台灣註冊的公司,依分析師預估的未來一年現金殖利率排名,非成分股第 35 名以內納入、成分股第 66 名以後剔除,每次最多 5 進 5 出,換股分 5 個交易日完成。
回測方法
| 項目 | 本文的做法 |
|---|---|
| 名單重建 | 台灣 50 從 2013-06 審核前的實際成分股起算,中型 100 從同一次審核以規則起算,之後每季照規則遞推,不讀實際名單。高股息 2022-12 改成 50 檔,該次以規則起算,2023-06 起共 7 次審核可以交易 |
| 沒做到的規則 | 公眾流通量、流動性、全額交割三項篩選沒有資料;高股息的分析師預估殖利率改用證交所公布的殖利率(去年配息 ÷ 股價),分析師人數門檻也沒做 |
| 預測時點 | 進場訊號日比資料截止日早,就用訊號日的市值排名;比截止日晚,就用截止日的排名。不用到進場當下還不知道的資料 |
| 股票池 | 上市四碼普通股,含已下市的股票;上櫃轉上市的股票從上市日起才算。沒有另外設流動性門檻,台灣 50 與中型 100 本身就是市值最大的 150 檔 |
| 權重 | 事件期間等權,沒有事件的日子空手 |
| 交易成本 | sim() 預設:手續費 0.1425%(買賣各一次,未打折)、證交稅 0.3%(賣出)。ETF 實際證交稅是 0.1%,S6 用 0.3% 比實際保守 |
| 滑價 | 未另外假設,以收盤價成交。換股日收盤是 ETF 集中下單的時點,實際成交價可能比收盤價差 |
| 樣本 | 全段都是樣本內,「前後兩段」是同一段期間對半切 |
| 基準 | 0050 含息(etl:adj_close 還原價)買進持有,不扣成本,和策略同一段日期 |
| 統計口徑 | 日夏普=日報酬平均 ÷ 標準差 × √252,不扣無風險利率 |
三項驗證的「贏」都指日夏普高於同期 0050 含息:
- 參數高原: 每個策略 2 個主要參數,各取 3 個值(原值與兩個鄰近值),共 9 組,至少 7 組要贏。
- 前後兩段: 原參數在前半段、後半段各自都要贏。
- 交易成本: 用
sim()預設的手續費與證交稅,不設成 0。
每個訊號的定義、鄰近參數與組合版的底,都在跑任何結果之前寫定,之後沒有改條件。
重建的名單準不準:對照公開的調整紀錄
台灣 50 的歷次調整紀錄是公開的。我們把 2013-06 到 2026-09 的逐季變動,從 2026-10-30 元大台灣 50(0050)的申購買回清單一路倒推回去,41 次有變動的審核全部前後一致,再拿來比對重建版:
| 抽查項目 | 結果 |
|---|---|
| 台灣 50 每次審核後的 50 檔 | 54 次審核,重建版每次有 48 到 50 檔相同,平均 49.1 檔;最近一次(2026-09)49 檔相同 |
| 台灣 50 實際納入股 | 63 檔,重建版猜中 49 檔(77.8%) |
| 用實際的審核前名單套規則 | 猜中 56 檔(88.9%),也多猜了 8 檔 |
| 中型 100(2026-09 審核後) | 跟 2026-10-30 元大台灣中型 100(0051)的 100 檔有 95 檔相同 |
| 高股息(2026-06 審核後) | 跟 2026-10-30 元大台灣高股息(0056)的 50 檔只有 34 檔相同 |
台灣 50 沒猜中的 14 檔裡,有 5 檔只差一季(研華晚一季,台灣高鐵、緯穎、矽力、光寶科早一季)。其餘多是重建名單跟實際名單差一兩檔造成的連鎖差異,用實際的審核前名單套同一套規則就多猜中 7 檔;另外還有公司合併、下市時的臨時替換,以及我們沒有資料可做的公眾流通量篩選。高股息差最多:實際 0056 有 6 檔金控,重建版一檔都沒有,因為重建從 2022-12 全新起算,每檔都要過「權益÷資產」篩選,金控在母體裡最低,第一次就被排除,規則又只篩非成分股,之後也進不來。其餘不一樣的多是鴻海、聯發科、華碩、南亞科這類電子權值股,本文用去年配息算的殖利率,跟指數用的分析師預估殖利率不同,是另一個可能的原因。
三項驗證的結果:45 組參數只有 4 組贏

成分股的 4 個訊號 36 組參數全輸,ETF 受益人數擇時 9 組裡 4 組贏,沒到 7 組。把手續費和證交稅都設成 0,成分股 4 個訊號的原參數日夏普也只有 0.34 到 0.48,輸 0050 不是成本造成的。
一、台灣 50 預期納入:漲在公告之後,提前買只多賺一點

先看實際發生的事。63 檔實際納入股,從資料截止日到公告前(約 2 週)平均只贏 0050 0.8%,中位數 0.9%,一半贏一半輸;從公告到換股日(約 2 週)平均贏 4.0%,中位數 3.4%,66.7% 贏;換股之後 20 個交易日平均輸 1.8%,中位數 -3.5%,只有 38.1% 贏。超額報酬集中在公告到換股日,換股之後就落後 0050,這跟 Harris & Gurel (1986) 在美股 S&P 500 看到的「價格壓力」一樣:被動資金集中在換股日收盤買進,買完就沒有買盤了。
2020 年以後,公告前那一段消失了。2013 到 2019 年的 19 檔,截止日到公告平均還有 +3.8%;2020 到 2026 年的 44 檔,這段平均 -0.5%、中位數 -2.4%,公告到換股日仍有 +3.9%。可能是 0050 規模變大以後,照排名預測名單的人變多,提前卡位能搶到的那一段變少了。
S1 用規則重建的預期納入名單,在換股日前 15 個交易日收盤買進、換股日收盤賣出。63 筆交易平均報酬 3.3%,勝率 52.4%。問題在一年只有 4.7 筆、八成的日子空手,平均報酬再好,換算成全期的日夏普也只有 0.25。換成前 10、20 天進場,或把排名門檻放寬到 45、收緊到 35,9 組日夏普在 0.15 到 0.61 之間。
二、台灣 50 剔除股:換股日之後沒有反彈
Chen, Noronha & Singal(2004)在美股看到剔除股在生效日前下跌、生效後漲回來。台股的剔除股看不到這個現象:60 檔實際剔除股從公告到換股日平均只跌 0.4%,換股後 20 天平均 +0.3%(中位數 -0.3%),換股後 60 天平均 -2.6%(中位數 -3.4%),只有 42.4% 贏 0050。2020 年以後的 44 檔,換股後 60 天平均落後 4.5%。被剔除的股票多半是市值一路往下掉的公司,換股日的賣壓過了,原本的弱勢還在。
S2 在換股日收盤買進預期剔除股、持有 60 天,58 筆交易平均報酬 4.7%,但同時平均只持有 1.5 檔,最大回撤 -56.1%,日夏普 0.42。剔除門檻改成第 56 或 66 名、持有 20 或 120 天,9 組都輸。
三、中型 100 預期納入:檔數多,效果更小
中型 100 的換股比台灣 50 頻繁,S3 一年約 14 筆交易、同時平均持有 3.6 檔。換股日前 15 個交易日買進、換股日賣出,187 筆交易平均報酬 2.0%,勝率 48.7%,日夏普 0.28;排名門檻 120/130/140、進場 10/15/20 天前的 9 組在 -0.18 到 0.98 之間,最好的一組仍低於 0050 的 1.10。0051 的規模只有約 36 億元,換股時的被動買盤遠小於 0050。
四、0056 換股預測:預測殖利率拿不到,名單只對三分之二
S4 在 2023-06 到 2026-06 的 7 次高股息審核,照規則預測納入股,換股日前 15 個交易日買進、換股開始後第 5 個交易日賣出(規則把換股分成 5 天)。44 筆交易平均報酬 0.9%,勝率 47.7%,前半段日夏普 0.90、後半段 -0.17,0050 同期是 1.59 與 2.60。
這題有兩個限制要一起看。第一,名單只有三分之二對得上(上一節的 34/50)。第二,每次最多只納入 5 檔,排名門檻 30、35、40 在這 7 次審核選出來的股票完全一樣,9 組參數其實只有 3 組不同的結果。7 次審核、44 筆交易,樣本也太少。
五、00878、00919:能不能照規則重建
- 00878(國泰永續高股息):做不到。 它追蹤 MSCI 台灣 ESG 永續高股息精選 30 指數,母體與篩選都用 MSCI 自己的指數、ESG 評等與爭議事件分數,這些 FinLab 都沒有。用其他分數代替就不是同一個指數,不拿來回測。
- 00919(群益台灣精選高息):只能近似。 它的指數不用 ESG,條件是上市櫃市值前 300 大、日均成交金額 8,000 萬元以上、近 4 季 ROE 為正,5 月審核用已公告的股利算殖利率,12 月用指數公司自己的預估殖利率。我們用 2026-05-20 的資料照這幾個條件、以證交所殖利率挑最高的 40 檔,跟 2026-10-30 的 00919 持股只有 25 檔相同。我們只找到新聞整理的條件,市值分層的細節與 12 月的預估方式沒有找到完整條文,差距補不起來,不拿來回測。
六、ETF 受益人數暴增:散戶熱度能擇時嗎

投信投顧公會每月公布全體 ETF 受益人數。2007 年 1 月約 1.1 萬人,2019 年底約 81 萬人,2021 年底 339 萬、2023 年底 868 萬、2025 年底 1,656 萬,2026 年 9 月約 2,370 萬人,成長了兩千多倍。Brown, Davies & Ringgenberg (2021) 發現 ETF 申購贖回帶來的非基本面買盤,之後會反轉。S6 把「受益人數 K 個月成長率落在自己近 60 個月的前 q」當成散戶過熱的訊號:暴增時持有現金,其他時間持有 0050。月資料保守地從次月月底後一天起才使用。
原參數(3 個月、前 20%)2009 年以來有 39 個月算暴增,S6 有 81% 的日子持有 0050,日夏普 0.94,跟 0050 的 0.95 幾乎一樣;前半段 0.71 贏 0.68,後半段 1.15 輸 1.17。9 組參數 0.77 到 1.00,4 組贏。就算不扣任何成本,原參數 0.98 也只是略高於 0050,參數高原不成立。

組合版 C6 把現金換成 0050、0050 換成 00631L(台灣 50 正 2):不暴增持有 00631L、暴增持有 0050。2014-10-31 起日夏普 1.02,低於 0050 的 1.07,也比 00631L 一直抱著的 1.01 只高一點,年化 31.8% 低於 00631L 的 35.2%。9 組都輸 0050。
七、MSCI 調整:為什麼不回測
MSCI 台灣指數跟台灣 50 的規則差很多:它同時收上市與上櫃股票,用自由流通市值,還要考慮外資可投資的比例,規模門檻是 MSCI 每次依全球市場重算的美元金額。FinLab 沒有 MSCI 的成分股名單,連「誰現在不在指數裡」都無法確定,就做不出預測名單。
用全市值排名看最近兩次調整(上市櫃合併排名,排名日是公告前一個月的月底):
| 調整 | 納入股的全市值排名 | 剔除股的全市值排名 |
|---|---|---|
| 2026 年 5 月(4 月底排名) | 旺矽 33 | 台灣高鐵、東元、遠東新、仁寶、亞泥、可成、華航 102~122 |
| 2026 年 8 月(7 月底排名) | 南亞科 15、南電 31、華邦電 33、群聯 54、景碩 58、台燿 59 | 鈊象、台泥、力旺、陽明、臺企銀、康霈 79~97 |
名單來自財經媒體報導。兩次都是納入股排名較前、剔除股排名較後,但時間點對不上:南亞科、南電 4 月底已經排第 23、25 名,比 5 月納入的旺矽(第 33 名)還前面,5 月沒有納入,8 月才納入。光看全市值排名猜不到哪一次會調整,這題只能寫明做不到。
組合版:成分股訊號疊在月營收動能上
單獨做事件都輸,換個用法:把成分股訊號當加分項,加在 月營收動能 10 檔 上(5 日動能最強、站上 20/60/120 日均線、近 3 月營收高於近 12 月,每月 11 日換股、10% 停損),旗標為真的候選股排前面。第二個參數一律是持股數 8/10/12 檔:
| 設計(原參數,10 檔) | 年化報酬 | 日夏普 | 最大回撤 | 9 組贏 0050 | 9 組高於同持股數的底 |
|---|---|---|---|---|---|
| 底:月營收動能 10 檔(2015-02 起) | 45.9% | 1.42 | -35.6% | — | — |
| C1 換股日前 20 天內、預期納入台灣 50 加分 | 47.4% | 1.45 | -35.7% | 9 組 | 5 組 |
| C2 剛被剔出台灣 50 的 40 個交易日內加分 | 46.2% | 1.44 | -35.6% | 9 組 | 8 組 |
| C3 換股日前 20 天內、預期納入中型 100 加分 | 46.2% | 1.42 | -39.5% | 9 組 | 0 組 |
| 底:月營收動能 10 檔(2023-02 起) | 76.0% | 1.90 | -24.0% | — | — |
| C4 換股日前 20 天內、預期納入高股息加分 | 74.6% | 1.88 | -27.6% | 9 組 | 6 組 |
同期(2015-02-11 起)0050 含息年化 20.2%、日夏普 1.06;底本身三項驗證都過(前後兩段 1.38/1.47,0050 是 0.87/1.22),所以組合版也都過。要算一個新策略,還要比底好:原參數日夏普高於底,而且 9 組裡至少 7 組高於同持股數的底。

只有 C2「剛被剔出台灣 50 加分」符合規則:日夏普 1.44 對 1.42,9 組有 8 組比底高。我們沒有把它當新策略,原因有三個:
- 只換掉 22 筆交易。 底近 12 年有 1,403 筆交易,C2 只多出 22 筆、少了 21 筆,夏普的差距來自這 40 幾筆。
- 前半段沒有比底好。 前半段日夏普 1.379,底是 1.381;差距全在後半段(1.50 對 1.47)。
- 機制不成立。 第二節的事件研究裡,剔除股換股後 60 天平均落後 0050 2.6%,S2 單獨買剔除股也輸,沒有「剔除後反彈」可以撐住這個加分。
C3 換掉 63 筆交易,日夏普 1.4227 對底的 1.4229,9 組都略低於底。C4 的排名門檻跟 S4 一樣選出相同股票,9 組只有 3 種結果。4 個加分項能改變的交易不多,C1 到 C4 分別只換掉 25、22、63、7 筆。
為什麼都贏不了 0050
- 超額報酬集中在公告到換股日,而且越來越早被預期。 納入股的超額報酬主要在公告後 2 週,2020 年以後公告前那段平均是負的,提前用排名卡位沒有多賺。
- 事件太少、空手太久。 台灣 50 一年約 4 到 5 檔納入股,S1 八成時間空手,就算每筆平均賺 3.3%,全期的日夏普也贏不了一直抱著的 0050。
- 換股後就落後 0050,剔除股也沒有反彈。 被動買盤在換股日收盤用完,之後納入股平均輸 0050,剔除股的弱勢延續。
- 關鍵資料拿不到。 高股息要分析師預估殖利率、00878 要 MSCI ESG 評等、MSCI 調整要 MSCI 自己的名單,規則再清楚,少了這份資料就只能近似。
用 finlab 重現:台灣 50 預期納入
下面是 S1 的完整寫法,跑出來的 63 筆交易、日夏普 0.25 與上表相同。把 D - 16 換成 D - 11、D - 21 就是換股日前 10、20 天進場,把 40 換成 35、45 就是其他排名門檻:
顯示程式碼
import pandas as pd
from finlab import data
from finlab.backtest import sim
days = data.get("etl:adj_close").index
market = data.get("security_categories").set_index("stock_id")["market"]
listed = pd.to_datetime(data.get("company_basic_info").set_index("stock_id")["上市日期"], errors="coerce")
# 1. 上市普通股的全市值;上櫃轉上市前的市值不算
cap = data.get("etl:market_value").reindex(days)
stocks = [s for s in cap.columns if len(s) == 4 and s.isdigit() and not s.startswith(("0", "91")) and market.get(s) == "sii"]
first_day = listed.reindex(stocks).fillna(pd.Timestamp("1900-01-01"))
cap = cap[stocks].where(days.values[:, None] >= first_day.values[None, :])
def rank_at(i):
return cap.iloc[i].dropna().rank(ascending=False, method="first")
def review(members, rank):
"""排名 40 以內的非成分股納入、61 名以後的成分股剔除,再補足或刪減到 50 檔。"""
order = list(rank.sort_values().index)
adds = {s for s in order if rank[s] <= 40 and s not in members}
after = {s for s in members if rank.get(s, 999) < 61} | adds
for s in reversed(order):
if len(after) <= 50:
break
if s in after and s not in adds:
after.discard(s)
for s in order:
if len(after) >= 50:
break
after.add(s)
return after
# 2. 2013-06 審核前的台灣 50 成分股
members = set("""
1101 1102 1216 1301 1303 1326 1402 1722 2002 2105 2201 2207 2301 2303 2308 2311 2317 2324 2325 2330
2347 2353 2354 2357 2382 2409 2412 2454 2474 2498 2801 2880 2881 2882 2883 2885 2886 2890 2891 2892
2912 3008 3045 3231 3481 3673 3697 4904 5880 6505""".split())
# 3. 每季:換股日(第三個星期五)前 15 個交易日收盤買進預期納入股,換股日收盤賣出
position = pd.DataFrame(False, index=days, columns=stocks)
for year in range(2013, days[-1].year + 1):
for month in (3, 6, 9, 12):
friday = pd.Timestamp(year, month, 15)
friday += pd.Timedelta(days=(4 - friday.weekday()) % 7)
if not pd.Timestamp("2013-06-01") <= friday <= days[-1]:
continue
D = days.searchsorted(friday, side="right") - 1 # 換股日
C = days.searchsorted(friday - pd.Timedelta(days=25), side="right") - 1 # 資料截止日
signal_day = D - 16 # 隔天收盤進場
for s in review(members, rank_at(min(signal_day, C))) - members:
position.iloc[signal_day:D - 1, position.columns.get_loc(s)] = True # 隔天收盤成交:換股日收盤賣出
members = review(members, rank_at(C))
# 4. 回測:sim() 預設手續費 0.1425% 與證交稅 0.3%
position = position.loc["2013-05-01":]
report = sim(position.loc[:, position.any()], upload=False)
report.display()5 個訊號、5 個組合版、抽查與事件研究都在下方的 research.py,安裝 finlab 後直接執行,約 2 分鐘跑完。
這些資料可以怎麼用
- 0050 換股的漲幅在公告之後。 實際納入股從公告到換股日平均贏 0050 4.0%,換股後 20 天平均輸 1.8%;換股日當天才追進,歷史上多半買在相對高點。
- 剔除股不要期待換股後反彈。 換股後 60 天平均落後 0050 2.6%,只有約四成贏。
- 全市值排名可以大致推出台灣 50 的名單。 規則重建每次審核後都有 48 到 50 檔相同,想追蹤自己持股會不會被納入或剔除,可以照 research.py 的規則每季算一次。
- ETF 受益人數適合當市場熱度的觀察指標,不適合當進出場訊號。 擇時版跟 0050 幾乎一樣,扣成本後略輸。
- 想看高股息 ETF 怎麼選股,可以參考 0056、00878、00919 高股息 ETF 比較 與 0056 選股邏輯復刻;事件研究的做法可以參考 事件研究法教學。
常見問題
0050 成分股多久調整一次?
每季一次,在 3、6、9、12 月。資料截止日是生效前 4 週的週一,當月第一個星期五盤後公布結果,第三個星期五收盤後換股。2013-06 到 2026-09 的 54 次審核裡,41 次有調整,共 63 檔納入。
0050 成分股怎麼選?納入和剔除的門檻是什麼?
依富時的規則,上市股票依全市值排名,不在指數裡的股票升到第 40 名以內才納入,已在指數裡的股票掉到第 61 名以後才剔除,中間的 41 到 60 名維持原狀,最後補足或刪減到 50 檔。另外還有公眾流通量與流動性的條件。
0050 納入股會漲嗎?
以 2013 年以來 63 檔實際納入股來看,從公告到換股日平均贏 0050 含息 4.0%,中位數 3.4%,約三分之二贏;換股後 20 個交易日平均輸 1.8%,中位數 -3.5%。
被 0050 剔除的股票會反彈嗎?
台股資料看不到反彈。60 檔實際剔除股換股後 20 天平均只贏 0.3%(中位數 -0.3%),60 天平均落後 0050 2.6%,只有 42.4% 贏。
0056 成分股怎麼換?可以提前預測嗎?
0056 追蹤的高股息指數每年 6、12 月審核,從台灣 50 與中型 100 裡依分析師預估的未來一年殖利率挑 50 檔,每次最多 5 進 5 出。預估殖利率是付費資料,用證交所的殖利率代替時,重建的名單跟實際 0056 只有 34 檔相同,預測納入股買進的策略也輸 0050。
00878 成分股可以自己算出來嗎?
不行。00878 的指數用 MSCI 的 ESG 評等與爭議事件分數篩選,母體是 MSCI 台灣指數,這些資料 FinLab 沒有。
MSCI 季度調整可以預測嗎?
光用全市值排名做不到。最近兩次調整,納入股的排名都比剔除股前面,但南亞科、南電在 4 月底已經排第 23、25 名,5 月沒有納入、8 月才納入。MSCI 用自由流通市值與全球統一的規模門檻,也沒有公開的歷史成分股名單可以回測。
為什麼不把參數調到贏 0050 為止?
45 組參數裡總會有幾組剛好表現好,挑出來報告就是過度擬合。本文每個訊號的參數都在看結果前寫定,9 組裡要 7 組贏才算通過。驗證口徑可以參考 夏普比率怎麼算 與 前視偏差 的說明。
參考文獻
- Shleifer, A.(1986). Do demand curves for stocks slope down? Journal of Finance, 41(3), 579–590。S&P 500 納入股的長期價格上升,股票需求曲線向下傾斜。
- Harris, L., & Gurel, E.(1986). Price and volume effects associated with changes in the S&P 500 list: New evidence for the existence of price pressures. Journal of Finance, 41(4), 815–829。納入股公告後上漲、約兩週後大部分回吐的價格壓力。
- Chen, H., Noronha, G., & Singal, V.(2004). The price response to S&P 500 index additions and deletions: Evidence of asymmetry and a new explanation. Journal of Finance, 59(4), 1901–1930。納入的漲幅留得住、剔除的跌幅會漲回來的不對稱。
- Brown, D. C., Davies, S. W., & Ringgenberg, M. C.(2021). ETF arbitrage, non-fundamental demand, and return predictability. Review of Finance, 25(4), 937–972。ETF 申購贖回反映的非基本面需求,之後的報酬會反轉。
- FTSE Russell(2026). FTSE TWSE Taiwan Index Series Ground Rules v5.2;FTSE TWSE Taiwan Dividend+ Index Ground Rules v4.2。
延伸閱讀
- 新股抽籤與上市後買新股回測
- 台股學術異常回測:10 個經典因子都輸 0050
- 台股大盤擇時 13 個訊號回測
- 0056、00878、00919 高股息 ETF 比較
- 00919 優化策略
- FinLab 公開策略庫
下載資源
| 檔案 | 說明 |
|---|---|
| research.py | 完整研究程式:台灣 50、中型 100、高股息的規則重建,5 個單獨訊號與 5 個組合版共 90 組參數、前後兩段、不扣成本對照,公開調整紀錄抽查、台灣 50 事件研究、00919 與 MSCI 可行性 |
| data.csv | 10 個設計原參數、月營收動能 10 檔的每日淨值(各自從 1 起算),以及 0050、00631L 含息還原價 |
| metrics.json | 全部回測、抽查與事件研究的原始輸出,含逐次審核的重建名單差異與重跑日 |
投資警語:本文僅供教學參考,不構成投資建議。過去績效不代表未來表現,投資有風險。
最後更新:2026-11|回測區間:2009-09 ~ 2026-10(成分股訊號 2013-05 起、組合版 2015-02 起、高股息 2023-05 起,資料快照 2026-10-30,重跑日 2026-10-31)|作者:FinLab 量化研究團隊(經量化研究員審閱)
FinLab AI
想建立自己的策略?
用自然語言描述你的選股想法,AI 自動驗證、回測、給你答案
免費開始

