這篇文章 2020 年的版本說:ROE 高不代表股價值得買,搭配 PB 挑便宜股,「獲利明顯高於只看 ROE 的策略」。
2026 年 8 月,我們用同樣的條件把它完整重跑一次,含交易成本、附可下載程式碼。結論翻盤:
| 策略 | 年化報酬 | 日夏普 | 最大回撤 | 平均持股 |
|---|---|---|---|---|
| 策略一:只看 ROE > 5% | 12.8% | 0.80 | -32.5% | 241 檔 |
| 策略二:ROE > 5% + PB < 1.2 | 7.8% | 0.53 | -38.0% | 16 檔 |
| 0050 含息買進持有 | 20.1% | 1.09 | -34.0% | 1 檔 |
執行這個策略
複製提示詞,讓 AI 依照上方證據的資料、條件與風險檢查重跑一次。
告訴你的AI:
回測 ROE 大於 5 加 PB 小於 1.2 的台股選股策略,每 60 天換股,和 0050 含息比較,請讀:https://finlab.finance/setup?relatedUrl=/blog/roe-pb-stock-selection-strategy
統計視窗 2013-06-18 至 2026-08-07(13.1 年,全部曲線同一起點),每 60 個日曆日換股,含手續費 1.425‰ 與賣出證交稅 3‰。加上 PB 濾網之後,年化從 12.8% 掉到 7.8%,回撤還更深;而且兩個策略都輸給什麼都不做的 0050 含息。1 元本金在 13 年後:策略一變 4.86 元,策略二變 2.67 元,0050 含息變 11.10 元。
公式推導的部分仍然成立,值得先看懂;實測翻盤的原因,藏在「便宜股票池裡裝了什麼」,本文用持股組成把它攤開。

公式推導:為什麼 ROE 高可能只是「貴」
ROE 衡量的是企業用股東的錢賺錢的效率。先定義幾個名詞:淨利(N)、股東權益(SE)、市值(MC)、股價淨值比 PB = MC/SE、本益比 PE = MC/N。把 ROE 拆開:
ROE = N / SE = (MC / SE) ÷ (MC / N) = PB ÷ PE
同一個 ROE,可以由兩種很不一樣的組合構成:低 PE 配低 PB(獲利強又便宜),或高 PB 配普通 PE(市場已經給了很高的估值)。所以:
ROE 高,不代表這個價格值得買入。
到這裡都是恆等式,沒有爭議。2020 年版接下來的推論是:「既然高 ROE 可能只是貴,那就再用 PB < 1.2 把貴的刪掉」。這一步聽起來合理,實測卻是整篇文章翻盤的地方。
回測設定
- 策略一(只看 ROE):ROE > 5% 且收盤價 > 10 元,符合條件的全部等權買入。
- 策略二(ROE + PB):策略一再加 PB < 1.2。
- 每 60 個日曆日換股;手續費 1.425‰(未打折)、賣出證交稅 3‰;等權重。
- 資料:finlab 的
fundamental_features:ROE稅後與price_earning_ratio:股價淨值比(皆按公告時點對齊,無前視)。ROE 資料可得起點決定了統計視窗從 2013-06-18 開始,所以 2008 年金融海嘯不在可檢驗範圍內(這點對舊版宣稱的意義,回撤一節再談)。
原版說策略二「平均持股約 10 檔」,重跑的真實數字是平均 16 檔(PB < 1.0 時為 8 檔),量級相符:

策略一平均 241 檔,接近「持有整個獲利正常的市場」;策略二平均 16 檔,是高度集中的深度價值組合。這個集中沒有換來報酬,換來的是下一節的組成問題。
便宜股票池裡裝了什麼:翻盤的原因
把策略二歷年年底的持股按產業拆開,答案就出來了:
- 2014 年底:22 檔裡金融保險 13 檔、建材營造 4 檔。
- 2018 年底:建材營造 6 檔、電子零組件 6 檔、半導體 3 檔。
- 2022 年底:電子零組件 10 檔、電腦週邊 7 檔、航運 6 檔。
- 2026 年 8 月:全市場只剩 8 檔符合條件,建材營造居首。
PB < 1.2 且 ROE > 5% 的組合,撈起來的多半是金融、營建與景氣循環股。2022 年底那批特別有代表性:航運與電子零組件在獲利高峰時 PE 與 PB 同時被壓到很低,看起來「又賺錢又便宜」,其實是市場在對「獲利即將均值回歸」定價。買進之後吃到的是獲利下修,不是估值修復。
這與學術文獻的講法一致。Fama 與 French(1992)證實低 PB(高淨值市價比)長期有超額報酬,是價值溢酬的經典證據(The Cross-Section of Expected Stock Returns,Journal of Finance);但 Piotroski(2000)同樣用實證指出,低 PB 池裡多數個股其實表現不佳,溢酬集中在少數體質強的公司,必須用財報訊號把贏家從輸家裡分出來(Value Investing: The Use of Historical Financial Statement Information,Journal of Accounting Research)。ROE > 5% 是一道很低的體質門檻,擋不掉獲利高峰的景氣循環股,也擋不掉長年低估值有理的資產股。
同一個結論,本站用另一個實驗也驗過一次:股價淨值比五分位排序 16 年實測顯示低 PB 組確實勝過高 PB 組(排序有效),但五組全部輸給 0050 含息。「因子方向對」與「拿它單獨選股能賺」是兩件事。
參數敏感度:門檻怎麼調都一樣
如果翻盤只是 1.2 這個數字選得不巧,把門檻挪動應該會改變結論。實測不會:
| 變體 | 年化報酬 | 日夏普 | 最大回撤 | 平均持股 |
|---|---|---|---|---|
| PB < 1.0 | 9.4% | 0.57 | -37.8% | 8 檔 |
| PB < 1.2(原版) | 7.8% | 0.53 | -38.0% | 16 檔 |
| PB < 1.5 | 9.6% | 0.65 | -38.6% | 31 檔 |
| 排除金融股+流動性過濾 | 4.7% | 0.34 | -48.0% | 11 檔 |
三個門檻的年化都落在 7.8% 到 9.6% 之間,全部低於不加 PB 的 12.8%:結論對參數不敏感,PB 濾網在這 13 年就是負貢獻。第四列值得單獨講:我們原本猜「也許是金融股拖累」,把金融股排除、再加上 20 日均量大於 100 張的流動性條件,結果年化掉到 4.7%、回撤加深到 -48.0%。金融股其實是這個便宜池裡相對穩定的部分;把它拿掉,剩下的營建與景氣循環股更慘。猜測與數據相反,是這次重跑裡第二個反直覺的結果。

回撤:舊版的 -60% 是檢驗不了的數字
2020 年版寫「金融海嘯時虧損來到 60%」。這個數字無法檢驗,因為 ROE 資料的可得起點讓回測最早只能從 2013 年年中起算,而金融海嘯發生在 2008 到 2009 年。舊版同時又說回測從「2010 年後」開始,時序本身就對不上。可驗證窗內的真實數字是:策略二最深回撤 -38.0%(2022 年),比 0050 含息的 -34.0% 更深。

換句話說:集中在 16 檔便宜股,並沒有換到比大盤淺的回撤。低估值不是下跌保護,2022 年那批「便宜的」電子零組件與航運股跌起來比 0050 更深。
那 ROE 和 PB 到底該怎麼用
這次實驗否定的是「ROE 低門檻 + PB 靜態上限」這個具體配方,不是這兩個指標本身。可驗證的替代路徑有三條:
把 PB 從「上限」變成「排序中的一票」。 多因子選股實測顯示,營收動能、價格動能、ROE 與低波動四個面向合成後年化 29%、回撤 -26%,勝過任何單一因子;估值可以是其中一票,但不該是一刀切的門檻。
用更完整的財報訊號取代單一 ROE 門檻。 Piotroski 的思路是九項財報檢查(獲利、槓桿、營運效率),本站在 PE、PB、PEG 回測與財報狗選股法實作裡有相近的組合實驗。
先想清楚 ROE 的換股頻率。 ROE 高低與換股頻率的實測顯示同一個 ROE 條件,換股頻率不同結論就不同;杜邦分析則能拆出 ROE 是靠獲利率還是靠槓桿撐起來的。
想從整體框架入手,可從台股選股策略總覽與量化交易完整指南開始;名詞不熟的讀者可先翻量化投資詞彙表。
自己重跑一次
核心程式如下,貼給 AI 或直接執行都可以(finlab 會自動引導登入):
顯示程式碼
import finlab
from finlab import data
from finlab.backtest import sim
finlab.login()
# 載入資料
close = data.get("price:收盤價")
pb = data.get("price_earning_ratio:股價淨值比")
roe = data.get("fundamental_features:ROE稅後")
# 策略一:只看 ROE
pos_roe = (roe > 5) & (close > 10)
# 策略二:ROE 搭配 PB
pos_roe_pb = pos_roe & (pb < 1.2)
# 每 60 個日曆日換股,含手續費與證交稅
report = sim(pos_roe_pb, resample="60D",
fee_ratio=0.001425, tax_ratio=0.003, upload=False)
report.display()完整重現素材:
- strategy.py:兩個策略的完整程式,含統計視窗切齊與平均持股數計算。
- data.csv:六條權益曲線(含敏感度變體與 0050 含息),全部從 2013-06-18 歸一。
- backtest_results.csv:本文所有表格的來源數字。
策略二的互動式回測報告直接放在下方,每一筆換股與持股都可以核對:
回測方法與限制
- 視窗與口徑:所有曲線(含 0050 含息)統一從 2013-06-18 起算至 2026-08-07;0050 含息用
etl:adj_close還原價純算術買進持有,不經回測引擎、不含交易成本,若含成本策略與基準的差距會更大。 - 成本:策略含手續費 1.425‰(未打折)與賣出證交稅 3‰;2020 年版不計成本,這是新舊數字不可直接比較的原因之一。
- 樣本外:本文為全段 in-sample 檢驗、未切樣本外;因為結論是「策略失效」,in-sample 已足以否證(樣本內都輸,樣本外沒有翻盤的理由)。
- 前視:ROE 與 PB 皆按公告可得時點對齊;60 個日曆日的換股頻率約等於原文的「每 60 天」,與逐季財報更新頻率相近。
- 存活者偏差:finlab 資料含下市股票,回測期間持有到下市的個股會如實計入損失。
常見問題 FAQ
ROE 搭配 PB 選股還值得學嗎?
公式推導(ROE = PB/PE)值得學,它說明高 ROE 可能只是估值貴。但「PB < 1.2 一刀切」這個用法在台股 2013 到 2026 年是負貢獻,本文數字可下載驗證。
為什麼加了 PB 濾網報酬反而變低?
因為「ROE > 5% 且 PB < 1.2」撈到的多半是金融、營建與獲利高峰的景氣循環股(2022 年底池子裡航運加電子零組件佔了大半)。低 PB 常是市場對獲利下修的定價,不是撿便宜的機會。
把 PB 門檻改成 1.0 或 1.5 會不會不一樣?
不會。三個門檻的年化落在 7.8% 到 9.6%,全部低於不加 PB 的 12.8%,結論對參數不敏感。
排除金融股會更好嗎?
實測更差:排除金融股加流動性過濾後年化剩 4.7%、回撤 -48.0%。金融股是這個便宜池裡相對穩定的部分。
低 PB 因子在台股完全沒用嗎?
不是。五分位排序實測顯示低 PB 組勝過高 PB 組,排序方向成立;問題在「單獨拿它選股」贏不了 0050 含息。因子有效與策略能賺是兩件事。
原文說金融海嘯回撤 60%,這次為什麼沒有這個數字?
ROE 資料可得起點讓回測最早從 2013 年年中起算,2008 年不在可檢驗範圍內;舊版宣稱無法重現,也與其自稱的 2010 年起回測在時序上矛盾。可驗證窗內策略二最深回撤是 2022 年的 -38.0%。
平均持股 16 檔會不會太集中?
以分散角度是偏集中(策略一有 241 檔),而且 2026 年 8 月全市場只剩 8 檔符合條件,池子本身在枯竭。集中也沒有換到更淺的回撤,-38.0% 比 0050 含息更深。
那現在該用什麼選股?
單因子一刀切的時代結論已多次被否證(本文、低 PB 排序、EPS 與 ROE 對比都是同型結果);可驗證的方向是多因子合成,把估值當一票而非門檻。
最後更新:2026-08|回測區間:2013-06 ~ 2026-08(統計視窗 2013-06-18 ~ 2026-08-07)|作者:FinLab 量化研究團隊(經量化研究員審閱)
本文僅供教學與研究參考,不構成投資建議。過去績效不代表未來表現,投資一定有風險,請審慎評估自身風險承受能力。
FinLab AI
想建立自己的策略?
用自然語言描述你的選股想法,AI 自動驗證、回測、給你答案
免費開始

