
執行這個策略
複製提示詞,讓 AI 依照上方證據的資料、條件與風險檢查重跑一次。
告訴你的AI:
幫我設定 FinLab,用 stock_index_vol 的類股成交金額重跑台股類股輪動回測,和 0050 含息比較,請讀:https://finlab.finance/setup?relatedUrl=/blog/taiwan-sector-rotation-backtest
台股類股輪動是把資金換到正在受到關注的類股,常見的判斷方式是看成交金額往哪裡集中。我們用 finlab 把這個說法做成規則:每月底比較上市 27 個類股的成交金額占比,近 20 日平均比近 120 日平均增加最多的 2 類,買進類內流動股、等權持有到下個月底。2009 年 7 月到 2026 年 10 月年化 5.1%、日夏普 0.33,同期 0050 含息年化 16.8%、日夏普 0.95,連等權買進全部流動股的 0.50 都輸。換到類內 120 日報酬最強的 20 檔,日夏普升到 0.57,高於等權流動股,仍輸 0050。兩個設計 18 組參數的日夏普與年化報酬都沒有一組贏。
選出來的多半是小類股。207 個月、每月選 2 類,最常被選中的是玻璃陶瓷 42 次、資訊服務 33 次、造紙 28 次,這些類股上市公司只有 5~11 家,被選中的類股平均只占 27 類成交金額的 2.4%。真正吸走資金的半導體,上市成交金額占比從 2009 年的 20% 升到 2026 年的 39%,卻只被選中 7 次。
資金流入排名跟下個月報酬也看不出關係。排名第 1、2 的類股,下個月平均比 27 類平均少 0.11%(t 值 -0.35),排名墊底的 7 類幾乎是 0。
關鍵數字
| 設計(原參數) | 年化報酬 | 日夏普 | 最大回撤 | 前/後半段日夏普 | 9 組參數贏 0050 | 同期 0050 含息年化/日夏普 | 同期等權流動股年化/日夏普 |
|---|---|---|---|---|---|---|---|
| 資金流入前 2 類,類內流動股等權,月底換股 | 5.1% | 0.33 | -50.7% | 0.00/0.60 | 0 組 | 16.8%/0.95 | 8.2%/0.50 |
| 資金流入前 3 類,類內 120 日報酬最高 20 檔,月底換股 | 12.3% | 0.57 | -50.9% | 0.09/0.92 | 0 組 | 16.8%/0.95 | 8.2%/0.50 |
原參數是看結果前寫定的主要參數。兩個設計都從 2009-07-31 起算到 2026-10-30,對照組同一段期間。等權流動股是每月底買進全部 20 日均成交金額 2,000 萬以上的股票,含預設成本。前後半段在 2018 年 3 月切開,同期 0050 前後半段日夏普 0.70、1.15。
類股輪動是什麼,台股常見的三種做法
類股輪動相信資金不會同時流進所有產業,而是一段時間集中在某幾個類股。實作上大致有三種:
| 做法 | 看什麼 | 本文有沒有測 |
|---|---|---|
| 價格動能 | 過去一段時間漲最多的類股 | 本文沒有。台股學術因子回測 測過,買最強 3 個產業,日夏普 0.58、年化 11.2%,9 組都輸 0050 |
| 景氣循環 | 景氣階段對應的類股,例如復甦期買金融、原物料 | 沒有 |
| 資金流向 | 成交金額往哪個類股集中 | 本文主題 |
這類研究的學術起點是 Moskowitz 與 Grinblatt(1999),他們發現個股動能有不小的部分來自產業動能。Hong、Torous 與 Valkanov(2007)則發現部分產業的報酬領先大盤。用成交量當訊號的依據比較間接:Gervais、Kaniel 與 Mingelgrin(2001)指出個股成交量異常放大後報酬偏高,他們看的是個股,本文把同樣的想法放到類股層級,是一個待驗證的外推。
美股的版本可以看 美股類股輪動回測,那篇用成分股訊號挑 SPDR 類股 ETF,20 種都沒有穩定贏 QQQ。台股缺少同樣完整的類股 ETF,所以本文直接買類股裡的股票。
怎麼量「資金流入哪個類股」
stock_index_vol 有證交所每天公布的類指數成交金額,2009 年起。本文的計算分三步:
- 算占比:每個類股的成交金額 ÷ 27 類合計。
- 算變化:占比近 S 日平均 ÷ 近 120 日平均,大於 1 代表最近的占比比半年平均高。
- 排序:每月底取比值最高的 K 類。
用比值的原因是類股規模差很多,只看占比的話,213 個月裡有 187 個月是半導體第一。下圖是 2026 年占比最高的四類,半導體從 2019 年起拉開距離,電子零組件 2018 年與 2026 年各衝高一次,電腦及週邊設備 2023 年跳升,光電則從 2009 年約 15% 降到 2023 年不到 4%。

27 類排除了兩個合計類(電子、化學生技)、2023 年才新增的 4 類(綠能環保、數位雲端、運動休閒、居家生活)與其他類,觀光事業與觀光餐旅接成同一類。
回測方法
| 項目 | 本文的做法 |
|---|---|
| 類股成分 | company_basic_info 目前的產業類別,上市公司,已下市公司不在內,有輕微生存者偏誤,對結果偏有利 |
| 股票池 | 上市 4 碼普通股,20 日均成交金額 2,000 萬以上 |
| 排除 | 沒有排除金融股、KY 股與全額交割股 |
| 換股 | 每月最後一個交易日收盤決定,sim() 隔日收盤成交,詳見 前視偏差 |
| 權重 | 等權,沒有單檔上限;平均持股 27.02 檔與 19.29 檔 |
| 周轉率 | 約每年 244.9 次與 179.3 次買進,詳見 周轉率 |
| 交易成本 | sim() 預設:手續費 0.1425%(買賣各一次,未打折)、證交稅 0.3%(賣出) |
| 滑價 | 未另外假設,以收盤價成交 |
| 樣本內外 | 全段 in-sample,未另留樣本外;參數在看結果前寫定,之後沒有改 |
短窗 S 取 10、20、40 日,第二個參數在類股等權版是類股數 1、2、3,在類內強勢股版是持股 10、20、30 檔,各 9 組。至少 7 組的日夏普要高於同期 0050 含息,前後半段各自要贏,要扣預設成本,三項都過才算成立,日夏普的算法見 夏普比率怎麼算。
回測結果:18 組都輸 0050

- 資金流入類股等權: 9 組 0.23~0.55。原參數前半段 0.00,後半段 0.60,兩段都輸 0050。不扣成本 0.57,還是低於 0050。短窗拉長、類股數放寬都比較好,最好的是 40 日、3 類的 0.55,方向是持股越分散越接近大盤。
- 資金流入類股內強勢股: 9 組 0.50~0.60,很穩定,8 組高於等權流動股的 0.50,原參數年化 12.3%、最大回撤 -50.9%。後半段 0.92 比前半段 0.09 好很多,同期 0050 也從 0.70 升到 1.15。
類內強勢股比類股等權好,差別在多了個股動能。本文沒有另外跑全市場 120 日動能當對照,所以無法區分這是動能本身的貢獻,還是類股篩選的貢獻。全市場動能的回測可以看 動能策略。
資金流入選到了什麼
選到的多半是小類股
下圖是 207 個月裡每一類被選中的次數。玻璃陶瓷 5 家、造紙 7 家、資訊服務 11 家;半導體 96 家,成交金額占 27 類的兩到四成。比值的基期越小越容易拉高,這可能是小類股常被選中的原因,本文沒有另外驗證。

被選中的類股平均只占 27 類成交金額的 2.4%,規則追到的金額其實不大。
排名跟下個月報酬沒有單調關係
把每月的 27 類依資金流入分成五段,看下個月的報酬:
| 資金流入排名 | 平均每月超額報酬 | t 值 |
|---|---|---|
| 第 1–2 名 | -0.11% | -0.35 |
| 第 3–7 名 | 0.20% | 1.29 |
| 第 8–13 名 | 0.12% | 1.03 |
| 第 14–20 名 | -0.21% | -1.95 |
| 第 21–27 名 | -0.01% | -0.08 |

超額報酬是類內流動股等權報酬減 27 類平均,不扣成本。第 3 到 7 名略正、第 14 到 20 名略負,t 值都沒有超過 2。最常被規則選中的第 1、2 名是負的。以月為單位看,「資金正在流入」不是有用的預測。
0050 跟資金長期流入同一邊
半導體的占比一路升高,0050 又以台積電為最大權重,買進持有就站在資金長期流入的那一邊。
用 finlab 看最新的資金流入排名
顯示程式碼
from finlab import data
amount = data.get("stock_index_vol:成交金額")
amount.columns = [c.strip() for c in amount.columns]
skip = ("上市電子類指數", "上市化學生技醫療類指數")
sectors = [c for c in amount.columns if c.endswith("類指數") and c not in skip]
share = amount[sectors].div(amount[sectors].sum(axis=1), axis=0)
inflow = share.rolling(20).mean() / share.rolling(120).mean()
print(inflow.iloc[-1].sort_values(ascending=False).head(5))這段是簡化版,沒有排除其他類與 2023 年新增的 4 類,也沒有把觀光兩個欄位接起來。本文用的 27 類與兩個設計的完整回測都在文末的 research.py,約 30 秒跑完。
回測限制
- 只有上市: 類指數成交金額只有上市,上櫃的資金流向沒有算進去。
- 類股成分用現況: 公司換過產業類別、已下市公司都沒有還原,對回測偏有利,結果仍輸 0050。
- 月頻: 本文只測每月換一次,更短週期的輪動沒有測,周轉與成本會更高。
- 容量與滑價: 小類股流動性差,實際衝擊取決於資金規模與成交量,本文未估算容量。
常見問題
類股輪動是什麼?
資金在不同產業之間移動,投資人跟著換到正在受關注的類股。實作上看價格動能、景氣階段或成交金額流向。
台股類股輪動有用嗎?
在本文的設定下,用成交金額占比每月換到資金流入最多的類股,2009 年以來年化 5.1%、日夏普 0.33,輸給 0050 含息的 16.8%、0.95。其他做法沒有在本文測試。
怎麼看資金流向哪個類股?
用每個類股的成交金額除以 27 類合計得到占比,比較近期與半年平均。finlab 的 stock_index_vol:成交金額 有上市各類指數的成交金額,文中有範例程式。
資金流入的類股下個月會漲嗎?
本文的資料看不出來。資金流入排名前 2 的類股,下個月平均比 27 類平均少 0.11%,t 值 -0.35。
類股輪動要看哪些指標?
常見的有類股報酬、成交金額占比與景氣階段。本文測成交金額占比,價格動能的結果在 台股學術因子回測。
半導體占成交金額多少?
本文 27 類合計裡,2026 年到 10 月底平均 39%,2009 年是 20%。
參考文獻
- Moskowitz, T. J., & Grinblatt, M.(1999). Do industries explain momentum? Journal of Finance, 54(4), 1249–1290。個股動能有不小部分來自產業動能。
- Hong, H., Torous, W., & Valkanov, R.(2007). Do industries lead stock markets? Journal of Financial Economics, 83(2), 367–396。部分產業的報酬領先大盤。
- Gervais, S., Kaniel, R., & Mingelgrin, D. H.(2001). The high-volume return premium. Journal of Finance, 56(3), 877–919。個股成交量異常放大後報酬偏高。
延伸閱讀
- 美股類股輪動回測:20 種都沒穩定贏 QQQ
- 台股學術因子回測:10 個論文異常
- 暫停交易是什麼:311 次事件回測
- 借券費率是什麼:當沖券差費率回測
- 營收更正、訴訟重訊、新聞熱度、品質分數回測
- 動能策略
- 台股籌碼訊號回測
- 月營收選股訊號回測
- 量化交易完整指南
- 台股選股完整指南
- FinLab 公開策略庫
下載資源
| 檔案 | 說明 |
|---|---|
| research.py | 完整研究程式:2 個設計 18 組參數、前後兩段、不扣成本,以及類股占比、被選中次數與排名下月報酬 |
| data.csv | 2 個設計原參數的每日淨值,以及 0050 含息與等權流動股 |
| metrics.json | 全部回測與描述統計的原始輸出,含重跑日與 finlab 版本 |
投資警語:本文僅供教學參考,不構成投資建議。過去績效不代表未來表現,投資有風險。
最後更新:2026-11|回測區間:2009-07 ~ 2026-10(資料快照 2026-10-30,重跑日 2026-11-01)|作者:FinLab 量化研究團隊(經量化研究員審閱)
FinLab AI
想建立自己的策略?
用自然語言描述你的選股想法,AI 自動驗證、回測、給你答案
免費開始


