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

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

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

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

四因子年化 29.45%,回撤只有單因子的一半(2026 最新回測)

多因子選股是把幾個方向不同的選股條件疊在一起打分、加權選股,用因子之間的互補抵銷單一條件的脆弱。我們用 finlab 實跑台股(資料截至 2026-06),把營收動能、價格動能、ROE 品質、低波動四個因子合成一個策略,2018 至 2026 年化報酬 29.45%、夏普 1.40、最大回撤 -26.07%。下表是與含息 0050 的逐項對照:

指標 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 約 4.4 個百分點,回撤卻少了約 8 個百分點。後面會把四個因子逐一拆開,各自附上單獨回測數據,並說明合成為什麼能在報酬與風險兩端同時改善。回測方法的完整設定(成本、股票池、前視處理、樣本期間)放在文末「回測方法揭露」一節。


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

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

「多個因子一起看比單看一個好」這件事,在資產定價文獻裡有清楚的脈絡。Fama 與 French(1992)在《The Cross-Section of Expected Stock Returns》指出,市值與淨值比能解釋單靠 Beta 解釋不了的報酬差異,這是把報酬拆成多個因子來理解的起點。本文用到的動能、品質、低波三個面向,各自有獨立的實證來源(動能見 Jegadeesh-Titman 1993、品質見 Novy-Marx 2013、低波見 Ang et al. 2006,下面逐一說明),再加上台股特有的月營收這個高頻領先訊號。要說明的是,這裡引用文獻是為了交代每個因子背後的機制,各篇研究使用的市場、期間與定義與本文不同,結論不能直接套用到台股。


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

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

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

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

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


為什麼是這四個因子?單因子各有罩門

把四個因子各自單獨回測,用的是同一個選股池、同樣每月選 40 檔等權、同樣對齊營收公告日(完整設定見文末「回測方法揭露」)。下表是這四個單因子在 2018–2026 這段期間、本文設定下的結果:

單因子策略 年化報酬 夏普(日) 最大回撤 問題
營收動能 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%,跑不贏 0050。
  • 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.21 到 +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 個月的贏家,未來一段期間仍傾向續贏」,稱為動能異象。本文用近 60 個交易日的漲幅當動能代理變數,在 2018–2026 的台股回測中仍有解釋力。市場願意持續買進的標的,通常反映了還沒完全擴散的好消息。 單獨回測:年化 29.21%、夏普 0.96、回撤 -40.34%(報酬最高,波動也最大)。 白話:這是順風帆,讓選股站在市場已經認同的方向,而不是逆勢猜底。

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

因子三:ROE 品質(品質)

抓什麼:股東權益報酬率(ROE)越高分數越高,且對齊各股實際財報公布日(避免前視偏差)。 為什麼有效:Novy-Marx(2013)在《The Other Side of Value》指出,獲利能力高的公司有顯著超額報酬,且與價值因子互補。該文用的是毛利率(gross profitability),本文改用更直觀的 ROE 當品質代理,兩者都屬於「賺錢效率」這個面向,但定義不同,結果不能直接劃等號。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 都分散在它的右下方:

風險報酬散點圖:四因子合成位於左上角高報酬低回撤,單因子與 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 自動化)。它的定位不是取代存股,而是給願意多花一點系統化工夫的人,一個風險調整後更好的選擇。


交易成本會吃掉多少?月頻換股的成本敏感度

月頻換股最大的疑慮是成本。我們把不同的單邊成本假設代進同一份回測,量化它對年化報酬的拖累。這裡的「成本」是用 finlab sim()fee_ratio 參數代理手續費加滑價的合計,證交稅(賣出 0.3%)在四種情境下都照 finlab 預設扣除:

單邊成本假設(fee_ratio) 年化報酬 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%。上表用一個固定的單邊成本去近似滑價,並沒有按下單金額估算實際的市場衝擊;真正的衝擊成本取決於你的資金規模與個股的成交量,本文未估算策略容量。這也是月頻、用限價單、避開流動性太差標的之所以重要的原因。


前視偏差(Lookahead Bias)如何處理

自己跑財報選股時,回測報酬常常高得不真實,問題多半出在用了當下還沒公布的財報。本文處理 ROE 時用 index_str_to_date() 依各股實際財報公布日對齊,而非財報所屬季度;月營收也延後 14 天換股(resample_offset='14D'),確保每次換股只用得到已公開的資訊。

前視偏差(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)。務必用限價單、避開流動性太差的小型股,並以保守心態看待。


回測方法揭露

量化文最容易出問題的地方,是指標一堆、語氣很確定,但沒交代數字是怎麼算出來的。下面把本文回測的關鍵設定逐項列出,有做的寫數值,沒做的就誠實標明,讓你能判斷這份數字的可信邊界,也能用文末 strategy.py 完整重現。

項目 本文設定
回測引擎 finlab sim(),月頻換股(resample='M'),延後 14 天(resample_offset='14D')
交易成本 手續費 0.1425%(台股標準,未打折)+ 證交稅賣出 0.3%,皆為 finlab sim() 預設並已內含在 29.45% 的結果中
滑價 預設情境未額外加滑價;成本敏感度表用提高 fee_ratio 到 0.3% / 0.5% 來近似含滑價的情形,但這是固定比例近似,非按成交量估算的市場衝擊
策略容量 未估算。實際可承載資金受個股成交量限制,小型股尤其明顯
股票池 全上市櫃中,連續 3 個月營收年增為正、且年增介於 10%–150% 的標的(下限濾雜訊、上限避開低基期假成長)
流動性過濾 未設獨立的成交量/成交值門檻。選股池由營收條件決定,可能納入流動性偏低的中小型股,這是已知侷限
排除類別 未特別排除金融股、ETF、KY 股、全額交割股或已下市股;選股池僅以營收條件篩選。下市股若不在資料表中則自然不被選到,但本文未對生存者偏誤做額外校正
前視偏差 ROE 用 index_str_to_date() 對齊各股實際財報公布日;月營收延後 14 天換股,確保只用已公開資訊。財報延遲公布的個案以實際公布日為準
權重 取四因子總分前 40 名,依分數平方加權(集中強訊號但仍持有 40 檔);未另設單檔權重上限,實際最高單檔約 3% 左右(見選股名單)
周轉率 月頻換股的周轉率本文未逐月統計;成本敏感度表已涵蓋周轉帶來的成本拖累範圍
樣本內外 本文為 2018-01 至 2026-06 的全段樣本內(in-sample)回測,未做樣本外或滾動前進測試。 參數(40 檔、60 日、14 天)為合理預設,讀者應自行在不同期間與參數下驗證穩健性
Benchmark 0050 以 etl:adj_close(除權息調整、含息)buy-and-hold、不含交易成本,避免低估配息報酬。全站統一基準口徑(純指數算術)下同窗口的 0050 為年化 25.05%、日夏普 1.22、回撤 -33.96%;本文表中 0050 的日夏普 1.13 以回測引擎模擬所得,日報酬序列與純指數算術略有差異,季度刷新時將以同一口徑重跑統一

把這些攤開,不是要削弱結論,而是讓你知道哪些部分是紮實的(成本含稅、前視已處理),哪些是侷限(全段 in-sample、未做流動性過濾、未估容量)。一份能被檢驗的回測,比一個漂亮但說不清楚的數字更值得參考。

風險與限制

風險 說明
因子輪動 任何因子組合都有失靈期,需長期持有才看得到優勢
交易成本 月頻換股有手續費與滑價,實單報酬會略低於回測(見上方成本敏感度)
樣本期間 2018–2026 含 AI、半導體大多頭,且為全段 in-sample,未必在所有市況重現
小型股流動性 選股池未設流動性門檻,結果常含中小型股,衝擊成本與成交難度高於大型股
過擬合 參數(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 自動驗證、回測、給你答案

免費開始

更多多因子選股研究

查看全部