Strasmore Research
Marktoverzichten Matt ConnorDoor Matt Connor · Bijgewerkt 2026-07-24

Marktoverzicht 6 juli 2026 in cijfers

Na de Independence Day-pauze steeg de markt door groei. Er was een duidelijke sector split en de maand bereikte de nauwste index quote tot nu toe.

Maandag 6 juli 2026 — de eerste handelsdag na het Independence Day-weekend — opende met een stijging door groei en behield deze koers. QQQ sloot op 1.39% tegenover 0.42% van DIA, een spiegeling van de rotatie van donderdag, en de breedte van de markt was positief: 3861 liquide namen stegen tegenover 2242. Het grootste deel van de beweging werd veroorzaakt door de gap bij de heropening, geprijsd tegen de nauwste index quote van de afgelopen maand. Elk onderstaand getal is afkomstig uit een opgeslagen query.

Het scorebord

Vergelijkingen zijn gebaseerd op de laatste reguliere handelsminuut van 6 juli versus donderdag 2 juli — één marktfeestdag terug.

QuerySPY / QQQ / DIA / IWM — 6 juli vs. slot van 2 juli, regular hours
De exacte SQL achter elk getal
WITH prior AS (
    SELECT ticker, argMax(close, window_start) AS prior_close
    FROM global_markets.delayed_stocks_minute_aggs
    WHERE ticker IN ('SPY', 'QQQ', 'DIA', 'IWM')
      AND window_start >= '2026-07-02 13:30:00' AND window_start < '2026-07-02 20:00:00'
    GROUP BY ticker
),
sess AS (
    SELECT ticker,
           argMin(open, window_start) AS day_open,
           argMax(close, window_start) AS day_close,
           max(high) AS day_high,
           min(low) AS day_low,
           round(toFloat64(sum(volume)) / 1e6, 1) AS shares_traded_m
    FROM global_markets.delayed_stocks_minute_aggs
    WHERE ticker IN ('SPY', 'QQQ', 'DIA', 'IWM')
      AND window_start >= '2026-07-06 13:30:00' AND window_start < '2026-07-06 20:00:00'
    GROUP BY ticker
)
SELECT
    s.ticker AS ticker,
    round(toFloat64(p.prior_close), 2) AS prior_close,
    round(toFloat64(s.day_open), 2) AS day_open,
    round(toFloat64(s.day_close), 2) AS day_close,
    round((toFloat64(s.day_open) / toFloat64(p.prior_close) - 1) * 100, 2) AS gap_pct,
    round((toFloat64(s.day_close) / toFloat64(s.day_open) - 1) * 100, 2) AS intraday_pct,
    round((toFloat64(s.day_close) / toFloat64(p.prior_close) - 1) * 100, 2) AS pct_change,
    round(toFloat64(s.day_high), 2) AS day_high,
    round(toFloat64(s.day_low), 2) AS day_low,
    s.shares_traded_m AS shares_traded_m
FROM sess s
JOIN prior p ON s.ticker = p.ticker
ORDER BY s.ticker

De 1.39% van QQQ leidde de vier index ETF's en de 0.42% van DIA bleef achter — precies het tegenovergestelde van donderdag, toen DIA steeg en QQQ daalde. SPY sloot 0.87%, IWM 0.45%. De verhouding tussen de gap en de intraday-beweging bepaalt de vorm van de dag: QQQ opende 1.01% boven de slotkoers van donderdag en voegde slechts 0.38% toe tussen opening en sluiting; de 0.53% gap van SPY was verantwoordelijk voor het grootste deel van de 0.87% van de dag. IWM (0.07%) en DIA (0.17%) vertoonden nauwelijks een gap en stegen gedurende de sessie geleidelijk.

Was de dag ongebruikelijk?

QuerySPY open-to-close beweging gerangschikt tegen de voorgaande maand sessies (rank 1 = grootste absolute beweging)
De exacte SQL achter elk getal
SELECT round(anyIf(oc_pct, d = toDate('2026-07-06')), 2) AS day_move_pct,
       arrayCount(x -> x > abs(anyIf(oc_pct, d = toDate('2026-07-06'))), groupArrayIf(abs(oc_pct), d != toDate('2026-07-06'))) + 1 AS abs_move_rank,
       count() AS sessions_compared,
       toString(min(d)) AS first_session
FROM (
    SELECT toDate(toTimeZone(window_start, 'America/New_York')) AS d,
           (argMax(toFloat64(close), window_start) / argMin(toFloat64(open), window_start) - 1) * 100 AS oc_pct
    FROM global_markets.delayed_stocks_minute_aggs
    WHERE ticker = 'SPY'
      AND window_start >= toDateTime('2026-06-06 00:00:00')
      AND window_start < toDateTime('2026-07-07 00:00:00')
      AND (toHour(window_start) * 60 + toMinute(window_start)) BETWEEN 810 AND 1199
    GROUP BY d
)

Op indexniveau niet: de beweging van de SPY van opening naar sluiting van 0.34% staat op de 13e plaats van 19 voorgaande sessies qua absolute omvang — midden in het veld. De intraday-handel was normaal; de gap was de belangrijkste factor van de dag.

Breedte: groene tape, groei weer op de voorgrond

QueryAdvancers vs decliners onder tickers met minstens $1M handel op 6 juli
De exacte SQL achter elk getal
WITH per_ticker AS (
    SELECT
        ticker,
        toFloat64(argMaxIf(close, window_start, window_start < '2026-07-06 00:00:00')) AS prior_close,
        toFloat64(argMaxIf(close, window_start, window_start >= '2026-07-06 00:00:00')) AS day_close,
        sumIf(toFloat64(close) * toFloat64(volume), window_start >= '2026-07-06 00:00:00') AS day_dollar_volume
    FROM global_markets.delayed_stocks_minute_aggs
    WHERE (window_start >= '2026-07-02 13:30:00' AND window_start < '2026-07-02 20:00:00')
       OR (window_start >= '2026-07-06 13:30:00' AND window_start < '2026-07-06 20:00:00')
    GROUP BY ticker
)
SELECT
    countIf(day_close > prior_close AND day_dollar_volume >= 1000000) AS advancers,
    countIf(day_close < prior_close AND day_dollar_volume >= 1000000) AS decliners,
    countIf(day_close = prior_close AND day_dollar_volume >= 1000000) AS unchanged,
    countIf(day_dollar_volume >= 1000000) AS liquid_tickers,
    count() AS tickers_traded_both_sessions,
    count() - countIf(day_dollar_volume >= 1000000) AS dropped_by_liquidity_filter,
    round(100.0 * countIf(day_close > prior_close AND day_dollar_volume >= 1000000)
        / countIf(day_dollar_volume >= 1000000), 1) AS advancer_pct
FROM per_ticker
WHERE prior_close > 0 AND day_close > 0

3861 stijgers, 2242 dalers, 86 ongewijzigd — 62.4% van de liquide tape steeg. Zowel de indexweging als de equal-count breedte waren groen, terwijl donderdag een verschil liet zien tussen beide. De filter laat 5361 van de 11550 tickers met een handelsvolume van minder dan $1M over twee sessies weg.

Sector voor sector: hoe groot was de kloof?

Vier megacaps vormen geen markt. Het panel prijst de dag via de elf grote sector ETF's — één fonds per segment van de S&P 500, elke sessie dezelfde basket. Let op de spread tussen de beste en de slechtste sector: de dispersion van de dag.

QueryDe elf sector ETF's: 6 juli vs. slot van 2 juli, gesplitst in gap en intraday
De exacte SQL achter elk getal
WITH per_name AS (
    SELECT
        ticker,
        toFloat64(argMaxIf(close, window_start, window_start < '2026-07-06 00:00:00')) AS prior_close,
        toFloat64(argMinIf(open, window_start, window_start >= '2026-07-06 00:00:00')) AS day_open,
        toFloat64(argMaxIf(close, window_start, window_start >= '2026-07-06 00:00:00')) AS day_close,
        round(sumIf(toFloat64(close) * toFloat64(volume), window_start >= '2026-07-06 00:00:00') / 1e9, 2) AS day_dollar_bn
    FROM global_markets.delayed_stocks_minute_aggs
    WHERE ticker IN ('XLB', 'XLC', 'XLE', 'XLF', 'XLI', 'XLK', 'XLP', 'XLRE', 'XLU', 'XLV', 'XLY')
      AND ((window_start >= '2026-07-02 13:30:00' AND window_start < '2026-07-02 20:00:00')
        OR (window_start >= '2026-07-06 13:30:00' AND window_start < '2026-07-06 20:00:00'))
    GROUP BY ticker
)
SELECT
    ticker,
    round((day_close / prior_close - 1) * 100, 2) AS pct_chg,
    round((day_open / prior_close - 1) * 100, 2) AS gap_pct,
    round((day_close / day_open - 1) * 100, 2) AS intraday_pct,
    day_dollar_bn,
    round(max((day_close / prior_close - 1) * 100) OVER () - (day_close / prior_close - 1) * 100, 2) AS points_behind_leader
FROM per_name
ORDER BY pct_chg DESC, ticker ASC

Technology (XLK) domineerde de dag met 1.71%, waarvan bijna het volledige deel de gap was: 1.19% bij de opening, 0.52% gedurende de volgende zesënhalve uur. Financials (0.99%) en industrials (0.9%) volgden. Daarna keert het beeld: vijf groene rijen maken plaats voor zes rode, de defensieve sector — utilities, health care, staples — met een daling tot -1.08%. Van boven naar beneden scheidden 2.79 basis points de beste van de slechtste op een dag dat de S&P tracker met 0.87% bewoog — meerdere malen de beweging van de index, wat aantoont dat een groene dag niet als één geheel gelezen moet worden. Real estate en utilities bewogen in de tegenovergestelde richting van tech: bijna vlakke openingen (0.09%, -0.11%), gevolgd door een daling gedurende de gehele sessie (-1.01% en -0.92% open to close).

Het hoogtepunt van de dag: de memory-rout, deels hersteld

Het memory-and-storage complex dat op woensdag en donderdag instortte, herstelde maandag deels.

QueryDe memory en storage namen: verandering vs. slot van donderdag, range timing en dollar volume
De exacte SQL achter elk getal
WITH per_name AS (
    SELECT
        ticker,
        toFloat64(argMaxIf(close, window_start, window_start < '2026-07-06 00:00:00')) AS prior_close,
        toFloat64(argMaxIf(close, window_start, window_start >= '2026-07-06 00:00:00')) AS day_close,
        maxIf(toFloat64(high), window_start >= '2026-07-06 00:00:00') AS day_high,
        minIf(toFloat64(low), window_start >= '2026-07-06 00:00:00') AS day_low,
        argMinIf(window_start, toFloat64(low), window_start >= '2026-07-06 00:00:00') AS low_bar,
        argMaxIf(window_start, toFloat64(high), window_start >= '2026-07-06 00:00:00') AS high_bar,
        round(sumIf(toFloat64(close) * toFloat64(volume), window_start >= '2026-07-06 00:00:00') / 1e9, 2) AS day_dollar_bn
    FROM global_markets.delayed_stocks_minute_aggs
    WHERE ticker IN ('MU', 'SNDK', 'STX', 'WDC')
      AND ((window_start >= '2026-07-02 13:30:00' AND window_start < '2026-07-02 20:00:00')
        OR (window_start >= '2026-07-06 13:30:00' AND window_start < '2026-07-06 20:00:00'))
    GROUP BY ticker
)
SELECT
    ticker,
    round(prior_close, 2) AS prior_close,
    round(day_close, 2) AS day_close,
    round((day_close / prior_close - 1) * 100, 2) AS pct_chg,
    round(day_high, 2) AS day_high,
    formatDateTime(toTimeZone(high_bar, 'America/New_York'), '%H:%i') AS day_high_et,
    round(day_low, 2) AS day_low,
    formatDateTime(toTimeZone(low_bar, 'America/New_York'), '%H:%i') AS day_low_et,
    round((day_high / day_low - 1) * 100, 2) AS range_pct,
    day_dollar_bn
FROM per_name
ORDER BY ticker

De twee fabrikanten van harde schijven leidden het herstel: Western Digital 7.14% en Seagate 6%, die beide halverwege de ochtend hun piek bereikten (10:44 en 10:39 ET). De twee zwaarste aandelen bleven achter: MU steeg met 0.88% en bereikte het laagste punt bij de slotkoers (15:59); SanDisk sloot met -0.03% binnen een range van 7.27%. MU verhandelde nog steeds $30.9 miljard aan aandelen, meer dan de andere drie samen (de MU-analyse behandelt het kwartaal)).

De andere helft van de rotatie vond plaats binnen de megacaps:

QueryMegacap rotation: verandering vs. slot van donderdag, range timing en dollar volume
De exacte SQL achter elk getal
WITH per_name AS (
    SELECT
        ticker,
        toFloat64(argMaxIf(close, window_start, window_start < '2026-07-06 00:00:00')) AS prior_close,
        toFloat64(argMaxIf(close, window_start, window_start >= '2026-07-06 00:00:00')) AS day_close,
        maxIf(toFloat64(high), window_start >= '2026-07-06 00:00:00') AS day_high,
        minIf(toFloat64(low), window_start >= '2026-07-06 00:00:00') AS day_low,
        argMinIf(window_start, toFloat64(low), window_start >= '2026-07-06 00:00:00') AS low_bar,
        argMaxIf(window_start, toFloat64(high), window_start >= '2026-07-06 00:00:00') AS high_bar,
        round(sumIf(toFloat64(close) * toFloat64(volume), window_start >= '2026-07-06 00:00:00') / 1e9, 2) AS day_dollar_bn
    FROM global_markets.delayed_stocks_minute_aggs
    WHERE ticker IN ('AAPL', 'MSFT', 'NVDA', 'TSLA')
      AND ((window_start >= '2026-07-02 13:30:00' AND window_start < '2026-07-02 20:00:00')
        OR (window_start >= '2026-07-06 13:30:00' AND window_start < '2026-07-06 20:00:00'))
    GROUP BY ticker
)
SELECT
    ticker,
    round(prior_close, 2) AS prior_close,
    round(day_close, 2) AS day_close,
    round((day_close / prior_close - 1) * 100, 2) AS pct_chg,
    round(day_high, 2) AS day_high,
    formatDateTime(toTimeZone(high_bar, 'America/New_York'), '%H:%i') AS day_high_et,
    round(day_low, 2) AS day_low,
    formatDateTime(toTimeZone(low_bar, 'America/New_York'), '%H:%i') AS day_low_et,
    round((day_high / day_low - 1) * 100, 2) AS range_pct,
    day_dollar_bn
FROM per_name
ORDER BY ticker

TSLA maakte een eenzijdige stijging naar 6.86% — laag bij 09:37 ET, hoog bij de slotkoers (15:59) — het tegenovergestelde van de donderdag daling. AAPL steeg met 1.49% en NVDA met 0.57%; MSFT was de enige rode megacap met -0.7%, waarbij het hoog werd bereikt bij de opening van de 09:30.

Waar de handel plaatsvond

QueryVolume leaders op twee manieren: top 6 naar dollars traded, top 4 naar shares traded (één herhaald symbool uitgesloten)
De exacte SQL achter elk getal
SELECT leaderboard, ticker, dollar_volume_bn, shares_m,
    round(100 * if(leaderboard = 'by dollars traded', dollar_volume_bn, shares_m)
        / max(if(leaderboard = 'by dollars traded', dollar_volume_bn, shares_m)) OVER (PARTITION BY leaderboard), 1) AS pct_of_board_leader
FROM (
    SELECT
        'by dollars traded' AS leaderboard,
        ticker,
        round(sum(toFloat64(close) * toFloat64(volume)) / 1e9, 2) AS dollar_volume_bn,
        round(sum(toFloat64(volume)) / 1e6, 1) AS shares_m
    FROM global_markets.delayed_stocks_minute_aggs
    WHERE window_start >= '2026-07-06 13:30:00' AND window_start < '2026-07-06 20:00:00'
      AND ticker NOT IN ('SPCX')
    GROUP BY ticker
    ORDER BY dollar_volume_bn DESC
    LIMIT 6
    UNION ALL
    SELECT
        'by shares traded' AS leaderboard,
        ticker,
        round(sum(toFloat64(close) * toFloat64(volume)) / 1e9, 2) AS dollar_volume_bn,
        round(sum(toFloat64(volume)) / 1e6, 1) AS shares_m
    FROM global_markets.delayed_stocks_minute_aggs
    WHERE window_start >= '2026-07-06 13:30:00' AND window_start < '2026-07-06 20:00:00'
      AND ticker NOT IN ('SPCX')
    GROUP BY ticker
    ORDER BY shares_m DESC
    LIMIT 4
)
ORDER BY leaderboard ASC, if(leaderboard = 'by dollars traded', dollar_volume_bn, shares_m) DESC

SPY leidde de dollar-handel met $31.49 miljard, gevolgd door MU ($30.9 miljard) — hiermee eindigde de reeks van vier sessies van MU op de eerste plaats (maandag tot en met [[market-recap-2026-07-02|donderdag] zijn de gegevens]). Op de aandelenmarkt werd SOXS — de 3x-inverse semiconductor ETF — verhandeld in 467.1 miljoen aandelen. Hiermee was de volume-top opnieuw bereikt, ondanks de stijging van de onderliggende chips.

QueryShares traded per 30-minuten bucket, regular hours (billions)
De exacte SQL achter elk getal
SELECT
    formatDateTime(toStartOfInterval(toTimeZone(window_start, 'America/New_York'), INTERVAL 30 MINUTE), '%H:%i') AS et_time,
    round(sum(toFloat64(volume)) / 1e9, 2) AS shares_bn,
    round(100 * sum(toFloat64(volume)) / max(sum(toFloat64(volume))) OVER (), 1) AS pct_of_biggest_bucket
FROM global_markets.delayed_stocks_minute_aggs
WHERE window_start >= '2026-07-06 13:30:00' AND window_start < '2026-07-06 20:00:00'
GROUP BY et_time
ORDER BY et_time

1.96 miljard aandelen in het eerste halfuur, een dieptepunt van 0.68 miljard om 14:30, en 2.1 miljard richting de 15:30 close — de gebruikelijke intraday smile, met de hoogste volumes aan beide zijden.

De options tape

QueryEén rij voor de gehele options dag: volume, call share en de maandag same-day expiry
De exacte SQL achter elk getal
WITH
    (
        SELECT (any(underlying_symbol), any(toFloat64(strike_price)), any(option_type),
                any(toDateOrNull(concat('20', substring(ticker, length(ticker) - 14, 6)))),
                sum(size), count(), round(avg(toFloat64(price)), 3))
        FROM global_markets.options_trades
        WHERE sip_timestamp >= '2026-07-06 00:00:00' AND sip_timestamp < '2026-07-07 00:00:00'
        GROUP BY ticker
        ORDER BY sum(size) DESC
        LIMIT 1
    ) AS top_contract,
    (
        SELECT round(toFloat64(argMax(close, window_start)), 2)
        FROM global_markets.delayed_stocks_minute_aggs
        WHERE ticker = 'SPY' AND window_start >= '2026-07-06 13:30:00' AND window_start < '2026-07-06 20:00:00'
    ) AS spy_regular_close
SELECT
    round(count() / 1e6, 2) AS option_prints_m,
    round(toFloat64(sum(size)) / 1e6, 2) AS contracts_m,
    round(100.0 * sumIf(size, option_type = 'C') / sum(size), 1) AS call_pct_of_volume,
    round(100.0 * sumIf(size, substring(ticker, length(ticker) - 14, 6) = '260706') / sum(size), 1) AS same_day_expiry_pct,
    round(toFloat64(sumIf(size, substring(ticker, length(ticker) - 14, 6) = '260706')) / 1e6, 2) AS same_day_contracts_m,
    round(toFloat64(sumIf(size, underlying_symbol = 'SPY')) / 1e6, 2) AS spy_contracts_m,
    round(toFloat64(sumIf(size, underlying_symbol = 'QQQ')) / 1e6, 2) AS qqq_contracts_m,
    round(toFloat64(sumIf(size, underlying_symbol = 'TSLA')) / 1e6, 2) AS tsla_contracts_m,
    top_contract.1 AS top_contract_underlying,
    top_contract.2 AS top_contract_strike,
    top_contract.3 AS top_contract_type,
    if(top_contract.3 = 'C', 1, 0) AS top_contract_is_call,
    top_contract.4 AS top_contract_expiry,
    round(toFloat64(top_contract.5) / 1e6, 2) AS top_contract_volume_m,
    round(top_contract.7, 3) AS top_contract_avg_price,
    round(spy_regular_close - top_contract.2, 2) AS spy_close_minus_strike
FROM global_markets.options_trades
WHERE sip_timestamp >= '2026-07-06 00:00:00' AND sip_timestamp < '2026-07-07 00:00:00'

Er werden 60.98 miljoen contracten aan options verhandeld over 10.53 miljoen prints, waarvan 58.4% calls waren. Expiraties op dezelfde dag vormden 38.7% van de tape (23.57 miljoen contracten) — een gebruikelijke maandag 0DTE-share, lager dan de dubbel geladen donderdag feestdag-avond cijfers. Het meest verhandelde contract was de SPY $751 call met dezelfde expiratiedatum, met 1.08 miljoen contracten tegen een gemiddelde $0.564, waarbij de SPY $0.3 boven de strike sloot — in the money. Een call bovenaan de lijst, terwijl donderdag eindigde op een put.

The quote tape: did the gap up trade at wide markets?

Under every price above sits the quote stream — the National Best Bid and Offer, re-quoted continuously across every listed name. A gap open is where quotes can turn hostile, so we measure it, every session.

QueryDe volledige equity NBBO stream: 6 juli vs. sessie van 2 juli, en waar maandag's quotes clusterden
De exacte SQL achter elk getal
SELECT
    round(countIf(toDate(sip_timestamp) = toDate('2026-07-06')) / 1e6, 2) AS jul6_updates_m,
    round(countIf(toDate(sip_timestamp) = toDate('2026-07-02')) / 1e6, 2) AS jul2_updates_m,
    round((countIf(toDate(sip_timestamp) = toDate('2026-07-06')) / countIf(toDate(sip_timestamp) = toDate('2026-07-02')) - 1) * 100, 1) AS day_over_day_pct,
    round(countIf(sip_timestamp >= '2026-07-06 13:30:00' AND sip_timestamp < '2026-07-06 14:00:00') / 1e6, 2) AS jul6_open_half_hour_m,
    round(countIf(sip_timestamp >= '2026-07-06 17:30:00' AND sip_timestamp < '2026-07-06 18:00:00') / 1e6, 2) AS jul6_midday_half_hour_m,
    round(countIf(sip_timestamp >= '2026-07-06 19:30:00' AND sip_timestamp < '2026-07-06 20:00:00') / 1e6, 2) AS jul6_close_half_hour_m
FROM global_markets.cache_stocks_quotes
WHERE (sip_timestamp >= '2026-07-02 00:00:00' AND sip_timestamp < '2026-07-03 00:00:00')
   OR (sip_timestamp >= '2026-07-06 00:00:00' AND sip_timestamp < '2026-07-07 00:00:00')

The tape carried 391.96 million NBBO updates on Monday against 597.22 million Thursday — -34.4%, a third fewer messages than the pre-holiday session — and they piled into the open: 58.66 million in the first half hour against 20.74 million at 1:30pm and 33.7 million into the close. Fewer quotes than Thursday, but not wider ones:

QueryDe touch bij de gap open: median quoted spread en quote rate, 9:30–9:42 ET vs. een midday control (12 minuten elk)
De exacte SQL achter elk getal
SELECT
    ticker,
    round(quantileExactIf(0.5)((toFloat64(ask_price) - toFloat64(bid_price)) / ((toFloat64(ask_price) + toFloat64(bid_price)) / 2) * 10000, bid_price > 0 AND ask_price >= bid_price AND sip_timestamp >= '2026-07-06 13:30:00' AND sip_timestamp < '2026-07-06 13:42:00'), 2) AS open_spread_bps,
    round(quantileExactIf(0.5)((toFloat64(ask_price) - toFloat64(bid_price)) / ((toFloat64(ask_price) + toFloat64(bid_price)) / 2) * 10000, bid_price > 0 AND ask_price >= bid_price AND sip_timestamp >= '2026-07-06 17:30:00' AND sip_timestamp < '2026-07-06 17:42:00'), 2) AS midday_spread_bps,
    round(quantileExactIf(0.5)((toFloat64(ask_price) - toFloat64(bid_price)) / ((toFloat64(ask_price) + toFloat64(bid_price)) / 2) * 10000, bid_price > 0 AND ask_price >= bid_price AND sip_timestamp >= '2026-07-06 13:30:00' AND sip_timestamp < '2026-07-06 13:42:00')
        - quantileExactIf(0.5)((toFloat64(ask_price) - toFloat64(bid_price)) / ((toFloat64(ask_price) + toFloat64(bid_price)) / 2) * 10000, bid_price > 0 AND ask_price >= bid_price AND sip_timestamp >= '2026-07-06 17:30:00' AND sip_timestamp < '2026-07-06 17:42:00'), 2) AS spread_delta_bps,
    round(countIf(sip_timestamp >= '2026-07-06 13:30:00' AND sip_timestamp < '2026-07-06 13:42:00') / 1e3, 1) AS open_updates_k,
    round(countIf(sip_timestamp >= '2026-07-06 17:30:00' AND sip_timestamp < '2026-07-06 17:42:00') / 1e3, 1) AS midday_updates_k,
    round(countIf(sip_timestamp >= '2026-07-06 13:30:00' AND sip_timestamp < '2026-07-06 13:42:00') / countIf(sip_timestamp >= '2026-07-06 17:30:00' AND sip_timestamp < '2026-07-06 17:42:00'), 1) AS quote_rate_ratio,
    round(count() / 1e6, 2) AS session_updates_m,
    countIf(bid_price <= 0 OR ask_price <= 0 OR bid_price > ask_price) AS dropped_invalid_quotes
FROM global_markets.cache_stocks_quotes
WHERE ticker IN ('DIA', 'IWM', 'MSFT', 'MU', 'QQQ', 'SNDK', 'SPY', 'STX', 'TSLA', 'WDC')
  AND sip_timestamp >= '2026-07-06 13:30:00' AND sip_timestamp < '2026-07-06 20:00:00'
GROUP BY ticker
ORDER BY ticker

The bid-ask spread is the cost of crossing, in basis points of the mid-price — 1 bp is a penny on a $100 stock. No checked name quoted tighter in the gap's first twelve minutes than midday, and SPY's touch was identical in both (0.27 bps, 0 bps of change) even as it re-quoted 3x faster into the open. The width penalty landed on single names, not index funds: SanDisk paid the most (+12.9 bps, 8.16 to 21.07), MU +3.63, TSLA +2.89, against QQQ's 0.42 bps on a 0.83 bps touch. Seagate answers "isn't everything liquid?": 30.94 bps wide at the open, over a hundred times SPY's touch.

QuerySPY update-weighted average quoted spread: 6 juli gerangschikt tegen de voorgaande maand (rank 1 = tightest)
De exacte SQL achter elk getal
SELECT
    round(anyIf(avg_spread_cents, d = toDate('2026-07-06')), 3) AS jul6_avg_spread_cents,
    arrayCount(x -> x < anyIf(avg_spread_cents, d = toDate('2026-07-06')), groupArrayIf(avg_spread_cents, d != toDate('2026-07-06'))) + 1 AS tightness_rank,
    count() AS sessions_compared,
    round(max(avg_spread_cents), 3) AS widest_session_cents,
    round(avgIf(avg_spread_cents, d != toDate('2026-07-06')), 3) AS other_sessions_avg_cents,
    replaceAll(formatDateTime(min(d), '%M %e, %Y'), '  ', ' ') AS first_session,
    sum(dropped_invalid) AS dropped_invalid_quotes
FROM (
    SELECT toDate(toTimeZone(sip_timestamp, 'America/New_York')) AS d,
           avgIf(toFloat64(ask_price - bid_price), bid_price > 0 AND ask_price >= bid_price) * 100 AS avg_spread_cents,
           countIf(NOT (bid_price > 0 AND ask_price >= bid_price)) AS dropped_invalid
    FROM global_markets.cache_stocks_quotes
    WHERE ticker = 'SPY'
      AND sip_timestamp >= toDateTime('2026-06-04 00:00:00')
      AND sip_timestamp < toDateTime('2026-07-07 00:00:00')
      AND (toHour(sip_timestamp) * 60 + toMinute(sip_timestamp)) BETWEEN 810 AND 1199
    GROUP BY d
)

Across the whole regular day, July 6 was SPY's tightest session of the trailing month: an update-weighted average quoted spread of 1.815 cents, rank 1 of 21 sessions since June 4, 2026, against a month averaging 2.337 cents and reaching 2.865 at its widest. A holiday-thinned quote count still gave the index buyer the cheapest touch on the board.

Rentes: een stabiele curve tijdens het lange weekend

QueryDe Treasury curve: 6 juli vs. print van 2 juli (alleen gepopuleerde maturities)
De exacte SQL achter elk getal
SELECT
    t.1 AS curve_point,
    round(t.2, 2) AS jul6_yield_pct,
    round((t.2 - t.3) * 100) AS session_change_bp
FROM (
    SELECT arrayJoin([
        ('1 month',  toFloat64(d.yield_1_month),  toFloat64(p.yield_1_month)),
        ('3 month',  toFloat64(d.yield_3_month),  toFloat64(p.yield_3_month)),
        ('1 year',   toFloat64(d.yield_1_year),   toFloat64(p.yield_1_year)),
        ('2 year',   toFloat64(d.yield_2_year),   toFloat64(p.yield_2_year)),
        ('5 year',   toFloat64(d.yield_5_year),   toFloat64(p.yield_5_year)),
        ('10 year',  toFloat64(d.yield_10_year),  toFloat64(p.yield_10_year)),
        ('30 year',  toFloat64(d.yield_30_year),  toFloat64(p.yield_30_year)),
        ('2s10s spread', toFloat64(d.yield_10_year - d.yield_2_year), toFloat64(p.yield_10_year - p.yield_2_year))
    ]) AS t
    FROM (SELECT * FROM global_markets.treasury_yields WHERE date = '2026-07-06') AS d,
         (SELECT * FROM global_markets.treasury_yields WHERE date = '2026-07-02') AS p
)

De curve veranderde nauwelijks tijdens het lange weekend. De 10-jarige rente lag op 4.48% en de 2s10s spread op 0.35 procentpunt; beide lagen binnen één of twee basis points van de print van 2 juli. De 3-maandrente was de enige significante beweging met een verandering van 5 basis points.

De kalender achter de dag

Query6 juli corporate calendar en informatieflow in één rij (inclusief reverse-split wall)
De exacte SQL achter elk getal
WITH
    (
        SELECT (count(), uniqExact(publisher))
        FROM global_markets.stocks_news
        WHERE toDate(toTimeZone(published_utc, 'America/New_York')) = '2026-07-06'
    ) AS news,
    (
        SELECT (argMax(t, n), max(n))
        FROM (
            SELECT t, count() AS n
            FROM (
                SELECT arrayJoin(tickers) AS t
                FROM global_markets.stocks_news
                WHERE toDate(toTimeZone(published_utc, 'America/New_York')) = '2026-07-06'
            )
            WHERE t != 'SPCX'
            GROUP BY t
        )
    ) AS top_news
SELECT
    (SELECT count() FROM global_markets.stocks_dividends WHERE ex_dividend_date = '2026-07-06') AS ex_dividend_records,
    (SELECT count() FROM global_markets.stocks_splits WHERE execution_date = '2026-07-06') AS splits_executed,
    (SELECT countIf(toFloat64(split_from) > toFloat64(split_to)) FROM global_markets.stocks_splits WHERE execution_date = '2026-07-06') AS reverse_splits,
    (SELECT countIf(toFloat64(split_to) > toFloat64(split_from)) FROM global_markets.stocks_splits WHERE execution_date = '2026-07-06') AS forward_splits,
    (SELECT count() FROM global_markets.stocks_ipos WHERE listing_date = '2026-07-06') AS ipos_listed,
    (SELECT uniqExact(accession_number) FROM global_markets.stocks_sec_edgar_index WHERE filing_date = '2026-07-06') AS sec_filings,
    (SELECT uniqExactIf(accession_number, form_type = '4') FROM global_markets.stocks_sec_edgar_index WHERE filing_date = '2026-07-06') AS insider_form4_filings,
    (SELECT uniqExactIf(accession_number, form_type = '8-K') FROM global_markets.stocks_sec_edgar_index WHERE filing_date = '2026-07-06') AS filings_8k,
    news.1 AS news_articles,
    news.2 AS news_publishers,
    top_news.1 AS most_covered_ticker,
    top_news.2 AS most_covered_articles

118 dividend records gingen ex-dividend, 15 splits zijn uitgevoerd, 0 nieuwe beursnoteringen zijn binnengekomen en de SEC index registreerde 3161 filings — 1219 Form 4s, 201 8-Ks — een minder omvangrijk overzicht dan de donderdag voor de feestdagen. De nieuwsfeed bevatte 236 artikelen, waarbij de meest besproken naam NVDA was met 25.

De reverse-split muur achter de movers-schermen

14 van de 15 splits waren reverse splits — consolidaties van aandelen, voornamelijk bij prijzen onder de dollar — tegenover 1 forward splits. Een reverse split zet veel oude aandelen om in één aandeel tegen een proportioneel hogere prijs, wat een ongewijzigd scherm rapporteert als een "winst" met drie cijfers terwijl er niets is gewonnen. De volledige muur:

QueryElke split uitgevoerd op 6 juli, met de unadjusted close voor en na (splits zonder regular-session tape worden weggelaten)
De exacte SQL achter elk getal
SELECT
    s.ticker AS ticker,
    toFloat64(s.split_from) AS old_shares,
    toFloat64(s.split_to) AS new_shares,
    round(toFloat64(s.split_from) / toFloat64(s.split_to), 0) AS old_shares_per_new,
    p.prev_close AS jul2_close,
    d.day_close AS jul6_close,
    round((d.day_close / p.prev_close - 1) * 100, 1) AS unadjusted_pct_chg
FROM (
    SELECT ticker, any(split_from) AS split_from, any(split_to) AS split_to
    FROM global_markets.stocks_splits
    WHERE execution_date = '2026-07-06'
    GROUP BY ticker
) s
INNER JOIN (
    SELECT ticker, round(toFloat64(argMax(close, window_start)), 2) AS prev_close
    FROM global_markets.delayed_stocks_minute_aggs
    WHERE window_start >= '2026-07-02 13:30:00' AND window_start < '2026-07-02 20:00:00'
      AND ticker IN (SELECT ticker FROM global_markets.stocks_splits WHERE execution_date = '2026-07-06')
    GROUP BY ticker
    HAVING prev_close > 0
) p ON s.ticker = p.ticker
INNER JOIN (
    SELECT ticker, round(toFloat64(argMax(close, window_start)), 2) AS day_close
    FROM global_markets.delayed_stocks_minute_aggs
    WHERE window_start >= '2026-07-06 13:30:00' AND window_start < '2026-07-06 20:00:00'
      AND ticker IN (SELECT ticker FROM global_markets.stocks_splits WHERE execution_date = '2026-07-06')
    GROUP BY ticker
    HAVING day_close > 0
) d ON s.ticker = d.ticker
ORDER BY unadjusted_pct_chg DESC, ticker ASC

Elke van de 12 rijen is een consolidatie die een "winst" van drie cijfers of meer laat zien op de ruwe tape — van 31450% bovenaan (een 200-voor-1 consolidatie, ongewijzigde slotkoers $0.02 naar $6.31) tot 226.1% bij de kleinste ratio (3-voor-1). Halverwege de tabel staat het duidelijkste voorbeeld: een 10-voor-1 reverse split die de ongewijzigde slotkoers van TXXS veranderde van $2.35 donderdag naar $24.34 maandag — tien oude aandelen die één worden, geen tienmaal zo grote rally. Een screener gebaseerd op ruwe prijsverandering plaatst deze hele tabel boven elke echte mover; onze screener sluit splits uit. De CRWD forward split van donderdag suggereerde het tegenovergestelde, een crash.

De sessie, geverifieerd — de eerste na de pauze

QuerySession check: SPY observed minute-bar span, de slot van 3 juli en de volgende op de kalender
De exacte SQL achter elk getal
SELECT
    formatDateTime(min(toTimeZone(window_start, 'America/New_York')), '%H:%i') AS first_spy_bar_et,
    formatDateTime(max(toTimeZone(window_start, 'America/New_York')), '%H:%i') AS last_spy_bar_et,
    count() AS spy_minute_bars,
    countIf(window_start >= '2026-07-06 13:30:00' AND window_start < '2026-07-06 20:00:00') AS regular_session_bars,
    uniqExactIf(toDate(toTimeZone(window_start, 'America/New_York')), window_start >= '2026-07-06 13:30:00' AND window_start < '2026-07-06 20:00:00') AS day_sessions,
    (SELECT count() FROM global_markets.delayed_stocks_minute_aggs
     WHERE ticker = 'SPY' AND window_start >= '2026-07-03 00:00:00' AND window_start < '2026-07-04 00:00:00') AS jul3_spy_bars,
    (SELECT replaceAll(formatDateTime(min(date), '%M %e, %Y'), '  ', ' ') FROM global_markets.stocks_market_holidays WHERE date > '2026-07-06' AND status = 'closed') AS next_closure_date,
    (SELECT argMin(name, date) FROM global_markets.stocks_market_holidays WHERE date > '2026-07-06' AND status = 'closed') AS next_closure_name
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker = 'SPY' AND window_start >= '2026-07-06 00:00:00' AND window_start < '2026-07-07 00:00:00'

6 juli was een volledige sessie, geen vroege sluiting: de bars van SPY lopen van 04:00 tot 19:59 New Yorkse tijd met exact 390 bars binnen het reguliere venster. De vrijdag daarvoor, 3 juli, leverde 0 SPY bars op — een volledige sluiting vanwege Independence Day, aangezien 4 juli op een zaterdag viel. Volgende sluiting: Labor Day, September 7, 2026. De vier-sessies week voor de pauze is te vinden in het weekoverzicht.

FAQ

Hoe presteerde de aandelenmarkt op 6 juli 2026?

Alle vier de grote index ETF's sloten hoger — QQQ 1.39%, SPY 0.87%, IWM 0.45%, DIA 0.42% — waarbij 62.4% van de liquide namen steeg, grotendeels door een overnight gap.

Welke sector was de koploper op 6 juli 2026?

Technology (XLK) leidde de elf sector ETF's met 1.71%, terwijl de defensieve sector op -1.08% stond — een best-to-worst spread van 2.79 basis points, wat meerdere malen de 0.87% beweging van de S&P tracker was.

Was de aandelenmarkt geopend op Independence Day 2026?

Nee. 4 juli viel op een zaterdag, waardoor de beurzen Independence Day observeerden op vrijdag 3 juli — een sluiting die werd bevestigd door de 0 SPY minute bars die werden geregistreerd. 6 juli was de eerste handelsdag na de pauze.

Waarom lieten sommige aandelen enorme dagelijkse winsten zien op 6 juli?

14 reverse splits werden uitgevoerd. Het consolideren van veel oude aandelen naar één aandeel tegen een proportioneel hogere prijs zorgt ervoor dat een ongewijzigde weergave een "winst" van honderden procenten laat zien, terwijl de waarde van de positie van de houder ongewijzigd blijft — de 12 namen hierboven behoren allemaal tot deze categorie.

Waren de spreads breed bij de gap open?

Alleen bij individuele aandelen. De mediane quoted spread van SPY in de eerste twaalf minuten was 0.27 basis points, identiek aan het niveau rond het middaguur; SanDisk werd 12.9 bps breder gekoteerd dan het middaguur.

Databemerkingen

  • Dollar volume is een proxy per minuut — de som van de koers × volume per minuut-bar.
  • De sector basket is een vastgestelde methode, geen vendor field: de elf grote S&P sector ETF's (XLB, XLC, XLE, XLF, XLI, XLK, XLP, XLRE, XLU, XLV, XLY), elke sessie dezelfde set.
  • Quoted spreads zijn de medianen van (ask − bid) ÷ mid over geldige two-sided quotes; eenzijdige, zero en crossed quotes worden uitgesloten en tellen niet mee in het panel.
  • Eén hergebruikte symbool-notering is uitgesloten van de leaderboards in afwachting van verificatie van de entiteit (ontvangsten).

Methodologie

  • De periode betreft één handelsessie (1 sessie, geverifieerd op basis van geobserveerde bars). Tijdstempels worden in UTC opgeslagen en binnen de queries omgezet naar de tijd van New York. "Close" betekent de laatste minuut-bar van de reguliere sessie; dagveranderingen vergelijken 6 juli met 2 juli — de voorgaande sessie over de sluiting van 3 juli, geverifieerd via bars, nooit aangenomen.
  • Decimalen worden omgezet naar 64-bit floats vóór ratio-berekeningen. Panelen worden eenmalig gelezen tijdens het opstellen via het beveiligde read-only pad.

Elk paneel is een opgeslagen query-resultaat — grafiek, tabel en SQL vormen één object. Plak elk van deze elementen in de Strasmore terminal om ze aan te passen. Vorige sessie: 2 juli. Volgende: 7 juli.