Что такое среднесуточный объем торгов ADV
Узнайте, что такое средний объем торгов акциями в день. Разбираем значение показателя ADV для расчета ликвидности, relative volume и days to cover.
Среднесуточный объем торгов (ADV) — это наиболее часто используемый показатель, который никто не удосуживается дать определение. Это типичное количество акций, торгуемых в день, рассчитанное как среднее значение за определенный период. ADV является знаменателем в показателе days to cover, базовой величиной для relative volume и критерием ликвидности в каждом скринере. Это означает, что каждый из этих показателей зависит от параметров ADV: выбранного периода, сессий, а также единиц измерения — акций или долларов. На этой странице приводится корректное определение, разбирается процесс ручного расчета и анализируется влияние каждого параметра на реальных рыночных данных.
Среднесуточный объем торгов
Двадцать торговых сессий — с 11 июня по 10 июля 2026 года — четыре известных актива и один намеренно малоликвидный. Количество акций, объем в долларах и (для последующего анализа) доля объема каждого актива, торгуемая во внебиржевые часы:
Точный 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 лидирует по количеству акций (46.01M за 20 сессий), в то время как MU занимает первое место в таблице по объему в долларах. В нижней части таблицы CATO торгуется объемом в 0.05 миллионов акций в день — это приносит настолько малый доход, что в колонке миллиардов при таких масштабах указано значение 0. Это тип рынка, где один институциональный ордер может составить весь дневной объем, а транзакционные издержки находятся в совершенно иной плоскости.
Как рассчитать средний дневной объем торгов
Расчет производится простым способом: необходимо сложить объемы торгов акциями за выбранный период и разделить полученную сумму на количество дней. Ниже приведен пример за одну полную неделю торгов Coca-Cola в основные часы (с 6 по 10 июля 2026 года), где суммарный объем и среднее значение вычислены в одном запросе:
Точный 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. Разделите на пять: 10.6M акций — это показатель ADV (среднедневного объема) для KO за 5 сессий. ADV за 20 сессий рассчитывается по тому же принципу на основе 20 строк — это значение указано в первой таблице. Обратите внимание, что скрывает среднее значение: 2026-07-07 торговала объемом 12.1M, а 2026-07-10 — объемом 8.3M. Эти ежедневные колебания ADV сглаживает, представляя в виде одного показателя. Последний столбец демонстрирует расчет размера позиции: один процент от ADV компании KO составляет примерно 106 тысяч акций — это масштаб, при котором отдельный ордер становится заметной долей дневного объема торгов.
Выбор временного окна определяет скорость изменения ADV
Обычно используют период в двадцать сессий (торговый месяц); также применяются периоды в десять, тридцать, шестьдесят пять и девяносто сессий. Временное окно определяет, насколько быстро показатель ADV учитывает новые данные. MU — пример 2026 года: из-за резкого пересмотра котировок в середине года значения 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-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 значения в обоих окнах совпадали: 21.3M при расчете за 20 сессий и 19.9M за 90 сессий. К 2026-04-14 значения разошлись: 45.6M против 31.9M. Таким образом, на один день у одной акции было два «официальных» показателя ADV. Любой скринер, расчет дней покрытия (days-to-cover) или показатель относительного объема (relative volume), привязанный к одному окну, давал результат, отличный от аналогичного инструмента с другим окном. К 2026-07-10 показатели снова сошлись (42M против 41.9M): новый уровень объема был учтен и в длинном окне. Если два источника расходятся в данных об ADV акции, первым делом следует проверить временное окно; второй причиной является учет объема в расширенные торговые сессии.
Что происходит с ADV сразу после скачка объема
График выше дает подсказку; здесь приведены расчеты. Возьмем самый резкий скачок объема MU в 2026 году — сессию, в которой объем максимально превысил средний дневной объем (ADV) за предыдущие 20 сессий. Сравним значение 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_pct2026-03-19 компания MU выпустила 64.7M акций при предыдущем ADV в 28.7M — это в 2.3 раз больше базового показателя. В течение следующих 20 сессий скользящий ADV составил в среднем 45M: знаменатель увеличился на 57%. Все показатели, производные от ADV, изменились соответствующим образом: значения относительного объема снизились (из-за роста базы), а дней покрытия снизились (из-за роста знаменателя), при этом фактические позиции участников рынка не менялись. В случае MU повышенная активность торгов сохранялась — скачок означал переоценку, а не разовое событие, — но механика в обоих случаях идентична: после периода высокой активности ADV измеряет само событие, а не привычные показатели акции, в течение ровно одного периода наблюдения.
Измерение ликвидности
Фраза «миллионы долларов в день» обычно используется как упрощенное определение торгуемости. Ниже представлено реальное распределение — все символы, торгующиеся на биржах США, имеющие данные минимум за 15 из 20 сессий, ранжированные по среднедневному объему торгов в долларах (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 скрыто влияет на другие показатели
- Дней покрытия = короткий интерес ÷ ADV. Скачок объема снижает этот коэффициент без изменения короткой позиции — это результат изменения знаменателя.
- Относительный объем = текущий темп ÷ ADV. Тот же показатель, но обратная роль: здесь ADV выступает в качестве базового уровня, который необходимо превысить.
- Фильтры ликвидности («только акции с ADV выше 1 млн») — каждый бэктест и скринер содержит такой фильтр, и это влияет на выживаемость активов: акции попадают в такие списки только в периоды наиболее резких скачков объема.
- Размер позиции — институциональная практика торговли объемом не более нескольких процентов от 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 сообщает о 2.06 днях при объеме в 24.1 млн акций; при использовании ADV в обычные торговые часы с этой страницы в 12.4 млн акций, та же позиция в 49.6 млн акций соответствует 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 акций в эквиваленте. Это в несколько раз больше, чем собственный показатель ADV акций SPY, составляющий 46.01M. У KO ситуация обратная: 64.6 тысяч контрактов (6.5M в эквиваленте акций), что ниже показателя ADV в 12.4M акций. Ликвидность опционов сосредоточена в ограниченном списке базовых активов и еще сильнее снижается при переходе к другим ценам исполнения и датам экспирации. Подобный совокупный показатель завышает объем торгов по любому отдельному контракту. Поэтому перед открытием опционной позиции необходимо проверять объем и открытый интерес по конкретному контракту.
Как использовать ADV на практике
Три привычки помогут вам перейти от простого знания определения к его практическому применению. Сопоставляйте ADV с долларовым ADV — в первой таблице два актива имеют почти равные доли рынка, но сильно различаются по объему денежных средств; именно этот показатель важен для исполнения ордеров. Не доверяйте показателям ADV сразу после событий — панель шоковых изменений подтверждает это: один период высокой волатильности изменил знаменатель на 57% за месяц, что механически снизило относительный объем и количество дней покрытия до тех пор, пока всплеск не выйдет из расчетного окна. Сверяйте ADV с календарем — пятницы экспирации, дни ребалансировки и даты изменения индексов одновременно увеличивают объемы всех активов (особенно в дни «ведьм»), поэтому общерыночный всплеск активности не говорит ничего о ситуации с конкретным активом.
Часто задаваемые вопросы о среднесуточном объеме торгов
Какой среднесуточный объем торгов считается хорошим?
На основе данных по 10864 символам США за 20 сессий медианный долларовый ADV составил $2.2M; 3535 инструментов имели оборот более $10M в день, и только 130 превышали $1B. Для розничных ордеров важным показателем является сумма в долларах, а не количество акций — инструменты из группы с оборотом более $10M торгуются без изменения цены при исполнении небольших ордеров.
Как рассчитывается среднесуточный объем торгов?
Необходимо суммировать ежедневные объемы торгов в акциях за выбранный период и разделить полученную сумму на количество дней. Сумма объемов KO за пять сессий с 6 по 10 июля 2026 года составляет 52.8M акций; при делении на пять ADV равен 10.6M. 20-дневный ADV рассчитывается по тому же принципу за 20 сессий.
За какой период рассчитывается ADV?
Чаще всего используется период в 20 торговых сессий (около месяца), однако также применяются версии за 10, 30, 65 и 90 дней — их показатели могут существенно различаться после резких скачков объема. 2026-04-14, 20-дневный ADV для MU составил 45.6M, в то время как 90-дневный ADV в тот же день составил 31.9M. Перед сравнением данных из разных источников проверяйте период расчета.
Включает ли ADV объемы на премаркете и после закрытия рынка?
Это зависит от источника — данные на этой странице включают только объемы в основные торговые часы. За тот же период в 20 сессий на внебиржевые сессии приходилось 18.3% общего объема SPY, 6.9% объема AAPL и 0.2% объема малоликвидной акции CATO — подробный разбор сессий представлен в руководстве по внебиржевым сессиям.
ADV измеряется в акциях или в долларах?
Традиционно используется количество акций, но долларовый ADV является более точным показателем ликвидности для акций. За те же 20 сессий MU и AAPL торговались объемами 42.01M и 41.47M акций в день соответственно — показатели почти равны, — в то время как их долларовые ADV составили $44.49B и $12.24B. При одинаковом количестве акций объемы в долларах различаются очень сильно.
Каждый показатель является результатом сохраненного запроса с версионностью — вы можете развернуть SQL-код под любой панелью или рассчитать ADV за любой период для любого тикера в терминале Strasmore.