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

Altman Z-Score 回測:排除財務困境股小幅改善,
18 組參數仍全輸 QQQ

Altman Z-Score 是什麼、怎麼算?本文先說明五個財務比率的算法,再把它當美股選股濾網:排除財務困境股(Z 低於 1.81)比一般大型美股每檔買一樣多略好,困境股 10 年有 8 年落後,但 18 組參數全都輸給直接買 QQQ(美國大型科技股 ETF)。

這組規則未通過驗證

不用操作程式,直接看報酬、最大跌幅與比較結果。

看比較結果
沒贏過 QQQ

Altman Z-Score 回測淨值:排除困境區、只買安全區、成交額前 500 檔等權、只買困境區與 QQQ 含息

兩種 Altman Z-Score 濾網都沒有通過驗證。從成交額最大的 500 檔美股非金融股中排除困境區(Z 小於 1.81),2017-04-03 到 2026-11-10 年化 13.4%、日夏普 0.73;只買安全區(Z 大於 2.99)年化 13.5%、日夏普 0.71。兩者都贏同一個股票池等權持有(每檔買一樣多錢;12.5%、0.69),但 18 組參數全輸 QQQ 含息(追蹤那斯達克 100 指數的 ETF,以美國大型科技股為主;19.3%、0.88)。

Z 分數確實分得出體質較差的公司。困境區的股票年化只有 10.0%、日夏普 0.56,10 個年度有 8 個輸股票池,2020 年崩跌時跌了 43.5%。把它們排除有一點幫助,但不足以讓一籃子分散的美股贏過 QQQ。

本文提供研究結果,沒有推薦這些買賣規則。想自行重跑,可先 設定 FinLab 環境,再 下載研究程式(.py);其他檔案見 研究下載區。

Altman Z-Score 是什麼

Altman Z-Score(Altman Z 分數)是 Edward Altman 在 1968 年發表的破產預測分數。Altman(1968) 比較已經破產的製造業公司和規模相近、沒有破產的公司,找出最能區分兩組的五個財務比率與權重。分數越低,公司越像那些倒閉的公司。

項目 比率 權重 衡量什麼
流動性 營運資金/總資產 1.2 流動資產扣掉流動負債後剩多少
累積獲利 保留盈餘/總資產 1.4 公司成立以來留下的獲利;年輕或虧損的公司分數低
本業獲利 近四季稅前息前利潤(EBIT)/總資產 3.3 資產在付利息和稅以前賺多少
市值緩衝 市值/總負債 0.6 股價可以跌多少,負債才會超過股權價值
資產周轉 近四季營收/總資產 1.0 每一塊錢資產帶來多少營收

Z = 1.2 × 流動性 + 1.4 × 累積獲利 + 3.3 × 本業獲利 + 0.6 × 市值緩衝 + 1.0 × 資產周轉。

Altman 原始的分界到現在仍最常被引用:低於 1.81 是 困境區,高於 2.99 是 安全區,中間是無法區分兩組公司的灰色區。權重是用製造業估出來的,所以本文排除銀行、保險等金融業:它們的資產負債表大多是金融資產與負債,流動性和資產周轉這兩個比率沒有意義。

為什麼 Z 分數可能和報酬有關?直覺上風險高的公司應該給投資人更高的報酬,但研究結果相反。Dichev(1998) 用 Z 分數等模型衡量破產風險,發現破產風險高的公司報酬反而比較低;Campbell、Hilscher 與 Szilagyi(2008) 用更細的破產模型也得到同樣的「財務困境異常」。如果這個現象還在,把困境股排除應該能改善投資組合。

開跑前寫定的兩種濾網

在起始日與每季最後一個交易日,從成交額最大、Z 分數算得出來的美股非金融股中,挑出通過濾網的每一檔等權持有(每一檔買一樣多錢)。

設計 規則 測試的參數(粗體為原參數)
① 排除困境區 持有股票池裡 Z 不低於 T 的股票 T 1.5/1.81/2.1 × 股票池 200/500/1,000 檔(9 組)
② 只買安全區 只持有 Z 高於 T 的股票 T 2.5/2.99/3.5 × 股票池 200/500/1,000 檔(9 組)

原參數用 Altman 的分界,鄰近參數各上下移動約 0.3 到 0.5。參數網格與過關條件在算任何報酬以前就寫定。另外列兩個不算在過關條件裡的對照組:整個股票池等權持有,以及只買困境區。

回測結果

項目 ① 排除困境區 ② 只買安全區 對照:股票池 對照:困境區 QQQ 含息
結論 ✗ 沒通過 ✗ 沒通過 對照 對照 基準
年化報酬 13.4% 13.5% 12.5% 10.0% 19.3%
日夏普(每承擔一分波動的報酬) 0.726 0.709 0.691 0.558 0.880
最大回撤(最慘跌幅) -35.2% -34.5% -37.2% -43.5% -35.1%
贏 QQQ 的參數 9 組中 0 組 9 組中 0 組 — — —
平均持股 378 檔 272 檔 500 檔 122 檔 —

①持有股票池扣掉困境區(Z ≥ 1.81)的股票,②只持有安全區(Z > 2.99)。股票池是成交額前 500 檔、算得出分數的非金融股,等權持有。

年化報酬是平均每年的成長率。日夏普衡量每承擔一分日常波動換到多少報酬:每日報酬平均除以標準差再乘以 252 的平方根,不扣無風險利率,定義參考 Sharpe(1994)。前半段到 2022-01-18,後半段從 2022-01-19 開始。

下面嵌入的 FinLab 互動報告是濾網①的原參數。報告裡的對照線是不含息的標普 500,比本文用的 QQQ 含息容易贏,報告內的評等也是對這條對照線,不代表通過本文驗證;報告的夏普也用自己的算法,和表格略有不同。

平均每次換股時,500 檔股票池中有 24.3% 落在困境區、21.3% 在灰色區、54.4% 在安全區。成交最熱絡的美股有四分之一被歸為「困境」,表示 1968 年的分界是為另一個時代的經濟訂的:軟體這類資產很輕的公司,或大量買回庫藏股的公司,保留盈餘或營運資金可能偏低,但離倒閉還很遠。

鄰近參數

Altman Z-Score 參數熱圖:18 組參數的日夏普與 QQQ 的差距,依門檻與股票池大小

18 格全部輸 QQQ,差距 0.10 到 0.25。門檻影響很小:同一個股票池大小,三個門檻的日夏普差距都在 0.06 以內。股票池大小影響比較大:成交額前 200 檔最好(日夏普 0.70 到 0.78),前 1,000 檔最差(0.63 到 0.65)。股票池變大,加進來的是成交較少、規模通常較小的公司,加進來以後結果變差。

驗證項目

Altman Z-Score 驗證:兩種濾網每項檢查和 QQQ 的日夏普差距,全部沒過

BIL 是 1–3 個月美國國庫券 ETF,扣掉它的報酬,看的是比放現金多賺多少。

檢查 ① 排除困境區 ② 只買安全區 QQQ
七成參數贏 QQQ 9 組中 0 組 ✗ 9 組中 0 組 ✗ —
前後半段都贏 QQQ(前/後) 0.862/0.583 ✗ 0.869/0.547 ✗ 1.087/0.677
每邊 0.1% 成本的日夏普 0.719 ✗ 0.702 ✗ 0.880
扣掉 BIL 的日夏普 0.606 ✗ 0.594 ✗ 0.776
拿掉領先最多的 2022 年 0.977 ✗ 0.985 ✗ 1.223

兩種濾網每一項都沒過。成本幾乎沒有影響,因為每季只換掉約 11% 到 14% 的權重;真正的差距在 QQQ 本身。

困境股確實比較差

Altman Z-Score 逐年報酬:困境區、股票池、排除困境區與 QQQ

只買困境區的組合,10 個年度有 8 個輸股票池(2017、2026 年不滿一年),這正是 Dichev 與 Campbell 等人 描述的現象,在 Dichev 的樣本二十多年後仍看得到。例外是 2022 和 2024 年。2022 年 QQQ 跌 32.6%,困境區跌 14.0%,股票池跌 19.7%。

Altman Z-Score 回撤比較:2020 年困境區跌最深,2022 年反而較淺

回撤圖看得到兩面。從 2020 年 2 月的高點到 3 月的低點,困境區跌 43.5%、股票池 37.2%、濾網① 35.2%、QQQ 28.6%。2022 年的下跌順序反過來:當年最深的跌幅,困境區 24.1%、股票池 26.5%、濾網① 27.5%、QQQ 34.8%。

為什麼排除體質差的公司還是輸 QQQ

排除困境區讓股票池的年化從 12.5% 提高到 13.4%、日夏普從 0.69 提高到 0.73。這是文獻預期的改善,幅度也合理:拿掉四分之一、每年落後其他股票約 3 個百分點(10.0% 對 13.4%)的股票,大約就是這個差距。

QQQ 是另一種投資組合。它依市值加權那斯達克 100 指數,報酬主要來自少數幾家超大型科技公司。約 270 到 380 檔跨所有非金融產業的等權組合,沒有這種集中,這很可能是這類濾網一直落後的主因。這十年 QQQ 和排除困境區的組合每年差約 6 個百分點,遠大於財務濾網能補回來的幅度。Z 分數回答的是「哪些公司可能倒」,這對避開虧損有用,但不是決定這段期間報酬的問題。

回測方法

  • 股票池: 美股普通股,包含已下市公司,每家公司只留一檔,不含 ETF、基金、ADR,也不含金融業(依目前公司資料的產業)。換股日收盤價高於 5 美元、近 60 日平均成交額超過 500 萬美元、近一年沒有單日漲跌 50% 以上,而且算得出 Z 分數,再取成交額前 200、500 或 1,000 檔。
  • 前視偏差: 資產負債表與損益表的數字從季報申報日起才使用。EBIT 與營收用近四季加總,四季都要有。市值用 FinLab 的 etl:us_market_value,最近一次季報的股數乘以收盤價並扣除之後的拆股,所以市值那一項每天更新,財報那幾項在季報公布時更新。換股日的下一個交易日收盤成交。
  • 生存者偏誤: 已下市公司保留到最後一個價格。排除金融業用的是今天的公司資料快照。
  • 權重與周轉: 通過濾網的每一檔等權,每季換股,每次周轉約 11%(①)與 14%(②)。
  • 成本與滑價: 預設零手續費,另跑每邊 0.1%。沒有估算資金容量與市場衝擊。
  • 資料: 從 2017-04-03 算到 2026-11-10,2026-11-12 用 finlab 2.3.8 跑完。公司資料每天更新,之後重跑,數字可能略有不同。
  • 限制: 全段樣本內,沒有樣本外期間。Bailey 等人(2017) 說明單次回測為什麼容易高估,本文沒有估算過度擬合機率。

用 AI 代理重跑

照 FinLab 安裝流程 幫 Claude Code、Codex 或 Gemini CLI 裝好 FinLab 技能,AI 代理使用說明 介紹代理能做的事。直接安裝的指令是:

顯示程式碼
npx skills add koreal6803/finlab-ai --skill finlab -g -y

FinLab Studio 在瀏覽器也能做同樣的研究。第一句可以這樣問:「下載 Altman Z 研究程式,跑濾網①的原參數,列出最近一次換股時落在困境區的公司。」

把 研究程式 存成 research.py;它同時包含逢低買進與庫藏股的測試。下面這段計算 Z 分數並重建濾網①,登入由 FinLab 自動引導。

顯示程式碼
import finlab
import numpy as np
from finlab import data
from research import use, z_pool, on_rebalance, rebalance_days, backtest
 
finlab.login()
use("us")
 
def balance(field):
    return data.get("us_balance_sheet:" + field)
 
def last_four_quarters(field):
    return data.get("us_income_statement:" + field).rolling(4, min_periods=4).sum()
 
assets = balance("total_assets")
accounting = (1.2 * (balance("total_current_assets") - balance("total_current_liabilities"))
              + 1.4 * balance("retained_earnings")
              + 3.3 * last_four_quarters("ebit")
              + 1.0 * last_four_quarters("revenue")) / assets
z = on_rebalance(accounting + 0.6 * data.get("etl:us_market_value") / balance("total_liabilities"))
z = z.where(np.isfinite(z))
 
# 成交額前 500 檔、算得出分數的非金融股,排除困境區
position = z_pool(500) & (z >= 1.81)
report = backtest(position, rebalance_days())

Altman Z-Score 常見問題

Z 分數多少算好? 高於 2.99 是 Altman 的安全區,低於 1.81 是困境區。這次測試中,平均每次換股,成交最熱絡的美股非金融股有 54% 在安全區、24% 在困境區。

Z 分數能預測現在的公司會不會倒嗎? 它是用 1946 到 1965 年間破產的製造業公司估出來的。它仍能把財務體質差的公司排在後面,困境區的報酬就是證據;但它的分界會把很多健康的輕資產公司標成困境,比較適合當排名,不適合當判決。

銀行能用 Z 分數嗎? 不適合。金融業的資產負債結構讓這幾個比率失去意義,所以本文排除;Altman 後來也發表了給其他類型公司用的版本。

股票掉進困境區就該賣嗎? 本文測的是數百檔股票的組合,不是單一公司。困境區平均比較差,但個別公司兩個方向的例外都很多。

Z 分數和 F-Score 有什麼不同? F-Score 用九個訊號判斷獲利與財務是否改善,F-Score 美股回測 在 S&P 500 成分股上測過,同樣輸 QQQ。

台股能用 Z 分數選股嗎? 本文只測美股。台股用財報挑股的研究可以看 EPS 與 ROE 選股比較。

想看已驗證與未通過的美股規則,可以讀 美股量化交易策略比較。美股因子投資入門 介紹因子組合怎麼建、怎麼比較,美股學術因子回測 測了十個經典因子,同一批研究的 美股庫藏股回測 則用買回金額排名。回測方法 說明財報申報日與生存者偏誤。

研究下載

檔案 內容
開啟排除困境區報告(網頁) 瀏覽器直接開啟,不需安裝:濾網①的每日淨值、每筆交易與逐年報酬
開啟只買安全區報告(網頁) 濾網②的同一份報告
下載每日績效資料(CSV) 兩種濾網、股票池、困境區、QQQ 與 BIL 的每日淨值
下載完整測試結果(JSON) 每組參數、每項檢查與各區比例,供 AI 或程式讀取
下載研究程式(Python) 給 AI 代理或會寫程式的人;這批三項研究共用一支程式

投資有風險,過去績效不代表未來表現。本內容僅供教學與研究,不構成投資建議,請依個人風險承受度審慎評估。本文沒有推薦買賣任何個股,Z 分數也不能預測個別公司是否倒閉。

最後更新:2026-11|回測區間:2017-04-03 至 2026-11-10|作者:FinLab 量化研究團隊。團隊以 FinLab 資料維護台股、美股的可重跑研究。

FinLab AI

想建立自己的策略?

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

免費開始

更多多因子選股研究

查看全部