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

Bilan du marché du 1er juillet 2026 en chiffres

Le second semestre débute calmement pour les indices, mais violemment sous la surface : la mémoire chute, META bondit et la plupart des secteurs du S&P terminent dans le vert.

Mercredi 1er juillet 2026, première séance du second semestre, a placé l’une des journées les plus calmes du mois pour les indices au sommet d’un marché particulièrement violent. Le SPY a clôturé à -0.08% et le QQQ à -1.44%, tandis que le compartiment de la mémoire qui avait porté le deuxième trimestre a perdu un dixième de sa valeur, que META a bondi de 8.88%, et que 7 des 11 fonds sectoriels du S&P ont tout de même terminé dans le vert. Séance précédente : 30 juin.

Le tableau de bord

Les variations comparent la dernière barre de la séance régulière du 1er juillet à celle du mardi 30 juin.

RequêteSPY / QQQ / DIA / IWM : 1er juillet vs clôture du 30 juin, heures normales
tickerclôture précédenteouverture du jourclôture du jourvariation (%)plus haut du jourplus bas du jouractions échangées (m)
DIA522.28521.43522.410.02526.72519.623.2
IWM300.42299.93299.31-0.37302.72298.9218.3
QQQ735.76729.19725.16-1.44731.92724.634.7
SPY746.32745745.69-0.08749.44742.3837.2
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-06-30 13:30:00' AND window_start < '2026-06-30 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-01 13:30:00' AND window_start < '2026-07-01 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_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
Essayez cette requête

La divergence est le fait marquant : le DIA à 0.02% et le SPY à -0.08% sont restés stables, tandis que le QQQ à -1.44% et l’IWM à -0.37% ont reculé. Le repli des valeurs de croissance a à peine affecté le marché dans son ensemble.

L’une des séances les plus calmes du dernier mois

RequêteVariation ouverture-clôture de SPY classée sur le mois glissant de séances (rang 1 = plus forte variation absolue)
variation du jour (%)rang de la variation absolueséances comparéespremière séance
0.0920222026-06-01
Le SQL exact derrière chaque chiffre
SELECT round(anyIf(oc_pct, d = toDate('2026-07-01')), 2) AS day_move_pct,
       arrayCount(x -> x > abs(anyIf(oc_pct, d = toDate('2026-07-01'))), groupArrayIf(abs(oc_pct), d != toDate('2026-07-01'))) + 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-01 00:00:00')
      AND window_start < toDateTime('2026-07-02 00:00:00')
      AND (toHour(window_start) * 60 + toMinute(window_start)) BETWEEN 810 AND 1199
    GROUP BY d
)
Essayez cette requête

Entre l’ouverture et la clôture de la séance, sous un angle différent du classement clôture-sur-clôture, le SPY a évolué de 0.09% : rang 20 sur 22 séances récentes selon l’amplitude absolue, seules deux ayant moins bougé. Le complexe de la volatilité confirme cette lecture. Cette base ne contient pas l’indice VIX au comptant. La vérification porte donc sur les fonds investis dans les futures sur le VIX cotés en Bourse, l’indicateur négociable le plus proche du prix de la protection :

RequêteLe complexe de volatilité au 1er juillet : ETF sur futures du VIX vs clôture de mardi, avec SPY comme référence
tickerclôture précédenteclôture du jourvariation (%)amplitude (%)
SPY746.32745.69-0.080.95
SVXY57.2557.01-0.421.19
UVXY24.8725.151.133.68
VIXY21.321.470.82.38
VXX22.1122.270.722.45
Le SQL exact derrière chaque chiffre
WITH per_name AS (
    SELECT
        ticker,
        toFloat64(argMaxIf(close, window_start, window_start < '2026-07-01 00:00:00')) AS prior_close,
        toFloat64(argMaxIf(close, window_start, window_start >= '2026-07-01 00:00:00')) AS day_close,
        maxIf(toFloat64(high), window_start >= '2026-07-01 00:00:00') AS day_high,
        minIf(toFloat64(low), window_start >= '2026-07-01 00:00:00') AS day_low
    FROM global_markets.delayed_stocks_minute_aggs
    WHERE ticker IN ('SPY', 'SVXY', 'UVXY', 'VIXY', 'VXX')
      AND ((window_start >= '2026-06-30 13:30:00' AND window_start < '2026-06-30 20:00:00')
        OR (window_start >= '2026-07-01 13:30:00' AND window_start < '2026-07-01 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 / day_low - 1) * 100, 2) AS range_pct
FROM per_name
ORDER BY ticker
Essayez cette requête

VXX, le plus grand fonds investi sur les futures sur le VIX du premier mois, a progressé de 0.72% ; VIXY de 0.8% ; l’UVXY à effet de levier de 1.13% sur une fourchette de 3.68% ; le SVXY inverse de -0.42%. Des écarts d’arrondi comparés aux mouvements des actions individuelles.

Largeur de marché : davantage de baisses que de hausses, mais davantage de nouveaux plus-hauts que de nouveaux plus-bas

RequêteValeurs en hausse, en baisse et nouveaux plus-hauts vs plus-bas trimestriels parmi les tickers ayant traité au moins 1 M$ le 1er juillet
valeurs en haussevaleurs en baisseinchangéespart des valeurs en hausse (%)nouveaux plus hauts trimestrielsnouveaux plus bas trimestrielsplus hauts par plus basvaleurs avec un trimestre complettickers liquidestickers négociés lors des deux séancesexclus par le filtre de liquiditéexclus pour historique trimestriel insuffisant
292834658245.28362463.462176475119105435258
Le SQL exact derrière chaque chiffre
WITH per_ticker AS (
    SELECT
        ticker,
        toFloat64(argMaxIf(close, window_start, window_start < '2026-07-01 00:00:00')) AS prior_close,
        toFloat64(argMaxIf(close, window_start, window_start >= '2026-07-01 00:00:00')) AS day_close,
        maxIf(toFloat64(high), window_start < '2026-07-01 00:00:00') AS quarter_high,
        minIf(toFloat64(low), window_start < '2026-07-01 00:00:00') AS quarter_low,
        maxIf(toFloat64(high), window_start >= '2026-07-01 00:00:00') AS day_high,
        minIf(toFloat64(low), window_start >= '2026-07-01 00:00:00') AS day_low,
        sumIf(toFloat64(close) * toFloat64(volume), window_start >= '2026-07-01 00:00:00') AS day_dollar_volume,
        countIf(window_start < '2026-07-01 00:00:00') AS quarter_bars
    FROM global_markets.delayed_stocks_minute_aggs
    WHERE ((window_start >= '2026-04-01 13:30:00' AND window_start < '2026-06-30 20:00:00')
        OR (window_start >= '2026-07-01 13:30:00' AND window_start < '2026-07-01 20:00:00'))
      AND (toHour(window_start) * 60 + toMinute(window_start)) BETWEEN 810 AND 1199
    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,
    round(100.0 * countIf(day_close > prior_close AND day_dollar_volume >= 1000000)
        / countIf(day_dollar_volume >= 1000000), 1) AS advancer_pct,
    countIf(day_dollar_volume >= 1000000 AND quarter_bars >= 1000 AND day_high > quarter_high) AS new_quarter_highs,
    countIf(day_dollar_volume >= 1000000 AND quarter_bars >= 1000 AND day_low < quarter_low) AS new_quarter_lows,
    round(countIf(day_dollar_volume >= 1000000 AND quarter_bars >= 1000 AND day_high > quarter_high)
        / countIf(day_dollar_volume >= 1000000 AND quarter_bars >= 1000 AND day_low < quarter_low), 1) AS highs_per_low,
    countIf(day_dollar_volume >= 1000000 AND quarter_bars >= 1000) AS names_with_a_full_quarter,
    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,
    countIf(day_dollar_volume >= 1000000 AND quarter_bars < 1000) AS dropped_short_quarter_history
FROM per_ticker
WHERE prior_close > 0 AND day_close > 0
Essayez cette requête

2928 valeurs en hausse, 3465 en baisse, 82 inchangées, 45.2% du marché liquide a progressé. Mais l’ampleur ne dit rien de la sévérité : par rapport à la fourchette des heures normales du deuxième trimestre, 836 des 6217 valeurs disposant d’un trimestre complet de cotation ont inscrit un nouveau plus-haut trimestriel lors de cette séance rouge, contre 246 inscrivant un nouveau plus-bas, soit 3.4 nouveaux plus-hauts par nouveau plus-bas. La plupart ont légèrement reculé ; rares sont celles qui ont cassé leur fourchette. Baisses : 5435 des tickers à deux sessions retenus avec un seuil de 1 million de dollars, 11910 valeurs liquides sans trimestre complet de barres, 258.

Le tableau des secteurs : les dégâts se sont limités à un seul secteur

Les onze ETF sectoriels SPDR constituent la coupe transversale la moins coûteuse de l’ensemble du marché, avec le même panier à chaque séance.

RequêteLes onze ETF sectoriels du S&P au 1er juillet, du meilleur au moins bon vs clôture de mardi
tickerclôture précédenteclôture du jourvariation (%)écart (%) au-dessus du secteur le moins performanten hausse à ce stadevolume en dollars du jour (mds)
XLC107.16109.742.414.9711.46
XLF53.6154.792.24.7622.35
XLY117.27118.070.683.2431.02
XLV158.67159.570.573.1341.48
XLRE44.0244.180.362.9350.33
XLB50.84510.312.8860.63
XLP83.0883.330.32.8670.85
XLE53.1452.82-0.61.9671.66
XLI185.22183.41-0.981.5971.35
XLU45.3444.76-1.281.2871.17
XLK190.42185.54-2.56071.7
Le SQL exact derrière chaque chiffre
WITH per_name AS (
    SELECT
        ticker,
        toFloat64(argMaxIf(close, window_start, window_start < '2026-07-01 00:00:00')) AS prior_close,
        toFloat64(argMaxIf(close, window_start, window_start >= '2026-07-01 00:00:00')) AS day_close,
        round(sumIf(toFloat64(close) * toFloat64(volume), window_start >= '2026-07-01 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-06-30 13:30:00' AND window_start < '2026-06-30 20:00:00')
        OR (window_start >= '2026-07-01 13:30:00' AND window_start < '2026-07-01 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_close / prior_close - 1) * 100 - min((day_close / prior_close - 1) * 100) OVER (), 2) AS pct_above_worst_sector,
    sum(if(day_close > prior_close, 1, 0)) OVER (ORDER BY (day_close / prior_close) DESC ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) AS green_so_far,
    day_dollar_bn
FROM per_name
ORDER BY pct_chg DESC
Essayez cette requête

Les services de communication (XLC), le fonds sectoriel qui détient META, ont mené à 2.41%, tandis que les financières (XLF) fermaient la marche à 2.2%. La technologie (XLK) était seule en bas du classement, à -2.56% et 4.97 points de pourcentage sous le leader. Au total, 7 des 11 fonds ont clôturé dans le vert : la consommation discrétionnaire à 0.68% et la santé à 0.57%, contre les services aux collectivités (-1.28%), les industrielles (-0.98%) et l’énergie (-0.6%) dans le rouge. C’est ce que signifie « l’indice a à peine bougé » quand on regarde sous la surface.

Le point marquant de la séance : la mémoire a décroché, META a pris le chemin inverse

Huit valeurs ont porté la dispersion : les quatre valeurs de la mémoire et du stockage qui avaient mené le deuxième trimestre, ainsi que quatre valeurs des semiconducteurs et des plateformes qui leur sont associées. La co-mobilité, l’ampleur et le calendrier sont documentés ; les données n’expliquent pas les raisons.

RequêteLe complexe des mémoires et les mégacapitalisations : variation vs clôture de mardi, horaires des plus-hauts et plus-bas, et volume en dollars
tickerclôture précédenteclôture du jourvariation (%)plus haut du jour (ET)plus bas du jour (ET)minute du plus bas (ET)amplitude (%)volume en dollars du jour (mds)
AMD580.82540.89-6.8709:5115:579574.7112
META562.94612.928.8811:0509:305705.5822.72
MRVL297.79271.95-8.6810:0815:589587.87.14
MU1151.011033.29-10.2309:4815:599596.2842.94
NVDA199.76197.58-1.0915:0909:335733.3121.73
SNDK2272.592035.07-10.4509:5114:498896.3918.38
STX964.55915.25-5.1109:5109:355755.692.84
WDC638.57598.37-6.309:5110:466465.394
Le SQL exact derrière chaque chiffre
WITH per_name AS (
    SELECT
        ticker,
        toFloat64(argMaxIf(close, window_start, window_start < '2026-07-01 00:00:00')) AS prior_close,
        toFloat64(argMaxIf(close, window_start, window_start >= '2026-07-01 00:00:00')) AS day_close,
        maxIf(toFloat64(high), window_start >= '2026-07-01 00:00:00') AS day_high,
        minIf(toFloat64(low), window_start >= '2026-07-01 00:00:00') AS day_low,
        argMinIf(window_start, (toFloat64(low), toInt64(toUnixTimestamp(window_start))), window_start >= '2026-07-01 00:00:00') AS low_bar,
        argMaxIf(window_start, (toFloat64(high), -toInt64(toUnixTimestamp(window_start))), window_start >= '2026-07-01 00:00:00') AS high_bar,
        round(sumIf(toFloat64(close) * toFloat64(volume), window_start >= '2026-07-01 00:00:00') / 1e9, 2) AS day_dollar_bn
    FROM global_markets.delayed_stocks_minute_aggs
    WHERE ticker IN ('AMD', 'META', 'MRVL', 'MU', 'NVDA', 'SNDK', 'STX', 'WDC')
      AND ((window_start >= '2026-06-30 13:30:00' AND window_start < '2026-06-30 20:00:00')
        OR (window_start >= '2026-07-01 13:30:00' AND window_start < '2026-07-01 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,
    formatDateTime(toTimeZone(high_bar, 'America/New_York'), '%H:%i') AS day_high_et,
    formatDateTime(toTimeZone(low_bar, 'America/New_York'), '%H:%i') AS day_low_et,
    toHour(toTimeZone(low_bar, 'America/New_York')) * 60 + toMinute(toTimeZone(low_bar, 'America/New_York')) AS low_minute_et,
    round((day_high / day_low - 1) * 100, 2) AS range_pct,
    day_dollar_bn
FROM per_name
ORDER BY ticker
Essayez cette requête

SanDisk (-10.45%) et Micron (-10.23%) ont chacune perdu plus d’un dixième de leur valeur ; Marvell -8.68%, AMD -6.87%, Western Digital -6.3% et Seagate -5.11%. MU a échangé $42.94 milliards, davantage que le volume traité sur SPY pendant toute la séance. MU, AMD et Marvell ont chacune inscrit leur plus bas dans les dernières minutes de la séance (15:59, 15:57, 15:58 ET), avec des ventes jusqu’à la vente aux enchères de clôture, et non un trou d’air à l’ouverture qui se serait résorbé (l’analyse détaillée de MU présente les résultats du trimestre).

META est l’image inverse : 8.88% sur $22.72 milliards échangés, avec un plus bas à 09:30 ET, sur la barre d’ouverture, qui n’a jamais été revisité. NVDA n’a pratiquement pas bougé à -1.09% (NVDA en juin).

Ce qui a été publié

Cette page n’attribue jamais de causes. Mais notre flux d’actualités sous licence est un tableau comme un autre : voici ce qu’il a relayé ce jour-là :

RequêteLes douze derniers articles d'actualité du jour mentionnant MU, SNDK, STX, WDC ou META (un seul flux sous licence)
publié ETéditeurnoms taguéstitre
11:30The Motley FoolMUCould Micron Stock Reach $2,000 on Memory Demand Alone?
12:15The Motley FoolMUIf You'd Invested $1,500 in Micron Stock 1 Year Ago, Here's How Much You
12:26The Motley FoolMETAWhy CoreWeave Stock Is Tumbling Today
14:11The Motley FoolMUWhy Micron Stock Is Plummeting Today
14:24Investing.comMETAMarkets Whipsaw as Semiconductors Fall and Magnificent 7 Stocks Move Hig
15:23The Motley FoolSNDK MU WDCWill Sandisk Stock Split by Year-End 2026?
15:32Investing.comMETANasdaq Posts Best Quarter in 6 Years as AI Backlogs Grow
15:43Investing.comMETA MUS&P 500 Breadth Shows Rotation Is Replacing Mega-Cap Dependence
17:12The Motley FoolMETA MU SNDKStock Market Today, July 1: Meta Shakes Up Cloud Sector and Tech Stocks
17:16The Motley FoolMETAStock Market Today, July 1: Meta Surges on Reported Plan for AI Cloud Bu
17:33The Motley FoolMETAStock Market Today, July 1: CoreWeave Stock Tumbles as Meta Cloud Report
22:20The Motley FoolMETAWhy Meta Platforms Stock Surged Today
Le SQL exact derrière chaque chiffre
SELECT published_et, publisher, names_tagged, headline
FROM (
    SELECT
        published_utc,
        formatDateTime(toTimeZone(published_utc, 'America/New_York'), '%H:%i') AS published_et,
        JSONExtractString(publisher, 'name') AS publisher,
        arrayStringConcat(arrayFilter(x -> x IN ('MU', 'SNDK', 'STX', 'WDC', 'META'), tickers), ' ') AS names_tagged,
        substring(title, 1, 72) AS headline
    FROM global_markets.stocks_news
    WHERE published_utc >= '2026-07-01 04:00:00' AND published_utc < '2026-07-02 04:00:00'
      AND hasAny(tickers, ['MU', 'SNDK', 'STX', 'WDC', 'META'])
      AND NOT has(tickers, 'SPCX')
      AND position(title, 'SPCX') = 0
    ORDER BY published_utc DESC
    LIMIT 12
)
ORDER BY published_utc ASC
Essayez cette requête

L’article de milieu d’après-midi de The Motley Fool sur Micron (14:11 ET) était titré « Why Micron Stock Is Plummeting Today ». Sa synthèse du soir (17:12 ET) et le suivi publié quatre minutes plus tard (17:16 ET) ont tous deux mis en parallèle la hausse de META et un projet rapporté de commercialisation de capacités de calcul IA excédentaires sous forme de service cloud. Il s’agit de l’angle retenu par ce média, et non d’une conclusion tirée du flux de marché ; 12 articles provenant de deux éditeurs représentent l’attention accordée par un flux, pas celle du marché.

Où les capitaux se sont négociés

RequêteLeaders en volume selon deux critères : top 6 par montant traité, top 4 par nombre de titres échangés (une ligne avec symbole réutilisé exclue en attente de vérification de l'entité)
tickerclassementvolume en dollars (Md)valeur en dollars (M)actions (M)% du leader du classement
MUby dollars traded42.94None40.6100
SPYby dollars traded27.76None37.264.6
QQQby dollars traded25.24None34.758.8
METAby dollars traded22.72None36.952.9
NVDAby dollars traded21.73None110.450.6
SNDKby dollars traded18.38None8.942.8
SOXSby shares traded2.05None553.1100
TZAby shares traded0.87867230.441.7
BITOby shares traded1.84None227.141.1
LHAIby shares traded0.32319189.834.3
Le SQL exact derrière chaque chiffre
SELECT ticker, leaderboard, dollar_volume_bn, if(dollar_volume_bn < 1, dollar_volume_m, NULL) AS dollar_value_m, 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(close) * toFloat64(volume)) / 1e6, 0) AS dollar_volume_m,
        round(sum(toFloat64(volume)) / 1e6, 1) AS shares_m
    FROM global_markets.delayed_stocks_minute_aggs
    WHERE window_start >= '2026-07-01 13:30:00' AND window_start < '2026-07-01 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(close) * toFloat64(volume)) / 1e6, 0) AS dollar_volume_m,
        round(sum(toFloat64(volume)) / 1e6, 1) AS shares_m
    FROM global_markets.delayed_stocks_minute_aggs
    WHERE window_start >= '2026-07-01 13:30:00' AND window_start < '2026-07-01 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
Essayez cette requête

MU a dominé les échanges avec 42.94 milliards de dollars, devant SPY à 27.76 milliards de dollars et META, quatrième, à 22.72 milliards de dollars. Cette action en baisse a généré une fois et demie le volume de l’ETF indiciel. Les valeurs les plus extrêmes du mouvement ont été les plus échangées. Le classement par nombre de titres donne une image déformée habituelle : SOXS, l’ETF semiconductor inverse à effet de levier 3x, arrive en tête avec 553.1 millions de titres, au plus fort de l’activité le jour où les valeurs des semi-conducteurs ont chuté. Une valeur à bas prix complète le classement avec 189.8 millions de titres représentant 319 millions de dollars (le volume relatif le montre précisément). Base : séance régulière du 1er juillet, une cotation utilisant un ticker réattribué a été exclue (justificatifs).

Le flux des options

RequêteUne ligne pour l'ensemble de la séance options : volume, échéance du jour, skew put/call et contrat le plus actif
transactions d’options (M)contrats (M)calls en % du volumeratio put/calléchéance le jour même (%)contrats à échéance jeu. 2 juil. (M)transactions ven. 3 juil.contrats put sur le SPY (M)puts sur le SPY à -2 % (%)calls sur le SPY à +2 % (%)ratio put/call de MUratio put/call de METAsous-jacent du contrat principalprix d’exercice du contrat principaltype du contrat principalvolume du contrat principalvolume formaté du contrat principalprix moyen du contrat principalcontrat à échéance le jour mêmeprix d’exercice principal moins clôture du SPYclôture du SPY
11.2268.4658.60.7133.514.4305.7611.63.71.110.39SPY748C878947878,9470.70712.31745.69
Le SQL exact derrière chaque chiffre
WITH
    (
        SELECT (any(underlying_symbol), any(toFloat64(strike_price)), any(option_type),
                sum(size), round(avg(toFloat64(price)), 3),
                any(if(substring(ticker, length(ticker) - 14, 6) = '260701', 1, 0)))
        FROM global_markets.options_trades
        WHERE sip_timestamp >= '2026-07-01 00:00:00' AND sip_timestamp < '2026-07-02 00:00:00'
        GROUP BY ticker
        ORDER BY sum(size) DESC, ticker ASC
        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-01 13:30:00' AND window_start < '2026-07-01 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(sumIf(toFloat64(size), option_type = 'P') / sumIf(toFloat64(size), option_type = 'C'), 2) AS put_call_ratio,
    round(100.0 * sumIf(size, substring(ticker, length(ticker) - 14, 6) = '260701') / sum(size), 1) AS same_day_expiry_pct,
    round(toFloat64(sumIf(size, substring(ticker, length(ticker) - 14, 6) = '260702')) / 1e6, 2) AS thu_jul2_expiry_contracts_m,
    countIf(substring(ticker, length(ticker) - 14, 6) = '260703') AS fri_jul3_expiry_prints,
    round(toFloat64(sumIf(size, underlying_symbol = 'SPY' AND option_type = 'P')) / 1e6, 2) AS spy_put_contracts_m,
    round(100.0 * sumIf(size, underlying_symbol = 'SPY' AND option_type = 'P' AND toFloat64(strike_price) < spy_regular_close * 0.98)
        / sumIf(size, underlying_symbol = 'SPY' AND option_type = 'P'), 1) AS spy_puts_2pct_below_pct,
    round(100.0 * sumIf(size, underlying_symbol = 'SPY' AND option_type = 'C' AND toFloat64(strike_price) > spy_regular_close * 1.02)
        / sumIf(size, underlying_symbol = 'SPY' AND option_type = 'C'), 1) AS spy_calls_2pct_above_pct,
    round(sumIf(toFloat64(size), underlying_symbol = 'MU' AND option_type = 'P')
        / sumIf(toFloat64(size), underlying_symbol = 'MU' AND option_type = 'C'), 2) AS mu_put_call_ratio,
    round(sumIf(toFloat64(size), underlying_symbol = 'META' AND option_type = 'P')
        / sumIf(toFloat64(size), underlying_symbol = 'META' AND option_type = 'C'), 2) AS meta_put_call_ratio,
    top_contract.1 AS top_contract_underlying,
    top_contract.2 AS top_contract_strike,
    top_contract.3 AS top_contract_type,
    top_contract.4 AS top_contract_volume,
    reverse(arrayStringConcat(extractAll(reverse(toString(assumeNotNull(top_contract.4))), '\\d{1,3}'), ',')) AS top_contract_volume_fmt,
    round(top_contract.5, 3) AS top_contract_avg_price,
    top_contract.6 AS top_contract_is_same_day,
    round(top_contract.2 - spy_regular_close, 2) AS top_strike_minus_spy_close,
    spy_regular_close AS spy_close
FROM global_markets.options_trades
WHERE sip_timestamp >= '2026-07-01 00:00:00' AND sip_timestamp < '2026-07-02 00:00:00'
Essayez cette requête

Les options ont représenté 68.46 millions de contrats sur 11.22 millions de prints. Les calls ont compté pour 58.6% du volume et les échéances le jour même pour 33.5%. Le marché ne couvrait pas l’indice : 0.71 puts par call à l’échelle du marché. Sur les 5.76 millions de puts de SPY, seulement 11.6% avaient un strike inférieur de plus de deux pour cent à sa clôture à 745.69, soit les strikes très éloignés du cours qui rapportent en cas de krach. Le skew se concentrait sur certaines valeurs. Les puts de Micron étaient plus nombreux que ses calls (1.11 par call), tandis que les calls de META dépassaient ses puts de plus de deux pour un (0.39). Le contrat le plus actif était le call SPY à échéance le jour même, strike de $748 : 878,947 contrats à un prix moyen de $0.707, avec une échéance située à 2.31 dollars hors de la monnaie, comme ceux de mardi. Aucun contrat à échéance le 3 juillet n’a été exécuté pendant la séance (0 prints, le marché étant fermé ce vendredi). L’échéance hebdomadaire du jeudi a représenté 14.43 millions de contrats.

Taux : hausse progressive, baisse sur le très court terme

Les rendements correspondent aux clôtures quotidiennes par rapport au 30 juin.

RequêteCourbe du Trésor, clôture du 1er juillet vs 30 juin (échéances renseignées uniquement)
point de courberendement au 1er juil. (%)variation sur un jour (pb)
1 month3.67-3
3 month3.85-2
1 year42
2 year4.173
5 year4.245
10 year4.484
30 year4.976
2s10s spread0.311
Le SQL exact derrière chaque chiffre
SELECT
    t.1 AS curve_point,
    round(t.2, 2) AS jul1_yield_pct,
    round((t.2 - t.3) * 100) AS one_day_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-01') AS d,
         (SELECT * FROM global_markets.treasury_yields WHERE date = '2026-06-30') AS p
)
Essayez cette requête

Le 10 ans a gagné 4 pb à 4.48%, et le 30 ans 6 pb, tandis que le bon du Trésor à un mois a varié de -3 pb. Le ventre de la courbe et le long terme ont progressé, tandis que le très court terme a reculé. Le spread 2s10s a clôturé à 0.31 point de pourcentage : rien ici ne correspondait à la dispersion des actions.

Le calendrier de la séance

RequêteCalendrier corporate et flux d'information du 1er juillet, sur une ligne
Historique ex-dividendeVersements mensuelsVersements trimestrielsPart des versements mensuelsSplits exécutésIPO cotéesDocuments SECDocuments Form 4 d'initiésDocuments 8-KNoms des IPOArticles d’actualitéÉditeurs d’actualitésTicker le plus couvertArticles sur le ticker le plus couvert
74657212376.79342831072248BSP — Bending Spoons S.p.A.; ITG — ITG Inc.; LIME — Neutron Holdings Inc.2013MSFT16
Le SQL exact derrière chaque chiffre
WITH
    (
        SELECT (count(), uniqExact(publisher))
        FROM global_markets.stocks_news
        WHERE toDate(toTimeZone(published_utc, 'America/New_York')) = '2026-07-01'
    ) 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-01'
            )
            WHERE t != 'SPCX'
            GROUP BY t
        )
    ) AS top_news
SELECT
    (SELECT count() FROM global_markets.stocks_dividends WHERE ex_dividend_date = '2026-07-01') AS ex_dividend_records,
    (SELECT countIf(frequency = 12) FROM global_markets.stocks_dividends WHERE ex_dividend_date = '2026-07-01') AS monthly_payers,
    (SELECT countIf(frequency = 4) FROM global_markets.stocks_dividends WHERE ex_dividend_date = '2026-07-01') AS quarterly_payers,
    (SELECT round(100.0 * countIf(frequency = 12) / count(), 1) FROM global_markets.stocks_dividends WHERE ex_dividend_date = '2026-07-01') AS monthly_payer_pct,
    (SELECT count() FROM global_markets.stocks_splits WHERE execution_date = '2026-07-01') AS splits_executed,
    (SELECT count() FROM global_markets.stocks_ipos WHERE listing_date = '2026-07-01') AS ipos_listed,
    (SELECT uniqExact(accession_number) FROM global_markets.stocks_sec_edgar_index WHERE filing_date = '2026-07-01') AS sec_filings,
    (SELECT uniqExactIf(accession_number, form_type = '4') FROM global_markets.stocks_sec_edgar_index WHERE filing_date = '2026-07-01') AS insider_form4_filings,
    (SELECT uniqExactIf(accession_number, form_type = '8-K') FROM global_markets.stocks_sec_edgar_index WHERE filing_date = '2026-07-01') AS filings_8k,
    (SELECT arrayStringConcat(groupArray(concat(ticker, ' — ', issuer_name)), '; ') FROM (
        SELECT ticker, issuer_name FROM global_markets.stocks_ipos WHERE listing_date = '2026-07-01' ORDER BY ticker
    )) AS ipo_names,
    news.1 AS news_articles,
    news.2 AS news_publishers,
    top_news.1 AS most_covered_ticker,
    top_news.2 AS most_covered_articles
Essayez cette requête

Le mouvement de fin de trimestre a culminé ici : 746 détachements de dividendes sont passés ex-dividende, dans le prolongement de la vague observée par le bilan de juin, avec 9 splits et 3 introductions en Bourse (BSP — Bending Spoons S.p.A.; ITG — ITG Inc.; LIME — Neutron Holdings Inc.). Le flux des filings a repris : 4283 filings, dont 1072 étaient des Form 4 et 248 des 8-K, après la journée du 30 juin, presque vide dans l’index (la note sur le creux de fin de mois). Notre flux a publié 201 articles, avec MSFT comme valeur la plus couverte à 16.

Mais un décompte ne dit rien sur les acteurs qui faisaient l’objet des transactions. Classé selon les montants échangés, le tableau n’est pas du tout dominé par les entreprises :

RequêteLes plus grandes valeurs détachant leur dividende le 1er juillet, classées selon le volume en dollars de la séance
tickerLiquidités par actionVersements par anclôture du jour% du coursRendement annualisé (%)volume en dollars du jour (mds)
SGOV0.295812100.40.293.543.5
HYG0.36881279.620.465.562.77
LQD0.381512108.460.354.222.57
TLT0.3181285.520.374.462.01
BITO0.0104128.140.131.531.84
BND0.24451273.040.334.021.51
BIL0.26761291.390.293.511.47
VCIT0.33191282.180.44.850.93
Le SQL exact derrière chaque chiffre
WITH divs AS (
    SELECT ticker, max(toFloat64(cash_amount)) AS cash, max(frequency) AS freq
    FROM global_markets.stocks_dividends
    WHERE ex_dividend_date = '2026-07-01' AND distribution_type = 'recurring'
    GROUP BY ticker
),
tape AS (
    SELECT ticker,
           sum(toFloat64(close) * toFloat64(volume)) AS dollar_volume,
           toFloat64(argMax(close, (window_start, close))) AS day_close
    FROM global_markets.delayed_stocks_minute_aggs
    WHERE window_start >= '2026-07-01 13:30:00' AND window_start < '2026-07-01 20:00:00'
      AND ticker NOT IN ('SPCX')
    GROUP BY ticker
)
SELECT
    d.ticker AS ticker,
    round(d.cash, 4) AS cash_per_share,
    d.freq AS payments_per_year,
    round(t.day_close, 2) AS day_close,
    round(100 * d.cash / t.day_close, 2) AS pct_of_price,
    round(100 * d.cash * d.freq / t.day_close, 2) AS annualized_yield_pct,
    round(t.dollar_volume / 1e9, 2) AS day_dollar_bn
FROM divs d JOIN tape t ON d.ticker = t.ticker
WHERE t.dollar_volume > 0 AND d.cash > 0
ORDER BY t.dollar_volume DESC
LIMIT 8
Essayez cette requête

Les huit tickers ex-dividende les plus actifs sont tous des fonds qui versent 12 fois par an : SGOV, un fonds de bons du Trésor, est passé ex-dividende à $0.2958 par part (0.29% du cours, 3.54% annualisé), pour $3.5 milliards échangés ; HYG, un fonds d’obligations à haut rendement, à $0.3688. Il s’agit d’une vague de début de mois : 572 des 746 détachements du jour (76.7%) concernent des payeurs mensuels, des fonds qui distribuent des intérêts, contre 123 payeurs trimestriels. La baisse à la date ex-dividende est mécanique ; elle ne correspond pas à une perte.

Le premier jour d’un trimestre est-il parfois une journée ordinaire ?

Le scénario s’écrit tout seul : nouveau trimestre, nouveaux capitaux, nouvelles allocations. La base de données raconte une autre histoire.

RequêteChaque séance d'ouverture de trimestre depuis 2004 : variation ouverture-clôture de SPY, avec le 1er juillet classé parmi elles
Ouvertures trimestrielles mesuréesOuverture trimestrielle médiane (%)Ouvertures trimestrielles en hausseOuvertures trimestrielles en baisseVariation ouverture-clôture du 1er juillet (%)Classement du 1er juillet, du pire au meilleurPire ouverture trimestrielle (%)Meilleure ouverture trimestrielle (%)Première mesure
910.0146450.0950-2.283.18January 2004
Le SQL exact derrière chaque chiffre
SELECT
    count() AS quarter_opens_measured,
    round(quantileExact(0.5)(oc_pct), 2) AS median_quarter_open_pct,
    countIf(oc_pct > 0) AS quarter_opens_green,
    countIf(oc_pct <= 0) AS quarter_opens_red,
    round(anyIf(oc_pct, first_day = toDate('2026-07-01')), 2) AS jul1_oc_pct,
    arrayCount(x -> x < anyIf(oc_pct, first_day = toDate('2026-07-01')), groupArrayIf(oc_pct, first_day != toDate('2026-07-01'))) + 1 AS jul1_rank_worst_to_best,
    round(min(oc_pct), 2) AS worst_quarter_open_pct,
    round(max(oc_pct), 2) AS best_quarter_open_pct,
    concat(monthName(min(first_day)), ' ', toString(toYear(min(first_day)))) AS first_measured
FROM (
    SELECT f.first_day AS first_day, d.oc_pct AS oc_pct
    FROM (
        SELECT toStartOfQuarter(d) AS q, min(d) AS first_day
        FROM (
            SELECT toDate(toTimeZone(window_start, 'America/New_York')) AS d
            FROM global_markets.delayed_stocks_minute_aggs
            WHERE ticker = 'SPY'
              AND window_start >= toDateTime('2004-01-01 00:00:00')
              AND window_start < toDateTime('2026-07-02 00:00:00')
              AND (toHour(window_start) * 60 + toMinute(window_start)) BETWEEN 810 AND 1199
            GROUP BY d
        )
        GROUP BY q
    ) f
    INNER JOIN (
        SELECT toDate(toTimeZone(window_start, 'America/New_York')) AS d,
               (argMax(toFloat64(close), (window_start, close)) / argMin(toFloat64(open), (window_start, open)) - 1) * 100 AS oc_pct
        FROM global_markets.delayed_stocks_minute_aggs
        WHERE ticker = 'SPY'
          AND window_start >= toDateTime('2004-01-01 00:00:00')
          AND window_start < toDateTime('2026-07-02 00:00:00')
          AND (toHour(window_start) * 60 + toMinute(window_start)) BETWEEN 810 AND 1199
        GROUP BY d
    ) d ON d.d = f.first_day
)
Essayez cette requête

Sur 91 séances d’ouverture de trimestre depuis January 2004, la variation médiane entre l’ouverture et la clôture de SPY le premier jour d’un trimestre est de 0.01%, avec 46 séances dans le vert contre 45 dans le rouge. Les résultats vont de -2.28% à 3.18% : un pile ou face avec une erreur d’arrondi. Le 1er juillet affiche 0.09%, au 50e rang sur 91, du pire au meilleur, exactement au milieu. Base : variation entre l’ouverture et la clôture de SPY pendant les heures normales de cotation, pour la première séance de chaque trimestre dans la base de données.

Ce qu’il faut retenir de la séance

L’indice a évolué de 0.09% ; le panel de huit valeurs s’étend de -10.45% à 8.88% ; la protection a à peine été réévaluée. C’est l’arithmétique ordinaire d’un marché concentré : les pertes d’un secteur sont compensées par les gains enregistrés dans 7 des 11 autres secteurs, ce que reflète un indice. Une analyse au niveau de l’indice ne révèle rien ici ; une analyse au niveau des positions montre qu’un dixième d’une ligne a disparu en une séance.

La séance, vérifiée

RequêteContrôle de séance : amplitude observée des barres minute de SPY
Première barre SPY (ET)Dernière barre SPY (ET)Barres SPY d’une minuteBarres de séance régulièreSéances journalièresLignes du 1er juillet, jours fériés
04:0019:5989339010
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,
    count() AS spy_minute_bars,
    countIf(window_start >= '2026-07-01 13:30:00' AND window_start < '2026-07-01 20:00:00') AS regular_session_bars,
    uniqExactIf(toDate(toTimeZone(window_start, 'America/New_York')), window_start >= '2026-07-01 13:30:00' AND window_start < '2026-07-01 20:00:00') AS day_sessions,
    (SELECT count() FROM global_markets.stocks_market_holidays WHERE date = '2026-07-01') AS jul1_holiday_rows
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker = 'SPY' AND window_start >= '2026-07-01 00:00:00' AND window_start < '2026-07-02 00:00:00'
Essayez cette requête

Les barres de SPY s’étendent de 04:00 à 19:59, heure de New York, avec 390 barres sur la séance régulière et 0 lignes correspondant aux jours fériés à cette date : une séance complète, vérifiée à partir du tape.

FAQ

Le marché actions a-t-il progressé ou reculé le 1er juillet 2026 ?

Cela dépend du segment observé. SPY a clôturé à -0.08%, DIA à 0.02% et QQQ à -1.44% ; 3465 valeurs liquides ont reculé, contre 2928 en hausse, tandis que 7 des 11 fonds sectoriels ont clôturé dans le vert. La technologie a fait exception.

Pourquoi Micron, SanDisk, Western Digital et Seagate ont-ils tous reculé le 1er juillet 2026 ?

Ces données montrent une évolution conjointe, pas une causalité : les quatre titres ont reculé entre -5.11% et -10.45%. L'article du jour de The Motley Fool consacré à Micron, affiché dans le module d'actualités de cette page à 14:11 ET, était titré « Why Micron Stock Is Plummeting Today ». Il s'agit de l'interprétation du média, et non d'une conclusion tirée des échanges.

Pourquoi META a-t-il progressé le 1er juillet 2026 ?

META a clôturé en hausse de 8.88%, après avoir atteint son point bas sur la première bougie. The Motley Fool a attribué ce mouvement à des informations selon lesquelles l'entreprise prévoyait de vendre sa capacité excédentaire de calcul dédiée à l'IA sous la forme d'un service cloud. Il s'agit de l'attribution du média, pas de la nôtre.

Le premier jour de cotation d'un trimestre est-il généralement une séance solide ?

Cela ne ressort pas des données. Sur 91 ouvertures de trimestre depuis January 2004, la variation médiane entre l'ouverture et la clôture de SPY s'est établie à 0.01% : 46 séances dans le vert et 45 dans le rouge. Le résultat est proche d'un pile ou face ; le 1er juillet se situait au milieu du classement.

Le marché des options couvrait-il la baisse du 1er juillet 2026 ?

Pas au niveau des indices : 0.71 puts par call sur l'ensemble du marché, et seulement 11.6% du volume de puts sur SPY avaient un strike inférieur de plus de two percent à la clôture.

Notes méthodologiques

  • Le volume en dollars est un indicateur par minute : cours de clôture × volume, additionnés pour chaque barre d'une minute, pendant les heures normales. Les extrêmes affichés ont été vérifiés par rapport aux barres adjacentes ; en cas d'égalité, la barre la plus ancienne est retenue.
  • Il n'existe pas d'indice VIX spot ici. Le volet de volatilité utilise des fonds sur futures VIX cotés en Bourse. Ces fonds détiennent et renouvellent des futures. Ils sont liés à l'indice, mais ne lui sont jamais identiques.
  • Les nouveaux plus-hauts et plus-bas trimestriels comparent les extrêmes observés pendant les heures normales le 1er juillet avec la fourchette du 1er avril au 30 juin pour chaque valeur. Le calcul porte sur les valeurs liquides disposant d'un trimestre complet de barres. Les baisses figurent dans le volet.
  • Le tableau sectoriel est un panier sélectionné manuellement composé de onze ETF SPDR, et non un champ fourni par un vendeur de données ; le volet consacré aux actualités utilise un seul flux sous licence (12 articles, provenant de deux éditeurs) ; une valeur répertoriée sous un symbole déjà utilisé est exclue des classements (ses justificatifs).

Méthodologie

  • Une séance de trading (séance 1, vérifiée à partir des barres observées et du calendrier des jours fériés, jamais supposée). Les horodatages sont stockés en UTC, puis convertis en heure de New York dans les requêtes ; la « clôture » correspond à la dernière barre minute de la séance régulière, et les variations quotidiennes sont calculées par rapport au 30 juin.
  • Les décimales sont converties en nombres flottants sur 64 bits avant les calculs de ratios ; les échéances des options sont de nouveau analysées à partir du ticker OCC. Les panels sont exécutés une seule fois, au moment de la rédaction, via le chemin en lecture seule soumis à contrôle. État du data warehouse au 13 juillet 2026 ; cette édition ajoute les panels consacrés aux secteurs, à la volatilité, aux actualités, aux dividendes et à l’historique trimestriel.

Chaque panel correspond à un résultat de requête stockée ; le graphique, le tableau et le SQL forment un seul objet. Copiez n’importe lequel dans le terminal Strasmore. Ensuite : 2 juillet ; la semaine : la semaine du jour férié.