
執行這個策略
複製提示詞,讓 AI 依照上方證據的資料、條件與風險檢查重跑一次。
告訴你的AI:
幫我設定 FinLab,重跑 S&P 500 成分股的 F-Score 回測,對照 RSP 與 QQQ,請讀:https://finlab.finance/setup?relatedUrl=/blog/piotroski-f-score-backtest
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% |

日夏普從 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,不扣無風險利率。以下條件都事先寫定:
- 鄰近參數: 9 組至少七成要贏 QQQ。
- 前後兩段: 原設定兩段都要贏。
- 含成本: 原設定在 finlab 美股預設成本(0)和每邊 0.1% 下都要贏。
- 不靠單一年份: 拿掉領先最多的那一年,原設定仍要贏。
- 現金: 平均現金超過 10% 的設計,要在扣掉國庫券(BIL)後贏 QQQ。這裡沒有設計觸發,平均持股比例最低是 94.9%。
- 組合要有貢獻: 組合版要在同一段期間高於 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≥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≥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 自動驗證、回測、給你答案
免費開始

