Strasmore Research
學習 Matt Connor作者: Matt Connor · 更新於 2026-07-25 · data as of July 25, 2026 · refreshed weekly

本週異常成交量個股排行

以相對成交量倍數排序,對照過去40日基準量,附成交金額門檻與週漲跌幅,篩出真正可交易的異常量能股。

異常成交量,指的是一檔股票的交易量遠高於它自身的正常水準,而非整個市場的水準。一檔大型股成交四千萬股是家常便飯;但一檔小型股做到這個量就是大事了。本頁面彙整了剛結束一週的異常成交量個股排行:計算方式是將每檔股票過去五個交易日的平均成交量,除以其自身前四十個交易日的平均成交量,並設有成交金額門檻,確保每一列都是投資人實際能交易的股票。本頁面每週更新,而「數據截至」的戳記即為該統計區間。這項衡量指標本身——相對成交量——有其完整指南

本週異常成交量領先者

三個欄位說明一切。倍數顯示一支股票的交易量超出自身正常水準多少。基準量說明正常水準是多少——在極低的基準量上出現巨大倍數,其事件意義小於在熱絡交易基礎上出現的溫和倍數。成交金額則說明這項活動在經濟上是否真實。最後一欄,也就是本週開盤至收盤的變動,是多數成交量篩選會遺漏的資訊。

查詢本週最高相對成交量:過去5個交易日對比前40個交易日,篩選本週交易額達5億美元以上標的
每個數據背後的精確 SQL 語法
WITH sess AS (
    SELECT ticker,
           toDate(toTimeZone(window_start, 'America/New_York')) AS d,
           sum(toFloat64(volume)) AS vol,
           sum(toFloat64(close) * toFloat64(volume)) AS dollars,
           argMin(toFloat64(open), toTimeZone(window_start, 'America/New_York')) AS day_open,
           argMax(toFloat64(close), toTimeZone(window_start, 'America/New_York')) AS day_close
    FROM global_markets.delayed_stocks_minute_aggs
    WHERE window_start >= now() - INTERVAL 70 DAY
      AND toHour(toTimeZone(window_start, 'America/New_York')) * 60 + toMinute(toTimeZone(window_start, 'America/New_York')) >= 570
      AND toHour(toTimeZone(window_start, 'America/New_York')) * 60 + toMinute(toTimeZone(window_start, 'America/New_York')) < 960
      AND ticker NOT IN ('SPCX')
    GROUP BY ticker, d
),
cal AS (
    SELECT d, row_number() OVER (ORDER BY d DESC) AS rn
    FROM (SELECT DISTINCT d FROM sess)
),
per_name AS (
    SELECT s.ticker AS ticker,
           avgIf(s.vol, c.rn <= 5) AS adv_recent,
           avgIf(s.vol, c.rn BETWEEN 6 AND 45) AS adv_base,
           sumIf(s.dollars, c.rn <= 5) AS dollar_recent,
           argMaxIf(s.day_open, c.rn, c.rn <= 5) AS week_open,
           argMinIf(s.day_close, c.rn, c.rn <= 5) AS week_close,
           countIf(c.rn <= 5) AS recent_sessions,
           countIf(c.rn BETWEEN 6 AND 45) AS base_sessions
    FROM sess s INNER JOIN cal c ON s.d = c.d
    GROUP BY s.ticker
    HAVING adv_base > 100000 AND dollar_recent >= 500000000 AND recent_sessions = 5 AND base_sessions >= 35
)
SELECT ticker,
       round(adv_recent / adv_base, 1) AS rvol_week,
       round(adv_recent / 1e6, 2) AS recent_adv_m,
       round(adv_base / 1e6, 2) AS baseline_adv_m,
       round(dollar_recent / 1e9, 2) AS week_dollar_bn,
       round(100.0 * (week_close / week_open - 1), 1) AS week_pct
FROM per_name
ORDER BY rvol_week DESC, ticker ASC
LIMIT 8

逐行依序解讀:

  • JLHL — 達到自身正常水準的 99.2 倍,位居榜首:日均 16.95 百萬股,相對於 0.17 百萬股的基準量,成交金額 $0.68B,開盤至收盤變動為 160.6%。
  • AGEN — 在 0.62 百萬股的基準量上達到 41.1 倍,背後有 $0.88B 的成交額支撐;本週變動為 54.3%。
  • IONS4.7 倍,但基準量僅 1.43 百萬股,成交額也只有 $2.1B;本週變動為 -19.6%。
  • ALNY2.3 倍,日均 1.91 百萬股,正常水準為 0.83 百萬股;開盤至收盤變動 -26.2%。
  • BBIO2.1 倍,成交 $2.25B,本週變動 -0.2%。
  • MULL — 在 1.96 百萬股的基準量上達到 2.1 倍,成交 $0.52B,開盤至收盤變動 -22.8%。
  • HLI1.9 倍,日均 0.9 百萬股,成交 $0.61B;本週變動為 5.6%。
  • QGEN — 第八也是最後一列,1.8 倍,成交 $0.76B,變動為 8.7%。

方向並非排名的考量因素,而右側兩欄具體說明了這一點:榜單領先者本週收盤較開盤價變動 160.6%,而第八名則較自身開盤價變動 8.7%——同一張篩選表,截然不同的經歷。沉重的交易量標誌著一支股票的流通股數真正受到考驗的時段;這並不說明考驗的結果偏向哪一方。

倍數如何計算

假設一檔股票在過去四十個交易日日均成交 200,000 股。過去一週,它分別成交 1,000,000 股、1,400,000 股、900,000 股、1,100,000 股,然後是 600,000 股——五個交易日的日均成交量為 1,000,000 股。相除:1,000,000 ÷ 200,000 = 5.0 倍。若同一檔股票的基準成交量是兩百萬股,那麼同樣這一週的數據就會是 0.5 倍。分子是本週的數據;分母則是這檔股票平常的樣子。(分母本身只是日均成交量,以四十個交易日衡量,而非慣用的二十個交易日。)

為何是四十個交易日?這大約涵蓋兩個日曆月——時間長到足以讓單一過往的爆量不致主導分母,卻也短到仍能反映該股當前的交易樣貌。為何分子用五個交易日?這是一整週,因此單一暫停交易的交易日或一次性的大宗交易不會主導讀數。

這項計算附帶一個誠實的警示:基準成交量越稀薄,倍數就越便宜。本週榜首的基準成交量僅為每日 0.17M 股——在這樣的規模下,只要有一個交易日的交易擁擠,就會拉高整週的日均量,這正是為何排行榜要求六位數的基準成交量以及單週 5 億美元成交額,個股才能上榜的原因。

像這樣的一週有多罕見?

倍數只有在與其來源的分布對比時才有意義。相同的股票池、相同的時間窗口,將每一檔符合條件的標的按其倍數分組:

查詢本週整體合格標的之交易分佈,按相對成交量分組
每個數據背後的精確 SQL 語法
WITH sess AS (
    SELECT ticker,
           toDate(toTimeZone(window_start, 'America/New_York')) AS d,
           sum(toFloat64(volume)) AS vol,
           sum(toFloat64(close) * toFloat64(volume)) AS dollars
    FROM global_markets.delayed_stocks_minute_aggs
    WHERE window_start >= now() - INTERVAL 70 DAY
      AND toHour(toTimeZone(window_start, 'America/New_York')) * 60 + toMinute(toTimeZone(window_start, 'America/New_York')) >= 570
      AND toHour(toTimeZone(window_start, 'America/New_York')) * 60 + toMinute(toTimeZone(window_start, 'America/New_York')) < 960
      AND ticker NOT IN ('SPCX')
    GROUP BY ticker, d
),
cal AS (
    SELECT d, row_number() OVER (ORDER BY d DESC) AS rn
    FROM (SELECT DISTINCT d FROM sess)
),
per_name AS (
    SELECT s.ticker AS ticker,
           avgIf(s.vol, c.rn <= 5) AS adv_recent,
           avgIf(s.vol, c.rn BETWEEN 6 AND 45) AS adv_base,
           sumIf(s.dollars, c.rn <= 5) AS dollar_recent,
           countIf(c.rn <= 5) AS recent_sessions,
           countIf(c.rn BETWEEN 6 AND 45) AS base_sessions
    FROM sess s INNER JOIN cal c ON s.d = c.d
    GROUP BY s.ticker
    HAVING adv_base > 100000 AND dollar_recent >= 500000000 AND recent_sessions = 5 AND base_sessions >= 35
),
scored AS (
    SELECT ticker,
           multiIf(adv_recent / adv_base >= 10, 1,
                   adv_recent / adv_base >= 5, 2,
                   adv_recent / adv_base >= 3, 3,
                   adv_recent / adv_base >= 2, 4,
                   adv_recent / adv_base >= 1.5, 5,
                   adv_recent / adv_base >= 1, 6, 7) AS bucket_key
    FROM per_name
),
buckets AS (
    SELECT arrayJoin([(1, '10x or more'), (2, '5x to 10x'), (3, '3x to 5x'), (4, '2x to 3x'),
                      (5, '1.5x to 2x'), (6, '1x to 1.5x'), (7, 'below 1x')]) AS bk
)
SELECT bk.2 AS rvol_bucket,
       countIf(scored.bucket_key = bk.1) AS names,
       round(100.0 * countIf(scored.bucket_key = bk.1) / count(), 1) AS pct_of_universe,
       count() AS universe_names
FROM scored CROSS JOIN buckets
GROUP BY bk
ORDER BY bk.1 ASC

本週有 647 檔股票與 ETF 達到最低門檻。其中,2 檔的交易量達到自身常態的十倍或以上,佔股票池的 0.3%。另有 0 檔落在五倍到十倍區間,1 檔落在三倍到五倍區間。上方的排行榜即取自那極少數的頂端群體。在此之下,3 檔標的交易量為自身常態的兩倍到三倍(佔股票池的 0.5%),5 檔落在一點五倍到兩倍區間(佔 0.8%)。還有 19 檔僅處於略為升溫的一倍到一點五倍,佔符合條件標的的 2.9%。

表格的另一端是沒有人會截圖的部分:617 檔標的——佔股票池的 95.4%——本週交易量低於自身四十日均量。這才是市場的常態,也正是這一點,使得排行榜頂端成為真正的異常值,而非四捨五入的誤差。

異常成交量會持續嗎?

市場上有一種說法,認為異常成交量會持續數日,因此像這類排行榜上名列前茅的標的,通常已經完成其主要波動。這個說法是可以驗證的。針對這八檔領漲股:在五個交易時段中,有幾個時段達到基準成交量的兩倍或以上、單一最重交易時段的規模有多大,以及該最重時段與當週最後一個時段相隔幾個交易日。

查詢持續性檢視:八檔領先股在五個交易日的每日相對成交量
每個數據背後的精確 SQL 語法
WITH sess AS (
    SELECT ticker,
           toDate(toTimeZone(window_start, 'America/New_York')) AS d,
           sum(toFloat64(volume)) AS vol,
           sum(toFloat64(close) * toFloat64(volume)) AS dollars
    FROM global_markets.delayed_stocks_minute_aggs
    WHERE window_start >= now() - INTERVAL 70 DAY
      AND toHour(toTimeZone(window_start, 'America/New_York')) * 60 + toMinute(toTimeZone(window_start, 'America/New_York')) >= 570
      AND toHour(toTimeZone(window_start, 'America/New_York')) * 60 + toMinute(toTimeZone(window_start, 'America/New_York')) < 960
      AND ticker NOT IN ('SPCX')
    GROUP BY ticker, d
),
cal AS (
    SELECT d, row_number() OVER (ORDER BY d DESC) AS rn
    FROM (SELECT DISTINCT d FROM sess)
),
per_name AS (
    SELECT s.ticker AS ticker,
           avgIf(s.vol, c.rn <= 5) AS adv_recent,
           avgIf(s.vol, c.rn BETWEEN 6 AND 45) AS adv_base,
           sumIf(s.dollars, c.rn <= 5) AS dollar_recent,
           countIf(c.rn <= 5) AS recent_sessions,
           countIf(c.rn BETWEEN 6 AND 45) AS base_sessions
    FROM sess s INNER JOIN cal c ON s.d = c.d
    GROUP BY s.ticker
    HAVING adv_base > 100000 AND dollar_recent >= 500000000 AND recent_sessions = 5 AND base_sessions >= 35
),
leaders AS (
    SELECT ticker, adv_recent / adv_base AS rvol_week, adv_base
    FROM per_name
    ORDER BY rvol_week DESC, ticker ASC
    LIMIT 8
),
daily AS (
    SELECT l.ticker AS ticker,
           l.rvol_week AS rvol_week,
           c.rn AS rn,
           s.vol / l.adv_base AS rvol_day
    FROM sess s
    INNER JOIN cal c ON s.d = c.d
    INNER JOIN leaders l ON s.ticker = l.ticker
    WHERE c.rn <= 5
)
SELECT ticker,
       round(max(rvol_week), 1) AS week_rvol,
       countIf(rvol_day >= 2) AS days_above_2x,
       round(max(rvol_day), 1) AS peak_day_rvol,
       argMax(rn, (rvol_day, -rn)) - 1 AS sessions_since_peak
FROM daily
GROUP BY ticker
ORDER BY days_above_2x ASC, peak_day_rvol ASC, ticker ASC

依持續性排序,榜上持續性最低的標的是 HLI,在五個交易時段中有 1 個時段超過其基準的兩倍,峰值達到 6.2 倍。持續性最高的 JLHL,在五個時段中有 3 個達標,峰值為 404.6 倍。這些都是跨多個交易時段的事件,而非單次報價——這正是週線排行榜與日線排行榜往往列出相同股票背後的機制性原因。

最後一欄是時間因素:最重交易日與當週最後一個交易時段之間相隔的交易日數——HLI4 個,JLHL4 個。當這個差距大於零時,代表最活躍的成交紀錄在該週結束前就已經出現。排行榜描述的是已結束的當週情況;它並未預測即將開始的下一週走勢。

領先股的十五個交易日,逐日檢視

週平均掩蓋了真實輪廓。以下是目前領先股的每日相對成交量——每個交易日的成交股數對比相同的四十日基準——以及過去十五個交易日中,每個交易日的開盤至收盤變動:

查詢逐日觀察榜首股:每日相對成交量與開盤至收盤變動(最近15個交易日)
每個數據背後的精確 SQL 語法
WITH sess AS (
    SELECT ticker,
           toDate(toTimeZone(window_start, 'America/New_York')) AS d,
           sum(toFloat64(volume)) AS vol,
           sum(toFloat64(close) * toFloat64(volume)) AS dollars,
           argMin(toFloat64(open), toTimeZone(window_start, 'America/New_York')) AS day_open,
           argMax(toFloat64(close), toTimeZone(window_start, 'America/New_York')) AS day_close
    FROM global_markets.delayed_stocks_minute_aggs
    WHERE window_start >= now() - INTERVAL 70 DAY
      AND toHour(toTimeZone(window_start, 'America/New_York')) * 60 + toMinute(toTimeZone(window_start, 'America/New_York')) >= 570
      AND toHour(toTimeZone(window_start, 'America/New_York')) * 60 + toMinute(toTimeZone(window_start, 'America/New_York')) < 960
      AND ticker NOT IN ('SPCX')
    GROUP BY ticker, d
),
cal AS (
    SELECT d, row_number() OVER (ORDER BY d DESC) AS rn
    FROM (SELECT DISTINCT d FROM sess)
),
per_name AS (
    SELECT s.ticker AS ticker,
           avgIf(s.vol, c.rn <= 5) AS adv_recent,
           avgIf(s.vol, c.rn BETWEEN 6 AND 45) AS adv_base,
           sumIf(s.dollars, c.rn <= 5) AS dollar_recent,
           countIf(c.rn <= 5) AS recent_sessions,
           countIf(c.rn BETWEEN 6 AND 45) AS base_sessions
    FROM sess s INNER JOIN cal c ON s.d = c.d
    GROUP BY s.ticker
    HAVING adv_base > 100000 AND dollar_recent >= 500000000 AND recent_sessions = 5 AND base_sessions >= 35
),
leader AS (
    SELECT ticker, adv_base
    FROM per_name
    ORDER BY adv_recent / adv_base DESC, ticker ASC
    LIMIT 1
),
path AS (
    SELECT formatDateTime(s.d, '%Y-%m-%d') AS session_date,
           formatDateTime(s.d, '%b %e') AS session_label,
           s.vol / l.adv_base AS rvol_day,
           100.0 * (s.day_close / s.day_open - 1) AS day_pct
    FROM sess s
    INNER JOIN cal c ON s.d = c.d
    INNER JOIN leader l ON s.ticker = l.ticker
    WHERE c.rn <= 15
)
SELECT session_date,
       session_label,
       round(rvol_day, 1) AS rvol_day,
       round(day_pct, 1) AS day_pct,
       round(max(rvol_day) OVER (), 1) AS peak_rvol_day
FROM path
ORDER BY session_date ASC

十五個交易日前,該股成交量為基準的 0.5 倍——一個普通、安靜的標的。這段期間成交量最高的一個交易日達到 404.6 倍。在最近一個交易日,Jul 15,成交量仍為 0.7 倍,開盤至收盤變動為 -3.5%。

請注意圖表沒有呈現的現象:有秩序地逐步降溫。放大的成交量以群聚方式出現,而高峰過後的幾個交易日可能重新加速,而非消退——這就是為什麼「成交量正在萎縮」這種說法,需要對照每日序列來驗證,而非直接假設。同樣的每日序列,正是日內節奏指標的起算基礎,該指標從頭建構於相對成交量指南,並為VWAP所採用。

篩選器過濾掉的內容

四條規則讓排行榜保持誠實,而每一條都會剔除讀者可能想看到的東西:

  1. 週交易金額須達 5 億美元門檻。 光看股數會讓排行榜充斥著一百萬股只是零頭的公司。
  2. 日均成交量基準須高於 10 萬股,這樣分母才是真實數字,而非四捨五入造成的假象。
  3. 過去 40 個交易日中,至少須有 35 天有交易,這排除了全新掛牌的股票——一檔剛上市的新股沒有可供比較的實質「正常」基準,否則會在數週內霸佔此榜單。
  4. 排除一個被重複使用的代碼:交易所近期重新分配給新上市公司的股票代碼,其數據供應商的歷史資料將兩家不同公司拼接在一起。它的基準會是虛構的。

第一條規則剔除了盤面上倍數最誇張的股票。以下是因此被排除的六檔最大者:

查詢剔除美元門檻後的極端倍數:本週交易額低於5億美元標的中最高相對成交量
每個數據背後的精確 SQL 語法
WITH sess AS (
    SELECT ticker,
           toDate(toTimeZone(window_start, 'America/New_York')) AS d,
           sum(toFloat64(volume)) AS vol,
           sum(toFloat64(close) * toFloat64(volume)) AS dollars
    FROM global_markets.delayed_stocks_minute_aggs
    WHERE window_start >= now() - INTERVAL 70 DAY
      AND toHour(toTimeZone(window_start, 'America/New_York')) * 60 + toMinute(toTimeZone(window_start, 'America/New_York')) >= 570
      AND toHour(toTimeZone(window_start, 'America/New_York')) * 60 + toMinute(toTimeZone(window_start, 'America/New_York')) < 960
      AND ticker NOT IN ('SPCX')
    GROUP BY ticker, d
),
cal AS (
    SELECT d, row_number() OVER (ORDER BY d DESC) AS rn
    FROM (SELECT DISTINCT d FROM sess)
),
per_name AS (
    SELECT s.ticker AS ticker,
           avgIf(s.vol, c.rn <= 5) AS adv_recent,
           avgIf(s.vol, c.rn BETWEEN 6 AND 45) AS adv_base,
           sumIf(s.dollars, c.rn <= 5) AS dollar_recent,
           countIf(c.rn <= 5) AS recent_sessions,
           countIf(c.rn BETWEEN 6 AND 45) AS base_sessions
    FROM sess s INNER JOIN cal c ON s.d = c.d
    GROUP BY s.ticker
    HAVING adv_base > 100000 AND recent_sessions = 5 AND base_sessions >= 35
       AND dollar_recent > 0 AND dollar_recent < 500000000
)
SELECT ticker,
       round(adv_recent / adv_base, 1) AS rvol_week,
       round(dollar_recent / 1e6, 1) AS week_dollar_m,
       round(dollar_recent / (adv_recent * 5), 2) AS avg_share_price,
       round(adv_base / 1e6, 2) AS baseline_adv_m
FROM per_name
ORDER BY rvol_week DESC, ticker ASC
LIMIT 6

SOBR 的交易量為其自身正常值的 109.8 倍,但整週成交金額僅 $262.4M,平均股價為 $1.04。其後依序為:ZBAO109.3 倍,成交金額 $72M(平均股價 $0.44)、WRAP51.8 倍,成交金額 $162.5M、CPHI38.1 倍,成交金額 $31.8M、KAPA36.7 倍,成交金額 $9.5M,以及 LGPS20.2 倍,成交金額 $57.5M。這些都是真實的活動,對這些個股而言確實異常——但屬於倍數誇大了極小額資金的情況。

異常交易量的來源

為了讓版面讀起來更快,這裡列出反覆出現的來源:財報週,這是唯一有既定時程的來源;企業事件——合併、發行、指數納入與剔除——這些事件會帶來與市場看法無關的機械性交易量;軋空動能,交易量疊加在價格速度之上,這種模式在放空軋空說明中有詳細記錄;以及新掛牌,在流通籌碼穩定之前,新掛牌股會主導自身的交易紀錄。任何一週的版面通常是這些因素的混合,再加上一兩個真正的謎團——而這些謎團正是值得多花一分鐘關注的標的。

異常成交量常見問題

什麼才算是一檔股票的異常成交量?

沒有官方門檻,所以請參考分布狀況:在本週達到此頁面最低門檻的 647 檔股票中,僅有 2 檔的交易量達到自身常態的 10 倍或以上,而 95.4% 檔的實際交易量其實低於自身平均值。在任一週,只要大約超過 2 倍,就已經落在全市場的前幾個百分點了。

異常成交量是看漲還是看跌?

兩者皆非——它代表的是關注度,而關注度會伴隨漲勢與崩跌一同到來。本週榜單上的領頭羊,五個交易日收盤價較開盤價 160.6% ,而第八名則 8.7% ;兩者都是基於完全相同的衡量標準入選。

異常成交量會持續多久?

通常超過一天。持續性面板計算了每檔上榜股票成交量高於基準線兩倍的交易日數:本週範圍從五個交易日中的 1 天( HLI )到五個交易日中的 3 天( JLHL ),且成交量最大的一天通常落在週末之前,而非最後一個交易日。

為什麼這份清單要使用成交金額門檻?

沒有此門檻的股數篩選,會充斥著倍數極高但金額不大的低價股:本週被排除的最大一檔股票,成交量是其常態的 109.8 倍,總成交金額為 $262.4M,平均股價為 $1.04 。每週 5 億美元的門檻,確保了榜單上的每一列在經濟意義上都是真實的。

異常股票成交量也會出現在選擇權市場嗎?

通常會——大量的股票成交與大量的選擇權成交,往往會同時出現在相同的標的上,這就是交易者兩者都觀察的原因。不過,選擇權活動的衡量方式不同:合約成交量是流量數字,而未平倉量計算的是仍存在的部位,兩者回答的是不同的問題——在對「異常選擇權活動」警訊做出任何解讀前,請參閱選擇權成交量 vs. 未平倉量


以上每個數字都是儲存的、帶有版本的查詢結果——展開任何面板下的 SQL 即可查看確切的衡量方式,或在 Strasmore 終端機上,對任何你想要的時間視窗執行相同的篩選。