STRASMORE/EXPLORE 3,022 QUERIES

volume_por_hora

Answered against 22 years of US equities and 12 years of US options data and published with the query that produced it. This result is stored as of 2026-10-04, from us-market-volume-by-hour-brasilia-time.

as of ranking 8×3read in context →
volume_por_hora — 8 rows by 3 columns, computed from US exchange, SIP and OPRA data.
hora_brasiliapct_do_volumevolume_medio_milhoes
10h16.332.7
11h17.735.6
12h13.226.5
13h10.721.6
14h9.218.4
15h9.819.7
16h21.142.3
17h2.14.1
Rows × columns
8 × 3
Computed
Completeness
No missing values
Source
US exchange, SIP and OPRA market data
Licence
Strasmore terms · free, no signup
Formats
JSON · CSV · the SQL below

What each column holds

Column definitions for volume_por_hora, derived from the stored result.
ColumnTypeRangeNotes
hora_brasilia text 8 distinct values (10h, 11h, 12h…)
pct_do_volume number 2.1 to 21.1 percent
volume_medio_milhoes number 4.1 to 42.3 count

Computed from Strasmore's warehouse of US exchange, SIP and OPRA market data. Equity prices are delayed; options greeks and implied volatility are end-of-day. This result is stored, not recomputed on load — it is exactly the numbers that were returned on , and the query below is what returned them.

Run it yourself

This is the exact query behind the result above. Change a ticker, a date or a column and run it against the warehouse — no account, no key. The no-signup tier is smaller than the one this page was computed on; a query that reaches past it comes back saying which plan runs it.

WITH barras AS
(
    SELECT
        formatDateTime(toTimeZone(window_start, 'America/Sao_Paulo'), '%Hh') AS hora_br,
        toDate(toTimeZone(window_start, 'America/New_York'))                 AS sessao,
        toHour(toTimeZone(window_start, 'America/New_York')) * 60
            + toMinute(toTimeZone(window_start, 'America/New_York'))         AS minuto_et,
        volume
    FROM global_markets.delayed_stocks_minute_aggs
    WHERE ticker IN ('SPY', 'AAPL', 'MSFT', 'NVDA', 'KO')
      AND window_start >= '2026-07-01 08:00:00'
      AND window_start <  '2026-10-01 08:00:00'
),
regular AS
(
    SELECT *
    FROM barras
    WHERE minuto_et >= 570 AND minuto_et <= 960
)
SELECT
    hora_br                                                        AS hora_brasilia,
    round(toFloat64(sum(volume)) * 100
          / toFloat64((SELECT sum(volume) FROM regular)), 1)       AS pct_do_volume,
    round(toFloat64(sum(volume)) / countDistinct(sessao) / 1e6, 1) AS volume_medio_milhoes
FROM regular
GROUP BY hora_br
ORDER BY hora_br
⌘/Ctrl + Enter

Work with this data in your AI assistant

Opens ready to query, with this page's data. Free, no account.