Analyse des ETF sectoriels S&P 500 H1 2026
Classement des onze ETF sectoriels du S&P 500 pour le H1 2026. Analyse de la rotation Q1-Q2, de la breadth sectorielle et des spreads de transaction.
Le bilan sectoriel du premier semestre 2026 présente l'ensemble des résultats : le secteur technologique (XLK) a terminé le semestre en hausse de 30.8%, tandis que les services de communication (XLC) ont fini à -9.3%. L'écart entre le meilleur et le pire secteur est d'environ quarante points de pourcentage. Trois des onze ETF sectoriels du S&P 500 ont terminé le semestre en territoire négatif. Presque aucun secteur n'a conservé son rang par rapport au premier trimestre. Ce semestre a été marqué par deux dynamiques de marché opposées, que cette page analyse. Chaque chiffre ci-dessous est le résultat d'une requête stockée ; vous pouvez développer chaque panneau pour consulter la requête SQL exacte.
Qu'est-ce qu'un ETF sectoriel — et comment cette page l'évalue
Les onze fonds Select Sector SPDR divisent le S&P 500 en secteurs industriels. Ainsi, un seul ticker permet d'acheter — ou de couvrir — une exposition sectorielle. Chaque fonds détient les composants de l'indice de son secteur, pondérés par la capitalisation boursière, et se négocie comme une action durant toute la séance. Cette page évalue chaque fonds selon quatre critères : le rendement du prix (de l'ouverture à la clôture de la première séance régulière jusqu'à la clôture de la dernière séance régulière), le split trimestriel situé sous le chiffre du bas, le volume en dollars (prix multiplié par le nombre d'actions échangées — la mesure la plus précise des flux de capitaux), et le bid-ask spread — l'écart entre le meilleur prix d'achat et le meilleur prix de vente, ce qui représente le coût d'un aller-retour. Le bilan au niveau de l'indice pour la même période de six mois — taux, options, IPO, breadth — est disponible dans le récapitulatif du marché du S1 2026.
Le tableau de bord : onze secteurs, une performance contrastée sur le semestre et le trimestre
Le SQL exact derrière chaque chiffre
SELECT ticker,
round((argMaxIf(toFloat64(close), window_start, toDate(toTimeZone(window_start, 'America/New_York')) <= toDate('2026-06-30') AND (toHour(toTimeZone(window_start, 'America/New_York')) * 60 + toMinute(toTimeZone(window_start, 'America/New_York'))) BETWEEN 570 AND 959)
/ argMinIf(toFloat64(open), window_start, toDate(toTimeZone(window_start, 'America/New_York')) >= toDate('2026-01-01') AND (toHour(toTimeZone(window_start, 'America/New_York')) * 60 + toMinute(toTimeZone(window_start, 'America/New_York'))) BETWEEN 570 AND 959) - 1) * 100, 1) AS h1_return_pct,
round((argMaxIf(toFloat64(close), window_start, toDate(toTimeZone(window_start, 'America/New_York')) <= toDate('2026-03-31') AND (toHour(toTimeZone(window_start, 'America/New_York')) * 60 + toMinute(toTimeZone(window_start, 'America/New_York'))) BETWEEN 570 AND 959)
/ argMinIf(toFloat64(open), window_start, toDate(toTimeZone(window_start, 'America/New_York')) >= toDate('2026-01-01') AND (toHour(toTimeZone(window_start, 'America/New_York')) * 60 + toMinute(toTimeZone(window_start, 'America/New_York'))) BETWEEN 570 AND 959) - 1) * 100, 1) AS q1_return_pct,
round((argMaxIf(toFloat64(close), window_start, toDate(toTimeZone(window_start, 'America/New_York')) <= toDate('2026-06-30') AND (toHour(toTimeZone(window_start, 'America/New_York')) * 60 + toMinute(toTimeZone(window_start, 'America/New_York'))) BETWEEN 570 AND 959)
/ argMinIf(toFloat64(open), window_start, toDate(toTimeZone(window_start, 'America/New_York')) >= toDate('2026-04-01') AND (toHour(toTimeZone(window_start, 'America/New_York')) * 60 + toMinute(toTimeZone(window_start, 'America/New_York'))) BETWEEN 570 AND 959) - 1) * 100, 1) AS q2_return_pct,
round(sumIf(toFloat64(close) * toFloat64(volume), (toHour(toTimeZone(window_start, 'America/New_York')) * 60 + toMinute(toTimeZone(window_start, 'America/New_York'))) BETWEEN 570 AND 959) / 1e9, 1) AS h1_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 >= toDateTime('2026-01-01 00:00:00') AND window_start < toDateTime('2026-07-01 00:00:00')
GROUP BY ticker
ORDER BY tickerConsultez d'abord la colonne semestrielle : le secteur technologique a progressé de 30.8%, suivi par l'industrie (19%) et l'énergie (18.8%). Trois secteurs ont terminé en territoire négatif : les services de communication (-9.3%), la consommation discrétionnaire (-2.3%) et la finance (-2.2%). Avec huit secteurs sur onze en hausse, la largeur de marché est respectable pour un semestre ayant débuté par une baisse des indices.
Les colonnes trimestrielles révèlent la tendance réelle. Au T1, les leaders étaient l'énergie (36.9%), les matériaux (9.8%), les services publics (7%) et la consommation de base (5.5%) — combinant un trade sur les matières premières et les valeurs défensives classiques. À l'inverse, la technologie (-8.7%), la finance (-9.9%) et la consommation discrétionnaire (-9.3%) ont chuté avec le marché. Le T2 présente une inversion : la technologie a progressé de 42%, l'industrie de 13.3% et la santé de 7.8%. En revanche, l'énergie (-11%), les services de communication (-3.7%) et les services publics (-1%) ont terminé le trimestre en baisse. Le mouvement de l'énergie — 36.9% puis -11% — et l'effet miroir de la finance — -9.9% puis 7.7% — illustrent parfaitement ce qu'un chiffre semestriel peut masquer.
La rotation, mois par mois
Trois tickers résument l'ensemble de la rotation ; ce tableau les suit mensuellement : XLE (leader du -9.3), XLK (leader du 30.8) et XLF (le trade miroir).
Le SQL exact derrière chaque chiffre
SELECT toString(toStartOfMonth(toDate(toTimeZone(window_start, 'America/New_York')))) AS month, ticker,
round((argMaxIf(toFloat64(close), window_start, (toHour(toTimeZone(window_start, 'America/New_York')) * 60 + toMinute(toTimeZone(window_start, 'America/New_York'))) BETWEEN 570 AND 959)
/ argMinIf(toFloat64(open), window_start, (toHour(toTimeZone(window_start, 'America/New_York')) * 60 + toMinute(toTimeZone(window_start, 'America/New_York'))) BETWEEN 570 AND 959) - 1) * 100, 1) AS month_return_pct
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker IN ('XLE', 'XLF', 'XLK')
AND window_start >= toDateTime('2026-01-01 00:00:00') AND window_start < toDateTime('2026-07-01 00:00:00')
GROUP BY month, ticker
ORDER BY month, tickerXLE a progressé durant chacun des trois premiers mois — 14.1% en janvier, 11.6% en février, 6% en mars, suivant une progression en escalier avec une décélération — avant de stagner pendant trois mois consécutifs (-0.2%, -4.7%, -6.8%). XLK a suivi une trajectoire inverse : des rendements négatifs en janvier, février et mars, puis 18.9% en avril et 19.1% en mai — deux mois consécutifs qui ont constitué la quasi-totalité de la performance du secteur. Avril marque le transfert : le basculement de leadership est visible dans une seule colonne de ce tableau. Les deux mois positifs de XLF étaient avril et juin, avec respectivement 4.7% et 4.7%. Les indicateurs qui ont influencé la performance du semestre — données sur l'inflation, l'emploi (payrolls), la courbe des taux du Treasury — sont regroupés dans le panorama macroéconomique entrant dans le H2 2026.
La breadth par secteur
Le rendement d'un fonds sectoriel n'indique pas le nombre de titres participants. La base de données ne contient pas de colonne de classification sectorielle ; ce panel mesure donc la breadth intra-sectorielle via un panier fixe et transparent : cinq grandes capitalisations par secteur, soit cinquante-cinq au total, toutes répertoriées dans le SQL. Il s'agit d'un échantillon de valeurs connues et non des positions réelles des fonds — les limites de ce panier sont précisées dans les notes de données.
Le SQL exact derrière chaque chiffre
SELECT sector,
count() AS members,
countIf(ret_pct > 0) AS members_up,
countIf(ret_pct <= 0) AS members_down,
round(quantileDeterministic(0.5)(ret_pct, cityHash64(ticker)), 1) AS median_member_pct,
argMax(ticker, (ret_pct, ticker)) AS best_member,
round(max(ret_pct), 1) AS best_member_pct,
argMin(ticker, (ret_pct, ticker)) AS worst_member,
round(min(ret_pct), 1) AS worst_member_pct
FROM (
SELECT ticker,
multiIf(ticker IN ('AAPL','MSFT','NVDA','AVGO','ORCL'), 'technology (XLK)',
ticker IN ('META','GOOGL','NFLX','DIS','TMUS'), 'communication services (XLC)',
ticker IN ('XOM','CVX','COP','EOG','SLB'), 'energy (XLE)',
ticker IN ('JPM','BAC','WFC','GS','MS'), 'financials (XLF)',
ticker IN ('GE','CAT','RTX','UNP','UPS'), 'industrials (XLI)',
ticker IN ('LLY','UNH','JNJ','ABBV','MRK'), 'health care (XLV)',
ticker IN ('AMZN','TSLA','HD','MCD','NKE'), 'consumer discretionary (XLY)',
ticker IN ('PG','COST','WMT','KO','PEP'), 'consumer staples (XLP)',
ticker IN ('NEE','SO','DUK','CEG','AEP'), 'utilities (XLU)',
ticker IN ('PLD','AMT','EQIX','WELL','SPG'), 'real estate (XLRE)',
'materials (XLB)') AS sector,
(argMaxIf(toFloat64(close), window_start, (toHour(toTimeZone(window_start, 'America/New_York')) * 60 + toMinute(toTimeZone(window_start, 'America/New_York'))) BETWEEN 570 AND 959)
/ argMinIf(toFloat64(open), window_start, (toHour(toTimeZone(window_start, 'America/New_York')) * 60 + toMinute(toTimeZone(window_start, 'America/New_York'))) BETWEEN 570 AND 959) - 1) * 100 AS ret_pct
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker IN ('AAPL','MSFT','NVDA','AVGO','ORCL','META','GOOGL','NFLX','DIS','TMUS','XOM','CVX','COP','EOG','SLB','JPM','BAC','WFC','GS','MS','GE','CAT','RTX','UNP','UPS','LLY','UNH','JNJ','ABBV','MRK','AMZN','TSLA','HD','MCD','NKE','PG','COST','WMT','KO','PEP','NEE','SO','DUK','CEG','AEP','PLD','AMT','EQIX','WELL','SPG','LIN','SHW','APD','FCX','ECL')
AND window_start >= toDateTime('2026-01-01 00:00:00') AND window_start < toDateTime('2026-07-01 00:00:00')
GROUP BY ticker
)
GROUP BY sector
ORDER BY median_member_pct DESC, sectorDeux lignes sont particulièrement notables. Santé : 5 de ses cinq titres du panier ont progressé, avec une médiane de 21.7% — alors que l'ETF XLV a gagné 2.5% sur le semestre. Le rendement d'un fonds est pondéré par la capitalisation boursière ; la médiane d'un panier pondère chaque membre de manière égale — le secteur de la santé présente l'écart le plus marqué en faveur du panier par rapport au fonds. Le secteur technologique présente le même écart, mais en sens inverse, et affiche la plus grande amplitude : le fonds a gagné 30.8 tandis que ses cinq principales valeurs connues se sont partagées entre 3 de hausses et 2 de baisses, avec une médiane de 5.2%, et ORCL a affiché -25.7%. La performance globale du secteur ne provient pas de ses megacaps habituelles — le panel suivant montre l'origine réelle de cette hausse. Ailleurs dans le tableau : le rendement de 84.3% pour CAT est la meilleure performance parmi les cinquante-cinq titres, et les services de communication sont le secteur le plus faible — 1 de cinq titres en hausse, une médiane de -15.2%, avec NFLX à -24.2%.
The memory-semis trade inside technology
Le SQL exact derrière chaque chiffre
SELECT ticker,
round((argMaxIf(toFloat64(close), window_start, (toHour(toTimeZone(window_start, 'America/New_York')) * 60 + toMinute(toTimeZone(window_start, 'America/New_York'))) BETWEEN 570 AND 959)
/ argMinIf(toFloat64(open), window_start, (toHour(toTimeZone(window_start, 'America/New_York')) * 60 + toMinute(toTimeZone(window_start, 'America/New_York'))) BETWEEN 570 AND 959) - 1) * 100, 1) AS h1_return_pct,
round((argMaxIf(toFloat64(close), window_start, toDate(toTimeZone(window_start, 'America/New_York')) <= toDate('2026-03-31') AND (toHour(toTimeZone(window_start, 'America/New_York')) * 60 + toMinute(toTimeZone(window_start, 'America/New_York'))) BETWEEN 570 AND 959)
/ argMinIf(toFloat64(open), window_start, (toHour(toTimeZone(window_start, 'America/New_York')) * 60 + toMinute(toTimeZone(window_start, 'America/New_York'))) BETWEEN 570 AND 959) - 1) * 100, 1) AS q1_return_pct,
round((argMaxIf(toFloat64(close), window_start, (toHour(toTimeZone(window_start, 'America/New_York')) * 60 + toMinute(toTimeZone(window_start, 'America/New_York'))) BETWEEN 570 AND 959)
/ argMinIf(toFloat64(open), window_start, window_start >= toDateTime('2026-04-01 00:00:00') AND (toHour(toTimeZone(window_start, 'America/New_York')) * 60 + toMinute(toTimeZone(window_start, 'America/New_York'))) BETWEEN 570 AND 959) - 1) * 100, 1) AS q2_return_pct,
round(sumIf(toFloat64(close) * toFloat64(volume), (toHour(toTimeZone(window_start, 'America/New_York')) * 60 + toMinute(toTimeZone(window_start, 'America/New_York'))) BETWEEN 570 AND 959) / 1e9, 1) AS h1_dollar_bn
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker IN ('MU', 'SNDK', 'NVDA', 'AMD', 'INTC', 'AVGO', 'QCOM', 'TXN')
AND window_start >= toDateTime('2026-01-01 00:00:00') AND window_start < toDateTime('2026-07-01 00:00:00')
GROUP BY ticker
ORDER BY h1_return_pct DESC, tickerTake technology apart and the half's defining single-name trade appears. SNDK returned 830.1% in six months, MU 290%, INTC 269.3%, and AMD 165.3% — while NVDA, the biggest single-name tape in the set at $3287.9 billion of half-year turnover, returned 5.2%, with AVGO at 6.9% and QCOM at 6.3%. The complex split in two: the memory-and-foundry names multiplied while the established AI-accelerator names went sideways. The Q2 column carries the timing: MU's 229.9%, INTC's 210%, and AMD's 179.8% landed in the same quarter XLK printed its 42% — the sector fund's rally and the memory repricing are the same three months of tape. MU's June is dissected tick by tick here, and NVDA's June deep-dive tracks the divergence session by session.
Répartition des volumes d'échanges
Le SQL exact derrière chaque chiffre
SELECT ticker,
round(sumIf(toFloat64(close) * toFloat64(volume), toDate(toTimeZone(window_start, 'America/New_York')) <= toDate('2026-03-31') AND (toHour(toTimeZone(window_start, 'America/New_York')) * 60 + toMinute(toTimeZone(window_start, 'America/New_York'))) BETWEEN 570 AND 959) / 1e9, 1) AS q1_dollar_bn,
round(sumIf(toFloat64(close) * toFloat64(volume), toDate(toTimeZone(window_start, 'America/New_York')) >= toDate('2026-04-01') AND (toHour(toTimeZone(window_start, 'America/New_York')) * 60 + toMinute(toTimeZone(window_start, 'America/New_York'))) BETWEEN 570 AND 959) / 1e9, 1) AS q2_dollar_bn,
round((sumIf(toFloat64(close) * toFloat64(volume), toDate(toTimeZone(window_start, 'America/New_York')) >= toDate('2026-04-01') AND (toHour(toTimeZone(window_start, 'America/New_York')) * 60 + toMinute(toTimeZone(window_start, 'America/New_York'))) BETWEEN 570 AND 959)
/ sumIf(toFloat64(close) * toFloat64(volume), toDate(toTimeZone(window_start, 'America/New_York')) <= toDate('2026-03-31') AND (toHour(toTimeZone(window_start, 'America/New_York')) * 60 + toMinute(toTimeZone(window_start, 'America/New_York'))) BETWEEN 570 AND 959) - 1) * 100, 0) AS q2_vs_q1_pct
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker IN ('XLB', 'XLC', 'XLE', 'XLF', 'XLI', 'XLK', 'XLP', 'XLRE', 'XLU', 'XLV', 'XLY')
AND window_start >= toDateTime('2026-01-01 00:00:00') AND window_start < toDateTime('2026-07-01 00:00:00')
GROUP BY ticker
ORDER BY q2_vs_q1_pct DESC, tickerLe volume en dollars a suivi une tendance unique : chacun des onze fonds sectoriels a enregistré un volume d'échanges inférieur au second trimestre par rapport au premier. La plus faible baisse se trouve sur la première ligne du tableau : le XLK avec -23%, passant de 161.2 milliards à 124.8 milliards de dollars. La baisse la plus marquée concerne l'immobilier à -45%. L'activité sur les wrappers sectoriels a été la plus intense lors du trimestre de baisse des indices, puis s'est essoufflée durant la phase de reprise. Deux points clés à retenir des tableaux ci-dessus : le XLE était le fonds sectoriel le plus échangé avec 316.2 milliards de dollars, et le titre MU a généré à lui seul un turnover de 2862.1 milliards de dollars — soit environ dix fois le volume de 286 milliards de dollars du XLK. Les produits sectoriels ont servi d'indicateur de tendance, tandis que les single names ont concentré l'essentiel des échanges du premier semestre.
Coût de transaction par secteur
Les tableaux de rendement sont omniprésents, contrairement aux flux de cotations. Ce panneau mesure le bid-ask spread médian de chaque fonds — le coût d'un aller-retour — sur une session complète, le 29 juin 2026, à partir de chaque mise à jour NBBO enregistrée ce jour-là.
Le SQL exact derrière chaque chiffre
SELECT ticker,
round(quantileDeterministicIf(0.5)((toFloat64(ask_price) - toFloat64(bid_price)) / ((toFloat64(ask_price) + toFloat64(bid_price)) / 2) * 10000, toUInt64(toUnixTimestamp64Micro(sip_timestamp)), bid_price > 0 AND ask_price >= bid_price), 2) AS med_spread_bps,
round(count() / 1e6, 2) AS quote_updates_m,
countIf(NOT (bid_price > 0 AND ask_price > 0 AND ask_price >= bid_price)) AS invalid_dropped
FROM global_markets.cache_stocks_quotes
WHERE ticker IN ('XLB', 'XLC', 'XLE', 'XLF', 'XLI', 'XLK', 'XLP', 'XLRE', 'XLU', 'XLV', 'XLY')
AND sip_timestamp >= toDateTime64('2026-06-29 13:30:00', 9) AND sip_timestamp < toDateTime64('2026-06-29 20:00:00', 9)
GROUP BY ticker
ORDER BY med_spread_bps, tickerLe fonds le moins cher à trader lors de cette session était XLV avec une médiane de 0.62 points de base ; le plus élevé était XLRE à 2.23. Un point de base représente un centième de pourcent ; ainsi, l'ensemble du tableau s'exprime en centièmes de pourcent par transaction aller-retour, ce qui illustre concrètement la liquidité des ETF sectoriels. Le nombre de mises à jour des cotations varie presque d'un facteur dix d'une ligne à l'autre, pourtant les médianes restent regroupées à quelques points de base près. À titre de comparaison, l'analyse approfondie de la microstructure du 29 juin examine le flux de cotations du SPY sur la même session, lequel présente un spread encore plus serré que n'importe quel fonds de ce tableau.
FAQ
Quel secteur a le mieux performé au S1 2026 ?
La technologie. Le XLK a affiché un rendement de 30.8% sur le semestre, l'intégralité de la performance ayant été réalisée au deuxième trimestre (42% au Q2 contre -8.7% au Q1). Les services de communication (XLC) ont enregistré la plus faible performance à -9.3%.
Les mêmes secteurs ont-ils dominé au Q1 et au Q2 2026 ?
Non — les deux trimestres étaient presque opposés. L'énergie a dominé le Q1 avec 36.9% et a terminé le Q2 à -11% ; la technologie a affiché -8.7% au Q1 et a mené le Q2 à 42%. Les secteurs des services publics (utilities) et de la consommation de base (staples) ont performé en début de période avant de décliner.
Quel est le coût de transaction d'un ETF sectoriel SPDR ?
Lors de la séance du 29 juin 2026, les spreads médians cotés variaient de 0.62 points de base (XLV) à 2.23 (XLRE) — soit quelques centièmes de pourcentage par aller-retour, ce qui est bien plus serré que pour une action individuelle classique.
Pourquoi le rendement d'un ETF sectoriel diffère-t-il du rendement de ses composants ?
Les fonds pondèrent leurs positions par capitalisation boursière, ce qui signifie que quelques grandes capitalisations dominent le résultat, alors qu'une médiane de panier traite chaque composant de manière égale. Au S1 2026, l'écart était le plus marqué dans la santé : une médiane sur un panier de cinq titres de 21.7% contre 2.5% pour le XLV.
Quels sont les onze ETF sectoriels ?
XLB (matériaux), XLC (services de communication), XLE (énergie), XLF (financier), XLI (industriel), XLK (technologie), XLP (consommation de base), XLRE (immobilier), XLU (services publics), XLV (santé) et XLY (consommation discrétionnaire). Ensemble, ils segmentent le S&P 500.
Notes sur les données
Notes complètes sur les données
- Les paniers de breadth sont des échantillons éditoriaux fixes comprenant cinq large-caps par secteur. Il ne s'agit pas de portefeuilles de fonds et ils ne comportent aucun poids. Les titres ont été sélectionnés selon le calendrier des splits du semestre — les bougies d'une minute ne sont pas ajustées, et un split en milieu de période fausse le rendement open-to-close — deux noms évidents ont été remplacés lors de cette sélection. Chaque chiffre sur cette page est un rendement sur le prix ; les dividendes ne sont pas inclus.
- Les médianes des paniers utilisent des quantiles déterministes. En cas d'égalité pour les meilleurs ou les moins bons membres, le tie-break est effectué par ticker ; la régénération ne peut donc pas modifier l'ordre des égalités.
- Le panel du spread mesure une seule session identifiée (29 juin 2026) et non l'ensemble du semestre ; un scan sur six mois de l'ensemble du tape pour onze tickers dépasse le budget de requête alloué à cette page. Les cotations invalides (crossed ou unilatérales) sont comptabilisées dans le panel au lieu d'être ignorées.
- Le panel du scorecard utilise la même requête que le récapitulatif H1, par conséquent, les deux pages ne peuvent pas présenter des chiffres sectoriels divergents.
Méthodologie
- La période s'étend du 1er janvier au 30 juin 2026. Les rendements sont calculés de l'ouverture à la clôture des séances régulières pour chaque période, via les requêtes indiquées. Les horaires réguliers sont filtrés selon l'heure de l'Est (9h30–15h59, convertie par ligne) — compatible avec le passage à l'heure d'été (EST/EDT).
- Les limites trimestrielles sont appliquées sur la date de trading de l'heure de l'Est : le T1 se termine le 31 mars, le T2 commence le 1er avril.
- Le volume en dollars multiplie le prix par le nombre d'actions durant les horaires réguliers dans les mêmes requêtes.
- La génération s'effectue via le flux en lecture seule ; la page publique n'interroge jamais les données en temps réel. État de l'entrepôt de données au 12 juillet 2026.
Le registre complet du semestre — indices, taux, tape des options — est disponible dans le récapitulatif du marché du S1 2026. Pour analyser un secteur différemment, chaque panneau SQL peut être exécuté tel quel sur le terminal Strasmore.