跳至主要內容
美股研究 約 11 分鐘閱讀

F-Score 美股回測:S&P 500 高分股輸 RSP 與 QQQ,
9 分夏普最低

F-Score 用在美股有效嗎?我們用 Piotroski 九項財報檢查替 S&P 500 成分股打分,回測 2018 到 2026 年:7 分以上年化 10.3%、日夏普 0.61,輸 RSP 的 0.66 與 QQQ 的 0.84;21 組參數全輸 QQQ,9 分的夏普最低,附程式可重跑。

免安裝,用 AI 重跑這篇的策略

在瀏覽器開啟 FinLab Studio,AI 依本文的條件重跑回測,接著可以改條件再測。

在 Studio 重跑
滿分 9 分,夏普最低

F-Score 美股回測:S&P 500 成分股 7 分以上、8 分以上、F-Score 加低股價淨值比與營收成長,對照 RSP 與 QQQ 含息的累積淨值,2018 年 6 月至 2026 年 10 月

依本文重跑

執行這個策略

複製提示詞,讓 AI 依照上方證據的資料、條件與風險檢查重跑一次。

告訴你的AI:

幫我設定 FinLab,重跑 S&P 500 成分股的 F-Score 回測,對照 RSP 與 QQQ,請讀:https://finlab.finance/setup?relatedUrl=/blog/piotroski-f-score-backtest

免安裝,開啟 FinLab Studio

F-Score 用九項只分過與不過的財報檢查替公司打 0 到 9 分,涵蓋獲利、槓桿與流動性、經營效率三個面向。我們把它用在每天的 S&P 500 成分股,回測 2018 年 6 月到 2026 年 10 月。持有所有 7 分以上的成分股,年化 10.3%、日夏普 0.61,輸給等權的 RSP(11.4%、0.66)和含息 QQQ(18.7%、0.84)。測試的 21 組參數沒有一組贏 QQQ,滿分 9 分的股票日夏普 0.41,是所有分數裡最低的。

Piotroski 當初是用這個分數挑便宜股,所以第三個設計再加上低股價淨值比與營收成長。這個組合在 S&P 500 成分股裡反而最差:年化 7.2%、日夏普 0.43、最大回撤 -50.2%。這三個設計在看到任何結果之前就寫定,記在內部的 GitHub issue 上,同批還有 PEG 回測與低波動股回測各三個。九個設計都沒有通過,因此不開策略頁。

本文測的是美股,台股的結果見 F-Score 選股。

F-Score 美股回測關鍵數字

設計 日夏普 年化報酬 最大回撤 平均持股 贏 QQQ 的參數組 贏 RSP 的參數組 前/後半段夏普 結果
F≥7 0.61 10.3% -38.4% 187 檔 0 / 9 2 / 9 0.48 / 0.83 未通過
F≥8 0.57 9.7% -39.0% 83 檔 0 / 9 0 / 9 0.39 / 0.87 未通過
F-Score+低股價淨值比+營收成長 0.43 7.2% -50.2% 32 檔 0 / 9 0 / 9 0.18 / 0.86 未通過
RSP 含息 0.66 11.4% -39.0% 對照 0.61 / 0.76
SPY 含息 0.81 14.6% -33.7% 對照 0.68 / 1.01
QQQ 含息 0.84 18.7% -35.1% 基準 0.76 / 0.95

F≥7 是所有 F-Score 至少 7 分的 S&P 500 成分股,每月換股。每一列都是 2018-06-01 到 2026-10-30,股利再投入,用 finlab 美股預設的零成本。前後半段以 2022-08-15 切開。

F-Score 是什麼

Piotroski(2000)在便宜股裡用九個財報訊號打分,在 B/M 最高的五分之一裡買 8 分以上的公司。每個訊號都是對公司自身財報的是非題,過一項得 1 分。Piotroski 與 So(2012)後來用基本面強弱判斷評價倍數隱含的預期合不合理,發現價值股與魅力股的報酬差集中在兩者不一致的公司。兩篇論文都是把分數和價格放在一起看;本文前兩個設計則是單用分數。

# 面向 檢查 得 1 分的條件
1 獲利 資產報酬率(ROA) 近四季淨利 ÷ 一年前總資產大於 0
2 獲利 營業現金流 近四季營業現金流大於 0
3 獲利 ROA 變化 ROA 高於一年前
4 獲利 現金高於盈餘 營業現金流 ÷ 一年前總資產大於 ROA
5 槓桿與流動性 長期負債 長期負債 ÷ 平均總資產低於一年前
6 槓桿與流動性 流動比率 流動資產 ÷ 流動負債高於一年前
7 槓桿與流動性 股票發行 近四季普通股淨發行小於等於 0
8 經營效率 毛利率 近四季毛利 ÷ 營收高於一年前
9 經營效率 資產週轉率 近四季營收 ÷ 一年前總資產高於一年前

Piotroski 用的是年報。本文每季財報一出就更新分數,一律用近四季和一年前比較:淨利、現金流、營收、毛利、股票發行是四季加總,資產負債表項目是該季期末數。長期負債空白視為 0,其他項目缺資料時該項不得分。沒有淨利、營業現金流或一年前 ROA 的股票完全不計分。第 7 項看淨發行,所以庫藏股可以抵掉發行的股數。每一季的分數都從財報申報日起算。

九項裡有五項(第 3、5、6、8、9 項)是和公司自己一年前比,所以分數偏向獎勵改善,較少獎勵水準高。Novy-Marx(2013)發現毛利除以總資產的水準能預測報酬,第 8 項則只問毛利率有沒有上升:獲利很強但毛利率小跌的公司拿不到這一分,體質弱但毛利率小升的公司拿得到。第 4 項來自 Sloan(1996)的應計研究:盈餘中來自應計項目的部分,持續性低於來自現金流的部分。

分數越高,報酬越好嗎?

在本文設定下,只到 6 分為止。為了單看分數本身,不受門檻和單檔上限影響,我們把每個月的 S&P 500 成分股依分數切成等權組合。這組切片是看到三個設計的結果後才加的,只用來描述結果,不屬於任何一項通過條件。

F-Score 平均檔數 日夏普 年化報酬 最大回撤 波動度
0 到 4 分 52 0.59 11.7% -46.9% 23.5%
5 分 98 0.66 11.9% -40.7% 20.1%
6 分 119 0.69 12.2% -39.5% 19.4%
7 分 104 0.62 10.4% -38.1% 18.9%
8 分 67 0.60 10.4% -38.5% 19.7%
9 分 16 0.41 6.7% -44.1% 21.6%
沒有分數 37 0.74 14.6% -40.1% 21.5%
RSP 0.66 11.4% -39.0%
QQQ 0.84 18.7% -35.1% 23.9%

美股 F-Score 各分數的日夏普與年化報酬:S&P 500 成分股 0 到 4、5、6、7、8、9 分與沒有分數,對照 RSP 與 QQQ,2018 年 6 月至 2026 年 10 月

日夏普從 0 到 4 分的 0.59 升到 6 分的 0.69,之後每高一分就往下掉:0.62、0.60、0.41。年化報酬走勢相同,從 6 分的 12.2% 降到 9 分的 6.7%。對照 RSP 那條虛線,5 分和 6 分在兩個指標都高過它,7、8、9 分兩個指標都低於它,0 到 4 分只有報酬高過它。沒有任何一組碰到 QQQ 的虛線。

9 分這組最薄,平均只有 16 檔,0.41 這個數字的雜訊很大。7 分和 8 分平均有 104 檔和 67 檔,可信度比較高,同樣低於 RSP。

0 到 4 分的最大回撤最深(-46.9%),波動也最高(23.5%);7 分的回撤最淺(-38.1%),波動最低(18.9%)。這些差距我們都沒有做顯著性檢定。

圖上最高的那根「算不出」就是表中的「沒有分數」,它不是訊號。這組平均 37 檔,多半是照常申報的老公司:財季結束日落在日曆季度過後幾天時(常見於 52/53 週財年),季度資料表會空出一季,近四季加總和一年前的比較都會跨過這個空格,分數因此可能中斷兩年以上。這是資料表的空格留下來的剩餘組別,無法當成可用的分組,我們也沒有研究它的 0.74 和 14.6% 從何而來。另有少數成分股在資料裡完全沒有財報,幾乎都是後來被併購或下市的公司,不屬於表中任何一組。

三個設計與驗證方式

  • F≥7: 所有至少 7 分的 S&P 500 成分股,每月換股。鄰近參數是門檻 6、7、8 乘上每週、每月、每季換股。
  • F≥8: 同樣的做法換成 8 分。鄰近參數是門檻 7、8、9 乘上同樣三種頻率。
  • F-Score+低股價淨值比+營收成長: 成分股中股價淨值比最低的 30%、F-Score 至少 7 分、最新一季營收高於去年同季,每月換股。鄰近參數是最便宜的 20%、30%、40% 乘上門檻 6、7、8。

全部等權,單檔上限 5%。「贏」是指同一段交易日裡日夏普高於含息 QQQ,夏普是日報酬平均除以標準差再乘以 √252,不扣無風險利率。以下條件都事先寫定:

  1. 鄰近參數: 9 組至少七成要贏 QQQ。
  2. 前後兩段: 原設定兩段都要贏。
  3. 含成本: 原設定在 finlab 美股預設成本(0)和每邊 0.1% 下都要贏。
  4. 不靠單一年份: 拿掉領先最多的那一年,原設定仍要贏。
  5. 現金: 平均現金超過 10% 的設計,要在扣掉國庫券(BIL)後贏 QQQ。這裡沒有設計觸發,平均持股比例最低是 94.9%。
  6. 組合要有貢獻: 組合版要在同一段期間高於 F≥7。
檢查 F≥7 F≥8 組合版 QQQ RSP
贏 QQQ 的參數組,需 7/9 0 0 0
前半段夏普,到 2022-08-15 0.48 0.39 0.18 0.76 0.61
後半段夏普 0.83 0.87 0.86 0.95 0.76
零成本夏普 0.61 0.57 0.43 0.84 0.66
每邊 0.1% 夏普 0.59 0.55 0.41 0.84 0.66
拿掉 2022 年的夏普 0.78 0.75 0.48 1.22
平均持股比例 100% 100% 94.9%
扣國庫券後夏普(僅供揭露) 0.47 0.44 0.31 0.73

三個設計領先 QQQ 最多的年份都是 2022 年,分別領先 21.5、19.4、32.5 個百分點。三個設計每一關都沒過,組合版連自己那一關也沒過:0.43 低於 F≥7 的 0.61。校準方面,把全部成分股等權持有,從 2017 年 9 月起和 RSP 的日報酬相關係數 0.998,日夏普兩者都是 0.68,股票池與回測引擎的表現符合預期。

RSP 在這裡是比較有用的對照。這些設計都是 S&P 500 股票的等權組合,單是輸 QQQ 說明不了太多。F≥7 和 F≥8 從開始的頭幾週起就一路低於 RSP,到 2026 年 10 月累積 2.28 倍和 2.18 倍,RSP 是 2.48 倍,QQQ 是 4.23 倍。F≥7 平均持有 187 檔,超過指數的三分之一,回撤也和 RSP 差不多(-38.4% 對 -39.0%)。

組合版累積 1.80 倍。2020 年它跌 20.2%,同年 RSP 漲 12.7%,前半段年化只有 1.2%。後半段日夏普 0.86,高於 F≥7 和 RSP,所以它落後這兩者的部分都出在前半段。它平均持有 32 檔,最少 8 檔;因為單檔上限 5%,符合的股票不足 20 檔時就留現金。

F-Score 美股參數熱圖:門檻 6 到 9 分乘上每週、每月、每季換股,以及 F-Score 加低股價淨值比與營收成長的日夏普,每一格都低於 QQQ

粗體是原設定。F≥7 和 F≥8 的參數表共用 F≥7、F≥8 兩列,左圖只畫一次,所以不重複的參數組是 21 組。每一格都和自己同期的 QQQ 比(每週 0.85,每月與每季 0.84),全部都輸。

左圖裡門檻越低越好:F≥6 是 0.65 到 0.68,F≥9 只有 0.39 到 0.54。每一列都是每月換股最低,而且這些格子全是零成本。F≥9 那列保留 5% 上限,約 16 檔的持股會留下部分現金,所以 0.39 和前面沒有上限的 9 分切片 0.41 不同。

贏 RSP 的只有兩組:F≥6 每週(0.68 對 0.67)與 F≥6 每季(0.661 對 0.659)。門檻 7 分以上全部輸 RSP。右圖也一樣,每一列都是門檻越高夏普越低,最好的是最便宜 30%、門檻 6 分的 0.57;最便宜 20% 在每一欄都最低。

同樣三個條件在台股的結果

同樣三個條件在台股是一個上線中的策略:低股價淨值比+F-Score+營收成長,2014 年 6 月到 2026 年 10 月年化 19.7%、日夏普 1.26,同期 0050 含息是 1.05。報酬和 0050 的 19.8% 差不多,領先來自較低的風險,後半段的差距也很小:2020 年 8 月底以後是 1.33 對 1.30。本文的美股版本則輸了。

台股策略 本文
股票池 全市場股價淨值比最低的 500 檔 S&P 500 成分股裡最便宜的 30%
營收條件 最新月營收高於去年同月 最新一季營收高於去年同季
分數 至少 7 分,用 ROE 計分 至少 7 分,用 ROA 計分
平均持股 49 檔 32 檔
成本 手續費 0.1425%、證交稅 0.3% 零成本,另跑每邊 0.1%
基準 0050 含息 QQQ 含息
期間 2014-06 至 2026-10 2018-06 至 2026-10
年化、日夏普、最大回撤 19.7%、1.26、-30.8% 7.2%、0.43、-50.2%

市場、股票池、營收資料、分數與基準都不同,這是兩個獨立的測試,我們不對相反的結果提出原因。台股單用 F-Score 的版本也不一樣:F-Score 選股的 8 分以上三項驗證只過一項,鄰近參數 2/9 組贏 0050。其他台股財報訊號見 8 個財報品質訊號回測。

先前的美股研究,以及本文為何從 2018 年開始

我們的美股學術因子回測比較接近 Piotroski 的原始做法:流動性前 1,000 檔、排除金融股,取 B/M 最高的 30%,持有所有 8 分以上的股票。從 2017 年 8 月起日夏普 0.23、年化 2.7%、最大回撤 -68.6%,是 10 個因子裡最低的,同期 QQQ 是 0.89。同一個股票池的因子投資研究也顯示,分數最高的十分之一每年比最低的十分之一少 0.9 個百分點,t 值 -0.14。

本文的股票池、金融股處理和門檻都不同,起點也不同。那篇從 2017 年 8 月開始;本文事先寫定從成分股七成以上有值的第一個月開始,分數要到 2018 年 5 月才達到。S&P 500 公司的財報實際從 2016 年第一季才齊(2015 年每季不到 80 家),而一年前的 ROA 要除以再早一年的總資產,所以多數公司第一個算得出分數的季度是 2018 年第一季,要用到 2016 年第一季起的九季財報,這一季的財報在 2018 年 4、5 月申報。第一次每月成交在 2018-06-01。

逐年來看

美股 F-Score 7 分以上對照 RSP 與 QQQ 的逐年報酬,2018 年從 6 月起,2026 年到 10 月

年度 F≥7 RSP QQQ
2018(6 月起) -12.3% -9.2% -10.1%
2019 27.5% 28.9% 39.0%
2020 7.4% 12.7% 48.6%
2021 25.7% 29.4% 27.4%
2022 -11.0% -11.6% -32.6%
2023 16.1% 13.7% 54.9%
2024 16.4% 12.8% 25.6%
2025 13.2% 11.2% 20.8%
2026(到 10 月) 10.7% 15.3% 12.8%

F≥7 在 9 個年度裡只有 2022 年贏 QQQ,當年跌 11.0%,QQQ 跌 32.6%。沒有用任何分數的 RSP 當年也只跌 11.6%。2023 年正好相反:F≥7 漲 16.1%,RSP 13.7%,QQQ 54.9%。拿掉 2022 年,F≥7 是 0.78,QQQ 是 1.22。

F≥7 在 2022 到 2025 連續四年贏 RSP,其餘五個年度都輸。前後半段也是同樣的轉折:前半段 0.48,QQQ 0.76、RSP 0.61;後半段 0.83,QQQ 0.95、RSP 0.76。它從落後 RSP 變成領先 RSP,而兩段都落後 QQQ。數字只顯示發生了這件事,看不出原因。

金融股留在裡面

銀行的流動資產和工業公司的報法不同,流動比率、毛利率這類檢查不太適用。Fama 與 French(1992)的研究排除了金融公司,因為金融業常見的高槓桿和其他產業的意義可能不同;我們先前的因子研究也排除這個類股。本文則刻意保留,因為測的是整個指數。

組別 金融股占比
全部有分數的成分股 15.2%
F≥7 14.8%
F≥8 13.3%
F≥9 7.8%

占比在 F≥7、F≥8 略降,到 F≥9 大約減半。便宜又成長的組合則相反,金融股占了 34%。類股標籤是現在的分類,不是當時的分類。我們沒有跑排除金融股的版本;這些占比是看到結果後才算的,只描述組合內容,不能解釋結果。

程式碼

下面是 F≥7,編號註解對應前面的九項檢查表。用到 2026 年 10 月的資料會印出 0.6,也就是 0.60,Python 會省略結尾的 0;關鍵數字表是 0.61,因為 research.py 一家公司只留一個股別,這段短版兩個股別都留。

顯示程式碼
import finlab
from finlab import data
from finlab.backtest import sim
 
finlab.login()
data.set_market("us")
 
close = data.get("us_price:adj_close")
members = data.get("us_index_constituents:sp500").astype(bool)
tickers = members.columns.intersection(close.columns)
members = members[tickers].reindex(close.index, method="ffill").fillna(False).astype(bool)
 
quarters = data.get("us_balance_sheet:total_assets").index
 
 
def quarterly(key):
    return data.get(key).reindex(index=quarters, columns=tickers)
 
 
def trailing(key):
    return quarterly(key).rolling(4, min_periods=4).sum()
 
 
income = trailing("us_income_statement:net_income")
cash_flow = trailing("us_cash_flow:operating_cash_flow")
assets = quarterly("us_balance_sheet:total_assets")
begin = assets.shift(4)[assets.shift(4) > 0]
revenue = trailing("us_income_statement:revenue")
 
roa = income / begin
leverage = quarterly("us_balance_sheet:long_term_debt").fillna(0) / ((assets + assets.shift(4)) / 2)
current = quarterly("us_balance_sheet:total_current_assets") / quarterly("us_balance_sheet:total_current_liabilities")
margin = trailing("us_income_statement:gross_profit") / revenue[revenue > 0]
turnover = revenue / begin
 
checks = [
    roa > 0,                                                  # 1 profitable
    cash_flow > 0,                                            # 2 cash from operations
    roa > roa.shift(4),                                       # 3 return on assets rising
    cash_flow / begin > roa,                                  # 4 cash above reported earnings
    leverage < leverage.shift(4),                             # 5 less long-term debt
    current > current.shift(4),                               # 6 better current ratio
    trailing("us_cash_flow:net_common_stock_issuance") <= 0,  # 7 no net share issuance
    margin > margin.shift(4),                                 # 8 better gross margin
    turnover > turnover.shift(4),                             # 9 better asset turnover
]
score = sum(check.astype(float) for check in checks)
score = score[roa.notna() & cash_flow.notna() & roa.shift(4).notna()]
 
# Count each quarter from its filing date; a blank quarter becomes -1
f_score = score.fillna(-1).index_str_to_date().reindex(index=close.index, method="ffill")
 
position = ((f_score >= 7) & members).loc["2018-05-01":"2026-10-30"]
report = sim(position.loc[:, position.any()], resample="M", trade_at_price="close",
             position_limit=0.05, market="us", upload=False)
curve = report.creturn.loc["2018-06-01":]
returns = curve.pct_change().dropna()
print(round(returns.mean() / returns.std() * 252 ** 0.5, 2))

不想自己寫也可以。照 AI 輔助安裝流程裝好 FinLab skill,或到 FinLab Studio 用白話請 AI 重跑,例如「把 F-Score 研究裡的金融股拿掉」或「改用年報打分」。

回測方法與限制

項目 本文的做法
回測區間 第一個每月訊號在 2018 年 5 月底,第一次成交 2018-06-01,最後一天 2026-10-30。每週參數從 2018-05-07 開始,每季參數從 2018-07-02 開始
股票池 FinLab 時點名單的每日 S&P 500 成分股,一家公司留一個股別。離開指數的公司在成分股期間仍計入,降低生存者偏誤。2018 年 6 月的 505 檔成分股有 9 檔當天沒有價格,2024 年降到 0。每天實際約 490 到 500 檔
流動性 除了指數成分外未設濾網
排除類別 不排除任何類股,金融股保留
前視偏差 季度數字從財報申報日起算,收盤算訊號、下一個收盤成交,避免前視偏差。沒有分數的季度會標記出來,不沿用較舊的分數
股價淨值比 市值 ÷ 最新股東權益,只取權益為正,在當天成分股裡排名
權重 等權,單檔上限 5%,現金沒有利息。分數切片沒有上限
成本 finlab 美股預設零成本,原設定另跑每邊 0.1%:年化降到 9.9%、9.2%、6.7%。未假設滑價
週轉率 目標權重的單邊週轉率:F≥7 每年約 1.4 倍,F≥8 約 2.0 倍,組合版約 2.5 倍
容量 未估算
稅 未計,股利全額再投入
基準 同期含息 QQQ,RSP 當對照
樣本 全段都是樣本內,沒有樣本外期間,前後兩段只是穩定度檢查

有四個限制比其他項目重要:

  • 期間短: 8.4 年裡只有一次 2020 年、一次 2022 年,單一年度就能改變結果:拿掉 2022 年,QQQ 的日夏普從 0.84 升到 1.22。
  • 只有大型股: Piotroski 的原始結果來自範圍廣得多的便宜股,論文也指出效果集中在中小型公司、週轉率低與沒有分析師追蹤的股票。S&P 500 離那個族群很遠,所以本文沒有重驗他的結果。
  • 用財報申報日的滾動數字: 分數隨各公司申報日在一年內變動,論文則用年報打分。
  • 最新一季還沒報齊: 資料截止時最新一季的財報只有部分公司申報,最後的讀數混合了新舊財報。

這個結果能說明什麼

從 2018 年 6 月到 2026 年 10 月,在 S&P 500 成分股和這套規則下,高 F-Score 的原設定沒有贏 RSP,任何參數都沒有贏 QQQ。6 分以上,分數越高夏普越低。加上低股價淨值比與營收成長之後更差。這些結果不代表 F-Score 在便宜小型股、更早的年代或其他市場無效,前面的台股策略就在自己的基準下過了關。

F-Score 適合誰

適合想用一張清單快速檢查單一公司財報的讀者:獲利、負債、效率共九個是非題。也適合研究便宜小型股的人,那正是 Piotroski 研究、本文沒有涵蓋的族群。

不適合想用 S&P 500 個股規則贏過指數基金的人。在本文設定下,F≥7 持有超過三分之一的指數,結果貼近 RSP,報酬還比較低。

想繼續研究,一次改一件事,每項驗證都重跑,並且同時比 RSP 和 QQQ:門檻改 6 分、改用年報打分、拿掉金融股,或換成 S&P 500 以外的便宜股。同批的 PEG 與低波動研究用同樣的股票池和規則。單用股價淨值比可以看美股回測教學,大型股因子見 17 個因子比較,常見選股法見知名選股法回測,其他美股研究收在美股量化策略總覽。

常見問題

F-Score 幾分算好?

Piotroski 的論文買 8 分和 9 分。本文 2018 年 6 月到 2026 年 10 月的 S&P 500 測試裡,有分數的組別以 6 分的日夏普 0.69 最高,9 分的 0.41 最低,不過 9 分平均只有 16 檔。

F-Score 怎麼算?

九項各得 1 分:ROA 為正、營業現金流為正、ROA 上升、現金流高於 ROA、長期負債比下降、流動比率上升、沒有淨發行股票、毛利率上升、資產週轉率上升,總分 0 到 9。本文每項都用近四季和一年前比較。

F-Score 用在美股有效嗎?

在 2018 到 2026 年的 S&P 500 成分股上,本文 21 組參數都沒有贏 QQQ,只有 2 組贏 RSP,而且都是門檻 6 分。這些是大型公司,Piotroski 的結果來自範圍廣得多的便宜股,所以這不能回答小型股的問題。

滿分 9 分是買進訊號嗎?

依本文的證據不是。9 分這組年化 6.7%、日夏普 0.41,是所有分數最低的。它平均只有 16 檔,雜訊大,但 7 分和 8 分也都輸 RSP。

金融股適用 F-Score 嗎?

不太適用,銀行的流動資產和工業公司的報法不同。本文刻意保留金融股,它占有分數股票的 15.2%,占 9 分股票的 7.8%。

F-Score 加上低股價淨值比比較好嗎?

在這段期間的 S&P 500 成分股不是。加上最便宜 30% 與營收成長後,日夏普從 0.61 降到 0.43,最大回撤從 -38.4% 變成 -50.2%。

台股和美股的 F-Score 結果為什麼不同?

我們沒有找出原因。同樣三個條件在台股日夏普 1.26,高於 0050 的 1.05,但後半段差距很小;美股版本 0.43,低於 QQQ 的 0.84。兩邊的市場、股票池、營收資料、分數與基準都不同。

可以自己重跑嗎?

可以。裝好 FinLab skill 後,下載下面的 research.py,執行 python research.py。

下載資源

檔案 內容
research.py 完整研究:三個設計、21 組參數、前後兩段、成本重跑、分數切片與金融股占比
data.csv 三個設計,加上 QQQ、SPY、RSP、SPLV、USMV 的每日淨值
metrics.json 本文引用的統計,包含每組參數與逐年報酬

投資警語:本文僅供教學參考,不構成投資建議。過去績效不代表未來表現,投資有風險。本文所有回測均為全段樣本內結果,前後兩段未經樣本外驗證。文中提到的基金只用來說明研究結果,不是買賣建議。

最後更新:2026-11|回測區間:2018-06~2026-10|資料截至 2026-10-30,重跑日 2026-11-01|基準:QQQ 含息|作者:FinLab 量化研究團隊(經量化研究員審閱)

FinLab AI

想建立自己的策略?

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

免費開始

更多多因子選股研究

查看全部