![]()
先看結論:選股方法不是「找神因子」,是「疊低相關因子」
選股方法,就是用一套可重複、可驗證的規則從上千檔股票裡篩出值得買的標的——而不是憑感覺、聽明牌。它分成四大面向:基本面(公司賺不賺錢)、技術面(價格動能與型態)、籌碼面(誰在買)、消息面(營收財報有沒有成長)。
很多人問「怎麼選股票」時,期待的是一個萬用指標。我們用真實台股資料回測 2018 年至今、五個最經典的選股因子(各選 30 檔、每月換股、對照含息 0050),結論很反直覺:
| 選股因子(選 30 檔,月頻) | 年化報酬 | 夏普 | 最大回撤 | 結果 |
|---|---|---|---|---|
| 0050(含息對照) | 25.18% | 1.23 | -33.96% | 基準 |
| 價格動能(近 60 日漲幅) | 12.31% | 0.47 | -58.86% | 輸 |
| 營收動能(年增最高) | 7.97% | 0.43 | -38.16% | 輸 |
| 低股價淨值比(PB) | 6.66% | 0.37 | -34.57% | 輸 |
| 高 ROE | 6.29% | 0.38 | -27.99% | 輸 |
| 低本益比(PE) | -1.11% | -0.09 | -44.13% | 輸(還倒虧) |
(資料來源:finlab 實測,腳本見文末 factor-comparison.py)
沒有任何一個單因子贏過含息 0050。 最會漲的「價格動能」雖有 12% 年化,卻要你忍受 -59% 的回撤——這種策略大多數人抱不住。最反直覺的是「低本益比」:單純買最便宜的股票,七年下來居然是負報酬。
最大回撤(MDD,Max Drawdown):從最高點跌到最低點的最大跌幅。-59% 代表你的資產一度腰斬還不止,是大多數人停損出場、心態崩潰的點。
但把方向不同的因子疊起來,故事就完全反轉。下面這張圖是本文的主角——品質(ROE)+ 動能 + 低波 + 營收四因子複合策略 vs 0050 的權益曲線(資金成長曲線):

| 指標 | 0050(含息) | 品質+動能+低波 複合策略 |
|---|---|---|
| 年化報酬 CAGR | 25.18% | 20.08% |
| 夏普比率(日) | 1.23 | 1.27 |
| 索提諾比率(日) | 1.68 | 1.89 |
| 月索提諾比率 | — | 2.52 |
| 最大回撤 MDD | -33.96% | -25.60% |
(資料來源:finlab 實測,腳本見文末 hero-quality-momentum-lowvol.py)
重點來了:在 2018 年至今這段 AI 帶動的大多頭裡,0050 的原始報酬確實亮眼(年化 25%);但複合策略在風險調整後全面勝出——夏普 1.27 > 1.23、索提諾 1.89 > 1.68、月索提諾高達 2.52,而且最大回撤只有 -25.6%,比 0050 的 -34% 淺了 8 個百分點。換句話說,它讓你少跌一截、晚上睡得著,長期更抱得住。這正是「選股」相對於「無腦買 0050」唯一值得做的理由:用更低的風險換接近的報酬。
夏普比率 / 索提諾比率:都是「每承擔一單位風險換到多少報酬」,越高越好。索提諾只計算「下跌」的波動,對怕賠錢的人更貼近真實感受。我們的策略兩個都贏 0050。
選股方法有哪些?四大面向一次看懂
回到最常被搜尋的問題:選股方法有哪些? 主流可分成四大面向,各自回答一個不同的問題。先用一張表掌握全貌,後面再逐一拆解:
| 選股面向 | 回答的問題 | 常用指標 | 本文對應因子 |
|---|---|---|---|
| 基本面 | 這家公司賺不賺錢、貴不貴? | 本益比、股價淨值比、ROE、EPS | 低 PE、低 PB、高 ROE |
| 技術面 | 價格趨勢站在我這邊嗎? | 均線、MACD、KD、動能、波動度 | 價格動能、低波動 |
| 籌碼面 | 大戶/法人在買還是在賣? | 三大法人買賣超、主力、融資券 | (延伸閱讀,見下) |
| 消息面 | 公司營運有沒有真實成長? | 月營收年增、財報、財測 | 營收動能 |
下面新手選股 5 步驟,把這四個面向串成一條可執行的流程。
新手選股 5 步驟(step-by-step)
- 定方向(由上而下 vs 由下而上):先選產業趨勢、再選個股(由上而下),或直接從財報數字海選個股(由下而上)。新手建議由下而上——讓數據說話,少猜總經。
- 基本面初篩:用 ROE、本益比、股價淨值比過濾掉「不賺錢」或「太貴」的公司。
- 消息面確認成長:看月營收年增是否為正、連續成長,確認基本面「正在變好」而非吃老本。
- 技術面挑時機:在符合基本面的標的中,挑近期有動能、波動相對低的,避免買在主跌段。
- 分散 + 定期換股:選 20–30 檔分散個股風險,每月依規則換股,並用回測驗證——而不是買一檔 all-in。
這 5 步驟的精神,正是後面複合策略在做的事:先用基本面與消息面確認「好公司」,再用技術面確認「好時機」,最後分散持有並系統化換股。
面向一:基本面選股(公司賺不賺錢、貴不貴)
基本面選股回答兩個問題:這家公司會賺錢嗎(品質)?現在買貴不貴(估值)?
| 指標 | 白話定義 | 怎麼看 | 學術背書 |
|---|---|---|---|
| 本益比 PE | 股價 ÷ 每股盈餘,幾年回本 | 越低越「便宜」,但太低常有原因 | Basu (1977):低 PE 組長期報酬較高 |
| 股價淨值比 PB | 股價 ÷ 每股淨值 | <1 代表股價低於帳面價值 | Fama-French (1992):高淨值市值比有溢酬 |
| 股東權益報酬率 ROE | 公司用股東的錢賺錢的效率 | 越高越會賺,>15% 算優 | Novy-Marx (2013):高獲利能力股有超額報酬 |
本益比(PE)怎麼算? 股價 50 元、每股盈餘 5 元,本益比就是 10 倍——代表照目前獲利,10 年回本。但如同前面回測,單買低 PE 在台股 2018 至今是負報酬:便宜常常便宜有因(衰退、產業夕陽),這就是「價值陷阱」。
關鍵啟示:基本面三大指標單獨用都跑輸大盤(ROE 年化 6.3%、PB 6.7%、PE 倒虧)。它們的價值不是「單獨選股」,而是當過濾器——先排除不賺錢、太貴的公司,再交給其他因子。想看 ROE 與本益比怎麼搭配,讀 ROE × 本益比選股策略 與 14 年 14 倍的雞蛋水餃股策略。
面向二:技術面選股(價格動能與波動)
技術面選股看的是價格本身的行為:趨勢、動能、波動。常見工具:
| 工具 | 白話定義 | 選股用途 |
|---|---|---|
| 均線(MA) | 一段期間的平均收盤價 | 站上季線/年線視為多頭 |
| MACD | 兩條均線的乖離與趨勢 | 判斷動能轉強/轉弱 |
| KD | 收盤價在近期高低區間的相對位置 | >80 可能超買、<20 可能超賣 |
| 價格動能 | 近 N 日的漲幅排名 | 買「已經在漲」的強勢股 |
| 波動度(Volatility) | 報酬的標準差 | 低波動股回撤通常較淺 |
動能(Momentum):過去一段時間漲得多的股票,短期內傾向繼續漲。這是學術界最穩健的異象之一。
技術面在本文扮演兩個角色:價格動能(近 120 日漲幅)負責「跟上市場已認同的標的」,低波動負責「壓低整體回撤」。前面回測中,純動能年化雖有 12%,回撤卻達 -59%——這說明動能要搭配低波才抱得住。想學更多技術指標選股,讀 創新高 + ROE + 股價淨值比複合因子策略。
面向三:籌碼面選股(誰在買)
籌碼面看的是資金流向——三大法人(外資、投信、自營)和主力大戶在買還是在賣。常用訊號:
| 籌碼指標 | 白話定義 | 解讀 |
|---|---|---|
| 三大法人買賣超 | 法人當日淨買/淨賣張數 | 連續買超視為認同 |
| 投信作帳 | 投信季底/年底拉抬持股 | 季底前的投信買超股值得留意 |
| 主力/大戶持股 | 大額帳戶持股比例變化 | 大戶增加常領先股價 |
| 融資融券 | 散戶槓桿多空部位 | 融資過高、券資比異常需警惕 |
籌碼面是台股特別有效的面向(本土法人作帳行為明顯),但它波動快、需要日頻資料,適合進階者。本文複合策略以中長期基本面+技術面為主,籌碼面留作延伸——想深入,可從 AI 概念股量化篩選法 切入,把籌碼當成額外的篩選層。
面向四:消息面選股(營收與財報成長)
消息面回答:公司營運是不是「正在」變好? 台股最即時的訊號是月營收(每月 10 日前公布),比季報快、比股價慢半拍,是抓「基本面轉折」的好工具。
| 消息面指標 | 白話定義 | 選股用途 |
|---|---|---|
| 月營收年增(YoY) | 與去年同月比,營收成長幾 % | 連續正成長代表動能延續 |
| 財報三表 | 損益表、資產負債表、現金流量表 | 確認獲利品質、是否燒錢 |
| 財測/法說 | 公司對未來的展望 | 提供前瞻訊號 |
PEAD(Post-Earnings-Announcement Drift,財報公布後漂移):Bernard & Thomas (1989) 發現,好消息公布後股價會「慢慢」往上漂一段時間,而非一次反映完。這就是我們把換股日對齊月營收公布日(
resample_offset='14D')的學術依據——在好消息剛擴散時進場。
前面回測中,純營收動能年化 7.97%、輸 0050——但它在複合策略裡是關鍵的「成長確認」因子。單獨用不行,組起來就有價值。
由上而下 vs 由下而上:兩種選股流程
知道四大面向後,怎麼把它們串起來?有兩種主流選股流程:
| 流程 | 起點 | 步驟 | 適合誰 |
|---|---|---|---|
| 由上而下(Top-down) | 總經/產業 | 景氣 → 強勢產業 → 產業內選個股 | 對總經有掌握的進階者 |
| 由下而上(Bottom-up) | 個股財報 | 財報海選 → 估值/品質過濾 → 技術面挑時機 | 新手、量化選股 |
本文的複合策略屬於典型的由下而上:不預測總經,直接讓四個因子在全市場橫斷面打分數,選分數最高的一籃子。對新手而言,由下而上更可靠——因為它可回測、可驗證,不依賴對未來總經的猜測。
核心:為什麼「疊加」會贏?(本文的 information gain)
這是市面上多數「選股教學」沒有、而我們用真實可追溯回測證明的一點:選股的關鍵不是挑一個神因子,而是把低相關因子疊起來。
我們把四個方向不同的因子各自轉成百分位排名(0~1 分),加權平均成總分,選分數最高的 25 檔、依分數三次方加權集中持有,並把換股日對齊月營收公布日:
| 因子 | 抓什麼 | 補了什麼缺口 | 學術來源 |
|---|---|---|---|
| ROE 品質 | 股東權益報酬率 | 過濾「成長但不賺錢」的公司 | Novy-Marx (2013) |
| 價格動能 | 近 120 日漲幅 | 市場已在認同的標的 | Jegadeesh & Titman (1993) |
| 低波動(雙倍權重) | 近 120 日波動度低者加分 | 壓低整體回撤,讓策略抱得住 | Ang et al. (2006) |
| 營收動能 | 月營收年增 | 確認基本面真實成長 | Bernard & Thomas (1989) PEAD |
為什麼疊加有效? 每個因子的弱點不一樣:動能怕反轉、價值怕價值陷阱、品質怕買貴、低波怕牛市跑輸。把彼此低相關的因子合起來,一個失靈時其他能補,整體波動與回撤就被壓下來——這正是 Asness, Moskowitz & Pedersen (2013)「Value and Momentum Everywhere」的核心:價值與動能跨市場負相關,合起來的組合夏普遠高於單獨任一個。
下面這兩張圖把「單因子全輸、複合才贏」視覺化——左軸年化報酬、右軸夏普:


再看「報酬 vs 風險」散佈圖——理想的策略要往左上角(高報酬、低回撤)走。複合策略(藍點)明顯比所有單因子更靠左上,且回撤比 0050 更淺:

完整的互動式回測儀表板在這裡——權益曲線、月報酬熱力圖、年度績效全部可以直接操作:
想自己寫?複合策略核心程式碼
上面這套「品質+動能+低波+營收」四因子複合,用 finlab 寫出來核心就這幾行(完整版含分數三次方加權見文末可下載腳本):
顯示程式碼
from finlab import data
from finlab.backtest import sim
close = data.get('price:收盤價')
roe = data.get('fundamental_features:ROE稅後').index_str_to_date()
rev = data.get('monthly_revenue:去年同月增減(%)')
mom = close / close.shift(120) - 1 # 近 120 日動能
vol = close.pct_change().rolling(120).std() # 近 120 日波動
# 四個低相關因子各自橫向排名後加總(低波給雙倍權重),選最高 25 檔
score = (roe.rank(axis=1, pct=True)
+ mom.rank(axis=1, pct=True)
+ 2 * (-vol).rank(axis=1, pct=True)
+ rev.rank(axis=1, pct=True))
position = score.is_largest(25)
report = sim(position, resample='M', resample_offset='14D')
report.get_stats() # CAGR 20%、夏普 1.27、月索提諾 2.52、最大回撤 -25.6%圖中另一條「價值+動能」是 Asness, Moskowitz & Pedersen (2013) 的經典組合,我們也實測為年化 20.2%——同樣贏過所有單因子,但波動比「品質+動能+低波」大,正好印證低波因子對風險調整的貢獻。
動手做:用一句話請 AI 跑出選股回測
FinLab 的理念是:你不必學寫程式,只要把選股規則用白話講清楚,回測交給 AI + finlab。
💬 你對 AI 說:
幫我用四個條件選台股:ROE 高、近 120 天漲幅高、近 120 天波動低(低波給雙倍權重)、月營收年增高。把這四項各自做橫斷面排名加起來,選分數最高的 25 檔,依分數加權,每月對齊營收公布日換股,回測 2018 到現在,跟含息 0050 比報酬、夏普、索提諾和回撤。
🤖 AI 回覆:
已用 finlab 跑完回測。品質+動能+低波複合策略年化 20.08%、日夏普 1.27、日索提諾 1.89、月索提諾 2.52、最大回撤 -25.60%。
和 0050 對比: 報酬略低(20% vs 25%),但夏普、索提諾都更高,回撤淺了約 8 個百分點——風險調整後全面勝出。
想要可複製的完整程式碼?直接下載文末的 hero-quality-momentum-lowvol.py,貼進 finlab 環境就能重現上面每一個數字。
我們和其他選股教學差在哪?(實證 vs 宣傳)
| 來源 | 有真實回測? | 有圖表? | 資料時效 |
|---|---|---|---|
| 本文 | ✅ finlab 可下載腳本,每個數字可追溯 | ✅ 5 張圖 + 互動式儀表板 | 2018–2026/05,每季更新 |
| 多數「動能選股」宣傳文 | ❌ 無回測、無績效 | 部分有 | 偏宣傳 |
| 經典量化選股文 | 概念正確 | 常無圖、無回測 | 部分停在數年前 |
我們唯一、也最強的差異化,就是真實、可追溯、可下載重現的台股回測 + 每季更新的新鮮度。你看到的每個數字(20.08%、1.27、-25.60%)都能用文末腳本親手跑出來——這是任何「憑感覺」的選股文做不到的。
常見問題(FAQ)
| 問題 | 回答 |
|---|---|
| 低本益比不是價值投資核心嗎,為何會倒虧? | 概念對,但單獨用在台股 2018 至今跑輸大盤(-1.11%):便宜常有因(產業衰退),即「價值陷阱」。要搭配品質、動能等因子才有效。 |
| 選 25–30 檔會不會太分散? | 分散是為了降低個股暴雷風險;複合策略用「分數加權」把資金集中在最高分股,兼顧分散與集中。 |
| 回測贏就能直接實單嗎? | 不行。要扣交易成本與滑價、注意過擬合與前視偏差,回測漂亮不等於未來賺錢。請當成研究起點而非保證。 |
| 複合策略年化 20% 還輸 0050 的 25%,為何說它贏? | 看風險調整後:它的夏普、索提諾更高、回撤淺 8 個百分點。報酬接近、風險更低,長期更抱得住、複利更穩。 |
| 我不會寫程式可以做嗎? | 可以。把選股規則用白話講給 AI,由 finlab 實跑回測——FinLab 教的是「跟 AI 對話」,不是叫你背 Python 語法。 |
學術文獻:這些因子不是憑空想的
本文每個因子都有數十年的學術實證支撐(白話一句話說明):
- Fama & French (1992),《The Cross-Section of Expected Stock Returns》 — 證實「規模」與「淨值市值比(價值)」能解釋股票報酬,是低 PB 選股的理論基石。
- Jegadeesh & Titman (1993),《Returns to Buying Winners and Selling Losers》 — 過去 3–12 個月漲得多的股票會繼續漲,確立「動能」異象。
- Novy-Marx (2013),《The Other Side of Value: The Gross Profitability Premium》 — 高獲利能力(品質)的公司有顯著超額報酬,支撐用 ROE 選股。
- Ang, Hodrick, Xing & Zhang (2006),《The Cross-Section of Volatility and Expected Returns》 — 低波動股票反而有較好的風險調整報酬,即「低波動異象」,支撐我們給低波雙倍權重。
- Asness, Moskowitz & Pedersen (2013),《Value and Momentum Everywhere》 — 價值與動能跨市場負相關,合成組合的夏普遠高於單一因子,正是「疊加會贏」的理論核心。
- Bernard & Thomas (1989),《Post-Earnings-Announcement Drift》 — 好財報公布後股價會持續漂移,支撐我們把換股對齊營收公布日捕捉 PEAD。
延伸閱讀(主題叢集)
這篇屬於 股票選股 主題,並串接 量化交易 pillar。想更深入,接著看:
- 多因子選股實戰:年化 29% 贏過 0050 — 本文複合思路的進階加碼版
- ROE × 本益比選股策略 — 基本面兩大指標怎麼搭
- 三因子分析 — 因子分組(D1–D10)有效性怎麼驗
- 創新高 + ROE + 股價淨值比複合策略 — 技術面 × 基本面複合
- 量化交易是什麼? — 先搞懂全貌
完整程式碼(可下載重現)
- 五單因子 vs 0050:factor-comparison.py
- 品質+動能+低波複合(Hero):hero-quality-momentum-lowvol.py
兩支腳本都用 conda activate finlab && python <檔名> 即可重現本文每一個數字;benchmark 0050 一律用除權息調整後的 etl:adj_close。
關於作者與 FinLab
作者:FinLab 量化研究團隊。 FinLab 是台灣專注於「用 AI + 量化數據做台股投資研究」的團隊,自 2017 年起經營 finlab Python 套件與量化教學社群,累積數萬名使用者。本文所有回測由 finlab 套件實跑,資料涵蓋台股全市場日頻價量、月營收、財報與除權息調整序列,數字可被任何讀者用文末腳本獨立重現——這是我們對 E-E-A-T(經驗、專業、權威、可信)的具體實踐:不喊明牌,只給可驗證的數據。
投資有風險,過去績效不代表未來表現。本內容僅供教學參考,不構成投資建議,請依個人風險承受度審慎評估。所有因子回測數據來源:finlab 實測(2018-01 至 2026-05),程式碼見 factor-comparison.py 與 hero-quality-momentum-lowvol.py。
最後更新:2026-06|回測區間:2018-01 ~ 2026-05|作者:FinLab 量化研究團隊(經量化研究員審閱)
FinLab AI
想建立自己的策略?
用自然語言描述你的選股想法,AI 自動驗證、回測、給你答案
免費開始
