跳至主要內容
台股研究 約 14 分鐘閱讀

神奇公式、葛拉漢、CANSLIM 在台股有用嗎?10 個選股法單獨選股全輸 0050

神奇公式、葛拉漢防禦型、CANSLIM、均值回歸(短期與長期反轉)、盈餘驚喜、價值綜合、QMJ、低換手率、現金流殖利率,10 個選股法用 finlab 回測台股 2016 到 2026 年:單獨選股 108 組參數沒有一組贏含息 0050;疊在月營收動能上 3 個過三項驗證,都沒有穩定比月營收動能單獨好。

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

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

在 Studio 重跑
108 組全輸 0050

10 個經典選股法與論文異常原參數的日夏普差距:單獨選股減同期 0050 含息介於 -1.01 到 -0.23,疊在月營收動能上減月營收動能單獨介於 -0.48 到 +0.06

依本文重跑

執行這個策略

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

告訴你的AI:

幫我設定 FinLab,重跑神奇公式、葛拉漢、CANSLIM 等 10 個台股選股法,和 0050 含息比較,請讀:https://finlab.finance/setup?relatedUrl=/blog/tw-famous-stock-screens-backtest

免安裝,開啟 FinLab Studio

葛林布雷的神奇公式、葛拉漢的防禦型投資人條件、歐尼爾的 CANSLIM,加上 6 個被大量引用的論文異常(短期反轉、長期反轉、盈餘驚喜、價值綜合、品質減垃圾、低換手率)與現金流殖利率。我們用 finlab 把這 10 個方法搬到台股,從 2016 年 4 月回測到 2026 年 10 月:單獨選股時每個方法換 9 組參數(CANSLIM 27 組),108 組沒有一組的日夏普贏過同期含息 0050;疊在已驗證的月營收動能策略上,有 3 個方法過了三項驗證,但沒有一個能穩定比月營收動能單獨更好。

最接近的是現金流殖利率。月營收動能的候選股裡,近四季營業現金流相對市值排在流動普通股前 30% 的優先買,原參數年化 40.7%、日夏普 1.55,月營收動能單獨(下稱「底」)是 49.8%、1.49;9 組參數全部高於同持股數的底。可是把期間對半切,前半段(2016-05 到 2021-08)日夏普 1.94 大勝底的 1.46,後半段只有 1.20,輸給底的 1.53。事先寫定的「前後兩段都要比底好」沒有過,所以本文不把它開成新策略。

關鍵數字

單獨選股(每月底依訊號取前 30 檔、等權;神奇公式每季換股,葛拉漢與 CANSLIM 持有所有符合條件的股票):

方法(原參數) 年化報酬 日夏普 最大回撤 前/後半段日夏普 鄰近參數贏 0050
短期反轉:近 20 日跌最多 1.2% 0.18 -47.7% 0.40/0.00 0/9 組
長期反轉:近 36 個月跌最多 6.8% 0.42 -50.2% 0.53/0.31 0/9 組
盈餘驚喜 SUE(2017-06 起) 20.2% 0.87 -39.4% 1.08/0.68 0/9 組
價值綜合:B/M、E/P、CF/P 12.7% 0.77 -35.4% 0.99/0.56 0/9 組
品質減垃圾 QMJ(2018-04 起) 6.5% 0.46 -35.0% 0.51/0.41 0/9 組
低換手率:近 60 日 5.4% 0.51 -27.8% 0.84/0.21 0/9 組
現金流殖利率:近四季 17.5% 0.97 -35.1% 1.08/0.86 0/9 組
神奇公式:市值前 500 大 9.3% 0.56 -42.9% 0.43/0.68 0/9 組
葛拉漢防禦型(2017-04 起) 5.8% 0.40 -49.7% 0.35/0.43 0/9 組
CANSLIM 台股版 13.6% 0.60 -53.0% -0.05/1.12 0/27 組
0050 含息(2016-04-29 起) 23.8% 1.20 -34.0% 1.23/1.20 —

各列都和自己同一段日子的 0050 比。SUE、葛拉漢、QMJ 起算較晚,同期 0050 的日夏普是 1.14、1.16、1.19,前後兩段 1.00/1.25、1.11/1.23、0.79/1.52;神奇公式每季換股、從 2016-06-30 起,同期 0050 是年化 23.5%、日夏普 1.18、前後兩段 1.21/1.20;CANSLIM 從 2016-04-01 起,同期 0050 是 23.2%、1.17、1.21/1.18。盈餘驚喜的前半段 1.08 贏過 0050 的 1.00,是 20 個前後段裡單獨版唯一贏的一段。

疊在月營收動能上(月營收動能候選股裡,符合訊號的優先入選,持股 10 檔):

組合(原參數) 年化報酬 日夏普 最大回撤 9 組贏 0050 9 組高於同持股數的底 三項驗證
+短期反轉 32.9% 1.21 -30.7% 0 組 0 組 沒過
+長期反轉 23.6% 1.01 -32.2% 0 組 0 組 沒過
+盈餘驚喜 SUE(2017-07 起) 44.0% 1.37 -29.2% 9 組 3 組 沒過(後半段)
+價值綜合 36.4% 1.47 -25.0% 9 組 6 組 沒過(後半段)
+品質減垃圾 QMJ(2018-05 起) 33.8% 1.21 -35.6% 8 組 0 組 沒過(前半段)
+低換手率 28.8% 1.34 -23.4% 7 組 3 組 過
+現金流殖利率 40.7% 1.55 -29.9% 9 組 9 組 過
+神奇公式 22.3% 1.03 -32.0% 2 組 0 組 沒過
+葛拉漢防禦型(2017-05 起) 47.2% 1.46 -35.8% 9 組 4 組 過
+CANSLIM 台股版 37.3% 1.27 -37.3% 8 組 0 組 沒過(後半段)
月營收動能單獨(2016-05-11 起) 49.8% 1.49 -35.6% — — —
0050 含息(同期) 24.2% 1.21 -34.0% — — —

月營收動能單獨持股 8、10、12 檔的日夏普是 1.37、1.49、1.52。SUE、葛拉漢、QMJ 三列從各自的起點比:同期月營收動能單獨(10 檔)是 1.46、1.47、1.38,0050 是 1.13、1.15、1.18。

研究問題:10 個選股法與出處

方法 說法 finlab 資料 出處
短期反轉 上個月跌最多的股票,下個月會反彈 etl:adj_close Jegadeesh (1990)
長期反轉 過去 3 到 5 年的輸家,之後會贏過贏家 etl:adj_close De Bondt & Thaler (1985)
盈餘驚喜 SUE 獲利大幅超出過去規律的公司,股價會在財報後持續反應 financial_statement:歸屬母公司淨利_損 Bernard & Thomas (1989)
價值綜合 淨值、盈餘、現金流相對股價都便宜的股票報酬較高 financial_statement、etl:market_value Lakonishok, Shleifer & Vishny (1994)
品質減垃圾 QMJ 賺錢、成長、安全、願意配發的好公司長期勝出 financial_statement、etl:adj_close Asness, Frazzini & Pedersen (2019)
低換手率 交易冷清(流動性低)的股票要給較高報酬 price:成交股數、foreign_investors_shareholding:發行股數 Datar, Naik & Radcliffe (1998)
現金流殖利率 營業現金流相對市值高的股票被低估 financial_statement:營業活動之淨現金流入_流出、etl:market_value —
神奇公式 買又好(資本報酬率高)又便宜(盈餘殖利率高)的公司 financial_statement、etl:market_value Greenblatt (2005)
葛拉漢防禦型 規模夠大、財務保守、獲利與配息穩定、價格不貴 financial_statement、dividend_tse、dividend_otc Graham (1973)
CANSLIM 獲利加速、股價接近新高、強勢、有法人買、大盤多頭 financial_statement:每股盈餘、monthly_revenue、institutional_investors_trading_summary O'Neil (1988)

這些研究大多用美股資料。本文檢驗的是同樣的方法在台股、2016 年以後、扣完交易成本是否還站得住。美股同名選股法的結果見 美股選股法回測;同一套驗證做過的第一批 10 個台股論文異常見 台股學術異常回測。

回測方法

項目 本文的做法
股票池 單獨版:上市櫃普通股(4 位數代號),含後來下市的股票;排除金融保險(28 開頭與金融類別)、存託憑證(91 開頭)與 0 開頭的 ETF,20 日平均成交金額至少 2,000 萬元。組合版:候選股沿用月營收動能(全部上市櫃,不排除金融股、沒有成交金額門檻),只有符合單獨版股票池的普通股會被優先。兩種都沒有另外排除 KY 股與全額交割股
財報時點 損益與現金流量都用單季值,近四季合計當年度數字。每家公司的財報從它實際公布那天才用得到(index_str_to_date()),晚交的公司以實際公布日為準;不符合條件的季別不會沿用上一季的結果,避免 前視偏差
單獨版 1 到 7 號:每月最後一個交易日依分數取前 n 檔(n=20、30、50),等權持有。神奇公式每季最後一個交易日換股。葛拉漢每月換股、持有所有符合條件的股票(原參數平均 13 檔);CANSLIM 每週換股、持有所有符合條件的股票(平均 11 檔,大盤在 200 日線下空手)
組合版 底策略是 月營收動能:股價站上 20、60、120 日線,近 3 個月平均營收高於近 12 個月,取 5 日平均漲幅最大的 N 檔(N=8、10、12),每月 11 日換股、單檔 10% 停損。1 到 8 號:訊號在流動普通股裡排前 30%(神奇公式是在市值前 M 大裡)的候選股排前面;葛拉漢、CANSLIM:符合單獨版全部條件的排前面。不符合的才補位
期間 2016-04-01 起到 2026-10-30。盈餘驚喜要用前 12 季的淨利年增算標準差,2017-06-01 起;葛拉漢要連續 3 個四季淨利為正,2017-04-01 起(紀錄 4 年的 3 組要比較 4 年前的 EPS,2018-03-31 才有第一次持股,和自己同期的 0050 比);QMJ 要算 4 年的獲利變化,2018-04-01 起(財報從 2013 年第 1 季起)
交易成本 sim() 預設:手續費 0.1425%(買賣各一次,未打折)、證交稅 0.3%(賣出)
滑價 未另外假設,以 sim() 的收盤價成交
權重 單獨版與組合版都等權;組合版持股 10 檔時每檔約 10%
周轉 單邊年 周轉率(不含停損賣出):單獨版神奇公式 1.4 倍,長期反轉、SUE、價值綜合、QMJ、低換手率、現金流殖利率、葛拉漢 3.1 到 5.0 倍,短期反轉 11.2 倍、CANSLIM 16.9 倍;組合版 10.4 到 11.7 倍
樣本 全段都是樣本內,沒有樣本外測試;「前後兩段」是同一段期間對半切
容量 未估算。組合版每次只買 10 檔,實際衝擊取決於資金規模與成交量
基準 0050 含息(etl:adj_close 還原價)買進持有,不扣成本,和策略同一段日期
統計口徑 日夏普=日報酬平均÷標準差×√252,不扣無風險利率

各方法的細節與參數(粗體是原參數):

  1. 短期反轉: 近 L 個交易日報酬最低的 n 檔,L=10/20/30。
  2. 長期反轉: 近 L 個月(每月 21 個交易日)報酬最低,L=24/36/48。照原論文,不跳過最近一年。
  3. 盈餘驚喜 SUE:(本季淨利 − 去年同季淨利)÷ 前 W 季同一差額的標準差,取最高,W=4/8/12。原論文用 EPS,本文改用歸屬母公司淨利:台股配股會讓每股數字跳動,標準化之後的比值不受股數影響。
  4. 價值綜合: 淨值÷市值、近 q 季淨利年化÷市值、近 q 季營業現金流年化÷市值,三個百分位平均取最高,q=2/4/8。
  5. 品質減垃圾 QMJ: 獲利(毛利÷資產、ROE、ROA、營業現金流÷資產、毛利率、低應計)、成長(前五項的 G 年變化)、安全(低 252 日 Beta、低負債比、近 12 季 ROE 波動小)、配發(近四季發放現金股利÷淨利,虧損記 0;論文的配發還計入股票與負債的淨發行,本文只用現金股利)。每個變數先換成橫斷面排名的 z 分數,面向內平均,四個面向再加總,取最高,G=2/3/4 年。論文的安全面向還有特質波動、破產機率等指標,本文沒有放。
  6. 低換手率: 近 L 日平均換手率(成交股數÷發行股數)最低,L=20/60/120。
  7. 現金流殖利率: 近 q 季營業現金流年化÷市值,取最高,q=2/4/8。
  8. 神奇公式: 流動股票裡市值前 M 大(另排除油電燃氣),盈餘殖利率(近四季營業利益÷企業價值)與資本報酬率(近四季營業利益÷(淨營運資金+不動產廠房設備))百分位相加取最高,M=300/500/800。企業價值=市值+有息負債+非控制權益-現金;淨營運資金扣掉現金與短期借款,負數記 0。流動股票通常不到 800 檔,所以 M=800 幾乎等於全部。
  9. 葛拉漢防禦型: 流動股票市值前 500 大中同時符合:流動比率 至少 2、非流動負債不超過營運資金、近 Y 個四季淨利都為正、近 Y 年每年都有除息、近四季 EPS 不低於 Y 年前、市值不超過近 3 年平均淨利的 15 倍(本益比 ≤ 15)、本益比×股價淨值比 ≤ K;K=15/22.5/30,Y=2/3/4。葛拉漢要求 10 年獲利、20 年配息、10 年盈餘成長三分之一以上;台股財報從 2013 年才有,本文把年限縮短,盈餘成長也放寬成「不低於 Y 年前」。
  10. CANSLIM 台股版: C:單季 EPS 年增 ≥ g,而且近 3 個月營收年增 ≥ g(台股每月公布營收,比季報即時);A:近四季 EPS 年增 ≥ g;N:收盤價 ≥ 近 252 日最高價的 h 倍;L:3、6、9、12 個月報酬以 0.4、0.2、0.2、0.2 加權的相對強度,在股票池的百分位 ≥ r;I:外資加投信近 20 日買超;M:加權報酬指數在 200 日線上,否則空手。g=20%/25%/30%,r=0.7/0.8/0.9,h=0.80/0.85/0.90,共 27 組。S(籌碼供需)沒有放。

三項驗證的「贏」都指日夏普高於同期 0050 含息:

  1. 參數高原: 兩個主要參數各取 3 個值,共 9 組(CANSLIM 27 組),七成以上要贏。
  2. 前後兩段: 原參數在前半段、後半段各自都要贏。
  3. 交易成本: 用 sim() 預設的手續費與證交稅,不設成 0。

組合版另外要比底策略好才算新策略,五個條件都要成立:三項驗證都過;原參數的日夏普高於同持股數的月營收動能單獨;9 組裡至少 7 組高於同持股數的底;前後兩段都高於底的同一段;持股(按持有天數算)至少 20% 跟底不同。最後一條是為了排除只換掉極少數交易、結果幾乎和底一樣的組合。

這些定義與參數在看到任何回測結果前就寫定,之後沒有改動。單獨版 108 組、組合版 90 組,總會有幾組剛好贏,挑出來報告就是過度擬合,所以只看事先寫定的原參數與整片鄰近參數。日夏普的算法見 夏普比率怎麼算。

單獨選股:108 組參數,日夏普最高 1.07

10 個方法單獨選股的鄰近參數日夏普:短期反轉 0.06 到 0.38、長期反轉 0.07 到 0.49、SUE 0.61 到 0.97、價值綜合 0.60 到 0.93、QMJ 0.31 到 0.66、低換手率 0.20 到 0.67、現金流殖利率 0.83 到 1.07、神奇公式 0.40 到 0.97、葛拉漢 0.18 到 0.50、CANSLIM 0.51 到 0.83,全部低於同期 0050

每個點是一組參數的日夏普,紅線是同期 0050。108 組裡最高的是現金流殖利率(近 2 季、持股 20 檔)的 1.07,2016 年以來 0050 是 1.20;其他方法最高的是神奇公式在市值前 300 大裡持有 50 檔的 0.97。

前後兩段也一樣。20 個前後段裡只有盈餘驚喜的前半段(2017-06 到 2022-02)贏,1.08 對 0050 的 1.00,後半段掉到 0.68,0050 是 1.25。短期反轉的後半段日夏普是 0.00,QMJ 後半段 0.41,同期 0050 是 1.20 與 1.52。

交易成本只解釋一部分。不扣成本時,10 個方法的日夏普在 0.43 到 1.08 之間,仍然全部低於 0050。成本影響最大的是周轉最高的兩個:CANSLIM 一年周轉約 17 倍,日夏普從不扣成本的 0.95 降到 0.60;短期反轉一年約 11 倍,從 0.43 降到 0.18。

回撤方面,低換手率的最大回撤 -27.8% 比 0050 的 -34.0% 淺,可是年化只有 5.4%。CANSLIM 有大盤濾網,最大回撤仍有 -53.0%,發生在 2016 到 2021 年的前半段;前半段年化 -4.3%、日夏普 -0.05,後半段日夏普 1.12。

幾個方法的參數規律:

  • 神奇公式: 範圍越限縮在大公司越好。持有 30 檔時,市值前 300 大是 0.85、前 500 大 0.56、前 800 大 0.47,和美股版「前 500 大比前 2,000 大好」的方向一致,但最好的一組仍輸 0050。
  • 短期反轉: 回看期間越短越好,10 日的 0.33 到 0.38 高於 20 日、30 日,全部低於 0.4。只買跌最多的 30 檔、不加其他條件的版本,見 跌深反彈策略回測。
  • 葛拉漢: 放寬到本益比×股價淨值比 ≤ 30、紀錄 3 年最好(0.50),平均也只持有 18 檔;收緊到 ≤ 15 時平均只剩 6 檔,日夏普 0.19 到 0.27。

疊在月營收動能上:3 個過三項驗證,沒有一個穩定比底好

10 個方法疊在月營收動能上各 9 組參數的日夏普,對照月營收動能單獨 1.49 與 0050 含息 1.21:低換手率、現金流殖利率、葛拉漢三組過三項驗證,只有現金流殖利率 9 組都高於底

組合版的對手有兩個:0050 和月營收動能本身。月營收動能單獨 2016 年 5 月以來年化 49.8%、日夏普 1.49,本來就贏 0050 很多,所以 9 組贏 0050 不難,難的是比它更好。

  • 過三項驗證的 3 個: 低換手率(9 組贏 0050 7 組)、現金流殖利率(9 組)、葛拉漢防禦型(9 組),前後兩段都贏 0050,扣成本也贏。
  • 比底好的檢查都沒過: 現金流殖利率最接近,原因在下一段。葛拉漢原參數 1.46 對底的 1.47,9 組只有 4 組高於底,持股只有 16% 跟底不同;推測是月營收動能的候選股裡,同時符合葛拉漢條件的不多。低換手率只有回看 20 日的 3 組比底好(1.50 到 1.69),60 日、120 日的 6 組都比底差。
  • 後半段輸 0050 的 3 個: 盈餘驚喜、價值綜合、CANSLIM 9 組都有八成以上贏 0050,但後半段輸:價值綜合 1.04 對 1.19,盈餘驚喜 1.25 對 1.30,CANSLIM 1.1868 對 1.1870,只差第四位小數。QMJ 則是前半段 0.74 輸給 0050 的 0.78。
  • 比底差很多的 3 個: 短期反轉、長期反轉、神奇公式,9 組裡贏 0050 的不超過 2 組,也沒有一組高於底。前兩個可能的原因是:月營收動能挑的是剛轉強的股票,優先買近期或過去 3 年跌最多的,等於和動能對著做(推測,本文沒有另外驗證)。

月營收動能加現金流殖利率與月營收動能單獨、0050 含息的 1 元成長:2021 年 8 月以前組合版日夏普 1.94、底 1.46,之後組合版 1.20、底 1.53

現金流殖利率的 9 組日夏普 1.44 到 1.75,每一組都高於同持股數的底,原參數 1.55 對 1.49。拆成兩段看,2016 年 5 月到 2021 年 8 月,組合版 1 元變成約 8.7 元,底是約 7.2 元;到 2026 年 10 月,組合版約 36 元,底約 69 元,組合版的總報酬只有底的一半左右。逐年看兩者互有輸贏:2019 年組合版 +66%、底 +2%;2020 年底 +180%、組合版 +75%;2024 年底 +87%、組合版 +39%;2026 年到 10 月底 +102%、組合版 +19%。日夏普前半段贏、後半段輸,照事先的規則不開新策略頁;原參數的程式附在下面與 research.py,讀者可以自己換參數看。

為什麼經典選股法贏不了 0050

下面是幾個可能的原因,除了數字以外,本文沒有逐一驗證。

  1. 2016 年以後是 0050 很強的十年。 同期 0050 含息年化 23.8%、日夏普 1.20,台積電權重最大。單獨版原參數每次等權持有 11 到 30 檔,即使不扣成本,10 個方法的日夏普也都低於 0050。
  2. 價值與品質偏向漲得慢的股票。 價值綜合、葛拉漢、QMJ、低換手率選的是便宜、財務穩定或交易冷清的公司,這 4 個方法單獨選股的日夏普只有 0.40 到 0.77,年化 5.4% 到 12.7%。
  3. 反轉和動能對著做。 短期反轉、長期反轉單獨用年化只有 1.2% 與 6.8%;疊在追強勢股的月營收動能上,日夏普從 1.49 降到 1.21 與 1.01。追強勢股的做法見 動能策略。
  4. 財報比月營收慢。 盈餘驚喜、CANSLIM 的 C 與 A 都要等季報,第 4 季財報最晚隔年 3 月底才公布。CANSLIM 台股版已經加上月營收,前半段年化仍是 -4.3%。
  5. 神奇公式的範圍越大越差。 美股版用市值前 1,000 大、持有 30 檔;台股 20 日均成交金額 2,000 萬元以上的股票每月約 700 檔,持有 30 檔時,前 300、500、800 大的日夏普是 0.85、0.56、0.47。本文沒有測更小的範圍。

用 finlab 重現:現金流殖利率疊在月營收動能上

本文的數字全部出自文末的 research.py。下面是表格裡最接近通過的那組,可以直接貼進 Python 或交給 AI 助理執行:

顯示程式碼
from finlab import data
from finlab.backtest import sim
 
close = data.get("price:收盤價")
revenue = data.get("monthly_revenue:當月營收")
cash_flow = data.get("financial_statement:營業活動之淨現金流入_流出")  # 單季、千元
market_value = data.get("etl:market_value")  # 元
turnover_value = data.get("price:成交金額")
 
# 1. 月營收動能的候選股:站上 20、60、120 日線,近 3 個月平均營收高於近 12 個月
trend = (close > close.average(20)) & (close > close.average(60)) & (close > close.average(120))
revenue_up = revenue.average(3) > revenue.average(12)
momentum = (close / close.shift() - 1).rolling(5).mean()
 
# 2. 現金流殖利率=近四季營業現金流(千元換成元)÷ 市值,從各公司公布財報那天起才算數
cash_flow_4q = (cash_flow.rolling(4).sum() * 1000).index_str_to_date()
cash_flow_yield = cash_flow_4q.reindex(close.index, method="ffill") / market_value.reindex(close.index)
 
# 3. 20 日均成交金額 2,000 萬元以上的股票裡,現金流殖利率最高的 30% 排前面
liquid = turnover_value.rolling(20).mean() > 2e7
top_30pct = cash_flow_yield[liquid].rank(axis=1, pct=True, ascending=False) <= 0.3
score = momentum[trend & revenue_up] + top_30pct.astype(float)
position = score.is_largest(10).loc["2016-04-01":]
 
# 4. 每月 11 日換股、單檔 10% 停損,sim() 預設扣手續費與證交稅
report = sim(position, resample="M", resample_offset="11D", stop_loss=0.1)
report.display()

這段 2016-05-11 到 2026-10-30 年化 40.7%、日夏普 1.56;research.py 是 40.7%、1.55。差別有兩處:這段在所有流動股票裡排現金流殖利率(含金融股),research.py 只在普通股、非金融股裡排;這段的 index_str_to_date() 遇到某季沒有資料會沿用上一季,research.py 不沿用。把 rolling(4) 改成 rolling(2),就是近 2 季的版本(research.py 是 1.75);把 top_30pct 拿掉,就是月營收動能單獨。finlab 需要資料時會自動引導登入,不需要在程式裡填 token。

這些方法可以怎麼用

  • 單獨選股都輸 0050。 10 個方法裡最接近的是現金流殖利率,日夏普 0.97 對 1.20。想用其中任何一個當主策略,至少要先接受十年來落後大盤的事實。
  • 組合要比底策略好才有意義。 疊在已經很強的策略上,贏 0050 不代表新資料有用,要和底策略本身比,前後兩段也要比得過。現金流殖利率 9 組都高於底,後半段卻輸給底。
  • 葛拉漢的條件很嚴。 台股前 500 大裡,同時符合流動比率、獲利、配息、本益比與股價淨值比的,原參數平均只有 13 檔;想提高持股數就得放寬條件,放寬後日夏普最高 0.50。
  • 高周轉的方法要先算成本。 CANSLIM 每週換股一年周轉約 17 倍、短期反轉約 11 倍,手續費與證交稅吃掉 0.35 與 0.24 的日夏普。
  • 美股和台股的結論相近。 美股版的神奇公式、CANSLIM、葛拉漢數也全輸 QQQ,見 美股選股法回測。

常見問題

神奇公式在台股有效嗎?

在本文設定下沒有贏大盤。流動股票市值前 500 大、盈餘殖利率加資本報酬率排名最好的 30 檔,每季換股,2016 年以來年化 9.3%、日夏普 0.56;同期 0050 含息年化 23.5%、日夏普 1.18。範圍縮到前 300 大最好,持有 50 檔時日夏普 0.97,仍輸 0050。

葛拉漢選股法的條件有哪些?

《智慧型股票投資人》給防禦型投資人的條件包括:規模夠大、流動比率至少 2、長期負債不超過營運資金、10 年都有獲利、20 年不間斷配息、10 年盈餘成長三分之一以上、本益比不超過 15、本益比乘股價淨值比不超過 22.5。本文把年限縮成 3 年、盈餘成長放寬成不低於 3 年前,台股 2017 年以來平均持有 13 檔,年化 5.8%、日夏普 0.40。

CANSLIM 是什麼?台股能用嗎?

CANSLIM 是歐尼爾的 7 個條件:當季獲利成長(C)、年度獲利成長(A)、新產品或股價新高(N)、籌碼供需(S)、強勢股(L)、法人認同(I)、大盤方向(M)。本文的台股版加上月營收、用外資與投信買賣超代表法人,2016 年以來每週換股,年化 13.6%、日夏普 0.60,27 組參數都輸 0050。

均值回歸策略有用嗎?跌深會反彈嗎?

在台股選股上不明顯。買近 20 個交易日跌最多的 30 檔,每月換股,2016 年以來年化 1.2%;買過去 3 年跌最多的 30 檔,年化 6.8%。疊在月營收動能上也都比月營收動能單獨差。

盈餘驚喜(SUE)怎麼算?

本季獲利減去年同季獲利,除以前幾季同一差額的標準差,數字越大代表這季獲利越超出過去的規律。本文用前 8 季的標準差,選 SUE 最高的 30 檔,2017 年以來年化 20.2%、日夏普 0.87,前半段贏 0050、後半段輸。月營收版本的營收驚喜見 營收驚喜選股。

品質因子(QMJ)在台股有用嗎?

本文的簡化版 2018 年以來年化 6.5%、日夏普 0.46,同期 0050 是 1.19;後半段 0.41 對 0050 的 1.52。多因子搭配的版本見 多因子選股打敗 0050。

低換手率的股票報酬比較高嗎?

近 60 日平均換手率最低的 30 檔,最大回撤 -27.8% 比 0050 淺,但年化只有 5.4%。疊在月營收動能上,回看 20 日的版本比底好,60 日與 120 日都比底差。

現金流殖利率怎麼算?

近四季營業活動現金流量合計除以市值,和本益比的倒數(盈餘殖利率)類似,只是分子換成現金。最高的 30 檔 2016 年以來年化 17.5%、日夏普 0.97,是 10 個方法裡單獨選股日夏普最高的,仍輸 0050;疊在月營收動能上 9 組都比底好,但後半段輸給底。自由現金流的版本見 財報狗自由現金流選股回測。

延伸閱讀

下載資源

檔案 說明
research.py 完整研究程式:10 個方法的單獨版與組合版、198 組參數、前後兩段、不扣成本對照、月營收動能單獨
data.csv 20 個版本原參數與月營收動能單獨的每日淨值(各自從 1 起算),以及 0050 含息
metrics.json 每組參數的回測結果,含重跑日與 finlab 版本

投資警語:本文僅供教學參考,不構成投資建議。過去績效不代表未來表現,投資有風險。

最後更新:2026-11|回測區間:2016-04 ~ 2026-10(SUE 2017-06、葛拉漢 2017-04、QMJ 2018-04 起,資料快照 2026-10-30,重跑日 2026-10-31)|作者:FinLab 量化研究團隊(經量化研究員審閱)

FinLab AI

想建立自己的策略?

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

免費開始

更多多因子選股研究

查看全部