Strasmore Research
Récap des marchés Matt ConnorPar Matt Connor · Mis à jour le 2026-08-02

Récapitulatif marché du 27 juillet 2026

Le 27 juillet 2026 en chiffres : tableau de bord, breadth, spread sectoriel, flux options, cotations, taux et calendrier, avec chaque donnée liée à une requête.

Ce récapitulatif de marché du lundi 27 juillet 2026 couvre toute la séance à partir de requêtes enregistrées : la variation de SPY par rapport à la clôture de vendredi s’est établie à 0.02%, la part des valeurs en hausse sur le marché liquide à 65.4%, et le marché des options a enregistré 64.69 millions de contrats. Chaque période ci-dessous est définie par des dates de début et de fin explicites. Toute réexécution de la requête SQL d’un panneau renvoie donc les mêmes chiffres.

Le tableau de bord

Chaque variation compare la dernière barre d'une minute de la séance régulière du 27 juillet à celle du vendredi 24 juillet, soit deux séances consécutives séparées par un week-end. Les lignes sont classées par ordre alphabétique, afin que chaque ETF conserve une position fixe.

RequêteSPY / QQQ / DIA / IWM : 27 juillet vs clôture du 24 juillet, séance régulière
Le SQL exact derrière chaque chiffre
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-24 13:30:00' AND window_start < '2026-07-24 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-27 13:30:00' AND window_start < '2026-07-27 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
FROM sess s LEFT JOIN prior p ON s.ticker = p.ticker
ORDER BY ticker
Run this yourself

DIA a évolué de 0.49%, IWM de 0.59%, QQQ de -0.32% et SPY de 0.02%, pour clôturer à $739.02. Chaque ligne décompose la variation en deux composantes : SPY a ouvert à 0.82% de la clôture de vendredi, un gap couvrant l'ensemble du week-end, puis a évolué de -0.79% entre l'ouverture et la clôture. Le lundi, la composante overnight couvre en réalité deux jours. La répartition entre cette composante et la composante intraday constitue la première empreinte de la séance.

La séance était-elle inhabituelle ?

Le chiffre d’une seule séance est peu significatif sans connaître sa distribution. La séance est donc classée parmi celles du mois précédent selon la même méthode.

RequêteÉvolution journalière de SPY dans son contexte historique (ouverture-clôture, du 26 juin au 27 juillet)
Le SQL exact derrière chaque chiffre
SELECT
    round(anyIf(oc_pct, d = toDate('2026-07-27')), 2) AS spy_open_to_close_pct,
    arrayCount(x -> x > abs(anyIf(oc_pct, d = toDate('2026-07-27'))), groupArrayIf(abs(oc_pct), d != toDate('2026-07-27'))) + 1 AS spy_abs_move_rank,
    count() AS spy_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-26 13:30:00')
      AND window_start < toDateTime('2026-07-28 00:00:00')
      AND (toHour(window_start) * 60 + toMinute(window_start)) BETWEEN 810 AND 1199
    GROUP BY d
)
Run this yourself

La variation entre l’ouverture et la clôture de SPY, de -0.79%, s’est classée 1 sur 21 séances précédentes en fonction de son amplitude absolue, sur une période remontant jusqu’à 2026-06-26. Le classement correspond au nombre de séances de la période ayant enregistré une variation plus importante, plus un. La première place correspond donc à la plus forte variation du mois précédent.

Participation

Un niveau d’indice est un chiffre unique. La participation mesure combien d’actions ont évolué dans le même sens que lui après le gap du week-end.

RequêteBreadth du marché liquide : clôture du 27 juillet vs clôture du 24 juillet, filtre de 1 M$ échangé
Le SQL exact derrière chaque chiffre
SELECT
    countIf(c27 > c24 AND liquid) AS advancers,
    countIf(c27 < c24 AND liquid) AS decliners,
    countIf(c27 = c24 AND liquid) AS unchanged,
    countIf(liquid) AS liquid_tickers,
    countIf(NOT liquid) AS dropped_by_liquidity_filter,
    round(100.0 * countIf(c27 > c24 AND liquid) / countIf(liquid), 1) AS advancer_pct
FROM (
    SELECT ticker, c24, c27, dv27 >= 1000000 AS liquid
    FROM (
        SELECT ticker,
               argMaxIf(toFloat64(close), window_start, window_start >= '2026-07-24 13:30:00' AND window_start < '2026-07-24 20:00:00') AS c24,
               argMaxIf(toFloat64(close), window_start, window_start >= '2026-07-27 13:30:00' AND window_start < '2026-07-27 20:00:00') AS c27,
               sumIf(toFloat64(close) * toFloat64(volume), window_start >= '2026-07-27 13:30:00') AS dv27
        FROM global_markets.delayed_stocks_minute_aggs
        WHERE window_start >= '2026-07-24 13:30:00' AND window_start < '2026-07-27 20:00:00'
        GROUP BY ticker
        HAVING c24 > 0 AND c27 > 0
    )
)
Run this yourself

Parmi 5935 valeurs ayant dépassé un seuil de turnover de un million de dollars pendant les heures normales de marché, 3880 ont clôturé au-dessus de la clôture de vendredi et 1972 en dessous, soit une proportion de valeurs en hausse de 65.4%. Le filtre a écarté 5336 valeurs moins liquides, comptabilisées ici plutôt que simplement ignorées.

Le compartiment des méga-capitalisations

Les huit mêmes méga-capitalisations apparaissent ici à chaque séance, dans l’ordre alphabétique afin que chacune conserve sa ligne. L’objectif est de disposer d’un panier fixe : le lecteur mémorise les lignes, sans qu’un choix éditorial ne sélectionne après coup les gagnants.

RequêteHuit méga-capitalisations : variation vs 24 juillet et dollars échangés en séance régulière, 27 juillet
Le SQL exact derrière chaque chiffre
WITH per_name AS (
    SELECT
        ticker,
        toFloat64(argMaxIf(close, window_start, window_start < '2026-07-27 00:00:00')) AS prior_close,
        toFloat64(argMaxIf(close, window_start, window_start >= '2026-07-27 00:00:00')) AS day_close,
        round(sumIf(toFloat64(close) * toFloat64(volume), window_start >= '2026-07-27 00:00:00') / 1e9, 2) AS day_dollar_bn
    FROM global_markets.delayed_stocks_minute_aggs
    WHERE ticker IN ('AAPL', 'AMZN', 'AVGO', 'GOOGL', 'META', 'MSFT', 'NVDA', 'TSLA')
      AND ((window_start >= '2026-07-24 13:30:00' AND window_start < '2026-07-24 20:00:00')
        OR (window_start >= '2026-07-27 13:30:00' AND window_start < '2026-07-27 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,
    day_dollar_bn
FROM per_name
ORDER BY ticker
Run this yourself

AAPL a évolué de 1.16%, META de -0.21%, MSFT de 1.94% et NVDA de -5.04%, pour un volume échangé de 25.42 milliards de dollars pendant les heures normales de cotation, tandis que TSLA affichait -1.2%. La colonne en dollars indique la part du flux de transactions portée à elles seules par ces huit valeurs ; le panneau de breadth ci-dessus permet de vérifier dans quelle mesure le reste du marché les a suivies.

Les valeurs les plus mouvementées de la séance

Les deux tableaux exigent un volume de transactions d’au moins cinq millions de dollars pendant les heures normales de marché. Ils excluent toute valeur dont le split a été exécuté entre les deux clôtures mesurées. Ils excluent également un symbole réutilisé en application de la règle interne de désambiguïsation décrite dans les notes.

RequêtePlus fortes hausses et baisses : clôture du 27 juillet vs clôture du 24 juillet, 5 M$+ échangés, splits exclus
Le SQL exact derrière chaque chiffre
SELECT ticker, board, day_pct, day_dollar_m
FROM (
    SELECT 'gainers' AS board, ticker, round((c27 / c24 - 1) * 100, 1) AS day_pct, round(dv / 1e6, 1) AS day_dollar_m
    FROM (
        SELECT ticker,
               argMaxIf(toFloat64(close), window_start, window_start >= '2026-07-24 13:30:00' AND window_start < '2026-07-24 20:00:00') AS c24,
               argMaxIf(toFloat64(close), window_start, window_start >= '2026-07-27 13:30:00' AND window_start < '2026-07-27 20:00:00') AS c27,
               sumIf(toFloat64(close) * toFloat64(volume), window_start >= '2026-07-27 13:30:00') AS dv
        FROM global_markets.delayed_stocks_minute_aggs
        WHERE ticker NOT IN ('SPCX')
          AND ticker NOT IN (SELECT ticker FROM global_markets.stocks_splits WHERE execution_date > '2026-07-24' AND execution_date <= '2026-07-27')
          AND window_start >= '2026-07-24 13:30:00' AND window_start < '2026-07-27 20:00:00'
        GROUP BY ticker
        HAVING c24 > 0 AND c27 > 0 AND dv >= 5000000
    )
    ORDER BY day_pct DESC
    LIMIT 8
    UNION ALL
    SELECT 'decliners' AS board, ticker, round((c27 / c24 - 1) * 100, 1) AS day_pct, round(dv / 1e6, 1) AS day_dollar_m
    FROM (
        SELECT ticker,
               argMaxIf(toFloat64(close), window_start, window_start >= '2026-07-24 13:30:00' AND window_start < '2026-07-24 20:00:00') AS c24,
               argMaxIf(toFloat64(close), window_start, window_start >= '2026-07-27 13:30:00' AND window_start < '2026-07-27 20:00:00') AS c27,
               sumIf(toFloat64(close) * toFloat64(volume), window_start >= '2026-07-27 13:30:00') AS dv
        FROM global_markets.delayed_stocks_minute_aggs
        WHERE ticker NOT IN ('SPCX')
          AND ticker NOT IN (SELECT ticker FROM global_markets.stocks_splits WHERE execution_date > '2026-07-24' AND execution_date <= '2026-07-27')
          AND window_start >= '2026-07-24 13:30:00' AND window_start < '2026-07-27 20:00:00'
        GROUP BY ticker
        HAVING c24 > 0 AND c27 > 0 AND dv >= 5000000
    )
    ORDER BY day_pct ASC
    LIMIT 8
)
ORDER BY board DESC, abs(day_pct) DESC
Run this yourself

La plus forte hausse du tableau concerne DFNS, en progression de 214.9%, avec 486.4 millions de dollars échangés. La plus forte baisse concerne MPLT, en recul de -72.9%, avec 83.3 millions de dollars. Cette page consigne les amplitudes et les données d’exécution, sans leur attribuer de cause.

Dispersion sectorielle

Les onze fonds SPDR Select Sector, classés du meilleur au moins bon selon leur clôture du 27 juillet par rapport à celle du 24 juillet. L’échantillon est défini et fixe. Il ne s’agit pas d’une classification fournie par un vendeur de données.

RequêteETF sectoriels, clôture du 27 juillet vs clôture du 24 juillet, classés
Le SQL exact derrière chaque chiffre
SELECT sector, day_pct, round(max(day_pct) OVER () - day_pct, 2) AS points_behind_best
FROM (
    SELECT multiIf(ticker = 'XLK', 'Technology', ticker = 'XLC', 'Communications', ticker = 'XLE', 'Energy',
                   ticker = 'XLF', 'Financials', ticker = 'XLI', 'Industrials', ticker = 'XLB', 'Materials',
                   ticker = 'XLP', 'Staples', ticker = 'XLRE', 'Real Estate', ticker = 'XLU', 'Utilities',
                   ticker = 'XLV', 'Health Care', 'Consumer Discretionary') AS sector,
           round((c27 / c24 - 1) * 100, 2) AS day_pct
    FROM (
        SELECT ticker,
               argMaxIf(toFloat64(close), window_start, window_start < '2026-07-27 00:00:00') AS c24,
               argMaxIf(toFloat64(close), window_start, window_start >= '2026-07-27 00:00:00') AS c27
        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-24 13:30:00' AND window_start < '2026-07-24 20:00:00')
            OR (window_start >= '2026-07-27 13:30:00' AND window_start < '2026-07-27 20:00:00'))
        GROUP BY ticker
        HAVING c24 > 0 AND c27 > 0
    )
)
ORDER BY day_pct DESC
Run this yourself

Staples arrive en tête à 1.5%, tandis que Energy ferme la marche à -2.06%, soit 3.56 points de pourcentage de moins. Cet écart correspond à la dispersion sectorielle du jour. Un marché où les onze secteurs évoluent dans une fourchette d’un point est très différent d’un marché où les écarts s’étendent sur plusieurs points.

Où les dollars se sont échangés

RequêteTop 6 par dollars échangés, top 4 par titres échangés : séance régulière du 27 juillet
Le SQL exact derrière chaque chiffre
SELECT leaderboard, ticker, dollar_volume_bn, shares_m,
    round(1000 * dollar_volume_bn / shares_m, 2) AS implied_avg_price
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-27 13:30:00' AND window_start < '2026-07-27 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-27 13:30:00' AND window_start < '2026-07-27 20:00:00'
      AND ticker NOT IN ('SPCX')
    GROUP BY ticker
    ORDER BY shares_m DESC
    LIMIT 4
)
ORDER BY leaderboard, if(leaderboard = 'by shares traded', shares_m, dollar_volume_bn) DESC
Run this yourself

MU a dominé le classement en dollars, avec 35.71 milliards de dollars de transactions sur les heures normales de marché, devant SPY avec 27.03 milliards. Le classement en nombre d’actions répond à une autre question : KIDZ arrive en tête avec 198.3 millions d’actions, pour un prix moyen implicite de $0.66. Le volume en dollars indique où se porte l’attention du marché, tandis que le volume en actions mesure la rotation des titres. À l’échelle d’une valeur, cette mesure est le volume relatif.

Le flux des options

RequêteFlux options : contrats, part des calls, part du jour vs vendredi, contrat SPY le plus actif
Le SQL exact derrière chaque chiffre
WITH
    (
        SELECT (strike, typ, vol_m, is_0dte)
        FROM (
            SELECT toFloat64(any(strike_price)) AS strike, any(option_type) AS typ,
                   round(toFloat64(sum(size)) / 1e6, 2) AS vol_m,
                   if(substring(ticker, length(ticker) - 14, 6) = '260727', 1, 0) AS is_0dte
            FROM global_markets.options_trades
            WHERE sip_timestamp >= '2026-07-27 00:00:00' AND sip_timestamp < '2026-07-28 00:00:00'
              AND underlying_symbol = 'SPY'
            GROUP BY ticker
            ORDER BY vol_m DESC, strike ASC
            LIMIT 1
        )
    ) AS top_spy,
    (
        SELECT round(toFloat64(argMax(close, window_start)), 2)
        FROM global_markets.delayed_stocks_minute_aggs
        WHERE ticker = 'SPY' AND window_start >= '2026-07-27 13:30:00' AND window_start < '2026-07-27 20:00:00'
    ) AS spy_regular_close,
    (
        SELECT round(toFloat64(sum(size)) / 1e6, 2)
        FROM global_markets.options_trades
        WHERE sip_timestamp >= '2026-07-24 00:00:00' AND sip_timestamp < '2026-07-25 00:00:00'
    ) AS jul24_contracts_m,
    (
        SELECT round(100.0 * sumIf(size, substring(ticker, length(ticker) - 14, 6) = '260724') / sum(size), 1)
        FROM global_markets.options_trades
        WHERE sip_timestamp >= '2026-07-24 00:00:00' AND sip_timestamp < '2026-07-25 00:00:00'
    ) AS jul24_pct_0dte
SELECT
    round(count() / 1e6, 2) AS option_prints_m,
    round(toFloat64(sum(size)) / 1e6, 2) AS contracts_m,
    jul24_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) = '260727') / sum(size), 1) AS pct_0dte,
    jul24_pct_0dte,
    spy_regular_close,
    top_spy.1 AS top_spy_strike,
    top_spy.2 AS top_spy_type,
    top_spy.3 AS top_spy_contracts_m,
    top_spy.4 AS top_spy_is_0dte,
    round(top_spy.1 - spy_regular_close, 2) AS top_spy_strike_minus_close
FROM global_markets.options_trades
WHERE sip_timestamp >= '2026-07-27 00:00:00' AND sip_timestamp < '2026-07-28 00:00:00'
Run this yourself

Le flux des options a enregistré 11.07 millions de transactions, portant sur 64.69 millions de contrats, contre 71.14 millions vendredi. Les calls ont représenté 55.1% du volume des contrats. Les contrats arrivant à expiration lors de la même séance, le segment des options arrivant à expiration le jour même, ont représenté 39.3%, contre 49% vendredi. Ce rythme dépend du calendrier des expirations. Le contrat SPY le plus actif était le 740 C, avec 0.59 millions de contrats. Son strike était éloigné de 0.98 dollars du cours de clôture régulier de SPY à $739.02, selon la différence entre le strike et le cours de clôture.

Le flux des cotations

Les données de cotation constituent le jeu de données le plus rare de cette équipe, et elles sont mesurées à chaque séance. Les séances ordinaires sont également consignées.

RequêteNombre de mises à jour NBBO des actions : 27 juillet vs 24 juillet, avec mises à jour par ticker (millions)
Le SQL exact derrière chaque chiffre
SELECT
    round(countIf(toDate(sip_timestamp) = toDate('2026-07-27')) / 1e6, 2) AS jul27_updates_m,
    round(countIf(toDate(sip_timestamp) = toDate('2026-07-24')) / 1e6, 2) AS jul24_updates_m,
    round((countIf(toDate(sip_timestamp) = toDate('2026-07-27')) / countIf(toDate(sip_timestamp) = toDate('2026-07-24')) - 1) * 100, 1) AS session_over_session_pct,
    round(countIf(toDate(sip_timestamp) = toDate('2026-07-27') AND ticker = 'SPY') / 1e6, 2) AS jul27_spy_updates_m,
    round(countIf(toDate(sip_timestamp) = toDate('2026-07-27') AND ticker = 'QQQ') / 1e6, 2) AS jul27_qqq_updates_m,
    round(countIf(toDate(sip_timestamp) = toDate('2026-07-27') AND ticker = 'NVDA') / 1e6, 2) AS jul27_nvda_updates_m
FROM global_markets.cache_stocks_quotes
WHERE sip_timestamp >= '2026-07-24 00:00:00' AND sip_timestamp < '2026-07-28 00:00:00'
Run this yourself

Le flux des cotations actions a enregistré 553.53 millions de mises à jour du NBBO, contre 500.88 millions vendredi, soit une variation d'une séance sur l'autre de 10.5%. SPY a enregistré 4.84 millions de mises à jour, QQQ 6.78 millions et NVDA 2.93 millions.

RequêteSept valeurs : spread coté médian en séance régulière, en points de base, avec volumes de cotations, 27 juillet
Le SQL exact derrière chaque chiffre
SELECT ticker,
       round(quantileExactIf(0.5)(10000 * (toFloat64(ask_price) - toFloat64(bid_price)) / ((toFloat64(ask_price) + toFloat64(bid_price)) / 2), bid_price > 0 AND ask_price > 0 AND ask_price >= bid_price), 2) AS median_spread_bps,
       round(count() / 1e6, 2) AS quote_updates_m,
       countIf(bid_price <= 0 OR ask_price <= 0) AS one_sided_quote_count,
       countIf(bid_price > ask_price AND bid_price > 0 AND ask_price > 0) AS crossed_quote_count
FROM global_markets.cache_stocks_quotes
WHERE ticker IN ('AAPL', 'DIA', 'IWM', 'NVDA', 'QQQ', 'SPY', 'TSLA')
  AND sip_timestamp >= '2026-07-27 13:30:00' AND sip_timestamp < '2026-07-27 20:00:00'
GROUP BY ticker
HAVING countIf(bid_price > 0 AND ask_price > 0 AND ask_price >= bid_price) > 0
ORDER BY ticker
Run this yourself

Pendant les heures normales de cotation, le spread médian coté sur SPY représentait 0.27 points de base du mid, contre 0.59 pour QQQ et 1.02 pour NVDA. Les deux dernières colonnes correspondent à la divulgation des données : les cotations à un seul côté et les cotations croisées sont comptabilisées pour chaque valeur et exclues du calcul de la médiane, plutôt que supprimées discrètement. Une cotation croisée, avec un bid supérieur à l'ask, est un artefact courant d'un flux consolidé assemblé à partir de nombreuses places de cotation à une résolution de l'ordre de la nanoseconde.

RequêteSpread médian de SPY classé parmi toutes les séances de juillet jusqu'au 27, du plus serré au plus large
Le SQL exact derrière chaque chiffre
SELECT round(anyIf(spread_bps, d = toDate('2026-07-27')), 2) AS jul27_median_spread_bps,
       arrayCount(x -> x < anyIf(spread_bps, d = toDate('2026-07-27')), groupArrayIf(spread_bps, d != toDate('2026-07-27'))) + 1 AS rank_tightest,
       count() AS sessions_compared,
       toString(min(d)) AS first_session
FROM (
    SELECT toDate(sip_timestamp) AS d,
           quantileExactIf(0.5)(10000 * (toFloat64(ask_price) - toFloat64(bid_price)) / ((toFloat64(ask_price) + toFloat64(bid_price)) / 2), bid_price > 0 AND ask_price > 0 AND ask_price >= bid_price) AS spread_bps
    FROM global_markets.cache_stocks_quotes
    WHERE ticker = 'SPY'
      AND sip_timestamp >= '2026-07-01 13:30:00' AND sip_timestamp < '2026-07-27 20:00:00'
      AND (toHour(sip_timestamp) * 60 + toMinute(sip_timestamp)) BETWEEN 810 AND 1199
    GROUP BY d
    HAVING countIf(bid_price > 0 AND ask_price > 0 AND ask_price >= bid_price) > 0
)
Run this yourself

Comparé à toutes les séances de juillet selon la même méthode, le spread médian de SPY, de 0.27 points de base, se situait à 18 de 18, en partant du spread le plus étroit, sur une période commençant le 2026-07-01. Sur un flux calme, c'est l'objectif de ce panneau : une journée ordinaire pour la liquidité constitue un résultat, publié et encadré.

RequêteNBBO des options : mises à jour totales vs actions, plus segment du root SPY, 27 juillet
Le SQL exact derrière chaque chiffre
WITH
    (SELECT count() FROM global_markets.cache_options_quotes WHERE sip_timestamp >= '2026-07-27 00:00:00' AND sip_timestamp < '2026-07-28 00:00:00') AS jul27_options_rows,
    (SELECT count() FROM global_markets.cache_stocks_quotes WHERE sip_timestamp >= '2026-07-27 00:00:00' AND sip_timestamp < '2026-07-28 00:00:00') AS jul27_stock_quote_rows
SELECT
    round(jul27_options_rows / 1e9, 2) AS jul27_options_bn,
    round(jul27_options_rows / jul27_stock_quote_rows, 1) AS options_to_stock_ratio,
    round((SELECT count() FROM global_markets.cache_options_quotes WHERE ticker >= 'O:SPY26' AND ticker < 'O:SPY27' AND sip_timestamp >= '2026-07-27 13:30:00' AND sip_timestamp < '2026-07-27 20:00:00') / 1e6, 0) AS jul27_spy_options_m
Run this yourself

Le flux NBBO des options a enregistré 10.38 milliards de mises à jour, soit 18.8 fois le volume du flux des cotations actions, dont 440 millions de mises à jour pendant les heures normales de cotation pour la seule racine SPY.

Taux

RequêteCotations de la courbe des Treasuries enregistrées, du 22 au 27 juillet
Le SQL exact derrière chaque chiffre
SELECT toString(date) AS date,
       round(toFloat64(yield_2_year), 2) AS yield_2y_pct,
       round(toFloat64(yield_10_year), 2) AS yield_10y_pct,
       round(toFloat64(yield_30_year), 2) AS yield_30y_pct,
       round((toFloat64(yield_10_year) - toFloat64(yield_2_year)) * 100) AS spread_2s10s_bp
FROM global_markets.treasury_yields
WHERE date >= '2026-07-22' AND date <= '2026-07-27'
ORDER BY date
Run this yourself

Les données du Trésor accusent environ une séance de retard sur le marché. Ce panneau présente donc les transactions qu’elles contiennent : 4 lignes datées sur la période du 22 au 27 juillet. Les dernières, datées du 2026-07-27, plaçaient le taux à deux ans à 4.31%, celui à dix ans à 4.65% et celui à trente ans à 5.12%, soit un spread entre les taux à deux et à dix ans de 34 points de base.

Le calendrier de la séance

RequêteDétachements de dividendes, splits, cotations, actualités et publications SEC du 27 juillet
Le SQL exact derrière chaque chiffre
WITH
    (
        SELECT (argMax(t, (n, t)), max(n))
        FROM (
            SELECT t, count() AS n
            FROM (
                SELECT arrayJoin(tickers) AS t
                FROM global_markets.stocks_news
                WHERE published_utc >= '2026-07-27 04:00:00' AND published_utc < '2026-07-28 04:00:00'
            )
            WHERE t != 'SPCX'
            GROUP BY t
        )
    ) AS top_news,
    (
        SELECT (count(), uniqExact(cik), countIf(form_type = '4'), countIf(form_type = '8-K'), countIf(form_type = '424B2'), countIf(form_type = '10-Q'))
        FROM global_markets.stocks_sec_edgar_index
        WHERE filing_date = '2026-07-27'
    ) AS fil
SELECT
    (SELECT count() FROM global_markets.stocks_dividends WHERE ex_dividend_date = '2026-07-27') AS ex_dividend_records,
    (SELECT countIf(toFloat64(split_from) > toFloat64(split_to)) FROM global_markets.stocks_splits WHERE execution_date = '2026-07-27') AS reverse_splits,
    (SELECT countIf(toFloat64(split_to) > toFloat64(split_from)) FROM global_markets.stocks_splits WHERE execution_date = '2026-07-27') AS forward_splits,
    (SELECT count() FROM global_markets.stocks_ipos WHERE listing_date = '2026-07-27') AS listings,
    (SELECT count() FROM global_markets.stocks_news WHERE published_utc >= '2026-07-27 04:00:00' AND published_utc < '2026-07-28 04:00:00') AS news_articles,
    (SELECT uniqExact(JSONExtractString(publisher, 'name')) FROM global_markets.stocks_news WHERE published_utc >= '2026-07-27 04:00:00' AND published_utc < '2026-07-28 04:00:00') AS news_publishers,
    top_news.1 AS top_news_ticker,
    top_news.2 AS top_news_n,
    fil.1 AS fil_total,
    fil.2 AS fil_filers,
    fil.3 AS fil_form4,
    fil.4 AS fil_8k,
    fil.5 AS fil_424b2,
    fil.6 AS fil_10q
Run this yourself

91 dossiers de dividendes sont passés ex-dividend le 27 juillet, 7 reverse splits et 1 forward splits ont été exécutés, et 0 nouvelles valeurs ont fait leur entrée sur le marché. Le fil d’actualité comptait 166 articles provenant de 2 éditeurs, dont MSFT le ticker le plus couvert dans la fenêtre de ce fil, avec 12 articles. L’index quotidien EDGAR recense 3997 dépôts pour cette date, provenant de 2163 déclarants distincts : 587 rapports d’initiés au titre du Form 4, 226 rapports courants 8-K, 555 suppléments de tarification 424B2 et 23 rapports trimestriels 10-Q. Cet index est publié selon son propre calendrier. Ce panneau présente les données disponibles au moment de sa génération.

À l’ordre du jour

Pour le reste de la semaine, du mardi 28 juillet au vendredi 31 juillet, les données proviennent des mêmes tableaux et l’analyse regarde volontairement au-delà de la période.

RequêteDu 28 au 31 juillet au calendrier : fermetures, détachements de dividendes, splits, échéance du vendredi et décalage de l'open interest short
Le SQL exact derrière chaque chiffre
SELECT
    (SELECT count() FROM global_markets.stocks_market_holidays WHERE date >= '2026-07-28' AND date <= '2026-07-31' AND status != 'open') AS closures_rest_of_week,
    (SELECT count() FROM global_markets.stocks_dividends WHERE ex_dividend_date >= '2026-07-28' AND ex_dividend_date <= '2026-07-31') AS exdiv_records_rest_of_week,
    (SELECT countIf(ticker IN ('AAPL', 'MSFT', 'JPM', 'KO', 'JNJ', 'XOM', 'CVX', 'PG', 'WMT', 'HD')) FROM global_markets.stocks_dividends WHERE ex_dividend_date >= '2026-07-28' AND ex_dividend_date <= '2026-07-31') AS household_exdivs,
    (SELECT count() FROM global_markets.stocks_splits WHERE execution_date >= '2026-07-28' AND execution_date <= '2026-07-31') AS splits_rest_of_week,
    round(100.0 * sumIf(size, substring(ticker, length(ticker) - 14, 6) = '260731') / sum(size), 1) AS jul31_expiry_pct_of_mon_volume,
    (SELECT toString(max(settlement_date)) FROM global_markets.stocks_short_interest WHERE settlement_date <= '2026-07-27') AS latest_short_interest_settlement
FROM global_markets.options_trades
WHERE sip_timestamp >= '2026-07-27 00:00:00' AND sip_timestamp < '2026-07-28 00:00:00'
Run this yourself

Le tableau des jours fériés fait apparaître 0 fermetures au cours des quatre séances restantes de la semaine. 843 dividendes deviennent ex-dividende au cours de ces séances, dont 0 parmi dix grandes valeurs de consommation suivies, et 18 splits doivent être exécutés. Sur le volume d’options de lundi, 17.1% concernait déjà des contrats arrivant à échéance le vendredi 31 juillet. La donnée la plus récente sur les positions short est 2026-07-15, un fichier publié avec un décalage suffisant pour justifier une explication dédiée.

La séance, vérifiée

RequêteVérification de la séance : première/dernière barre SPY en ET, nombre de barres régulières, justificatifs de jours fériés, prochaine fermeture
Le SQL exact derrière chaque chiffre
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,
    countIf(window_start >= '2026-07-27 13:30:00' AND window_start < '2026-07-27 20:00:00') AS regular_session_bars,
    uniqExactIf(toDate(toTimeZone(window_start, 'America/New_York')), window_start >= '2026-07-27 13:30:00' AND window_start < '2026-07-27 20:00:00') AS day_sessions,
    (SELECT count() FROM global_markets.stocks_market_holidays WHERE date = '2026-07-27') AS jul27_holiday_rows,
    (SELECT toString(min(date)) FROM global_markets.stocks_market_holidays WHERE date > '2026-07-27' AND date <= '2026-12-31' AND status = 'closed') AS next_closure_date,
    (SELECT argMin(name, date) FROM global_markets.stocks_market_holidays WHERE date > '2026-07-27' AND date <= '2026-12-31' AND status = 'closed') AS next_closure_name
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker = 'SPY' AND window_start >= '2026-07-27 00:00:00' AND window_start < '2026-07-28 00:00:00'
Run this yourself

Une séance complète en horaires réguliers : première bougie SPY à 04:00 ET, dernière à 19:59 ET, 390 bougies pendant les heures régulières, 1 séance dans la fenêtre et 0 jours fériés pour la date. La prochaine fermeture programmée est Labor Day le 2026-09-07.

FAQ

Comment la Bourse s’est-elle comportée le lundi 27 juillet 2026 ?

SPY a évolué de 0.02% par rapport à la clôture de vendredi, à $739.02, tandis que QQQ s’établissait à -0.32%, DIA à 0.49% et IWM à 0.59%. Parmi les valeurs liquides, 3880 a progressé et 1972 a reculé.

Quel secteur a dominé le classement le 27 juillet 2026 ?

Staples, à 1.5%, sur la base des onze fonds SPDR de sélection sectorielle. Le moins performant des onze, Energy, a affiché -2.06%.

Quelle a été l’activité sur le marché des options le 27 juillet 2026 ?

64.69 millions de contrats ont été négociés, contre 71.14 millions lors de la séance précédente. Les contrats arrivant à échéance le jour même ont représenté 39.3% du volume et les calls 55.1%.

Quelle action a généré le plus important volume en dollars le 27 juillet 2026 ?

MU, avec 35.71 milliards de dollars de volume pendant les heures normales de marché, devant SPY à 27.03 milliards.

Notes sur les données

Cette édition complète une séance du lundi dans la série quotidienne reprise, publiée le 1er août. L’édition quotidienne précédente par date de séance est 10 juillet 2026, l’édition du 29 juillet couvre le mercredi de cette même semaine, et le récapitulatif hebdomadaire couvre la semaine terminée le vendredi 24 juillet, la séance de référence de toutes les comparaisons présentées ici. Les panneaux nommés par ticker sont classés par ordre alphabétique afin que les renvois dans le texte correspondent à des lignes fixes ; les classements et tableaux des mouvements sont ordonnés par valeur, et toute affirmation de position qu’ils contiennent est encodée sous forme de borne de contrôle. Le panier de méga-capitalisations et le panier sectoriel de eleven fonds sont des ensembles définis et fixes, et non des classifications de fournisseurs. Les tableaux des mouvements appliquent un seuil de turnover de five million dollars pendant les heures normales, excluent tout titre dont le split a été exécuté entre les deux clôtures mesurées et excluent un symbole réutilisé en vertu du contrôle d’ambiguïté interne ; un commentaire renvoie ainsi toujours à un titre vérifiable. Toutes les variations d’une clôture à l’autre couvrent ici le week-end, du vendredi 24 juillet au lundi 27 juillet, et la colonne des écarts du scoreboard couvre l’ensemble de cette période. Les panneaux de cotations comptabilisent les cotations unilatérales et croisées pour chaque titre, au lieu de les supprimer silencieusement. Le fichier du Trésor et l’index quotidien d’EDGAR sont publiés selon leurs propres calendriers ; ces panneaux indiquent donc les données disponibles, sans supposer qu’elles ont été reçues. Aucun indice de volatilité implicite n’apparaît ici : ces séries ne sont pas couvertes par la licence de cet entrepôt de données. La volatilité est donc évaluée à partir du tape, au moyen des fourchettes, de la part des options du jour et du comportement des cotations.

Méthodologie

  • Source des données de marché : consolidated tape. delayed_stocks_minute_aggs pour les prix et les volumes, options_trades pour le flux des options, cache_stocks_quotes et cache_options_quotes pour les panneaux NBBO.
  • Clôture : dernière barre d’une minute de la séance régulière, jamais un print supposé de 16 h et jamais un print des échanges en dehors des heures normales.
  • Gestion du fuseau horaire : tous les horodatages stockés sont en UTC ; les clauses WHERE utilisent des littéraux UTC bruts, et toTimeZone apparaît uniquement dans les listes SELECT pour les libellés ET.
  • Vérification de la séance : à partir de la table des jours fériés et des barres observées, jamais à partir d’une hypothèse fondée sur le calendrier.
  • Comparaisons avec la séance précédente : calculées dans la requête à partir du vendredi 24 juillet, la séance précédente après le week-end, et jamais reprises d’un article antérieur.
  • Décimales : les colonnes de prix, de taille et de volume sont converties en Float64 avant toute division ou multiplication.
  • Agrégats déterministes : quantiles exacts et départages par clés de tuple partout ; chaque affirmation d’ordre ou de signe dans le texte est encadrée par une borne de contrôle.
  • Date d’extraction de l’entrepôt : 1er août 2026, cinq jours après la séance, au-delà du délai habituel d’ingestion du flux, d’un à deux jours ; les justificatifs bornés ci-dessus maintiennent l’article en ligne si un jeu de données est absent au moment de la génération.

Liens connexes : le récapitulatif quotidien précédent, l’édition du 29 juillet, le récapitulatif hebdomadaire, la date d’expiration des options, la définition d’un bid-ask spread, et le spread à deux-dix ans.

Chaque requête ci-dessus s’exécute sans modification sur le terminal Strasmore si vous souhaitez redéfinir une fenêtre sur une autre séance.