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

多因子選股策略教學(2026):營收+動能+ROE+低波,台股年化 29% 贏過 0050

多因子選股是什麼?本文用營收動能、價格動能、ROE 品質、低波動四個因子合成台股選股策略,2018 至 2026 年化報酬 29.45%、夏普 1.40、最大回撤僅 -26%,全面贏過 0050。附各因子單獨回測、實際選股名單、可複製的 finlab 對話與互動式回測。

四因子年化29%贏0050 CAGR 29.4% Sharpe 1.40

先看結論(2026 最新回測)

多因子選股就是把好幾個方向不同的選股條件疊在一起打分數、加權選股,用因子之間的互補抵銷單一條件的脆弱。我們用 finlab 實跑台股(資料截至 2026-06),把營收動能 + 價格動能 + ROE 品質 + 低波動四個因子合成一個策略,結果如下:

指標 0050(含息) 四因子選股策略 差距
年化報酬 CAGR 25.05% 29.45% +4.40 個百分點/年
夏普比率(日) 1.13 1.40 風險效率更高
索提諾比率(日) 1.88 2.15 下跌風險更小
月索提諾比率 2.18 3.19 月頻下跌控制更佳
最大回撤 MDD -33.96% -26.07% 少賠約 8 個百分點
年勝率 87.5% 87.5% 持平
近一年報酬 +134.2% +106.8% 0050 近期更猛

四因子選股策略 vs 0050 台股權益曲線回測,2018 至 2026 年化報酬 29.45%

夏普比率(Sharpe):每承擔一單位「總波動」換到多少報酬,越高越好。**索提諾比率(Sortino)**只算「下跌」的波動,對怕賠錢的人更貼近真實感受。最大回撤(MDD):從最高點跌到最低點的最大跌幅,衡量「最痛的時候有多痛」。

重點不只是報酬更高,而是波動與回撤同時更小 —— 把「賺更多」和「睡得著」兩件事一起做到。這就是多因子選股相對單一條件、甚至相對 0050 的核心價值。下面我們一個因子一個因子拆開講清楚,並各自附上單獨回測數據。


多因子選股是什麼?一句話定義

多因子選股(Multi-Factor Stock Selection):同時用兩個以上「對未來報酬有解釋力」的特徵(因子)替每檔股票打分,把分數加權合成總分後排序選股。因為不同因子在不同市況輪流發威,合成後的策略比任何單一因子更穩、回撤更小。

學術界早就證實「多個因子比單因子好」。Fama 與 French(1992)在《The Cross-Section of Expected Stock Returns》提出三因子模型,指出市值與淨值比能解釋單靠 Beta 解釋不了的報酬差異 —— 這是「多因子」思維的起點。後續 Fama-French(2015)再加上獲利能力(profitability)與投資(investment)擴成五因子,而本文的四因子正好對應到其中「動能、品質、低波」三大實證異象,再加上台股特有的「月營收」領先訊號。


常見選股策略有哪些?五大因子家族總覽

在動手組策略前,先建立地圖。台股(與全球)最被驗證有效的選股因子,大致分成五個家族:

因子家族 代表指標 背後邏輯 學術依據(白話)
價值 本益比、股價淨值比、殖利率 買便宜的好公司,均值回歸 Fama-French(1992):低淨值比股長期溢酬
動能 近 3–12 月漲幅、創新高 強者恆強,趨勢有延續性 Jegadeesh-Titman(1993):過去贏家續贏
品質 ROE、毛利率、自由現金流 賺錢效率高的公司股價更耐操 Novy-Marx(2013):高毛利股有顯著超額報酬
低波動 報酬標準差、Beta 低波股報酬不輸高波股,風險卻低很多 Ang et al.(2006):高波動股「反而」報酬差
成長/營收 月營收年增、營收動能 基本面真實成長領先股價 台股月營收為全球少見的高頻領先指標

因子(Factor):一個能「橫斷面」區分股票未來報酬高低的可量化特徵。例如「ROE 高」是一個品質因子。

本文的四因子策略就是從這五個家族裡,各挑一個低相關的代表 —— 營收(成長)、價格動能(動能)、ROE(品質)、低波動(低波),刻意跳過「價值」因子,原因下面會用回測解釋。


為什麼是這四個因子?先看單因子全都不夠強

很多人以為「找一個神指標」就能贏大盤。我們把四個因子各自單獨回測(同樣的選股池、同樣每月選 40 檔等權、同樣對齊營收公告日),結果很殘酷:

單因子策略 年化報酬 夏普(日) 最大回撤 問題
營收動能 20.36% 0.92 -38.23% 報酬不差,但回撤大、追高易套
價格動能 29.21% 0.96 -40.34% 報酬亮眼,但波動劇烈、回撤最痛
ROE 品質 17.41% 0.78 -43.03% 賺錢公司不等於股價會漲
低波動 13.60% 1.22 -21.95% 最穩,但報酬最低、跟不上大盤
0050(基準) 25.05% 1.13 -33.96%
四因子合成 29.45% 1.40 -26.07% 報酬與回撤兼顧 ✅

台股單因子年化報酬長條圖:營收動能、價格動能、ROE品質、低波動單獨回測對照 0050 與四因子合成

看出端倪了嗎?沒有任何一個單因子能同時做到「報酬高」又「回撤小」:

  • 價格動能報酬最高(29.21%),但夏普只有 0.96、回撤 -40%,抱起來像坐雲霄飛車。
  • 低波動最穩(回撤 -22%、夏普 1.22),但報酬只有 13.6%,大盤都跑不贏。
  • ROE、營收動能各有罩門,夏普都低於 0050。

這正是 Asness、Moskowitz 與 Pedersen(2013)在《Value and Momentum Everywhere》的核心結論:價值與動能在各市場都有效,但兩者負相關,合在一起的投資組合夏普遠高於任一單獨因子。 我們在台股看到的就是這個效應的延伸版。

這就是「分散」在因子層次的版本 —— 你不只分散持股,還分散「賺錢的理由」。一個理由失靈時,其他理由還在撐。

因子之間夠不夠「不一樣」?看相關性矩陣

要靠合成降低風險,前提是四個因子彼此低相關(否則就是重複下注)。我們算出四因子在選股池內的橫斷面排名相關性:

四因子相關性矩陣熱力圖:營收動能、價格動能、ROE、低波動彼此低相關

營收動能 價格動能 ROE 品質 低波動
營收動能 1.00 0.05 -0.01 -0.21
價格動能 0.05 1.00 0.14 -0.04
ROE 品質 -0.01 0.14 1.00 0.02
低波動 -0.21 -0.04 0.02 1.00

四個因子相關係數幾乎都落在 -0.2 到 +0.14 之間,接近零。特別是營收動能與低波動呈 -0.21 負相關 —— 高成長股通常波動也大,兩者剛好互相牽制,合成後既保留成長、又壓住波動。這就是為什麼合成策略的回撤(-26%)能比單看營收動能(-38%)收斂這麼多。

為什麼不放「價值」因子?

你可能注意到我們沒用本益比/淨值比。原因是:在 2018–2026 這段以 AI、半導體為主軸的台股多頭裡,純價值因子(低本益比)表現掙扎,甚至倒虧。把它硬塞進來會拖累整體。這也是多因子選股的誠實之處:因子不是越多越好,而是要選當下環境下互補、各自有獨立貢獻的。


四個因子逐一拆解

因子一:營收動能(成長)

抓什麼:連續 3 個月營收正成長、且月營收年增介於 10%–150%。 為什麼有效:台股每月 10 號前公布上月營收,是全球罕見的高頻基本面領先指標。營收連續成長代表需求是真的,而非單月跳動。設下限 10% 濾掉雜訊,設上限 150% 避開「去年基期太低造成的假成長」。 單獨回測:年化 20.36%、夏普 0.92、回撤 -38.23%。 白話:這是策略的「基本面引擎」,確保我們選的是真有生意的公司,不是純炒題材。

延伸閱讀:月營收選股:動能策略完整介紹與回測月營收漂移 PEAD

因子二:價格動能(動能)

抓什麼:近 60 個交易日的漲幅,越強分數越高。 為什麼有效:Jegadeesh 與 Titman(1993)發現「過去 3–12 個月的贏家,未來仍傾向續贏」,這個動能異象至今在台股仍成立。市場願意持續買進的標的,通常反映了還沒擴散的好消息。 單獨回測:年化 29.21%、夏普 0.96、回撤 -40.34%(報酬最高、但也最顛簸)。 白話:這是「順風帆」,讓我們站在市場已經認同的方向,而不是逆勢猜底。

延伸閱讀:動能投資 18 年實測

因子三:ROE 品質(品質)

抓什麼:股東權益報酬率(ROE)越高分數越高,且對齊各股實際財報公布日(避免前視偏差)。 為什麼有效:Novy-Marx(2013)在《The Other Side of Value》證明,高獲利能力(profitability)的公司有顯著超額報酬,且與價值因子互補。ROE 衡量「公司用股東的錢賺錢的效率」。 單獨回測:年化 17.41%、夏普 0.78、回撤 -43.03%(單獨用偏弱,但能濾掉「成長但不賺錢」的地雷)。 白話:這是「體質檢查」,確保營收成長有轉成真實獲利,而不是賠錢衝營收。

ROE:股東權益報酬率 = 稅後淨利 ÷ 股東權益。越高代表越會用自有資本賺錢。

延伸閱讀:ROE 搭配 PB 選便宜好股

因子四:低波動(低波)

抓什麼:近 60 日「日報酬標準差」越低,分數越高。 為什麼有效:Ang、Hodrick、Xing 與 Zhang(2006)發現一個反直覺現象 ——「特異波動率高的股票,未來報酬反而更差」,稱為低波動異象。低波股報酬不輸高波股,風險卻低很多。 單獨回測:年化 13.60%、夏普 1.22、回撤 -21.95%(報酬最低,但風險控制最佳)。 白話:這是「煞車與安全氣囊」,單獨用跑不快,但加進組合裡能大幅壓低整體回撤,讓你抱得住。

延伸閱讀:低波動選股策略:穩穩賺真的比衝高好?


四因子怎麼合成?三個關鍵設計

把四個因子變成一個策略,合成方式決定成敗。我們用 rank-weighted(排名加權) 而非布林 AND(同時滿足所有條件),避免持股太少而過擬合:

設計 做法 為什麼
排名打分 每個因子在池內取百分位排名 [0,1],四項相加成總分 用相對名次而非絕對門檻,對極端值穩健
平方加權集中 取總分前 40 名,再依「分數平方」加權 強訊號給更高權重,但仍持有 40 檔分散
對齊營收公告 每月換股,且延後 14 天(resample_offset='14D') 確保只用「已公開」的營收,捕捉公告後漂移(PEAD)

風險-報酬定位圖最能說明合成的價值 —— 四因子合成被推到左上角(高報酬、低回撤),這是任何單因子都到不了的位置:

風險報酬散點圖:四因子合成位於左上角高報酬低回撤,單因子與 0050 全部居於劣勢


想自己看懂?四因子合成的核心程式碼

你不需要會寫程式(下一段用 AI 對話就能跑)。但若想看懂上面這套合成邏輯,用 finlab 寫出來核心就這幾行——完整版(含分數平方加權)見文末可下載的 strategy.py:

顯示程式碼
from finlab import data
from finlab.backtest import sim
 
close = data.get('price:收盤價')
rev   = data.get('monthly_revenue:去年同月增減(%)')
roe   = data.get('fundamental_features:ROE稅後').index_str_to_date()
vol   = close.pct_change().rolling(60).std()          # 近 60 日波動
 
# 選股池:連 3 月營收正成長、年增 10–150%(避開基期失真)
pool = (rev > 10) & (rev < 150) & (rev > 0).sustain(3)
 
# 四因子各自在池內取百分位排名(橫向),加總成總分
score = (rev[pool].rank(axis=1, pct=True)
         + close.pct_change(60)[pool].rank(axis=1, pct=True)
         + roe[pool].rank(axis=1, pct=True)
         + (-vol)[pool].rank(axis=1, pct=True))
 
position = score.is_largest(40)                       # 選總分最高 40 檔
report = sim(position, resample='M', resample_offset='14D')  # 月頻、對齊營收公告
report.get_stats()    # CAGR 29.45%、Sharpe 1.40、最大回撤 -26%

看不懂沒關係:重點是「規則清楚」,程式只是把規則自動化。

動手做:5 步驟用 AI 對話跑出四因子選股(HowTo)

不需要會寫程式。FinLab 教的是「跟 AI 把策略講清楚」,底層由 finlab 套件實跑真台股資料。以下是可照抄的編號步驟:

步驟 1|設定營收條件 💬 你對 AI 說:

幫我選台股,條件是「連續 3 個月營收正成長,且月營收年增介於 10% 到 150%」,當作選股池。

步驟 2|加入價格動能 💬 你對 AI 說:

在這個池子裡,計算每檔股票近 60 個交易日的漲幅,漲越多分數越高。

步驟 3|加入 ROE 品質 💬 你對 AI 說:

再加上 ROE,越高分數越高,記得用財報「實際公布日」對齊,不要偷看未來。

步驟 4|加入低波動 💬 你對 AI 說:

最後加低波動:近 60 日日報酬標準差越低分數越高。把這四項排名分數相加。

步驟 5|選股、回測、比較 0050 💬 你對 AI 說:

選總分最高的 40 檔,依分數平方加權,每月營收公布後換股,回測 2018 到現在,跟 0050 比年化、夏普、最大回撤。

🤖 AI 回覆:

已用 finlab 跑完回測。四因子策略年化報酬 29.45%、夏普 1.40、最大回撤 -26.07%,全面優於 0050(年化 25.05%、回撤 -33.96%)。

下面是這個策略完整的互動式回測 —— 權益曲線、月報酬熱力圖、年度績效全部都在裡面,可以直接在文章中操作(行動裝置也能載入):

想要可直接複製貼上的完整 Python:見文末 strategy.py。安裝只要 pip install finlab,不用背語法,把上面五句話交給 AI 即可重現。


八年逐月績效:多頭吃滿、空頭少賠

下面這張月報酬熱力圖把策略 2018–2026 每個月的損益攤開。綠色越多代表收紅月份越多 —— 全策略年勝率 87.5%(8 年只有 2018、2022 兩年小賠),12 個月滾動勝率 86.5%:

四因子選股策略 2018 至 2026 月報酬熱力圖,多數月份收紅年勝率 87.5%

幾個可被驗證的觀察(數據來源:文末 strategy.py 實跑):

  • 最好的單月:2026/04 +26.3%;最壞單月:2018/10 -10.7%。
  • 最痛的回撤:發生在 2020 年新冠股災(-26.07%,112 天內收復),比 0050 同期的 -28% 還淺。
  • 最壞的一年:2022 年也只小賠 -0.11%,同年 0050 大跌 -21.4%。這就是低波因子在熊市的防禦價值。

最近一期實際選出哪些股票?(範例名單)

很多教學只給策略卻不給名單。以下是這個四因子策略最近一期(2026/06 換股)權重最高的 10 檔(僅為策略輸出示範,非個股推薦):

排名 代號 簡稱 權重
1 5410 國眾 3.21%
2 3171 炎洲流通 2.94%
3 3046 建碁 2.87%
4 3528 安馳 2.85%
5 3088 艾訊 2.82%
6 3028 增你強 2.73%
7 2383 台光電 2.67%
8 2376 技嘉 2.66%
9 3577 泓格 2.66%
10 3209 全科 2.64%

(來源:finlab 實跑 strategy.py,2026/06 換股權重。名單每月隨營收與排名滾動更新。)

⚠️ 上表是「策略此刻的選股結果」,用來展示策略長相,不是叫你照買。實際操作請完整回測、考量自身風險承受度。


四因子 vs 本益比/殖利率/存股 0050:橫向比較

如果你還在猶豫要不要從「定期定額 0050」或「存高股息」升級到多因子選股,這張表幫你定位:

做法 年化報酬 最大回撤 換股頻率 需要的工夫 適合誰
定期定額 0050 ~25%* -33.96% 不換 最低 完全被動、不想盯盤
高殖利率存股 視標的,常 8–12% 年配息調整 重現金流、抗波動
單一本益比選股 偏弱(同期倒虧) 深度價值信徒
四因子選股(本文) 29.45% -26.07% 中(交給 AI 跑) 想系統化贏大盤、能接受月頻換股

* 0050 同期回測值;不同起算點會有差異。

結論:四因子在「報酬」「回撤」兩個維度同時優於 0050,代價是要每月換股(可交給 finlab 自動化)。它不是要取代存股,而是給願意多花一點系統化工夫的人,一個風險調整後更好的選擇。


交易成本會吃掉多少?月頻換股的真實拖累

月頻換股最大的疑慮就是成本。我們把不同的「手續費 + 滑價」假設代進同一回測,量化它對年化報酬的拖累:

單邊成本假設 年化報酬 CAGR 相對零成本拖累
0%(理論值) 32.25%
0.1425%(台股標準手續費,本文預設) 29.45% -2.80 個百分點
0.3%(含一般滑價) 26.41% -5.84 個百分點
0.5%(保守估,含衝擊成本) 22.64% -9.61 個百分點

(來源:finlab 實跑,調整 fee_ratio 參數。)

重點:本文標題的 29.45% 已經內含台股標準手續費(0.1425%),不是無摩擦的理論值。即使把成本拉高到含滑價的 0.3%,策略年化 26.41% 仍贏過 0050 的 25.05%。但若你用市價單追小型股、衝擊成本逼近 0.5%,優勢就會被吃掉大半 —— 這也是為什麼月頻、用限價單、避開流動性太差的標的很重要。


一個一定要懂的坑:前視偏差(Lookahead Bias)

很多人自己跑財報選股,回測報酬高得不真實,問題幾乎都出在用了當下還沒公布的財報。我們在處理 ROE 時,特地用 index_str_to_date() 依「各股實際財報公布日」對齊,而非財報所屬季度;月營收也延後 14 天換股,確保只用已公開資訊。

前視偏差(Lookahead Bias):回測時用到了當下還拿不到的資料,會讓績效虛高、實單卻做不出來。這是回測最常見、也最致命的錯誤。

少了這一步,任何漂亮的回測都是海市蜃樓。這也是這個策略可信的地基。


如何替換或增減因子?可操作的延伸

多因子策略最大的好處是模組化,你可以照自己的觀點調整:

你想要... 怎麼改 預期影響
更高報酬、能忍受波動 拿掉低波因子,或調高價格動能權重 報酬↑、回撤↑
更穩、回撤更小 調高低波權重,持股數從 40 增到 60 報酬略↓、回撤↓
加入價值觀點 補一個「低股價淨值比」因子 視市況,多頭可能拖累
降低換股成本 改成雙月換股(resample='2M') 成本↓、反應略慢

把上面任一句加進步驟 5 的 AI 對話即可重跑驗證。不要照搬參數,要理解每個因子在做什麼,再依自己的風險偏好調整。


常見問題 FAQ

Q1:多因子選股要用幾個因子才夠? 不是越多越好。研究與我們的實測都顯示,3–5 個彼此低相關的因子通常就足夠;再多容易重複下注或過擬合。本文用 4 個,涵蓋成長、動能、品質、低波四個互補面向。

Q2:多久換一次股? 本策略每月換股,並對齊月營收公告(延後 14 天)。換股太頻繁會被交易成本吃掉(見上方成本試算),太慢則跟不上營收動能;月頻是台股營收節奏下的合理折衷。

Q3:新手不會寫程式能用嗎? 可以。FinLab 的核心是「把策略講給 AI 聽」,底層由 finlab 套件實跑真台股資料。照本文「5 步驟 HowTo」把五句話交給 AI 即可重現,完整程式碼也附在文末供進階者複製。

Q4:多因子和單因子到底差在哪? 單因子(如只看營收動能)在我們回測中夏普全部低於 1,且回撤普遍 -38% 到 -43%。四因子合成後夏普升到 1.40、回撤收斂到 -26% —— 差別在於「風險調整後報酬」與「抱得住」,不只是年化數字。

Q5:營收選股要看年增還是月增? 建議看**月營收年增(YoY)**而非月增(MoM),因為年增已自動排除淡旺季的季節性干擾。本文用「連續 3 個月年增為正、且介於 10%–150%」,下限濾雜訊、上限避開低基期造成的假成長。

Q6:四因子失靈怎麼辦? 任何因子組合都有失靈期(本策略 2018、2022 年小賠)。應對方式是:(1)長期持有,別在低潮砍策略;(2)維持因子分散,別在某因子大紅時重壓;(3)定期重跑回測檢視因子是否仍有效。多因子的設計初衷,就是讓「某個因子失靈時其他三個還能撐」。

Q7:這個策略可以自動下單嗎? 可以。finlab 支援把回測訊號接到券商 API 自動換股,省去每月手動下單。流程見 程式交易是什麼

Q8:回測 29% 實單能複製嗎? 回測已內含標準手續費,但實單還會遇到滑價、流動性、無法完全成交等摩擦。把成本拉到含滑價的 0.3%,策略年化仍有 26.41%(仍贏 0050)。務必用限價單、避開流動性太差的小型股,並以保守心態看待。


風險與限制

風險 說明
因子輪動 任何因子組合都有失靈期,需長期持有才看得到優勢
交易成本 月頻換股有手續費與滑價,實單報酬會略低於回測(見上方量化試算)
樣本期間 2018–2026 含 AI/半導體大多頭,未必在所有市況重現
小型股流動性 選股結果常含中小型股,衝擊成本與成交難度高於大型股
過擬合 參數(40 檔、60 日、14 天)為合理預設,不應反覆微調套出漂亮數字

延伸閱讀與內部連結

本文屬於 股票選股 主題,並橫跨 量化交易程式交易 三根支柱。想更完整地建立選股系統,接著看:


作者與方法說明(E-E-A-T)

本文策略與回測由 FinLab 量化團隊 設計與執行,作者 韓承佑finlab 開源量化套件 作者、台股量化教學講師。所有 CAGR / 夏普 / 回撤數字均來自 finlab 對台股公開資料的實際回測,可用文末 strategy.py 完整重現,benchmark 一律採用除權息調整後的 etl:adj_close(含息)以避免低估 0050。回測區間 2018-01 至 2026-06,資料截至 2026-06-08。

完整程式碼(可下載)

可複製、可重現的回測程式碼:strategy.py(含四因子合成、單因子對照、相關性矩陣、交易成本試算)。安裝 pip install finlab 後即可執行。

想直接動手?把上面「5 步驟 HowTo」的對話交給 AI,或免費試用 finlab,複製對話即可在你自己的環境跑出同一份回測。


投資有風險,過去績效不代表未來表現。本內容僅供教學參考,不構成投資建議,請依個人風險承受度審慎評估。所有回測數據來源:finlab 實測(2018 至 2026,截至 2026-06-08),benchmark 採 etl:adj_close 含息,程式碼見 strategy.py

最後更新:2026-06|回測區間:2018-01 ~ 2026-06|作者:FinLab 量化研究團隊(經量化研究員審閱)

FinLab AI

想建立自己的策略?

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

免費開始

更多多因子選股研究

查看全部