跳至主要內容
財經知識

量化選股:用數據取代直覺

量化選股透過系統性的數學模型與歷史數據,將主觀判斷轉化為可重複執行的投資邏輯。本文介紹量化選股的核心框架,包含因子設計、回測方法、風險控制,並以台股為例說明如何在實務中導入量化思維,建立紀律化的投資流程。

股票分析

量化選股:用數據取代直覺

大多數投資人做決策時,難以避免情緒的干擾:看到某檔股票連漲五天就怕追高,看到大跌又不敢撿便宜,聽到朋友報明牌就心動,看到新聞負面報導就急著殺出。這些直覺與情緒,在長期投資績效上往往是最大的敵人。

量化選股(Quantitative Stock Screening)的出現,正是為了解決這個問題。它的核心精神是:將投資邏輯轉化為數學公式,用歷史數據驗證邏輯的有效性,再以系統化的方式執行,排除主觀情緒的干擾。量化選股不等於高頻交易或 AI 演算法,它可以非常簡單——只要你的選股邏輯可以被明確定義、可以被數字量化,就是量化選股的範疇。

台灣散戶投資人接觸量化選股的門檻越來越低。財報狗、Goodinfo、TEJ(台灣經濟新報)等資料來源提供了完整的台股歷史財務數據;Python 與開源回測套件(如 Backtrader、Zipline)讓個人投資人也能進行策略回測。本文將從因子設計到回測執行,完整說明量化選股的實戰框架。


什麼是「因子」?

量化選股的最小單位是「因子」(Factor)。因子是一個可以數字化衡量、並對未來股票報酬有預測力的指標。

根據學術研究與實務經驗,被廣泛驗證有效的因子可分為幾大類:

一、價值因子(Value Factors)

衡量股票相對於基本面的便宜程度:

  • 本益比(P/E Ratio):股價 ÷ 每股盈利,低本益比代表相對便宜
  • 股價淨值比(P/B Ratio):股價 ÷ 每股淨值,低 P/B 代表以低於帳面價值買入
  • 企業價值倍數(EV/EBITDA):考量負債的全面估值指標,比 P/E 更不易被資本結構扭曲
  • 自由現金流殖利率(FCF Yield):每股自由現金流 ÷ 股價,衡量股票「賺現金」的能力

二、品質因子(Quality Factors)

衡量公司本身的營運品質:

  • 股東權益報酬率(ROE):衡量公司用股東資金賺錢的效率
  • 資產報酬率(ROA):ROE 的補充,不受槓桿程度影響
  • 毛利率與淨利率:衡量定價能力與成本管控
  • 應收帳款週轉率:帳款回收越快,財務品質越健康
  • Piotroski F-Score:綜合 9 個財務指標的評分系統,0~9 分,高分代表財務體質優異

三、成長因子(Growth Factors)

衡量公司盈利與營收的擴張速度:

  • EPS 年增率(YoY):最直接的盈利成長指標
  • 營收年增率:確認業務規模持續擴大
  • 淨利年增率:確認成長是否轉化為實際盈利
  • 分析師盈利預測上修幅度(Earnings Revision):機構分析師集體上調預測,代表市場對未來盈利更為樂觀

四、動能因子(Momentum Factors)

衡量股票過去一段時間的相對強度:

  • 近 12 個月報酬率(排除最後一個月):學術研究發現,過去 2~12 個月強勢的股票,未來 1~6 個月仍傾向強勢
  • 近 3 個月相對強弱(Relative Strength):與大盤指數或同業比較的超額報酬
  • 均線斜率:均線向上傾斜的幅度,代表趨勢的強度

五、籌碼因子(Institutional Flow Factors)

衡量法人與大股東的行為:

  • 外資連續買超天數與累計量
  • 投信買超趨勢(近 20 日)
  • 大股東持股比例變化
  • 融資使用率(太高代表散戶過度槓桿,風險偏高)

因子有效性:台股的實證

在設計量化選股模型之前,必須先確認因子在台股是否真的有效。以下是幾個台灣學術研究與實務觀察的重要發現:

ROE 因子在台股的有效性

多項研究顯示,台股中 ROE 持續高於 15% 的公司,長期股價表現明顯優於市場平均。以 2010~2023 年的回測資料,每年從台灣上市公司中選出 ROE 最高的前 20%,年化報酬率普遍超過加權指數報酬率約 3~5 個百分點。

動能因子的強度

台股的動能效應相對顯著,但存在「動能崩潰」的風險(即強勢股突然急跌)。研究顯示,動能因子在台股的有效持續時間約為 3~6 個月,超過這個期間,動能效應開始減弱甚至反轉。

小型股效應

台股也存在「小型股效應」(Small-cap Effect):市值較小的公司平均長期報酬率高於大型股。然而,小型股的流動性風險更高,實際操作時需謹慎控制部位規模。

「除息蜜月期」——台股特有現象

台灣投資人對現金股利的偏好極高,高殖利率個股在除息前後往往出現特定的價格行為,形成所謂的「填息效應」。量化策略中加入殖利率因子,並配合除息時程,有機會捕捉這個台股特有的超額報酬機會。


建立量化選股模型的步驟

步驟一:定義投資宇宙(Universe)

明確你的選股範圍:

  • 僅限上市公司?還是包含上櫃?
  • 是否排除金融股(銀行、保險)?(因其財務報表結構與一般產業不同,比較基準不一樣)
  • 是否排除ETF、REITs?
  • 是否排除市值低於 20 億元的微型股?(流動性風險)

建議的台股投資宇宙:台灣上市上櫃公司,市值 ≥ 30 億元,日均成交金額 ≥ 500 萬元,排除金融保險股。

步驟二:選擇因子並計算分數

選定 3~5 個核心因子後,為每個標的計算「因子排名」:

以「品質 + 價值」雙因子模型為例:

  1. 計算全市場每檔股票的 ROE 排名(從高到低,最高給 100 分,最低給 1 分)
  2. 計算全市場每檔股票的本益比排名(本益比越低排名越高)
  3. 加權合成綜合得分:綜合分數 = ROE 排名 × 0.5 + 本益比排名 × 0.5
  4. 選取綜合分數最高的前 N 檔(例如前 30 檔)作為持股

步驟三:設定再平衡頻率

量化選股模型需要定期重新執行篩選,並調整持股,這個動作稱為「再平衡」(Rebalancing)。

再平衡頻率 適合策略類型 主要成本考量
每週 短線動能策略 交易成本高(手續費、滑價)
每月 中線趨勢策略 交易成本中等,適合大多數策略
每季 基本面策略 交易成本低,跟隨財報更新節奏
每年 長線價值策略 交易成本最低,但反應慢

對於一般散戶而言,每季再平衡(配合財報公告節奏)是兼顧效果與成本的最佳選擇。

步驟四:進行回測

回測(Backtesting)是用歷史數據模擬策略在過去的執行結果。台股可用的回測資料來源:

  • TEJ(台灣經濟新報):最完整的台股財務數據,適合學術級回測,但授權費用較高。
  • 財報狗 API:提供近 10 年財務指標數據,適合個人投資人使用。
  • 台灣證交所 Open Data:免費但格式需整理,適合技術型投資人自行下載處理。

Python 回測範例框架(概念性)

# 概念性框架,非可執行程式碼
for quarter in quarters_list:  # 每季再平衡
    # 取得本季所有股票的 ROE 與 P/E
    universe = get_stock_data(quarter)
    
    # 計算因子排名
    universe['roe_rank'] = universe['roe'].rank(ascending=False)
    universe['pe_rank'] = universe['pe'].rank(ascending=True)
    
    # 計算綜合得分並選股
    universe['score'] = universe['roe_rank'] * 0.5 + universe['pe_rank'] * 0.5
    portfolio = universe.nlargest(30, 'score')
    
    # 計算持有期間報酬
    returns = calculate_returns(portfolio, next_quarter)

步驟五:評估回測結果

評估量化策略的指標不只是報酬率,更重要的是風險調整後報酬

評估指標 說明 參考標準
年化報酬率 策略平均每年的複合報酬 超過大盤指數
最大回撤(Max Drawdown) 從高點到最低點的最大虧損幅度 長期策略建議 < 30%
夏普比率(Sharpe Ratio) 每承擔一單位風險所獲得的超額報酬 > 1.0 為良好
勝率 每次再平衡後,持股超越大盤的比例 > 55% 算穩定
年均換手率 每年更換持股的比例,影響交易成本 越低越好

量化選股的進階技巧

因子合成的權重設計

多因子合成時,各因子的權重設計非常關鍵:

等權重法:每個因子給予相同權重(例如各 25%)。優點是簡單,不過度配合歷史數據;缺點是無法反映不同市場環境下各因子的相對有效性。

最佳化權重法:用歷史數據計算各因子的最佳化權重。缺點是容易過度最佳化,使回測表現虛高但實際操作績效差。

IC 加權法:以各因子的「信息系數」(Information Coefficient,IC)作為權重依據。IC 衡量因子預測值與實際報酬的相關係數,IC 越高的因子給予越高權重,是更科學的方法。

行業中性化

不同產業的估值水準差異極大(半導體本益比 25~40 倍,傳產本益比 8~15 倍)。若直接跨產業比較 P/E,篩出的標的會集中在傳統產業,無法多元化。

行業中性化的做法是:在同一產業內進行因子排名,再選取每個產業內的高分標的,確保最終持股在產業上的分佈相對均衡。

動態因子輪動

不同市場環境下,不同因子的有效性會有差異:

  • 牛市初期:動能因子、成長因子最有效
  • 牛市中期:品質因子最穩健
  • 熊市:價值因子(低估值防禦)與低波動因子相對抗跌
  • 復甦期:小型股因子、低本益比反彈力道最強

動態因子輪動的難點在於準確判斷市場周期,實作上建議保持核心因子不變(品質 + 價值),視市況微調動能因子的權重。


量化選股的限制與常見誤區

誤區一:回測績效越好越好

過度最佳化(Overfitting)是量化投資最常見的陷阱。若你用 15 年歷史數據,調整了 20 個參數,最後找到「完美策略」——年化報酬 35%、夏普比率 2.5、最大回撤 8%——這幾乎可以確定是數據過擬合的結果,實際操作時會大幅落差。

對策:留出 30% 的數據作為「樣本外測試集」,策略設計完成後,僅用測試集評估。

誤區二:忽略交易成本

台灣股票交易成本:

  • 手續費:最高 0.1425%(雙向),網路下單通常有折扣,約 0.05%
  • 證交稅:賣出時 0.3%(ETF 為 0.1%)
  • 滑價(Slippage):在流動性較低的股票中,買入時實際成交價可能高於理論價格

若量化策略每月換手 50%,光是交易成本每年就可能消耗 4~6% 的報酬,大幅侵蝕超額報酬。

誤區三:忽略存活者偏差

「存活者偏差」是指回測時,只包含現在仍然存在的公司,自動排除了過去已下市、下櫃、破產的公司。這樣的回測結果會系統性高估實際報酬,因為真實的投資人在當時並不知道哪些公司最後會下市。

對策:確認使用的數據來源包含退市股票的歷史數據(點股成金、TEJ 等提供此功能)。

誤區四:把量化選股當成「自動賺錢機器」

量化選股降低了主觀情緒的干擾,但無法消除系統性風險(如金融危機、疫情衝擊、產業顛覆)。即便是最嚴謹的量化基金,在市場極端環境下也可能大幅虧損。

量化選股的正確定位是:在大多數正常市場環境下,系統性地獲取超額報酬;在極端環境下,確保損失在可接受的範圍內。


台股量化選股實戰範例

以下示範一個適合個人投資人操作的簡化「三因子月報再平衡策略」:

策略名稱:台股品質動能季選股策略

投資宇宙:台灣上市上櫃,市值 ≥ 50 億元,排除金融保險

因子與權重

因子 指標 權重
品質因子 ROE(近四季平均) 40%
成長因子 近兩季 EPS 年增率平均 35%
動能因子 近三個月股價相對大盤報酬 25%

再平衡頻率:每季(3 月、6 月、9 月、12 月季報公告後執行)

持股數量:前 20 名高分標的,等權重持有(每檔 5%)

停損機制:單一個股若當季下跌超過 15%,立即以下一個高分標的替換

歷史模擬績效(2015~2024,概估,含交易成本):

  • 年化報酬率:約 16~19%
  • 最大回撤:2022 年熊市約 -28%
  • 夏普比率:約 1.1~1.3
  • 相較同期加權指數年化報酬(約 11%)超額報酬約 5~8 個百分點

結語

量化選股的本質是一種思維方式的轉變:從依賴直覺與情緒,轉向依賴邏輯與數據。它不要求你是數學家或工程師,但它要求你對自己的投資邏輯有清晰的定義,並有紀律地執行。

對台灣投資人而言,量化選股的工具越來越普及,從財報狗的選股器到 Python 開源框架,進入門檻從未如此之低。更重要的是,在一個資訊爆炸、情緒波動劇烈的市場環境中,擁有一套系統化、數據驅動的選股流程,是長期打敗大盤的最可靠方法之一。

從選定三個你真正理解的因子開始,設定合理的條件,進行簡單的歷史驗證,然後紀律地執行——這就是量化選股的起點,也是從「憑感覺」進化到「用數據」的第一步。