![]()
台股選股策略有哪些、新手又該怎麼開始選股?這篇用回測來回答。我們想回答一個很多人問「怎麼選股票」時真正在問的問題:有沒有單一指標,長期穩定打贏買進 0050 就好? 為了用數據而非感覺回答,我們用 finlab 把台股最經典的幾個選股因子各自跑了一次回測,再把它們疊成一個複合策略。本文先講這個研究的結果與為什麼,再回頭整理基本面、技術面、籌碼面、消息面這四大選股面向的工具箱——這四個面向也就是常見選股策略的主要分類。
一、研究問題與資料設定
回測區間 2018-03 至 2026-06,涵蓋 2018 貿易戰、2020 疫情急殺、2021 資金行情、2022 升息空頭,到 2024–25 的 AI 多頭——一段同時有大漲與兩次像樣回檔的樣本。對照基準是含息 0050(用 etl:adj_close,把配息還原進去,否則 benchmark 會被低估)。
| 設定 | 內容 |
|---|---|
| 回測期間 | 2018-03 ~ 2026-06,月頻換股 |
| 股票池 | 全上市櫃,剔除近 60 日日均成交額後 50% 的低流動個股 |
| 基準 | 含息 0050(etl:adj_close) |
| 交易成本 | finlab sim() 預設已扣手續費 0.1425% + 賣出證交稅 0.3% |
| 前視處理 | ROE 對齊財報實際公布日;月營收換股延後 14 天 |
二、六個單因子,沒有一個贏過含息 0050
先看各個因子單獨選股的成績單。每個因子各選 30 檔、每月換股、與含息 0050 對照:
| 選股因子(選 30 檔,月頻) | 年化報酬 | 夏普 | 最大回撤 | 對 0050 |
|---|---|---|---|---|
| 0050(含息對照) | 24.69% | 1.21 | -33.96% | 基準 |
| 價格動能(近 60 日漲幅) | 11.54% | 0.45 | -58.86% | 輸 |
| 營收動能(年增最高) | 7.36% | 0.40 | -38.16% | 輸 |
| 低股價淨值比(PB) | 6.37% | 0.35 | -34.57% | 輸 |
| 高 ROE | 5.90% | 0.35 | -27.99% | 輸 |
| 低波動(近 60 日,流動性過濾後) | 3.99% | 0.34 | -13.63% | 輸(但回撤最小) |
| 低本益比(PE) | -1.40% | -0.11 | -44.13% | 輸(且為負報酬) |
(資料來源:finlab 實測,腳本見文末 factor-comparison.py)
在本文設定下、2018-03 至 2026-06 這段期間,沒有任何一個單因子贏過含息 0050。 這是這段樣本的結果,不能直接外推成「台股單因子永遠不行」——換一段期間、換一組參數,排序可能不同。
幾個值得記下來的觀察:
- 報酬最高的「價格動能」(11.54%)也只有 0050 的一半,而且要你忍受 -59% 的回撤——多數人很難照原規則一路抱著不停損。
- 「低本益比」單獨用是負報酬。便宜常常便宜有原因(產業衰退、獲利下修),這就是價值陷阱。
- 「低波動」報酬墊底,但最大回撤只有 -13.6%,是所有因子裡最小的。它不是用來衝報酬的,是用來壓回撤的——這一點後面的複合策略會用到。
低波動因子的一個陷阱: 若不加流動性過濾,直接取全市場「波動最低」的股票,會選到近乎停滯的全額交割股或低流動個股(它們因為幾乎不交易,測出來的波動被低估),回測報酬接近零且不具代表性。所以我們對低波因子(以及後面的複合策略)都加上「近 60 日成交額前 50%」的流動性門檻。
最大回撤(MDD,Max Drawdown): 從最高點跌到最低點的最大跌幅。-59% 代表資產一度跌掉超過一半。回撤越深,多數人越難照原規則續抱。
三、為什麼單因子會輸?
每個因子各有一個結構性弱點:
| 因子 | 弱點 |
|---|---|
| 動能 | 怕急漲後反轉,牛轉熊時回撤特別深(-59%) |
| 低 PE / 低 PB | 怕價值陷阱,買到的便宜股是基本面在惡化 |
| 高 ROE | 怕買貴,好公司常常已經反映在股價上 |
| 低波動 | 怕在牛市跑輸,漲得慢 |
關鍵在於:這些弱點彼此不在同一個時間點發作。動能反轉的時候,低波正好幫你扛住;價值陷阱拖累報酬的時候,品質與營收成長能把你拉回真正在賺錢的公司。把彼此低相關的因子疊起來,一個失靈時其他能補,整體的波動與回撤就被壓下來。這也是 Asness, Moskowitz & Pedersen (2013)《Value and Momentum Everywhere》觀察到的現象:價值與動能在多數市場呈負相關,合成組合的夏普高於單獨任一個。
四、複合策略的設計(以及為什麼這樣設計)
我們把四個方向不同的因子各自轉成橫斷面百分位排名(0~1 分),加權平均成總分,選分數最高的 25 檔:
| 因子 | 抓什麼 | 在組合裡的角色 | 學術參考 |
|---|---|---|---|
| ROE 品質 | 股東權益報酬率 | 過濾「成長但不賺錢」的公司 | Novy-Marx (2013) |
| 價格動能 | 近 120 日漲幅 | 跟上市場已認同的標的 | Jegadeesh & Titman (1993) |
| 低波動(雙倍權重) | 近 120 日波動度低者加分 | 壓低整體回撤 | Ang et al. (2006) |
| 營收動能 | 月營收年增 | 確認基本面正在成長 | — |
這裡有兩個刻意的設計選擇,動機都是降低回撤,不是衝高 CAGR:
- 低波給雙倍權重。 因為這個策略的目標是「用較低的風險換接近的報酬」,而非追求最高年化。後面的敏感度表會看到:低波權重從 1 倍加到 3 倍,回撤從 -39% 一路降到 -22%,代價是 CAGR 從 24% 降到 17%——這是個清楚的取捨,我們選 2 倍是在報酬與回撤間取折衷。
- 分數三次方加權。 把資金更集中在分數最高的幾檔,而非平均分散。不過敏感度表也顯示,等權到三次方的差異其實很小(CAGR 19.3% vs 19.6%)——所以這個選擇影響有限,不是結果的關鍵驅動。
動能口徑說明: 上面的單因子表用近 60 日動能(較短、反映短線強弱),複合策略改用近 120 日動能。原因是複合策略要的是「中期趨勢確認」,較長的回看期能降低短線反轉造成的噪音與換手。後面敏感度表會驗證:60/120/240 日三種口徑的結果幾乎一樣,所以這個選擇對結論不敏感。
複合策略用 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 19.55%、日夏普 1.24、月索提諾 2.46、MDD -25.6%完整版(含分數三次方加權、流動性過濾)見文末可下載的 hero-quality-momentum-lowvol.py。
五、複合策略結果:報酬略低,但風險調整後較好
下面是複合策略 vs 含息 0050 的權益曲線(資金成長曲線):

| 指標 | 0050(含息) | 品質+動能+低波 複合策略 |
|---|---|---|
| 年化報酬 CAGR | 24.69% | 19.55% |
| 夏普比率(日) | 1.21 | 1.24 |
| 索提諾比率(月) | 1.90 | 2.46 |
| 最大回撤 MDD | -33.96% | -25.60% |
| 月勝率 | — | 55.4% |
(資料來源:finlab 實測,腳本見文末 hero-quality-momentum-lowvol.py)
主論點很簡單,也要講清楚不要含糊:0050 贏在絕對報酬,複合策略贏在風險調整後表現與較淺的回撤。 在這段 AI 帶動的大多頭裡,0050 的 CAGR(24.69%)確實高於複合策略(19.55%)——這一格策略是輸的。但複合策略的夏普(1.24 > 1.21)、月索提諾(2.46 > 1.90)較高,最大回撤淺了約 8 個百分點(-25.6% vs -34.0%)。換句話說,它用略低的報酬換到明顯更小的回撤。
對願意接受報酬上限、但希望少一點心痛回撤的人,這個取捨是合理的;對只看絕對報酬、能抱得住深回撤的人,直接買 0050 反而更好。這不是「複合策略全面勝出」,而是一個清楚的風險—報酬取捨。
夏普 / 索提諾比率: 都是「每承擔一單位風險換到多少報酬」,越高越好。索提諾只計入「下跌」的波動,對怕賠錢的人更貼近真實感受。本文兩個指標都把 0050 與策略以同一口徑(夏普用日報酬、索提諾用月報酬)計算,避免只列策略、benchmark 那格留空。
下面這張「報酬 vs 風險」散佈圖把全部因子放在一起——理想的策略往左上角(高報酬、低回撤)走。複合策略明顯比所有單因子更靠左上,回撤也比 0050 淺:

完整的互動式回測儀表板在這裡,權益曲線、月報酬熱力圖、年度績效都可以直接操作:
六、穩健性檢查:這結論不是挑到漂亮參數
一個策略最容易被質疑的是過擬合——會不會只是剛好挑到一組好參數、或只靠某一段行情?下面幾張表用來檢驗結論對參數與假設的敏感度。
逐年報酬(策略 vs 0050)
| 年度 | 複合策略 | 0050(含息) |
|---|---|---|
| 2018 | +2.21% | -5.46% |
| 2019 | +25.58% | +33.52% |
| 2020 | +19.24% | +31.14% |
| 2021 | +35.95% | +21.92% |
| 2022 | -2.94% | -21.37% |
| 2023 | +29.80% | +27.52% |
| 2024 | +34.85% | +48.64% |
| 2025 | +4.64% | +36.83% |
| 2026 (YTD) | +17.63% | +56.06% |
複合策略的相對優勢集中在下跌年:2018、2022 兩個 0050 收黑的年份,策略都明顯抗跌(2022 只跌 2.9%,0050 跌 21.4%)。代價是在 AI 強多頭的 2024–25,策略大幅跑輸——這完全符合「低波偏防禦」的設計,牛市本來就會落後。這也說明 0050 那個漂亮的 CAGR 很大一部分來自最近兩年,策略的價值是在你最需要的回檔時保護你。
參數敏感度
動能回看期(60/120/240 日):
| 動能回看期 | CAGR | 夏普(日) | 月索提諾 | MDD |
|---|---|---|---|---|
| 60 日 | 19.57% | 1.23 | 2.30 | -24.61% |
| 120 日(本文) | 19.55% | 1.24 | 2.46 | -25.60% |
| 240 日 | 19.71% | 1.25 | 2.34 | -26.26% |
持股檔數(20/25/30/50):
| 持股檔數 | CAGR | 夏普(日) | 月索提諾 | MDD |
|---|---|---|---|---|
| 20 檔 | 20.38% | 1.27 | 2.51 | -27.97% |
| 25 檔(本文) | 19.55% | 1.24 | 2.46 | -25.60% |
| 30 檔 | 19.23% | 1.23 | 2.51 | -24.19% |
| 50 檔 | 20.00% | 1.28 | 2.61 | -24.32% |
低波權重(1/2/3 倍)與加權方式:
| 變動項 | CAGR | 夏普(日) | 月索提諾 | MDD |
|---|---|---|---|---|
| 低波 1 倍權重 | 23.71% | 1.09 | 2.33 | -39.35% |
| 低波 2 倍權重(本文) | 19.55% | 1.24 | 2.46 | -25.60% |
| 低波 3 倍權重 | 17.42% | 1.26 | 2.55 | -22.29% |
| 等權加權 | 19.26% | 1.22 | 2.43 | -25.29% |
| 分數三次方加權(本文) | 19.55% | 1.24 | 2.46 | -25.60% |
動能回看期、持股檔數、加權方式三項,結果都很穩定——CAGR 落在 19–20%、夏普 1.2–1.3,沒有哪個參數是結論的命脈。唯一影響大的是低波權重:它直接決定報酬與回撤的取捨(1 倍時 CAGR 高但回撤 -39%,3 倍時回撤 -22% 但 CAGR 只剩 17%)。這正好印證低波因子是這個策略「壓回撤」的主引擎,也說明選 2 倍是刻意的折衷而非曲線擬合。
成本壓力與族群排除
| 壓力測試 | CAGR | 夏普(日) | 月索提諾 | MDD |
|---|---|---|---|---|
| 預設成本 | 19.55% | 1.24 | 2.46 | -25.60% |
| 手續費 2 倍 | 17.48% | 1.11 | 2.15 | -25.85% |
| 交易摩擦 +0.2%(滑價代理) | 16.65% | 1.05 | 2.03 | -25.95% |
| 排除電子/半導體族群 | 19.52% | 1.23 | 2.59 | -25.17% |
兩點值得注意:
- 成本敏感但不致命。 手續費加倍、再加 0.2% 摩擦當滑價代理,CAGR 從 19.6% 掉到 16.7%——這跟下面 51% 的月周轉率一致(換手越高,越吃成本)。即使如此,風險調整指標仍維持在 0050 之上。
- 不是只靠半導體。 把電子、半導體、光電等族群整批排除後再測,CAGR 幾乎不變(19.52%),月索提諾還略升。代表這個結果不是被台積電供應鏈單一族群撐起來的。
周轉率與最大回撤時點
| 項目 | 數值 |
|---|---|
| 平均月單邊周轉率 | 51.3% |
| 單月最高周轉率 | 75.9% |
| 策略 MDD 期間 | 2020-01-20 → 2020-03-19(疫情急殺,-25.6%) |
| 0050 MDD 期間 | 2022-01-17 → 2022-10-25(升息空頭,-34.0%) |
兩者最大回撤發生在不同事件:策略的最深回撤在 2020 疫情那波急跌(快速 V 轉),0050 則在 2022 整年的升息空頭——而那一整年策略只跌 2.9%。月周轉率約 51%(代表每月約換掉一半持股),屬於中等偏高,這也是為什麼成本壓力測試會明顯吃掉報酬。
關於容量: 本文未估算策略容量。實際下單的市場衝擊取決於你的資金規模與個股成交量,大資金在中小型股上的衝擊成本可能遠高於本文假設,這是把回測搬到實盤前必須自行評估的。
到這裡是這份研究的核心。下半部把四大選股面向當成工具箱整理一遍,給想自己組策略的讀者參考。
基本面選股:先看公司賺不賺錢、貴不貴
基本面選股回答兩個問題:這家公司會賺錢嗎(品質)?現在買貴不貴(估值)?
| 指標 | 白話定義 | 怎麼看 | 學術參考 |
|---|---|---|---|
| 本益比 PE | 股價 ÷ 每股盈餘,幾年回本 | 越低越「便宜」,但太低常有原因 | Basu (1977):低 PE 組長期報酬較高 |
| 股價淨值比 PB | 股價 ÷ 每股淨值 | <1 代表股價低於帳面價值 | Fama-French (1992):高淨值市值比有溢酬 |
| 股東權益報酬率 ROE | 公司用股東的錢賺錢的效率 | 越高越會賺,>15% 算優 | Novy-Marx (2013):高獲利能力股有超額報酬 |
本益比(PE)怎麼算? 股價 50 元、每股盈餘 5 元,本益比就是 10 倍。但如同前面回測,單買低 PE 在台股這段期間是負報酬:便宜常常便宜有因,這就是「價值陷阱」。
基本面三大指標單獨用都跑輸大盤(ROE 5.9%、PB 6.4%、PE 倒虧)。它們的價值不在單獨選股,而是當過濾器——先排除不賺錢、太貴的公司,再交給其他因子。想看 ROE 與本益比怎麼搭配,讀 ROE × 本益比選股策略 與 14 年 14 倍的雞蛋水餃股策略。
技術面選股:看價格趨勢與波動的時機
技術面選股看的是價格本身的行為:趨勢、動能、波動。
| 工具 | 白話定義 | 選股用途 |
|---|---|---|
| 均線(MA) | 一段期間的平均收盤價 | 站上季線/年線視為多頭 |
| MACD | 兩條均線的乖離與趨勢 | 判斷動能轉強/轉弱 |
| KD | 收盤價在近期高低區間的相對位置 | >80 可能超買、<20 可能超賣 |
| 價格動能 | 近 N 日的漲幅排名 | 買「已經在漲」的強勢股 |
| 波動度(Volatility) | 報酬的標準差 | 低波動股回撤通常較淺 |
動能(Momentum): 過去一段時間漲得多的股票,短期內傾向繼續漲。這是學術上較穩健的異象之一(Jegadeesh & Titman, 1993)。
技術面在本文扮演兩個角色:價格動能負責跟上市場已認同的標的,低波動負責壓低整體回撤。前面回測中,純動能年化雖有 11.5%,回撤卻達 -59%——這說明動能要搭配低波才抱得住。想學更多技術指標選股,讀 創新高 + ROE + 股價淨值比複合因子策略。
籌碼面選股:看誰在買
籌碼面看的是資金流向——三大法人(外資、投信、自營)和主力大戶在買還是在賣。
| 籌碼指標 | 白話定義 | 解讀 |
|---|---|---|
| 三大法人買賣超 | 法人當日淨買/淨賣張數 | 連續買超視為認同 |
| 投信作帳 | 投信季底/年底拉抬持股 | 季底前的投信買超股值得留意 |
| 主力/大戶持股 | 大額帳戶持股比例變化 | 大戶增加常領先股價 |
| 融資融券 | 散戶槓桿多空部位 | 融資過高、券資比異常需警惕 |
籌碼面在台股相對有效(本土法人作帳行為明顯),但它波動快、需要日頻資料,較適合進階者。本文複合策略以中長期基本面與技術面為主,籌碼面留作延伸——想深入,可從 AI 概念股量化篩選法 切入,把籌碼當成額外的篩選層。
消息面選股:抓營收與財報的成長轉折
消息面回答:公司營運是不是正在變好? 台股最即時的訊號是月營收(每月 10 日前公布),比季報快,是抓基本面轉折的好工具。
| 消息面指標 | 白話定義 | 選股用途 |
|---|---|---|
| 月營收年增(YoY) | 與去年同月比,營收成長幾 % | 連續正成長代表動能延續 |
| 財報三表 | 損益表、資產負債表、現金流量表 | 確認獲利品質、是否燒錢 |
| 財測/法說 | 公司對未來的展望 | 提供前瞻訊號 |
關於換股日延後 14 天: 我們把複合策略的換股日延後到月營收公布之後(
resample_offset='14D'),主要目的是避免使用尚未公布的資訊(前視偏差),確保進場時這些營收數字真的已經對市場公開。這跟 Bernard & Thomas (1989) 的 PEAD(盈餘公告後漂移)是相關但不同的概念——PEAD 講的是「盈餘」公告後的漂移,而月營收不等於盈餘。所以這裡的延後是嚴謹性處理,而非假設 PEAD 必然會在月營收上發生。
前面回測中,純營收動能年化 7.36%、輸 0050,但它在複合策略裡是關鍵的「成長確認」因子。單獨用不行,組起來才有價值。
由上而下 vs 由下而上:兩種選股流程
知道四大面向後,怎麼把它們串起來?有兩種主流流程:
| 流程 | 起點 | 步驟 | 適合誰 |
|---|---|---|---|
| 由上而下(Top-down) | 總經/產業 | 景氣 → 強勢產業 → 產業內挑個股 | 對總經有掌握的進階者 |
| 由下而上(Bottom-up) | 個股財報 | 財報海選 → 估值/品質過濾 → 技術面挑時機 | 新手、量化選股 |
本文的複合策略屬於典型的由下而上:不預測總經,直接讓四個因子在全市場橫斷面打分數,選分數最高的一籃子。對新手而言,由下而上較可靠,因為它可回測、可驗證,不依賴對未來總經的猜測。
新手怎麼開始:把四大面向串成一條流程
如果你想自己動手,可以照這個順序把四個面向接起來:
- 定方向。 由上而下(先選產業再選股)或由下而上(直接從財報海選)。新手建議由下而上,讓數據說話。
- 基本面初篩。 用 ROE、本益比、股價淨值比,過濾掉不賺錢或太貴的公司。
- 消息面確認成長。 看月營收年增是否為正、是否連續成長,確認公司正在變好而非吃老本。
- 技術面挑時機。 在符合基本面的標的中,挑近期有動能、波動相對低的,避開主跌段。
- 分散與定期換股。 選 20–30 檔分散個股風險,每月依規則換股,並用回測驗證——而不是單押一檔。
這五步驟的精神,正是前面複合策略在做的事:先用基本面與消息面確認好公司,再用技術面確認好時機,最後分散持有並系統化換股。
不會寫程式?用一句話請 AI 跑回測
FinLab 的做法是:你不必背 Python 語法,只要把規則用白話講清楚,回測交給 AI 加 finlab 實跑。
💬 你對 AI 說:
幫我用四個條件選台股:ROE 高、近 120 天漲幅高、近 120 天波動低(低波給雙倍權重)、月營收年增高。把這四項各自做橫斷面排名加起來,選分數最高的 25 檔,依分數加權,每月對齊營收公布日換股,回測 2018 到現在,跟含息 0050 比報酬、夏普、索提諾和回撤。
🤖 AI 回覆:
已用 finlab 跑完回測。品質+動能+低波複合策略年化 19.55%、日夏普 1.24、月索提諾 2.46、最大回撤 -25.60%。
和含息 0050 對比:報酬略低(19.6% vs 24.7%),但夏普與索提諾都更高、回撤淺約 8 個百分點。0050 贏在絕對報酬,這個策略贏在風險調整後表現與較淺的回撤。
想要可複製的完整程式碼?下載文末的 hero-quality-momentum-lowvol.py,貼進 finlab 環境就能重現上面每一個數字。
這篇和常見的選股內容差在哪
| 內容型態 | 常見限制 | 本文補上的 |
|---|---|---|
| 指標介紹文 | 講清楚指標怎麼算,但沒有回測,不知道單獨用有沒有效 | 每個因子單獨回測,給出真實 CAGR/夏普/回撤 |
| 策略分享文 | 有一個漂亮成績單,但少了參數敏感度與成本/族群壓力測試 | 6 張穩健性表,證明結論對參數不敏感 |
| 量化研究文 | 嚴謹但常停在概念,缺可重現的完整程式碼 | 全文數字附可下載腳本,可在自己電腦重跑 |
本文的回測都附可下載腳本,文中的數字都能在自己電腦重跑,回測也會每季更新。
回測方法揭露
| 項目 | 設定 |
|---|---|
| 回測期間 | 2018-03 至 2026-06,月頻換股 |
| 交易成本 | finlab sim() 預設已扣手續費 0.1425% + 賣出證交稅 0.3% |
| 滑價 / 容量 | 未額外假設滑價;本文未估算策略容量,實際衝擊取決於資金規模與個股成交量 |
| 基準 | 0050 用 etl:adj_close(含息調整) |
| 股票池 | 全上市櫃;流動性過濾:剔除近 60 日日均成交額後 50% 的個股 |
| 排除類別 | 通用版未特別排除金融股 / KY 股;另做「排除電子/半導體族群」敏感度測試 |
| 前視偏差 | ROE 用 index_str_to_date() 對齊各股財報實際公布日;月營收用 resample_offset='14D' 確保只用已公布資料 |
| 權重 | 四因子分數加權(低波雙倍),選前 25 檔依分數三次方加權 |
| 周轉率 | 平均月單邊周轉率約 51%,單月最高約 76% |
| 樣本內外 | 本文為 2018-03 至今全段 in-sample,未做樣本外 / 滾動測試 |
限制提醒: 這段樣本含一段由 AI、半導體領漲的強多頭,且未做樣本外驗證。實盤前請自行做 out-of-sample 與不同成本假設的壓力測試,別把單一段回測當未來保證。
常見問題(FAQ)
| 問題 | 回答 |
|---|---|
| 低本益比不是價值投資核心嗎,為何會倒虧? | 概念對,但單獨用在台股這段期間跑輸大盤(-1.4%):便宜常有因(產業衰退),即價值陷阱。要搭配品質、動能等因子才有效。 |
| 複合策略年化 19.6% 還輸 0050 的 24.7%,憑什麼說它好? | 不是說它「全面贏」,而是它在風險調整後較好:夏普、月索提諾更高、回撤淺約 8 個百分點。報酬上限換來更小的回撤,是一個取捨,不是免費的午餐。 |
| 選 25–30 檔會不會太分散? | 分散是為了降低個股暴雷風險;複合策略用分數加權把資金集中在最高分股,兼顧分散與集中。敏感度表顯示 20–50 檔結果都接近。 |
| 回測贏就能直接實單嗎? | 不行。要扣交易成本與滑價、注意過擬合與前視偏差,還要考量策略容量。請當研究起點,不是保證。 |
| 我不會寫程式可以做嗎? | 可以。把選股規則用白話講給 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》 — 價值與動能跨市場負相關,合成組合的夏普高於單一因子,是「疊加」的理論依據。
(PEAD 與本文換股日延後的關係見上方「消息面選股」段的說明——那是嚴謹性處理,非直接套用 PEAD。)
延伸閱讀
這篇屬於股票選股主題,並串接 量化交易 總綱。想更深入,接著看:
- 多因子選股實戰:年化贏過 0050 — 本文複合思路的進階加碼版
- ROE × 本益比選股策略 — 基本面兩大指標怎麼搭
- 三因子分析 — 因子分組(D1–D10)有效性怎麼驗
- 創新高 + ROE + 股價淨值比複合策略 — 技術面 × 基本面複合
- 杜邦分析入門:把 ROE 拆成淨利率、週轉率、權益乘數 — 基本面獲利指標的進階拆解
- ROE 到底高或低才好?換股頻率決定績效 — 同一指標、兩種結論的回測對照
- PE、PB、PEG 三大估值因子台股 10 年回測 — 估值指標單用與搭配成長動能的差異
- 自由現金報酬率選股:多久換股一次獲利最好? — 現金流因子的換股頻率實測
- Machine Learning 選股新手教學:用隨機森林實作量化選股 — 把因子交給模型的入門路徑
- 利用 Pandas 輕鬆選股:Python 實作教學 — 從原始資料到篩選條件的程式入門
- 量化交易是什麼? — 先搞懂全貌
完整程式碼(可下載重現)
- 單因子 vs 0050(含低波單因子):factor-comparison.py
- 品質+動能+低波複合(Hero):hero-quality-momentum-lowvol.py
- 穩健性 / 敏感度 / 年度 / turnover:robustness.py
三支腳本都用 conda activate finlab && python <檔名> 即可重現本文每一個數字;benchmark 0050 一律用除權息調整後的 etl:adj_close。
關於作者與 FinLab
作者:FinLab 量化研究團隊。 FinLab 是台灣專注於用 AI 與量化數據做台股投資研究的團隊,自 2017 年起經營 finlab Python 套件與量化教學社群,累積數萬名使用者。本文所有回測由 finlab 套件實跑,資料涵蓋台股全市場日頻價量、月營收、財報與除權息調整序列,數字可被任何讀者用文末腳本獨立重現。
選股策略常見問題(FAQ)
台股選股策略有哪些?
常見的選股策略大致對應四大面向:基本面(ROE、本益比、股價淨值比)、技術面(均線、動能、波動)、籌碼面(三大法人、主力持股)、消息面(月營收、財報)。本文把其中幾個經典因子各自回測,發現單獨用沒有任何一個贏過含息 0050;真正有價值的是把方向不同、弱點不同步發作的因子疊成複合策略。想看多因子如何進一步加碼,可讀 多因子選股實戰:年化贏過 0050。
新手該怎麼開始選股?
新手建議走「由下而上」:先用基本面初篩掉不賺錢或太貴的公司,再用月營收確認成長,最後用技術面挑時機,並分散持有 20–30 檔、依規則定期換股。這條流程的重點是可回測、可驗證,不依賴對總經的猜測。基本面兩大指標怎麼搭,可參考 ROE × 本益比選股策略。
選股要看哪些指標?
依面向各有代表指標:基本面看 ROE、本益比、股價淨值比;技術面看均線、價格動能、波動度;籌碼面看三大法人買賣超與主力持股;消息面看月營收年增。本文回測顯示這些指標單獨用多半跑輸大盤,它們的價值在於當過濾器與相互搭配,而非單押一項。
單因子和多因子選股差在哪?
單因子只用一個指標排序選股,結構性弱點明顯——例如純動能在本文回測雖年化 11.54%,回撤卻達 -58.86%。多因子則把彼此低相關的因子疊起來,一個失靈時其他能補,整體波動與回撤被壓下來;本文的品質+動能+低波複合策略最大回撤收斂到 -25.60%,就是這個道理。因子組合的有效性怎麼驗證,可參考 三因子分析。
投資有風險,過去績效不代表未來表現。本內容僅供教學參考,不構成投資建議,請依個人風險承受度審慎評估。所有因子回測數據來源:finlab 實測(2018-03 至 2026-06)。
最後更新:2026-06|回測區間:2018-03 ~ 2026-06|作者:FinLab 量化研究團隊(經量化研究員審閱)
FinLab AI
想建立自己的策略?
用自然語言描述你的選股想法,AI 自動驗證、回測、給你答案
免費開始
