很多存股教學都推「自由現金報酬率」這個冷門又迷人的指標,說它能幫你挑到體質好的績優股。我們直接把它寫成可重現的選股策略,用 finlab 把 2013-04 到 2026-06 共 13 年的台股資料跑一次回測,結果跟多數教學講的不太一樣。
一句話結論: 教科書版本的自由現金報酬率價值螺絲(自由現金報酬率前 30%+本益比 < 25+股價淨值比 < 1.5)13 年只有年化 14.22%、夏普 0.94,跑輸同期含息 0050 的 21.01%。真正贏過大盤的,是把自由現金報酬率、營收成長、價格動能這三個低相關因子疊起來:年化 24.18%、夏普 1.28、最大回撤 -30.90%(比含息 0050 的 -33.96% 還淺)。
| 策略(2013-04~2026-06,月調倉) | 年化報酬 | 夏普 | 最大回撤 |
|---|---|---|---|
| 含息 0050(大盤基準) | 21.01% | — | -33.96% |
| 經典自由現金報酬率螺絲(FCF+本益比+股價淨值比) | 14.22% | 0.94 | -31.08% |
| 多因子版本(FCF+營收成長+動能) | 24.18% | 1.28 | -30.90% |
下面這張是多因子版本、經典螺絲與含息 0050 的權益曲線,全部用 finlab 真實回測、等權重、月調倉:

想自己改因子、換條件即時重算,可以用 AI 輔助安裝流程把 finlab 裝起來:
用 AI 開始 FinLab
把這句話交給你的AI,它會帶你完成設定並做出第一個策略。
告訴你的AI:
幫我設定 FinLab,重現這篇文章,請讀:https://finlab.finance/setup?relatedUrl=/blog/strategy-dog-free-cash-flow-stock-screen-backtest
自由現金報酬率是什麼?
財報狗的「策略狗」公開了一個比較少見的指標:自由現金報酬率。它的算法直接引用策略狗的教學定義。
| 名詞 | 計算方式 |
|---|---|
| 投資資本 | 股東權益 + 短期借款 + 長期借款 |
| 自由現金流 | 營業現金流 - 資本支出 |
| 自由現金報酬率 | 自由現金流 ÷ 投資資本 |
關鍵差別在分子。一般人看獲利只盯每股盈餘或帳面盈餘,但盈餘是會計數字,可以靠認列方式美化;自由現金流是公司真正收進來、扣掉維持營運與擴張所需資本支出之後,還能自由運用的現金。一家公司就算帳面有獲利,若現金都被應收帳款或設備投資吃光,自由現金流仍可能很薄。用自由現金流當分子、再除以投資資本,等於在問:這家公司每投入一塊錢資本,一年能擠出多少自由現金?比率越高,代表把資本轉成真現金的效率越好,通常也就是體質越穩健的公司。這類財務名詞可以對照量化投資詞彙表釐清。
第一個發現:單獨用自由現金報酬率,贏不了大盤
我們先照教學把它寫成最直覺的價值螺絲:自由現金報酬率全市場前 30%、本益比小於 25、股價淨值比小於 1.5,每月調倉、等權重、滿足條件就買進。13 年下來它的年化只有 14.22%、夏普 0.94,落後含息 0050 將近 7 個百分點。
不死心,我們又試了幾種常見的變形,包括把它集中到少數幾檔、加上價格動能。為了不挑數字,五種版本全部列出來:

| 版本 | 選股邏輯 | 平均持股 | 年化報酬 | 夏普 | 索提諾 | 最大回撤 |
|---|---|---|---|---|---|---|
| V1 | 自由現金報酬率前 30%+本益比+股價淨值比 | 118 | 14.22% | 0.94 | 1.30 | -31.08% |
| V2 | 集中買自由現金報酬率最高 30 檔+本益比 | 16 | 10.65% | 0.60 | 0.90 | -36.73% |
| V3 | 前 50 高自由現金報酬率+本益比+動能 | 15 | 16.24% | 0.82 | 1.27 | -37.26% |
| V5 | 集中買自由現金報酬率最高 30 檔+動能 | 12 | 19.84% | 0.92 | 1.46 | -32.76% |
| V4 | 自由現金報酬率前 30%+營收成長+動能 | 155 | 24.18% | 1.28 | 1.88 | -30.90% |
兩個反直覺的觀察:第一,把策略集中到少數幾檔(V2、V5)反而更差,夏普掉到 0.6~0.9,回撤更深。自由現金報酬率比較像一個讓整體勝率往上偏的廣度因子,硬要押在最高的幾檔身上,個股波動會把優勢吃掉。第二,唯一明顯贏過含息 0050 的是 V4:它不靠集中,而是靠疊加。
第二個發現:三個低相關因子疊起來才贏
V4 的選股邏輯是同時要求三件事:自由現金報酬率全市場前 30%(體質)、月營收年增率為正(成長)、近三個月股價站上(動能)。這三個因子看的是不同面向,彼此相關性低,失靈的時機也不同步,疊在一起時一個拉回、另一個還撐得住,整體波動就被壓下來。這也是為什麼它的夏普 1.28 與索提諾 1.88 明顯高過任何單一版本。其中價格動能這個因子的長期有效性,最早由 Jegadeesh & Titman (1993) 在美股實證提出,後續也在台股反覆被驗證,把它和價值體質因子搭配,正是經典的低相關組合。
核心程式碼:三個因子怎麼疊
整套策略的核心其實只有幾行。先算出自由現金報酬率,再把營收年增與三個月動能兩個條件疊上去,最後交給 finlab 的 sim 回測。完整可下載版見下方 strategy.py,這裡先看骨架:
顯示程式碼
import numpy as np
from finlab import data
from finlab.backtest import sim
# 自由現金報酬率 = 自由現金流 ÷ 投資資本(股東權益+短期借款+長期借款)
fcf = data.get("fundamental_features:自由現金流量")
equity = data.get("financial_statement:股東權益總額")
short_debt = data.get("financial_statement:短期借款")
long_debt = data.get("financial_statement:長期借款")
invested_capital = equity.fillna(0) + short_debt.fillna(0) + long_debt.fillna(0)
fcf_yield = (fcf / invested_capital).replace([np.inf, -np.inf], np.nan)
# 另外兩個低相關因子:營收成長與價格動能
revenue_yoy = data.get("monthly_revenue:去年同月增減(%)")
close = data.get("price:收盤價")
momentum = close / close.shift(60)
# 三因子同時成立才買進
position = (
(fcf_yield.rank(axis=1, pct=True) > 0.7)
& (revenue_yoy > 0)
& (momentum > 1)
)
report = sim(position, resample="M", name="自由現金流多因子")rank(axis=1, pct=True) > 0.7 的意思是每一天把全市場股票依自由現金報酬率排序、取前 30%;resample="M" 是每月調倉(本文開頭表格那組數字就是這個版本,每季再略好一點,見下一節)。你只要把這三個條件換成自己想驗證的因子,就能立刻重跑出一條新的權益曲線,這也是用真實資料做選股研究最有價值的地方:所有結論都可以自己復現、自己挑戰。
回撤的差距更直接。多因子版本 13 年最深只回 -30.90%,比含息 0050 的 -33.96% 還淺一些,等於用更高的報酬換到更小的痛苦。

完整的互動報告(可看每筆交易、年度報酬與部位明細)在這裡:
策略的完整程式碼可以直接下載重跑:strategy.py,回測權益曲線數據在 data.csv。想把多因子怎麼疊看得更完整,可以參考多因子選股實戰:年化贏過 0050。
第三個發現:每年換一次股,其實太久了
很多存股教學會說「價值股每年換一次就好」。對多因子版本來說,這個結論並不成立。我們把同一套 V4 條件分別用每月、每季、每年三種換股頻率各跑一次:

| 換股頻率 | 年化報酬 | 夏普 | 最大回撤 |
|---|---|---|---|
| 每月 | 24.18% | 1.28 | -30.90% |
| 每季 | 24.86% | 1.30 | -30.31% |
| 每年 | 18.88% | 1.02 | -30.32% |
每季與每月幾乎打平、每季略好,但拉長到每年,年化就掉到 18.88%、夏普掉到 1.02。原因在於這套策略含有動能因子,而動能的有效期本來就短;一年才換一次,等於讓動能訊號放到過期。所以這類含動能的多因子策略,每季調倉是比較合理的節奏。
幾個要老實講的限制
第一,這是 2013-04 到 2026-06 的樣本內結果,台股這段期間整體偏多頭,換到不同期間、不同參數,數字一定會變,不能當成未來保證。第二,V4 平均持有約 155 檔,它的本質是一個分散的因子組合,而不是少數幾檔的集中存股;想拿來當「只買十檔長抱」的清單並不適合。第三,回測未計交易成本與滑價,每季調倉的周轉雖然不算高,實單仍要把手續費與流動性算進去。把這三點放在心裡,這套策略真正的用途是:當一個有體質、有成長、有動能的分散選股框架,而不是一張穩賺的明牌。
常見問題
自由現金報酬率高的股票一定會漲嗎? 不一定。我們也做過自由現金報酬率與單月報酬的相關性檢查,短期幾乎看不出關聯,這是長期體質指標,醞釀不出一個月的漲跌。它的價值在於長期把勝率往上偏,而且高自由現金報酬率的股票短期波動通常較低、不易暴漲暴跌,比較適合當分散組合裡的體質濾網。
為什麼經典的自由現金報酬率螺絲會輸 0050? 因為它本質上是一個偏向深度價值的篩選(股價淨值比小於 1.5),而 2013 到 2026 這段期間,台股的權值與成長股表現強勁,純深度價值反而落後。把成長與動能因子補進來,才把這個缺口補上。
這套策略要多久換一次股? 以本文的多因子版本來說,每季調倉表現最好(年化 24.86%、夏普 1.30),每月幾乎一樣,但每年就明顯變差,因為動能訊號會過期。完整選股流程與其他面向,可參考台股選股完整指南,以及換股頻率的延伸實測績優股獵犬 2:多久換股一次最好。
延伸閱讀
本文由 FinLab 量化研究團隊撰寫。所有回測均以 finlab 套件在真實台股歷史資料上實證,程式碼與權益曲線數據皆可下載重跑,歡迎自行驗證與挑戰。
投資警語:本文所有回測數據來源為 finlab 真實實測(2013-04 至 2026-06),僅供教學與研究參考,不構成投資建議。過去績效不代表未來表現,投資有風險,請依個人風險承受度審慎評估。
FinLab AI
想建立自己的策略?
用自然語言描述你的選股想法,AI 自動驗證、回測、給你答案
免費開始

