本周成交量异常个股排名
通过对比过去40个交易日,为您筛选出本周成交量异常且具备高回报潜力的个股。
成交量异常意味着股票交易量远高于其自身的正常水平,而非市场平均水平。对于大盘股而言,4000万股的成交量可能只是日常;但对于小盘股,这便是一件大事。本页面对刚刚结束的这一周内成交量异常的股票进行排名:计算方式为每只股票过去五个交易日的平均成交量,除以其此前四十个交易日的平均成交量,并设有金额底线,以确保每行显示的股票都具备实际交易价值。数据每周更新,请参考“数据截至”时间戳。关于相对成交量这一指标的详细说明,请参阅 完整指南。
本周成交量异常领先股
通过三个指标进行筛选。倍数 (multiple) 表示该股成交量超出其正常水平的程度。基准 (baseline) 表示正常成交量水平——若基准极低,即使倍数很高,其影响也小于基准较高时的适度倍数。成交金额 (dollars) 用于判断该交易活动是否具有实际经济意义。最后一列是本周的开盘至收盘涨跌幅,这是大多数成交量筛选工具所忽略的指标。
每个数字背后的完整 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.95M 股,基准为 0.17M 股,成交额 0.68B 美元,开盘至收盘涨跌幅为 160.6%。
- AGEN — 在 0.62M 股的基准下达到 41.1 倍,成交额为 0.88B 美元;本周涨跌幅为 54.3%。
- IONS — 倍数为 4.7x,但基准仅为 1.43M 股,成交额仅为 2.1B 美元;本周涨跌幅为 -19.6%。
- ALNY — 倍数为 2.3x,日成交量为 1.91M 股,常态成交量为 0.83M 股;开盘至收盘涨跌幅为 -26.2%。
- BBIO — 倍数为 2.1x,成交额 2.25B 美元,本周涨跌幅为 -0.2%。
- MULL — 在 1.96M 股的基准下达到 2.1 倍,成交额 0.52B 美元,开盘至收盘涨跌幅为 -22.8%。
- HLI — 倍数为 1.9x,日成交量 0.9M 股,成交额 0.61B 美元;本周涨跌幅为 5.6%。
- QGEN — 第八行,也是最后一行,倍数为 1.8x,成交额 0.76B 美元,涨跌幅为 8.7%。
排名不考虑涨跌方向,右侧两列数据证明了这一点:榜首股本周收盘较开盘价上涨了 160.6%,而第八名则下跌了 8.7%——同样的筛选标准,截然相反的结果。高成交量意味着该股的 流通股 正在接受真正的市场考验;但它无法说明在这场考验中,买方还是卖方占据了上风。
倍数如何计算
假设某只股票前 40 个交易日的日均成交量为 200,000 股。过去一周的成交量分别为 1,000,000 股、1,400,000 股、900,000 股、1,100,000 股和 600,000 股 —— 五个交易日的平均值为 1,000,000 股。计算方式为:1,000,000 ÷ 200,000 = 5.0x。若该股的基准值为 2,000,000 股,则同一周的倍数为 0.5x。分子为本周数据;分母为该股的常态水平。(分母即 日均成交量,计算周期为 40 个交易日,而非通常的 20 个交易日。)
为何使用 40 个交易日?这大约涵盖两个日历月 —— 时间足够长,可以避免单一成交高峰主导分母;时间也足够短,能够反映股票当前的交易状态。为何分子使用 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 只处于 5 至 10 倍区间,1 只处于 3 至 5 倍区间。上方的排行榜是从这些极少数的标的中选出的。在这些标的之下,3 只的交易量为自身常态的 2 至 3 倍(占样本总数的 0.5),5 只处于 1.5 至 2 倍区间(占 0.8%)。此外,还有 19 只处于仅略高于常态的 1 至 1.5 倍区间,占符合条件标的的 2.9%。
表格的另一端是无人关注的部分:本周有 617 只标的(占样本总数的 95.4%)的交易量低于其自身的 40 日平均水平。这才是市场的常态,也正是这一点使得排行榜顶端的表现属于真正的离群值,而非统计误差。
异常成交量会持续吗?
有一种观点认为,异常成交量会持续数日。因此,如果某只股票已处于此类榜单顶部,其行情可能已经走完。这是可以验证的。针对八个领涨标的,我们测试了以下指标:在五个交易日中,有多少天成交量达到基准的两倍或以上;单日最大成交量是多少;以及最大成交量与当周最后一个交易日之间间隔了多少个交易日。
每个数字背后的完整 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 倍。这些是多日持续事件,而非单日突发交易——这也是周榜与日榜倾向于出现相同股票的内在逻辑。
最后一列是时间间隔指标:即最大成交量日与当周最后一个交易日之间的间隔天数——HLI 为 4,JLHL 为 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,
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.5x,表现平淡。在此期间,成交量最放大的交易日达到了基准值的 404.6x。在最近一个交易日 Jul 15,成交量仍为基准值的 0.7x,且当日涨跌幅为 -3.5%。
请注意该图表并未呈现的特征:成交量并未呈线性衰减。高成交量通常成簇出现,峰值后的交易日可能会再次加速,而非逐渐萎缩。因此,在判断“成交量正在枯竭”时,应参考每日序列进行验证,而非仅凭假设。日线序列也是计算日内节奏指标的基础,该指标构建于 相对成交量指南,并被 VWAP 所使用。
筛选机制说明
为了确保数据准确,我们设定了四条规则。这些规则会排除部分读者可能感兴趣的数据:
- 周成交额须达到 5 亿美元。 若仅按成交股数计算,榜单中会出现大量成交量极小的股票。
- 日均成交量须高于 10 万股。 这样可以确保分母是具有实际意义的数值,而非舍入误差。
- 过去 40 个交易日中须至少有 35 个交易日有成交。 这排除了新上市股票。新股缺乏“常态”基准,否则会长期占据榜单。
- 排除重复使用的代码。 如果交易所将旧代码分配给新股,导致供应商的历史数据将两家公司混淆,该数据将被排除。其基准数据将失去意义。
规则 1 会排除波动倍数最夸张的股票。以下是受此规则影响而排除的六个案例:
每个数字背后的完整 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 6SOBR 的成交量是其常态的 109.8 倍,但全周总成交额仅为 262.4M 美元,平均股价为 1.04 美元。其他被排除的案例包括:ZBAO(倍数为 109.3 倍,成交额 72M 美元,均价 0.44 美元)、WRAP(倍数为 51.8 倍,成交额 162.5M 美元)、CPHI(倍数为 38.1 倍,成交额 31.8M 美元)、KAPA(倍数为 36.7 倍,成交额 9.5M 美元)以及 LGPS(倍数为 20.2 倍,成交额 57.5M 美元)。这些股票均有真实的交易活动,且其波动对这些个股而言确实异常——但在该类别中,高倍数往往掩盖了极小的成交金额。
异常成交量来源
交易板面读起来更快的方式是识别重复出现的驱动因素:财报周,这是预定的主要来源;公司事件——包括并购、增发、指数成分股调整——这些事件会带来机械性的成交量,与市场观点无关;挤压动态,成交量随价格波动而堆叠,即 空头挤压说明 中记录的模式;以及新股上市,在流通股趋于稳定前,新股会占据交易主导地位。每周的交易板面通常是多种因素的混合,外加一两个真正的谜团——而这些谜团才值得您多花一分钟去研究。
异常成交量常见问题解答
股票的何种成交量算作异常?
目前没有官方阈值。请参考以下分布情况:在本周通过本页面底线筛选的 647 个标的中,仅有 2 的成交量达到其常态的 10 倍或更多,而 95.4 的成交量实际上低于其平均水平。在特定周内,成交量超过常态约 2 倍的股票,已处于市场前几个百分点。
异常成交量是看涨还是看跌?
两者皆非——它代表关注度。关注度既可能伴随反弹出现,也可能伴随暴跌出现。本周,指数领头羊较开盘价 160.6% 结束了五个交易日,而第八名标的完成了 8.7% 的波动;两者的衡量标准完全一致。
异常成交量会持续多久?
通常会持续超过一天。持久性面板统计了每个标的交易量超过基准两倍的交易日数量:本周该数值从 5 天中的 1 天 (HLI) 到 3 天 (JLHL) 不等。通常情况下,成交量最剧烈的交易日出现在周中,而非最后一天。
为什么列表使用美元成交额作为底线?
如果不设置股数筛选,列表会充斥大量低价股,这些股票的倍数很高,但实际资金量并不大:本周被排除的最大标的成交量是常态的 109.8 倍,总成交额为 $262.4M,平均股价为 $1.04。每周 5 亿美元的底线确保了列表中的每一行都具有实际经济意义。
异常股票成交量也会出现在期权市场吗?
通常会。股票成交量激增与期权成交量激增往往出现在同一标的上,因此交易员会同时关注两者。不过,期权的衡量方式不同:成交量(contracts traded)是资金流数据,而持仓量(open interest)统计的是未平仓头寸。这两者回答的是不同的问题——在解读“异常期权活动”警报之前,请先阅读 期权成交量与持仓量的区别。
以上所有数据均为存储的、带版本的查询结果——您可以展开任何面板下的 SQL 语句以查看精确测量值,或在 Strasmore 终端上针对任何时间窗口运行相同的筛选条件。