Strasmore Research
Aprendizado Matt ConnorPor Matt Connor · Atualizado 2026-07-23

O que é o Average Daily Volume ADV

Entenda o conceito de volume médio diário e como o ADV é usado como base para calcular o days to cover e o relative volume em qualquer screener.

O volume médio diário — ADV — é o número mais utilizado e, ao mesmo tempo, o menos definido: representa a média de ações negociadas de um ativo por dia, calculada sobre um determinado período anterior. Ele é o denominador no cálculo de days to cover, a base para o relative volume e o teste de liquidez em qualquer screener. Isso significa que todos esses indicadores dependem das definições do ADV: qual o período, quais as sessões, se o cálculo considera ações ou dólares. Esta página define o conceito corretamente, detalha o cálculo passo a passo e mede o impacto de cada uma dessas escolhas no mercado real.

Volume diário médio, medido

Vinte sessões em horário regular — de 11 de junho a 10 de julho de 2026 — quatro nomes conhecidos mais um com liquidez propositalmente baixa. Ações, dólares e (para o futuro) a fatia do volume total de cada nome negociada fora do horário regular:

QueryADV regular-hours (20 sessões) — ações, dólares e volume em extended-hours (11 de jun – 10 de jul de 2026)
O SQL exato por trás de cada número
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

A tabela apresenta o argumento central desta página. MU e AAPL negociam quase o mesmo número de ações por dia — 42.01M contra 41.47M — mas a coluna de dólares os separa drasticamente: $44.49B contra $12.24B por dia. Ações medem atividade; dólares medem dinheiro. O ranking até se inverte no topo: SPY lidera em ações (46.01M ao longo de 20 sessões), enquanto MU lidera esta tabela em dólares. E na base, CATO negocia 0.05 milhões de ações por dia — tão pouco dinheiro que a coluna de bilhões mostra 0 nesta escala. Esse é o tipo de pregão onde uma única ordem institucional REPRESENTA o volume do dia, e onde custos de negociação operam em outro universo.

Como calcular o volume médio diário

O cálculo é propositalmente simples: some os volumes diários de ações no período escolhido e divida pelo número de dias. Uma semana completa de negociações em horário regular da Coca-Cola (6 a 10 de julho de 2026), com o total acumulado e a média calculados na mesma consulta:

QueryADV manual — cinco volumes diários de KO, soma e média (6–10 de jul de 2026)
O SQL exato por trás de cada número
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

Some os cinco dias — 10.7 + 12.1 + 10.7 + 11 + 8.3 milhões de ações — e o total é 52.8M. Divida por cinco: 10.6M de ações, o ADV de 5 sessões da KO. Um ADV de 20 sessões utiliza a mesma aritmética sobre 20 linhas — que é o número na primeira tabela. Observe o que a média esconde: 2026-07-07 registrou 12.1M e 2026-07-10 registrou 8.3M, oscilações diárias que o ADV suaviza em um único número. A última coluna antecipa o dimensionamento de posição: um por cento do ADV da KO é cerca de 106 mil ações — a escala na qual uma única ordem começa a representar uma parte relevante do volume do dia.

O período de análise é uma escolha, e ele define a velocidade com que o ADV é esquecido

Vinte sessões é a convenção comum (um mês de negociação); dez, trinta, sessenta e cinco e noventa também são utilizadas. O período define a velocidade com que o ADV é esquecido. A MU é o exemplo prático de 2026 — um ticker cujo volume foi reavaliado de forma tão intensa no meio do ano que seu ADV de um mês e seu ADV de um trimestre apresentaram dados divergentes durante a primavera, conforme detalhado em sua análise profunda de junho. Aqui está a mesma ação ao longo dos mesmos sete meses, medida com ambos os períodos simultaneamente:

QueryMU — ADV rolling de 20 vs 90 sessões, dezembro de 2025 a 10 de jul de 2026 (amostragem a cada três sessões)
O SQL exato por trás de cada número
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

Em 2025-12-10 os dois períodos concordavam: 21.3M na contagem de 20 sessões e 19.9M na de 90. Em 2026-04-14 eles haviam se separado para 45.6M contra 31.9M — dois ADVs "oficiais" para uma única ação em um único dia, e qualquer screener, dado de days-to-cover ou leitura de volume relativo configurado para um período discordava da mesma ferramenta configurada para o outro. Em 2026-07-10 os dois haviam convergido novamente (42M contra 41.9M): o novo nível de volume também havia sido absorvido pelo período longo. Quando duas fontes divergem sobre o ADV de uma ação, o período de análise é o primeiro suspeito; se o volume do after-hours está incluído é o segundo.

O que acontece com o ADV logo após um choque de volume

O gráfico acima sugere isso; aqui está a medição. Pegue o choque de volume mais intenso da MU em 2026 — a sessão que mais excedeu seu próprio ADV móvel de 20 sessões — e compare o ADV que um screener mostrou antes desse dia com o que mostrou um mês depois:

QueryMaior volume shock da MU em 2026 — o dia do evento vs ADV anterior e posterior
O SQL exato por trás de cada número
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

Em 2026-03-19, a MU registrou 64.7M ações contra um ADV anterior de 28.7M — 2.3x sua própria base. Nas 20 sessões seguintes, o ADV móvel teve média de 45M: um salto de 57% no denominador. Todos os números derivados do ADV acompanharam essa mudança — as leituras de volume relativo diminuíram (a base cresceu) e os days to cover diminuíram (o denominador cresceu), sem que fosse necessária qualquer alteração nas posições reais. No caso da MU, o volume elevado persistiu — o choque marcou um re-rating, não um evento de um único dia — mas a mecânica é idêntica em ambos os casos: após um período de alta intensidade, o ADV mede o evento em vez dos hábitos da ação por exatamente um período de janela.

O que define liquidez, medido

"Milhões de dólares por dia" é a justificativa comum para a negociabilidade. Aqui está a distribuição real — todos os tickers listados nos EUA com pelo menos 15 das mesmas 20 sessões, classificados pelo ADV em dólares:

QueryDollar ADV em todo o tape dos EUA — percentis e contagem de threshold (11 de jun – 10 de jul de 2026)
O SQL exato por trás de cada número
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

Entre 10864 símbolos, a mediana de turnover é de $2.2M por dia — metade do mercado dos EUA negocia menos que isso. Um quarto negocia menos de $0.33M. O percentil 75 está em $20.4M, o 90 em $113.7M e o 99 em $1333M. Comparando com patamares arredondados: 6515 nomes superam $1M por dia, 3535 superam $10M, 1166 superam $100M — e apenas 130 superam $1B. Os ativos que concentram a cobertura financeira operam quase inteiramente dentro desse último grupo; a ação listada mediana é um instrumento completamente diferente.

Onde o ADV decide outros números silenciosamente

  • Days to cover = short interest ÷ ADV. Um pico de volume reduz a razão sem qualquer mudança na posição vendida — o denominador causou isso.
  • Relative volume = volume de hoje ÷ ADV. O mesmo número, papel oposto: aqui o ADV é a linha de base a ser superada.
  • Filtros de liquidez ("apenas ativos acima de 1M de ADV") — todo backtest e screener possui um, e o viés de sobrevivência ocorre silenciosamente: ativos entram nesses filtros ao terem suas semanas mais dramáticas.
  • Position sizing — o hábito institucional de negociar apenas alguns por cento do ADV por dia é o motivo pelo qual grandes fundos simplesmente não conseguem deter certas small caps: seriam necessárias semanas de todo o volume do tape para montar ou desmontar uma posição.

O caso do days-to-cover vale a pena ser analisado com números reais, já que até o dado "oficial" incorpora a escolha do ADV de alguém. A FINRA publica o days to cover ao lado de seu próprio denominador de volume (cada bolsa, seu próprio período de reporte, com piso de 1.0 — veja como esses dados chegam); recalcule a mesma razão com o ADV de horário regular de 20 sessões desta página e a resposta muda:

QueryDays to cover recalculado — denominador da FINRA vs ADV regular-hours de 20 sessões (liquidação em 30 de jun de 2026)
O SQL exato por trás de cada número
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

Mesmo short interest, dois denominadores. Para KO, a FINRA reporta 2.06 dias sobre seu volume de 24.1M de ações; contra o ADV de horário regular de 12.4M desta página, a mesma posição vendida de 49.6M de ações resulta em 4 dias — quase o dobro. Para MU, o número publicado está no piso reportado de 1; recalculado, ele é de 0.75 dias. Nenhum dos números está errado — eles respondem com denominadores diferentes. A lição é generalizável: qualquer razão que tenha o ADV no denominador está citando silenciosamente as escolhas de janela e sessão de alguém.

O ADV funciona para opções?

Traders de opções utilizam o mesmo conceito com uma diferença: o volume é contado em contratos, e cada contrato padrão de ações controla 100 ações. Mesmos 20 dias, quatro tapes de opções, com a contagem de contratos convertida para exposição equivalente em ações:

QueryOptions ADV — média de contratos diários e exposição equivalente em ações (11 de jun – 10 de jul de 2026)
O SQL exato por trás de cada número
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

As diferenças de escala superam qualquer dado da tabela de ações. O tape de opções da SPY teve média de 12543.2 mil contratos por dia — 1254.3M de ações em exposição equivalente, um múltiplo alto do ADV de ações do próprio SPY, que é de 46.01M. A KO segue o caminho oposto: 64.6 mil contratos (6.5M equivalente em ações), abaixo de seu ADV de 12.4M ações. A liquidez de opções se concentra em poucos ativos subjacentes e se dispersa ainda mais entre strikes e vencimentos — um número agregado como este superestima o que qualquer contrato individual negocia, portanto, o volume por contrato e o open interest ainda precisam ser verificados antes de dimensionar uma ordem de opções.

Analisando o ADV como um profissional

Três hábitos reduzem a distância entre conhecer a definição e aplicá-la. Combine o ADV com o ADV em dólares — a primeira tabela mostra dois tickers com participações de mercado quase iguais, mas com valores muito distintos; a coluna de dinheiro é a que realmente importa para uma ordem. Desconfie do ADV imediatamente após eventos — o painel de choque comprovou isso: um período de alta volatilidade alterou o denominador em 57% em um mês, deflacionando mecanicamente o volume relativo e o days to cover até que o pico saia do período de análise. Compare o ADV com o calendário — sextas-feiras de vencimento, dias de rebalanceamento e datas de mudança de índice elevam o volume de todos simultaneamente (witching days, principalmente), portanto, um dia de alto volume no mercado como um todo não diz nada sobre o cenário de um ticker específico.

FAQ sobre volume médio diário

Qual é um bom volume médio diário?

Medido entre 10864 ativos dos EUA ao longo de 20 sessões, a mediana do ADV em dólares foi de $2.2M; 3535 ativos faturaram $10M por dia e apenas 130 faturaram $1B. Para ordens de varejo, o limite mínimo útil é o valor em dólares, não o número de ações — ativos no grupo de mais de $10M operam sem que uma ordem pequena mova o preço.

Como se calcula o volume médio diário?

Some os volumes diários de ações no período escolhido e divida pelo número de dias. As cinco sessões da KO de 6 a 10 de julho de 2026 somam 52.8M de ações; dividido por cinco, o ADV é 10.6M. Um ADV de 20 dias utiliza a mesma aritmética sobre 20 sessões.

Qual o período de medição do ADV?

O mais comum são 20 sessões de negociação (cerca de um mês), mas versões de 10, 30, 65 e 90 dias também circulam — e elas apresentam divergências reais após qualquer choque de volume. Em 2026-04-14, o ADV de 20 sessões da MU era de 45.6M, enquanto seu ADV de 90 sessões era de 31.9M no mesmo dia. Verifique o período antes de comparar fontes.

O ADV inclui o volume do premarket e after-hours?

Depende da fonte — os números desta página referem-se apenas ao horário regular. Medidos ao longo das mesmas 20 sessões, as sessões estendidas representaram 18.3% do volume total da SPY, 6.9% da AAPL e 0.2% da CATO, que possui baixa liquidez — o guia de horário estendido detalha as sessões.

O ADV é em ações ou dólares?

Tradicionalmente em ações, mas o ADV em dólares é a melhor medida de liquidez entre as ações. No mesmo período de 20 sessões, MU e AAPL negociaram 42.01M e 41.47M de ações por dia — quase empatadas — enquanto seus ADVs em dólares foram de $44.49B e $12.24B. Mesmo número de ações, oceanos muito diferentes.


Cada valor é uma consulta armazenada e versionada — expanda o SQL abaixo de qualquer painel ou calcule qualquer período para qualquer ticker no terminal Strasmore.