FinLab

量化模型說這檔股票營收暴增 50%,可以買嗎?每 3 檔就有 1 檔是地雷!

February 11, 2026

量化模型說這檔股票營收暴增 50%,可以買嗎?每 3 檔就有 1 檔是地雷!

前言:會計魔術的真相

你的量化模型說這檔股票營收暴增 50%,可以買。

但翻開財報註腳:「本月營收增加主要係合併子公司及會計政策變更所致。」

翻譯:這是會計魔術。

這種雷,很多人踩過。某科技股、某營建股,量化篩選都過關:

  • 營收成長?✅ 有
  • 市值夠大?✅ 有
  • 本益比合理?✅ 有

但財報藏著三大地雷:

  1. 營收波動率異常(忽高忽低)
  2. 營收漲但股價跌(市場不買單)
  3. 單月暴增 100%(不可持續)

有時候量化模型看不見這些訊號。

實測:740 檔「好股票」,272 檔是地雷

FinLab 實測,簡單篩選:

  • 營收成長 >20%
  • 市值 >50 億

結果:740 檔通過

看起來很棒?我們用 AI 掃完財報後,發現:

272 檔(36.8%)有問題。

每 4 檔「好股票」就有 1 檔是地雷。

三大地雷類型

地雷 1:營收波動(99 檔,13.4%)

特徵:今天 10 億,下個月 3 億,再下個月 8 億

這種公司可能靠一次性訂單撐場面:

  • 單一大客戶下訂
  • 季節性需求(農曆年、聖誕節)
  • 工程案認列時間不固定

案例:某電子零組件廠

  • 營收變異係數 (CV) = 2.95
  • 去年 12 月營收 15 億(接到蘋果訂單)
  • 今年 1 月營收 2 億(訂單結束)
  • 年增率看起來「暴增 6851.9%」,實際上不穩定

檢測方法:營收變異係數

顯示程式碼
# 計算過去 12 個月的營收波動率
revenue_std = revenue_億.rolling(12).std()
revenue_mean = revenue_億.rolling(12).mean()
revenue_cv = revenue_std / (revenue_mean + 1e-9)
 
# 變異係數 > 0.5 代表波動異常
trap1_volatile = (revenue_cv > 0.5) & passed_round1

計算營收波動率,找出忽高忽低的不穩定公司

顯示程式碼
import pandas as pd
import numpy as np
from finlab import data
 
# 取得月營收數據
revenue = data.get("monthly_revenue:當月營收")
revenue_億 = revenue / 1e5  # 轉換為億元
 
# 計算過去 12 個月的營收標準差和平均
revenue_std = revenue_億.rolling(12).std()
revenue_mean = revenue_億.rolling(12).mean()
 
# 變異係數 = 標準差 / 平均(越大越不穩定)
revenue_cv = revenue_std / (revenue_mean + 1e-9)
 
# 顯示變異係數最高的股票
print("營收波動最劇烈的股票(CV > 0.5):")
latest_cv = revenue_cv.iloc[-1]
volatile_stocks = latest_cv[latest_cv > 0.5].sort_values(ascending=False)
print(volatile_stocks.head(10))

營收波動檢測示意圖

圖 1:三大地雷分布統計。價格背離是最大陷阱(195 檔),佔比 26.4%


地雷 2:營收價格背離(195 檔,26.4%)⚠️ 最大陷阱

特徵:營收漲 10%,股價跌 5%

市場在說:「我不相信你的成長」

可能原因:

  • 毛利壓縮:營收增加但毛利率下降(薄利多銷)
  • 應收帳款爆表:營收認列了,但錢還沒收到
  • 內部人倒貨:董監事、大股東趁高點出貨

案例:某 AI 伺服器概念股

  • 營收 3 個月成長 2848.9%(合併子公司)
  • 股價 3 個月下跌 2.7%
  • 市場看穿營收灌水,不買單

檢測方法:營收 vs 股價報酬率

顯示程式碼
# 計算營收 3 個月報酬
revenue_3m_return = (revenue_億 / revenue_億.shift(3) - 1) * 100
 
# 計算股價 3 個月報酬
close = data.get("price:收盤價")
price_3m_return = (close / close.shift(60) - 1) * 100
 
# 營收漲但股價跌 = 背離
trap2_divergence = (revenue_3m_return > 0) & (price_3m_return < 0)

比較營收與股價的 3 個月報酬率,找出背離個股

顯示程式碼
from finlab import data
import pandas as pd
 
# 取得數據
revenue = data.get("monthly_revenue:當月營收")
revenue_億 = revenue / 1e5
close = data.get("price:收盤價")
 
# 計算 3 個月報酬
revenue_3m_return = (revenue_億 / revenue_億.shift(3) - 1) * 100
price_3m_return = (close / close.shift(60) - 1) * 100
 
# 找出背離個股(營收漲但股價跌)
divergence = (revenue_3m_return > 0) & (price_3m_return < 0)
 
# 顯示背離程度最大的股票
latest_rev = revenue_3m_return.iloc[-1]
latest_price = price_3m_return.iloc[-1]
divergence_stocks = latest_rev[divergence.iloc[-1]].sort_values(ascending=False)
 
print("營收價格背離最嚴重的股票:")
for stock_id in divergence_stocks.head(10).index:
    print(f"{stock_id}: 營收 {latest_rev[stock_id]:.1f}%, 股價 {latest_price[stock_id]:.1f}%")

這是最大的陷阱!

在我們的研究中,195 檔(26.4%)的股票有這個問題。這表示超過 1/4 的「營收成長股」,市場根本不認同。


地雷 3:單月暴增 >100%(33 檔,4.5%)

特徵:上個月 5 億,這個月突然 12 億

可能原因:

  • 併購:合併子公司,財報突然變大
  • 會計政策變更:認列方式改變
  • 一次性大訂單:不可持續的營收跳增

案例:某 IC 設計公司

  • 月增率 107,530%(不是打錯,真的超過 10 萬%)
  • 前一個月營收 0.04 億
  • 這個月營收 43 億
  • 原因:併購海外子公司,合併報表

檢測方法:月增率

顯示程式碼
# 取得月增率
revenue_mom = data.get("monthly_revenue:上月比較增減(%)")
 
# 月增率 > 100% 代表單月暴增
trap3_surge = (revenue_mom > 100)

找出單月營收暴增超過 100% 的異常個股

顯示程式碼
from finlab import data
 
# 取得月增率
revenue_mom = data.get("monthly_revenue:上月比較增減(%)")
 
# 找出單月暴增股票
latest_mom = revenue_mom.iloc[-1]
surge_stocks = latest_mom[latest_mom > 100].sort_values(ascending=False)
 
print("單月營收暴增 >100% 的股票:")
for stock_id in surge_stocks.head(10).index:
    print(f"{stock_id}: 月增率 {latest_mom[stock_id]:.1f}%")

這種暴增通常不可持續,下個月很可能打回原形。


地雷重疊:有些股票同時踩到多個地雷

更可怕的是,有些股票不只踩一個地雷:

  • 僅價格背離:163 檔(最常見)
  • 僅營收波動:58 檔
  • 波動 + 背離:18 檔(雙重警告)
  • 波動 + 暴增:13 檔
  • 三地雷全中:10 檔(超級地雷!)

地雷重疊分析

圖 2:地雷重疊分析。163 檔股票只有價格背離,但有 10 檔股票同時踩到三個地雷


篩選漏斗:兩輪過濾的威力

第一輪量化篩選:

  • 營收成長 >20% 且 市值 >50 億
  • 通過:740 檔

第二輪地雷檢測:

  • 檢測三大地雷
  • 安全:468 檔(63.2%)
  • 地雷:272 檔(36.8%)

篩選漏斗

圖 3:篩選漏斗。740 檔初始通過 → 468 檔安全 → 272 檔有地雷。流失率 36.8%


回測驗證:證據確鑿!

好的,特徵分析說 36.8% 有地雷。但真的會影響報酬率嗎?

我們用 2020-01-01 到 2026-02-10 的數據,回測三個組合:

  1. 不篩選地雷組(基準,740 檔)
  2. 無地雷組(過濾後,468 檔)
  3. 有地雷組(只買地雷股,272 檔)

回測結果:無地雷組完勝

指標 不篩選地雷(基準) 無地雷組 ✅ 有地雷組 ⚠️ 差距
總報酬率 231.07% 274.53% 137.51% +137%
年化報酬率 21.97% 24.49% 15.43% +9.06%
Sharpe Ratio 1.05 1.11 0.79 +0.32
最大回撤 -33.10% -32.01% -35.89% +3.88%
波動度 19.53% 20.54% 18.37% +2.17%

結論:無地雷組在 3/3 主要指標完勝!

想建立自己的策略?

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

免費開始