Récapitulatif marché 1er juillet 2026
Ouverture calme des indices et forte volatilité sous-jacente. Le complexe mémoriel fléchit, META bondit et la majorité des secteurs du S&P clôturent en hausse.
Mercredi 1er juillet 2026 — première séance du second semestre — une journée d'indices parmi les plus calmes du mois a précédé une séance de forte volatilité. Le SPY a clôturé à -0.08% et le QQQ à -1.44%, pourtant le complexe mémoriel qui a porté le deuxième trimestre a perdu un dixième de sa valeur, META a bondi de 8.88%, et 7 des fonds sectoriels S&P de 11 ont clôturé en hausse. Séance précédente : 30 juin.
Le tableau de bord
Les variations sont comparées à la dernière barre de la séance régulière du 1er juillet par rapport à celle du mardi 30 juin.
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.tickerLa tendance est marquée par la divergence : le DIA à 0.02% et le SPY à -0.08% sont restés stables, contrairement au QQQ à -1.44% et à l'IWM à -0.37% — une vente sur les valeurs de croissance que le marché large a peu ressentie.
L'une des journées d'indices les plus calmes du mois écoulé
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
)La variation intra-séance — une perspective différente de la variation entre clôtures — du SPY était de 0.09% : soit le 20e rang sur 22 séances en valeur absolue, seules deux sessions ayant connu une variation plus faible. Le complexe de volatilité confirme cette tendance. Ce tableau ne contient pas l'indice VIX spot ; l'analyse repose donc sur les fonds de VIX-futures, qui sont les indicateurs traduisables les plus proches du coût de la protection :
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 tickerLe VXX, le principal fonds de VIX futures sur le mois le plus proche, a progressé de 0.72% ; le VXY de 0.8% ; l'ETF à effet de levier UVXY de 1.13% dans une fourchette de 3.68% ; et l'inverse SVXY de -0.42%. Ces variations sont négligeables par rapport aux mouvements des actions individuelles.
Largeur de marché : plus de baisses que de hausses — et plus de nouveaux plus hauts que de nouveaux plus bas
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 > 02928 hausses, 3465 baisses, 82 inchangés — 45.2% du tape liquide a progressé. La portée ne reflète pas l'ampleur : par rapport à la fourchette de la séance régulière du deuxième trimestre, 836 des 6217 titres ayant un trimestre complet de trading ont atteint un nouveau plus haut trimestriel lors de cette séance rouge, contre 246 ayant atteint un nouveau plus bas — soit 3.4 nouveaux plus hauts pour chaque nouveau plus bas. La plupart ont reculé ; peu ont cassé leur fourchette. Chutes : 5435 des 11910 tickers à double session sous le filtre de 1 million de dollars, 258 titres liquides sans un trimestre complet de bougies.
Le tableau sectoriel : les pertes se sont concentrées sur un seul secteur
Les onze fonds sectoriels SPDR constituent la coupe transversale la plus économique du marché — le même panier à chaque séance.
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 DESCLes services de communication (XLC) — le fonds sectoriel qui détient META — ont progressé de 2.41%, suivis par la finance (XLF) à 2.2%. La technologie (XLK) est restée isolée en queue de peloton, avec un retard de -2.56% et 4.97 points de pourcentage par rapport au leader. Au total, 7 des 11 fonds ont terminé en zone positive — la consommation discrétionnaire 0.68% et la santé 0.57% — contre les services publics (-1.28%), l'industrie (-0.98%) et l'énergie (-0.6%) en zone rouge. En somme, l'indice a peu bougé en raison de ces variations sectorielles.
L'essentiel de la journée : rupture de tendance sur la mémoire, retournement de META
Huit titres ont généré la dispersion : les quatre actions de mémoire et de stockage qui ont porté le deuxième trimestre, et quatre titres de puces et de plateformes associés. La corrélation, l'amplitude et le timing sont présentés ; les données n'expliquent pas les causes.
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 tickerSanDisk (-10.45%) et Micron (-10.23%) ont chacun perdu plus de 10 % de leur valeur ; Marvell -8.68%, AMD -6.87%, Western Digital -6.3%, Seagate -5.11%. Le volume d'échange de MU a atteint 42.94 milliards de dollars, dépassant le volume total de SPY sur la journée. MU, AMD et Marvell ont chacun atteint leurs plus bas de séance lors des dernières minutes de cotation (15:59, 15:57, 15:58 ET) — vendues lors de l'enchère de clôture, et non suite à un vide de liquidité matinal (l'analyse approfondie de MU montre que le trimestre est déjà passé]).
META affiche un mouvement inverse : 8.88% sur 22.72 milliards de dollars échangés, avec un point bas à 09:30 ET — la première bougie — jamais retrouvé. NVDA est restée stable à -1.09% (le mois de juin de NVDA).
Ce qui a été dit
Cette page n'attribue jamais de causes. Notre flux d'actualités sous licence est un tableau comme les autres — voici ce qu'il contenait ce jour-là :
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 ASCL'article de The Motley Fool sur Micron (14:11 ET) publié en milieu d'après-midi avait pour titre « Why Micron Stock Is Plummeting Today ». Son récapitulatif du soir (17:12 ET) et la mise à jour quatre minutes plus tard (17:16 ET) ont tous deux associé la hausse de META à un projet de vente de puissance de calcul IA sous forme de service cloud. Il s'agit de l'interprétation de ce média et non d'une donnée extraite du tape. La présence de 12 articles provenant de deux éditeurs représente l'attention d'un seul flux, pas celle du marché.
Flux de capitaux
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) DESCMU a dominé les échanges avec 42.94 milliards de dollars. Le SPY arrive en deuxième position avec 27.76 milliards de dollars, et META en quatrième avec 22.72 milliards de dollars — une action en baisse dont le volume est 1,5 fois supérieur à celui de l'ETF. Les mouvements les plus extrêmes ont été portés par les titres les plus actifs. Le tableau des volumes présente des anomalies habituelles : SOXS, l'ETF inverse 3x sur les semi-conducteurs, arrive en tête avec 553.1 millions d'actions échangées — le titre le plus actif lors de la chute des puces — tandis qu'une action à faible cours complète la liste avec 189.8 millions d'actions pour une valeur de 319 millions de dollars (le volume relatif confirme ce point). Base : session régulière du 1er juillet, une cotation avec symbole réutilisé exclue (reçus).
Le carnet d'options
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'Le volume d'options échangé s'est élevé à 68.46 millions de contrats pour 11.22 millions de transactions — les calls représentaient 58.6% du volume, et 33.5% des échéances étaient à la même date. Il n'y avait aucun signe de couverture sur l'indice : le ratio était de 0.71 puts pour chaque call sur l'ensemble du marché. Concernant le SPY, sur les 5.76 millions de puts, seuls 11.6% avaient un strike supérieur à deux pour cent sous la clôture de 745.69 — les strikes de protection contre un krach. Le skew se concentrait sur des titres individuels : les puts de Micron étaient plus nombreux que ses calls (1.11 par call), tandis que les calls de META l'emportaient sur ses puts avec un ratio supérieur à deux pour un (0.39). Le contrat le plus actif était le call SPY à 748 $ avec échéance le même jour — 878,947 contrats à un prix moyen de 0.707 $ — finissant à 2.31 dollars out of the money, comme ce fut le cas mardi. Aucun contrat pour l'échéance du 3 juillet n'a été échangé (0 transactions — ce vendredi est fermé) ; le weekly du jeudi a atteint 14.43 millions.
Taux : hausse sur le segment long, baisse sur le front end
Les rendements sont exprimés en clôture quotidienne par rapport au 30 juin.
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
)Le 10 ans a progressé de 4 bp pour atteindre 4.48% et le 30 ans de 6 bp. Le billet à 1 mois a reculé de -3 bp — les maturités moyennes et longues sont en hausse, le front end est en baisse. Le spread 2s10s a clôturé à 0.31 points de pourcentage : aucune corrélation avec la dispersion des actions.
Le calendrier de la journée
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_articlesLe tournant trimestriel a eu lieu ici : 745 records de dividendes sont passés ex-dividend — la vague observée dans le récapitulatif de juin — parallèlement aux splits 9 et aux introductions 3 (BSP — Bending Spoons S.p.A.; ITG — ITG Inc.; LIME — Neutron Holdings Inc.). Le flux de publications s'est réactivé : 4282 dépôts, dont 1072 de Form 4s et 248 de 8-Ks, après la journée d'index quasi vide du 30 juin (la note sur le gap de fin de mois). Notre flux a publié 201 articles, avec MSFT comme sujet le plus couvert à 16.
Cependant, le volume ne précise pas la nature des émetteurs. Classés par volume d'échanges, les titres ne sont pas exclusivement des entreprises :
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 8Chacun des huit tickers les plus actifs en ex-dividend est un fonds versant 12 fois par an : SGOV, un fonds de Treasury-bills, est passé ex-dividend à 0.2958 par action (0.29% du prix, 3.54% annualisé) pour 3.5 milliards échangés ; HYG, un fonds d'obligations high-yield, pour 0.3688. Il s'agit d'une vague de début de mois : 572 des records de 745 de la journée (76.8%) concernent des payeurs mensuels — des fonds distribuant des intérêts — contre 123 payeurs trimestriels. La baisse à la date ex-date est mécanique et ne constitue pas une perte.
Le premier jour d'un trimestre est-il un jour ordinaire ?
Le scénario semble évident : nouveau trimestre, nouveaux flux, nouvelles allocations. Les données contredisent cette idée.
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
)Sur les 91 sessions d'ouverture de trimestre depuis January 2004, la variation médiane du SPY entre l'ouverture et la clôture lors du premier jour du trimestre est de 0.01% — 46 de sessions positives contre 45 de sessions négatives, s'étalant de -2.28% à 3.18 : un résultat aléatoire proche de l'équilibre. Le 1er juillet a affiché 0.09%, soit le rang 50 sur 91 (du pire au meilleur) — soit une position centrale. Base : variation du SPY en horaires réguliers, entre l'ouverture et la clôture, pour chaque première session de trimestre dans la base de données.
Ce qu'il faut retenir de la journée
L'indice a progressé de 0.09% ; le panel des huit valeurs oscille entre -10.45% et 8.88% ; la protection a peu évolué. C'est la logique mathématique d'un marché concentré — un indice neutralise les pertes d'un secteur par les gains de 7 de 11 autres titres. Une analyse au niveau de l'indice ne révèle rien ; une analyse au niveau des positions montre qu'un dixième d'une ligne a disparu en une journée.
La session, vérifiée
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'Les bougies du SPY s'étendent de 04:00 à 19:59 heure de New York, avec 390 bougies en session régulière et 0 lignes de jours fériés à cette date — une session complète, vérifiée par le tape.
FAQ
Le marché boursier a-t-il progressé ou reculé le 1er juillet 2026 ?
Cela dépend de l'indice observé. Le SPY a clôturé à -0.08%, le DIA à 0.02% et le QQQ à -1.44%. Les titres liquides 3465 ont baissé face à la hausse de 2928 — pourtant, 7 des fonds sectoriels 11 ont clôturé en hausse, le secteur technologique étant l'exception.
Pourquoi Micron, SanDisk, Western Digital et Seagate ont-ils tous chuté le 1er juillet 2026 ?
Ces données indiquent une corrélation de mouvement, pas une causalité : les quatre titres ont reculé entre -5.11% et -10.45%. L'article du même jour de The Motley Fool sur Micron (dans le panneau d'actualités de cette page, 14:11 ET) portait le titre "Why Micron Stock Is Plummeting Today". Il s'agit de l'interprétation de la publication, pas d'un constat issu des flux de marché.
Pourquoi META a-t-elle progressé le 1er juillet 2026 ?
META a clôturé en hausse de 8.88%, son point bas ayant été atteint sur la bougie d'ouverture. La couverture de The Motley Fool a attribué ce mouvement à des rapports indiquant que l'entreprise prévoyait de vendre sa capacité de calcul IA excédentaire sous forme de service cloud : il s'agit de l'attribution de la publication, pas de la nôtre.
Le premier jour de trading d'un trimestre est-il habituellement une journée forte ?
Pas de manière significative. Sur les 91 ouvertures de trimestre depuis January 2004, le mouvement médian du SPY entre l'ouverture et la clôture était de 0.01% : 46 de journées positives et 45 de journées négatives, soit l'équivalent d'un pile ou face ; le 1er juillet se situait dans la moyenne.
Le marché des options couvrait-il la vente du 1er juillet 2026 ?
Pas au niveau de l'indice : le ratio puts/calls était de 0.71 sur l'ensemble du marché, et seulement 11.6 du volume de puts du SPY a exercé à plus de deux pour cent sous la clôture.
Notes sur les données
- Le volume en dollars est une approximation par minute — prix de clôture × volume cumulés par barre d'une minute, durant les heures de cotation régulières. Les extrêmes affichés ont été vérifiés par rapport aux barres adjacentes ; en cas d'égalité, la valeur la plus précoce est retenue.
- Il n'existe pas d'indice VIX spot ici. Le panneau de volatilité affiche les fonds cotés sur les VIX-futures, qui détiennent et effectuent le roll des contrats à terme — ils sont liés à l'indice, mais ne sont jamais identiques.
- Nouveaux plus hauts/bas trimestriels — comparaison des extrêmes en heures régulières du 1er juillet avec la fourchette de chaque titre entre le 1er avril et le 30 juin, pour les titres liquides disposant d'un trimestre complet de données ; les baisses sont indiquées dans le panneau.
- Le tableau des secteurs est un panier sélectionné (onze ETF SPDR, et non un champ fournisseur) ; le panneau d'actualités provient d'un flux sous licence (12 articles, deux éditeurs) ; une entrée avec symbole réutilisé est exclue des classements (ses reçus).
Méthodologie
- Une seule session de trading (session 1, vérifiée à partir des bougies 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 bougie d'une minute de la session régulière, le changement de jour s'effectuant par rapport au 30 juin.
- Les décimales sont converties en flottants 64 bits avant les calculs de ratios ; les échéances d'options sont extraites du ticker de l'OCC. Les panels sont générés une seule fois lors de la rédaction via le flux de lecture seule. État de l'entrepôt de données au 13 juillet 2026 ; cette édition ajoute les panels secteur, volatilité, actualités, dividendes et historique trimestriel.
Chaque panel est le résultat d'une requête stockée — le graphique, le tableau et le SQL constituent un seul objet. Vous pouvez copier-coller n'importe lequel d'entre eux dans le terminal Strasmore. Suivant : 2 juillet ; la semaine : la semaine de jours fériés.