什么是日均成交量 ADV
了解 ADV 的定义与计算方法。它是衡量股票流动性的核心指标,也是计算回补天数与相对成交量的关键基准。
日均成交量(ADV)是最常用的指标,却鲜有人对其定义:它是指某只股票在特定回顾周期内的日均成交股数。它是 回补天数 的分母,是 相对成交量 的基准,也是各类筛选器的流动性测试指标。这意味着,这些指标的计算结果都取决于 ADV 的参数设定,包括:回顾周期、交易时段以及是以股数还是金额计算。本页面将对 ADV 进行准确定义,手动演示计算过程,并结合真实行情数据验证各项参数的影响。
日均成交量统计
统计周期为 2026 年 6 月 11 日至 7 月 10 日的 20 个常规交易时段。包含四个知名股票及一个流动性极低的标的。统计指标包括:股票数量、成交金额,以及(针对后续分析)各标的盘外交易占总成交量的比例:
每个数字背后的完整 SQL
WITH per_day AS (
SELECT ticker,
toDate(toTimeZone(window_start, 'America/New_York')) AS et_date,
sumIf(toFloat64(volume), formatDateTime(toTimeZone(window_start, 'America/New_York'), '%H:%i') >= '09:30'
AND formatDateTime(toTimeZone(window_start, 'America/New_York'), '%H:%i') < '16:00') AS rth_shares,
sumIf(toFloat64(close) * toFloat64(volume), formatDateTime(toTimeZone(window_start, 'America/New_York'), '%H:%i') >= '09:30'
AND formatDateTime(toTimeZone(window_start, 'America/New_York'), '%H:%i') < '16:00') AS rth_dollars,
sum(toFloat64(volume)) AS all_shares
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker IN ('SPY', 'AAPL', 'MU', 'KO', 'CATO')
AND window_start >= toDateTime('2026-06-11 00:00:00', 'America/New_York')
AND window_start < toDateTime('2026-07-11 00:00:00', 'America/New_York')
GROUP BY ticker, et_date
)
SELECT ticker,
round(avg(rth_shares) / 1e6, 2) AS adv_shares_m,
round(avg(rth_dollars) / 1e9, 2) AS adv_dollars_bn,
round(100 * (sum(all_shares) - sum(rth_shares)) / sum(all_shares), 1) AS extended_hours_pct,
count() AS sessions
FROM per_day
GROUP BY ticker
ORDER BY adv_shares_m DESC该表格是本文论点的核心。MU 与 AAPL 的日均成交股数几乎相同(分别为 42.01M 和 41.47M),但日均成交金额却有巨大差异:分别为 $44.49B 和 $12.24B。股数反映活跃度,金额反映资金规模。排名在顶部出现了反转:SPY 的成交股数领先(20 个时段内达到 46.01M),而 MU 在金额上位居榜首。在底部,CATO 的日均成交量仅为 0.05 百万股,由于金额极低,在十亿级单位下仅显示为 0。这类股票的特征是单笔机构订单即可占据全天成交量,且 交易成本 的量级完全不同。
如何计算日均成交量
计算方法非常简单:将选定周期内的每日成交量相加,然后除以天数。以下是可口可乐 (KO) 在常规交易时段内完整一周(2026年7月6日至10日)的数据,该查询同时计算了累计总量和平均值:
每个数字背后的完整 SQL
SELECT session_date,
shares_m,
round(sum(shares_m) OVER (), 1) AS five_day_total_m,
round(avg(shares_m) OVER (), 1) AS adv_m,
round(avg(shares_m) OVER () * 0.01 * 1000, 0) AS one_pct_of_adv_k
FROM (
SELECT formatDateTime(toDate(toTimeZone(window_start, 'America/New_York')), '%Y-%m-%d') AS session_date,
round(sumIf(toFloat64(volume), formatDateTime(toTimeZone(window_start, 'America/New_York'), '%H:%i') >= '09:30'
AND formatDateTime(toTimeZone(window_start, 'America/New_York'), '%H:%i') < '16:00') / 1e6, 1) AS shares_m
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker = 'KO'
AND window_start >= toDateTime('2026-07-06 00:00:00', 'America/New_York')
AND window_start < toDateTime('2026-07-11 00:00:00', 'America/New_York')
GROUP BY session_date
)
ORDER BY session_date将这五天的成交量相加 —— 10.7 + 12.1 + 10.7 + 11 + 8.3 百万股 —— 总计为 52.8M 股。除以 5,得出 10.6M 股,即 KO 的 5 日平均成交量 (ADV)。20 日 ADV 的计算逻辑相同,只需对 20 行数据进行计算 —— 即第一个表格中的数值。请注意平均值掩盖的信息:2026-07-07 当日成交量为 12.1M,而 2026-07-10 当日成交量为 8.3M,ADV 将这种每日波动平滑为一个数值。最后一列展示了仓位规模的参考:KO 的 1% ADV 约为 106 千股 —— 当单笔订单达到此规模时,在当日成交量中便会变得显著。
时间窗口的选择,决定了 ADV 的衰减速度
通常惯例使用 20 个交易日(一个交易月);此外也常使用 10、30、65 和 90 天。时间窗口决定了 ADV(平均成交量)对历史数据的遗忘速度。MU 是 2026 年的典型案例——该股年中经历剧烈的估值重塑,导致其过去一个月和过去一个季度的 ADV 在春季呈现出完全不同的走势,详情见 6 月深度分析。以下是该股在相同七个月内的表现,同时使用两种窗口进行衡量:
每个数字背后的完整 SQL
WITH daily AS (
SELECT toDate(toTimeZone(window_start, 'America/New_York')) AS et_date,
sum(toFloat64(volume)) AS day_shares
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker = 'MU'
AND window_start >= toDateTime('2025-08-01 00:00:00', 'America/New_York')
AND window_start < toDateTime('2026-07-11 00:00:00', 'America/New_York')
AND (toHour(toTimeZone(window_start, 'America/New_York')) * 60 + toMinute(toTimeZone(window_start, 'America/New_York'))) BETWEEN 570 AND 959
GROUP BY et_date
),
rolled AS (
SELECT et_date,
avg(day_shares) OVER (ORDER BY et_date ROWS BETWEEN 19 PRECEDING AND CURRENT ROW) AS adv20,
avg(day_shares) OVER (ORDER BY et_date ROWS BETWEEN 89 PRECEDING AND CURRENT ROW) AS adv90,
row_number() OVER (ORDER BY et_date) AS rn,
count() OVER () AS total_rows
FROM daily
)
SELECT formatDateTime(et_date, '%Y-%m-%d') AS date,
round(adv20 / 1e6, 1) AS adv_20_session_m,
round(adv90 / 1e6, 1) AS adv_90_session_m
FROM rolled
WHERE rn > 90 AND (rn % 3 = total_rows % 3)
ORDER BY et_date在 2025-12-10,两个窗口的数据一致:20 日窗口为 21.3M,90 日窗口为 19.9M。到 2026-04-14 时,两者出现分歧,分别为 45.6M 和 31.9M——同一只股票在同一天出现了两个“官方” ADV。任何基于其中一个窗口的筛选器、预计回补天数或相对成交量指标,都会与基于另一个窗口的相同工具产生矛盾。到 2026-07-10 时,两者再次趋于一致(42M 对比 41.9M):重塑后的成交量水平也已被纳入长期窗口。当两个数据源关于某只股票的 ADV 出现分歧时,时间窗口是首要原因;是否包含盘后交易量是第二个原因。
成交量激增后 ADV 会发生什么
上图给出了暗示;这里是量化结果。以 MU 在 2026 年最剧烈的成交量激增为例——即成交量大幅超过其 20 日平均成交量(ADV)的交易日——将筛选器在该日之前的 ADV 与一个月后的 ADV 进行对比:
每个数字背后的完整 SQL
WITH daily AS (
SELECT toDate(toTimeZone(window_start, 'America/New_York')) AS et_date,
sum(toFloat64(volume)) AS day_shares
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker = 'MU'
AND window_start >= toDateTime('2025-11-01 00:00:00', 'America/New_York')
AND window_start < toDateTime('2026-07-11 00:00:00', 'America/New_York')
AND (toHour(toTimeZone(window_start, 'America/New_York')) * 60 + toMinute(toTimeZone(window_start, 'America/New_York'))) BETWEEN 570 AND 959
GROUP BY et_date
),
ranked AS (
SELECT et_date, day_shares,
day_shares / avg(day_shares) OVER (ORDER BY et_date ROWS BETWEEN 20 PRECEDING AND 1 PRECEDING) AS shock_ratio,
row_number() OVER (ORDER BY et_date) AS rn
FROM daily
),
biggest AS (
SELECT et_date, day_shares, shock_ratio
FROM ranked
WHERE rn > 20 AND et_date >= toDate('2026-01-01')
ORDER BY shock_ratio DESC, et_date ASC
LIMIT 1
),
before AS (
SELECT avg(day_shares) AS adv FROM (
SELECT day_shares FROM daily WHERE et_date < (SELECT et_date FROM biggest) ORDER BY et_date DESC LIMIT 20
)
),
after AS (
SELECT avg(day_shares) AS adv FROM (
SELECT day_shares FROM daily WHERE et_date >= (SELECT et_date FROM biggest) ORDER BY et_date ASC LIMIT 20
)
)
SELECT formatDateTime((SELECT et_date FROM biggest), '%Y-%m-%d') AS event_date,
round((SELECT day_shares FROM biggest) / 1e6, 1) AS event_day_shares_m,
round((SELECT adv FROM before) / 1e6, 1) AS adv_20_before_m,
round((SELECT shock_ratio FROM biggest), 1) AS event_vs_prior_adv_x,
round((SELECT adv FROM after) / 1e6, 1) AS adv_20_after_m,
round(100 * ((SELECT adv FROM after) / (SELECT adv FROM before) - 1), 0) AS adv_shift_pct在 2026-03-19,MU 的成交量为 64.7M 股,而此前的 ADV 为 28.7M —— 是其基准水平的 2.3 倍。在随后的 20 个交易日中,滚动 ADV 平均为 45M:分母增长了 57%。所有基于 ADV 计算的数值都随之变动——相对成交量读数下降(因为基准值上升),回补天数下降(因为分母值上升),而实际持仓并未发生任何变化。就 MU 而言,高成交量状态持续存在——这次激增标志着估值重塑,而非单日事件——但两者的逻辑是一致的:在剧烈波动期结束后,ADV 会在恰好一个窗口期内反映该事件,而非反映股票的常规交易习惯。
流动性的衡量标准
“日交易额数百万美元”通常被用作衡量可交易性的模糊说法。以下是真实的分布情况——针对所有在美上市、且在过去 20 个交易日中有至少 15 天有交易的证券,按日均成交额 (ADV) 排序:
每个数字背后的完整 SQL
WITH per_ticker AS (
SELECT ticker, avg(day_dollars) AS adv_dollars
FROM (
SELECT ticker,
toDate(toTimeZone(window_start, 'America/New_York')) AS et_date,
sumIf(toFloat64(close) * toFloat64(volume), formatDateTime(toTimeZone(window_start, 'America/New_York'), '%H:%i') >= '09:30'
AND formatDateTime(toTimeZone(window_start, 'America/New_York'), '%H:%i') < '16:00') AS day_dollars
FROM global_markets.delayed_stocks_minute_aggs
WHERE window_start >= toDateTime('2026-06-11 00:00:00', 'America/New_York')
AND window_start < toDateTime('2026-07-11 00:00:00', 'America/New_York')
AND match(ticker, '^[A-Z]+$')
GROUP BY ticker, et_date
)
GROUP BY ticker
HAVING count() >= 15
)
SELECT count() AS names,
round(quantileDeterministic(0.25)(adv_dollars, cityHash64(ticker)) / 1e6, 2) AS p25_m,
round(quantileDeterministic(0.50)(adv_dollars, cityHash64(ticker)) / 1e6, 1) AS median_m,
round(quantileDeterministic(0.75)(adv_dollars, cityHash64(ticker)) / 1e6, 1) AS p75_m,
round(quantileDeterministic(0.90)(adv_dollars, cityHash64(ticker)) / 1e6, 1) AS p90_m,
round(quantileDeterministic(0.99)(adv_dollars, cityHash64(ticker)) / 1e6, 0) AS p99_m,
countIf(adv_dollars >= 1e6) AS names_above_1m,
countIf(adv_dollars >= 10e6) AS names_above_10m,
countIf(adv_dollars >= 100e6) AS names_above_100m,
countIf(adv_dollars >= 1e9) AS names_above_1bn
FROM per_ticker在 10864 个证券中,中位数证券的日成交额为 $2.2M —— 美国市场有一半的证券成交额低于此数值。四分之一的证券成交额低于 $0.33M。第 75 百分位数为 $20.4M,第 90 百分位数为 $113.7M,第 99 百分位数为 $1333M。按整数阈值统计:6515 个证券日成交额超过 $1M,3535 个超过 $10M,1166 个超过 $100M —— 仅有 130 个超过 $1B。金融媒体关注的标的几乎全部集中在最后一个群体中;而中位数上市股票的属性完全不同。
ADV 如何在无形中决定其他指标
- Days to cover(回补天数) = 做空头寸 ÷ ADV。成交量激增会降低该比例,即便做空头寸未变——这是分母变动的结果。
- Relative volume(相对成交量) = 今日成交节奏 ÷ ADV。数值逻辑相同但作用相反:此处 ADV 是被超越的基准。
- 流动性筛选(如“仅限 ADV 高于 1M 的股票”)——所有回测和筛选器都包含此类条件,这会导致幸存者偏差:股票通常在经历剧烈成交周期间“进入”此类筛选器。
- 仓位规模 —— 机构习惯于每日交易仅占 ADV 的百分之几,这导致大基金无法持有某些小盘股:建立或退出头寸可能需要消耗数周的总成交量。
观察“回补天数”时应结合真实数据,因为即便是“官方”数据也包含了特定机构对 ADV 的选择。FINRA 在公布回补天数时,使用的是其自身的成交量分母(每个交易场所、每个报告周期,且设有 1.0 的下限 —— 详见 数据来源);若使用本页面 20 个交易日的常规交易时间 ADV 重新计算,结果会发生变化:
每个数字背后的完整 SQL
WITH our_adv AS (
SELECT ticker, avg(day_shares) AS adv
FROM (
SELECT ticker,
toDate(toTimeZone(window_start, 'America/New_York')) AS et_date,
sumIf(toFloat64(volume), formatDateTime(toTimeZone(window_start, 'America/New_York'), '%H:%i') >= '09:30'
AND formatDateTime(toTimeZone(window_start, 'America/New_York'), '%H:%i') < '16:00') AS day_shares
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker IN ('MU', 'KO')
AND window_start >= toDateTime('2026-06-11 00:00:00', 'America/New_York')
AND window_start < toDateTime('2026-07-11 00:00:00', 'America/New_York')
GROUP BY ticker, et_date
)
GROUP BY ticker
),
si AS (
SELECT ticker,
max(short_interest) AS short_interest,
max(avg_daily_volume) AS finra_adv,
max(days_to_cover) AS finra_dtc
FROM global_markets.stocks_short_interest
WHERE settlement_date = '2026-06-30' AND ticker IN ('MU', 'KO')
GROUP BY ticker
)
SELECT si.ticker AS ticker,
round(si.short_interest / 1e6, 1) AS shares_short_m,
round(si.finra_adv / 1e6, 1) AS finra_adv_m,
round(si.finra_dtc, 2) AS finra_days_to_cover,
round(our_adv.adv / 1e6, 1) AS rth_adv_20_session_m,
round(si.short_interest / our_adv.adv, 2) AS days_to_cover_recomputed
FROM si
INNER JOIN our_adv ON si.ticker = our_adv.ticker
ORDER BY ticker做空头寸相同,但分母不同。对于 KO,FINRA 基于其 24.1M 股的成交量报告回补天数为 2.06 天;若对比本页面的 12.4M 常规交易时间 ADV,同样的 49.6M 股做空头寸对应的回补天数为 4 天——几乎翻倍。对于 MU,公布的数值为报告的下限 1;重新计算后为 0.75 天。这两个数值都没有错——它们使用了不同的分母。结论具有普遍性:任何以 ADV 为分母的比例,都在无形中引用了特定机构的统计窗口和交易时段选择。
ADV 是否适用于期权?
期权交易者使用相同的概念,但有一个区别:成交量以合约数计算,每份标准股票合约控制 100 股。同样是 20 个交易日,包含四种期权行情数据,并将合约数量转换为等效股份敞口:
每个数字背后的完整 SQL
WITH daily AS (
SELECT multiIf(ticker LIKE 'O:SPY2%', 'SPY', ticker LIKE 'O:AAPL2%', 'AAPL', ticker LIKE 'O:MU2%', 'MU', 'KO') AS underlying,
toDate(toTimeZone(window_start, 'America/New_York')) AS et_date,
sum(toFloat64(volume)) AS contracts
FROM global_markets.options_minute_aggs
WHERE (ticker LIKE 'O:SPY2%' OR ticker LIKE 'O:AAPL2%' OR ticker LIKE 'O:MU2%' OR ticker LIKE 'O:KO2%')
AND window_start >= toDateTime('2026-06-11 00:00:00', 'America/New_York')
AND window_start < toDateTime('2026-07-11 00:00:00', 'America/New_York')
GROUP BY underlying, et_date
)
SELECT underlying,
round(avg(contracts) / 1e3, 1) AS avg_daily_contracts_k,
round(avg(contracts) * 100 / 1e6, 1) AS share_equivalent_m,
count() AS sessions
FROM daily
GROUP BY underlying
ORDER BY avg_daily_contracts_k DESC规模差异远超股票列表中的任何数据。SPY 的期权行情日均成交 12543.2 千份合约,即 1254.3M 股等效敞口,这是 SPY 本身 46.01M 股 ADV 的数倍。KO 的情况则相反:64.6 千份合约(6.5M 股等效),低于其 12.4M 股 ADV。期权流动性集中在少数标的中,且在不同行权价和到期日之间进一步稀释。此类总计数据夸大了单一合约的成交量,因此在确定期权订单规模之前,仍需检查单份合约的成交量和未平仓合约数。
专业人士如何解读 ADV
掌握定义与实际应用之间存在差距,需养成三个习惯。将 ADV 与成交额 ADV 进行对比 —— 第一张表格显示,两只股票的市场份额几乎持平,但成交金额差异巨大;而订单执行真正关注的是金额列。警惕事件发生后的 ADV 数据 —— 冲击面板的数据证明:单次剧烈波动会导致分母在单月内变动 57%,从而在数据窗口期内机械性地降低 相对成交量 和 回补天数,直到该波动影响出清。结合日历检查 ADV —— 期权到期日、调仓日和指数调整日会同时推高所有股票的成交量(尤其是 魔咒日),因此全市场成交放量并不代表单一股票有特殊情况。
日均成交量常见问题解答
什么样的日均成交量才算理想?
以 10864 个美国股票代码为样本,统计 20 个交易日的表现,中位数成交金额为 2.2M;其中 3535 个标的日成交额超过 1000 万美元,仅有 130 个标的超过 10 亿美元。对于零售规模的订单,衡量标准应为成交金额而非股数——成交额在 1000 万美元以上的标的,小额订单不会引起价格波动。
如何计算日均成交量?
将选定周期内的每日成交股数相加,再除以天数。以 KO 为例,2026 年 7 月 6 日至 10 日这 5 个交易日的总成交量为 52.8M 股;除以 5 后,其 ADV 为 10.6M。20 日 ADV 的计算逻辑相同,只需统计 20 个交易日即可。
ADV 的统计周期是多少?
最常用的是 20 个交易日(约一个月),但市场上也存在 10、30、65 和 90 日的版本——在成交量出现剧烈波动后,这些指标的结果会有显著差异。在 2026-04-14 当天,MU 的 20 日 ADV 为 45.6M,而 90 日 ADV 为 31.9M。对比不同数据源时,请先确认其统计周期。
ADV 是否包含盘前和盘后成交量?
这取决于数据源——本页数据仅包含常规交易时段。在相同的 20 个交易日内,盘外交易占 SPY 总成交量的 18.3%,占 AAPL 的 6.9%,而成交量稀少的 CATO 占比则为 0.2%——您可以查阅 盘外交易指南 获取详细说明。
ADV 的单位是股数还是金额?
传统上以股数衡量,但金额 ADV 是衡量股票流动性的更好指标。在相同的 20 个交易日内,MU 和 AAPL 的日均成交股数分别为 42.01M 和 41.47M,两者几乎持平;但它们的金额 ADV 分别为 44.49B 和 12.24B。股数相同,但规模完全不同。
所有数据均为已存储且有版本记录的查询结果——您可以展开任何面板下的 SQL 语句,或在 Strasmore 终端上计算任何标的的特定周期数据。