MU: La plus grosse bande de juin 2026
Micron en juin 2026 : 995.7 milliards $ de volume, first bande du marché, revalorisation retombée à 14 %.
Micron a vécu un premier semestre 2026 marqué par une revalorisation violente de son cours. En juin, le prix s'est calmé, mais pas la bande. MU a clôturé juin à 1151.01 $, en hausse de 14 %, son mois le plus calme depuis février, après un mai à 89.8 %. Son volume en séance régulière de 995.7 milliards de dollars l'a classé first de toute la bande américaine, devant SPY lui-même. Mesuré jour par jour, ce fut aussi le mois le plus volatil du semestre (127.6 % annualisé) : le calme n'est qu'une illusion de bornes. Voici les preuves de juin : la bande, les dépôts de la semaine des résultats, la volatilité, les pairs, l'écart, les options, les positions courtes et l'arc du semestre. Chaque chiffre est une requête enregistrée ; dépliez n'importe quel panneau pour voir son SQL.
Le mois en une ligne
Le SQL exact derrière chaque chiffre
WITH
(
SELECT count() FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker = 'SPY'
AND window_start >= toDateTime('2026-06-19 00:00:00') AND window_start < toDateTime('2026-06-20 00:00:00')
) AS spy_jun19,
(
SELECT max(toFloat64(high)) FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker = 'MU'
AND window_start >= toDateTime('2026-06-01 00:00:00') AND window_start < toDateTime('2026-07-01 00:00:00')
) AS hi,
(
SELECT min(toFloat64(low)) FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker = 'MU'
AND window_start >= toDateTime('2026-06-01 00:00:00') AND window_start < toDateTime('2026-07-01 00:00:00')
) AS lo
SELECT
round(argMinIf(toFloat64(open), window_start, (toHour(window_start) * 60 + toMinute(window_start)) BETWEEN 810 AND 1199), 2) AS month_open,
round(argMaxIf(toFloat64(close), window_start, (toHour(window_start) * 60 + toMinute(window_start)) BETWEEN 810 AND 1199), 2) AS month_close,
round((argMaxIf(toFloat64(close), window_start, (toHour(window_start) * 60 + toMinute(window_start)) BETWEEN 810 AND 1199) / argMinIf(toFloat64(open), window_start, (toHour(window_start) * 60 + toMinute(window_start)) BETWEEN 810 AND 1199) - 1) * 100, 1) AS month_return_pct,
round(hi, 2) AS month_high,
formatDateTime(toTimeZone(minIf(window_start, toFloat64(high) >= hi - 0.011), 'America/New_York'), '%Y-%m-%d %H:%i') AS month_high_first_bar_et,
round(lo, 2) AS month_low,
formatDateTime(toTimeZone(minIf(window_start, toFloat64(low) <= lo + 0.011), 'America/New_York'), '%Y-%m-%d %H:%i') AS month_low_first_bar_et,
round(minIf(toFloat64(low), (toHour(window_start) * 60 + toMinute(window_start)) BETWEEN 810 AND 1199) - lo, 2) AS rth_minus_extended_low,
round(toFloat64(sum(volume)) / 1e9, 2) AS month_shares_bn,
round(sumIf(toFloat64(close) * toFloat64(volume), (toHour(window_start) * 60 + toMinute(window_start)) BETWEEN 810 AND 1199) / 1e9, 1) AS rth_dollar_bn,
uniqExact(toDate(toTimeZone(window_start, 'America/New_York'))) AS session_days_observed,
spy_jun19 AS spy_bars_june19
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker = 'MU'
AND window_start >= toDateTime('2026-06-01 00:00:00') AND window_start < toDateTime('2026-07-01 00:00:00')L'amplitude intramensuelle était énorme pour un titre de cette taille : un plus bas à 850.1 $ (2026-06-05 16:34 ET) jusqu'à un plus haut à 1255 $ (2026-06-25 09:35 ET), plus large que l'année entière de la plupart des actions. Le 19 juin fut une fermeture de marché à l'échelle nationale (0 barre SPY), si bien que le mois a compté 21 séances.
Juin face à l'arc du semestre
Un +14 %, est-ce beaucoup ? Pour ce titre, sur ce semestre, ce fut le mois calme. Le panneau recalcule chaque mois à l'identique, en direct.
Le SQL exact derrière chaque chiffre
SELECT toString(toStartOfMonth(toDate(toTimeZone(window_start, 'America/New_York')))) AS period_start,
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,
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), 2) AS month_close,
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 rth_dollar_bn
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker = 'MU'
AND window_start >= toDateTime('2026-01-01 00:00:00') AND window_start < toDateTime('2026-07-01 00:00:00')
GROUP BY period_start
ORDER BY period_startL'arc : 40.5 % en janvier, un février plat à 0 %, un mars à -15.9 % marquant la clôture la plus basse du semestre (337.62 $), puis 48.4 % en avril et 89.8 % en mai : de 414.73 $ à 1151.01 $ en six mois. Le volume a grimpé avec lui : de 235.8 milliards de dollars en janvier à 995.7 milliards en juin. Le mouvement de prix de juin fut le plus petit depuis février ; la bande de juin fut la plus grosse de la fenêtre.
Le prix s'est calmé. La volatilité, non.
Un mois à +14 % est-il calme ? La volatilité réalisée, les mouvements de clôture au jour le jour, annualisés, lit juin très différemment.
Le SQL exact derrière chaque chiffre
SELECT
toString(toStartOfMonth(et_date)) AS period_start,
round(stddevSamp(log_ret) * sqrt(252) * 100, 1) AS realized_vol_ann_pct,
round(100 * stddevSamp(log_ret) / max(stddevSamp(log_ret)) OVER (), 1) AS pct_of_peak_vol,
round(avg(day_range_pct), 1) AS avg_day_range_pct,
round(max(abs(day_move_pct)), 1) AS biggest_day_move_pct,
count() AS return_days
FROM (
SELECT et_date, day_range_pct,
if(prev_close > 0, ln(close_usd / prev_close), NULL) AS log_ret,
if(prev_close > 0, (close_usd / prev_close - 1) * 100, NULL) AS day_move_pct
FROM (
SELECT et_date, close_usd, day_range_pct,
lagInFrame(close_usd) OVER (ORDER BY et_date ASC ROWS BETWEEN 1 PRECEDING AND CURRENT ROW) AS prev_close
FROM (
SELECT toDate(toTimeZone(window_start, 'America/New_York')) AS et_date,
argMaxIf(toFloat64(close), window_start, (toHour(toTimeZone(window_start, 'America/New_York')) * 60 + toMinute(toTimeZone(window_start, 'America/New_York'))) BETWEEN 570 AND 959) AS close_usd,
(maxIf(toFloat64(high), (toHour(toTimeZone(window_start, 'America/New_York')) * 60 + toMinute(toTimeZone(window_start, 'America/New_York'))) BETWEEN 570 AND 959) / minIf(toFloat64(low), (toHour(toTimeZone(window_start, 'America/New_York')) * 60 + toMinute(toTimeZone(window_start, 'America/New_York'))) BETWEEN 570 AND 959) - 1) * 100 AS day_range_pct
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker = 'MU'
AND window_start >= toDateTime('2026-01-01 00:00:00') AND window_start < toDateTime('2026-07-01 00:00:00')
GROUP BY et_date
)
)
)
WHERE isFinite(log_ret) AND log_ret IS NOT NULL
GROUP BY period_start
ORDER BY period_startJuin fut le mois le plus agité du semestre selon cette mesure : 127.6 % annualisé, au-dessus même du 101.4 % de mai, avec une amplitude moyenne de séance de 7.6 % et un mouvement de clôture à clôture de 15.8 %. Les bornes étaient calmes ; les jours entre elles ne l'étaient pas.
Séance par séance
Le SQL exact derrière chaque chiffre
SELECT et_date, close_usd,
round(if(prev_close = 0, NULL, (close_usd / prev_close - 1) * 100), 1) AS change_pct,
shares_m
FROM (
SELECT et_date, close_usd, shares_m,
lagInFrame(close_usd) OVER (ORDER BY et_date ASC ROWS BETWEEN 1 PRECEDING AND CURRENT ROW) AS prev_close
FROM (
SELECT toDate(toTimeZone(window_start, 'America/New_York')) AS et_date,
round(argMaxIf(toFloat64(close), window_start, (toHour(window_start) * 60 + toMinute(window_start)) BETWEEN 810 AND 1199), 2) AS close_usd,
round(toFloat64(sum(volume)) / 1e6, 1) AS shares_m
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker = 'MU'
AND window_start >= toDateTime('2026-06-01 00:00:00') AND window_start < toDateTime('2026-07-01 00:00:00')
GROUP BY et_date
)
)
ORDER BY et_dateLe tableau oscille fort dans les deux sens : de 1034.83 $ le 2026-06-01, à travers les turbulences, jusqu'à 1151.01 $ à la dernière séance. Voilà ce que cache un « +14 % sur le mois » : seules les bornes étaient calmes. Les lignes les plus lourdes se trouvent dans la semaine des résultats, épinglée juste après.
Les oscillations coïncident-elles avec un trimestre publié ?
Elles peuvent être datées : le fil documentaire de MU en juin, tiré de l'index de la SEC elle-même, mis en regard de ce que la bande a fait à ces dates.
Le SQL exact derrière chaque chiffre
WITH
(
SELECT maxIf(filing_date, form_type = '8-K')
FROM global_markets.stocks_sec_edgar_index
WHERE cik = '0000723125' AND filing_date >= toDate('2026-06-01') AND filing_date <= toDate('2026-06-30')
) AS last_8k_date,
(
SELECT minIf(filing_date, form_type = '10-Q')
FROM global_markets.stocks_sec_edgar_index
WHERE cik = '0000723125' AND filing_date >= toDate('2026-06-01') AND filing_date <= toDate('2026-06-30')
) AS tenq_date,
(
SELECT (count(), countIf(form_type = '8-K'), countIf(form_type = '4'))
FROM global_markets.stocks_sec_edgar_index
WHERE cik = '0000723125' AND filing_date >= toDate('2026-06-01') AND filing_date <= toDate('2026-06-30')
) AS filing_census,
(
SELECT toDate(toTimeZone(min(window_start), 'America/New_York'))
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker = 'MU'
AND window_start >= toDateTime('2026-06-01 00:00:00') AND window_start < toDateTime('2026-07-01 00:00:00')
AND toFloat64(high) >= (
SELECT max(toFloat64(high)) FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker = 'MU' AND window_start >= toDateTime('2026-06-01 00:00:00') AND window_start < toDateTime('2026-07-01 00:00:00')
) - 0.011
) AS month_high_date
SELECT
toString(last_8k_date) AS earnings_8k_filed,
if(last_8k_date = toDate('2026-06-24'), 1, 0) AS eightk_on_jun24,
toString(tenq_date) AS tenq_filed,
dateDiff('day', last_8k_date, tenq_date) AS days_8k_to_10q,
filing_census.1 AS june_filings_total,
filing_census.2 AS eightk_filings,
filing_census.3 AS form4_filings,
round((anyIf(close_usd, et_date = toDate('2026-06-25')) / anyIf(close_usd, et_date = toDate('2026-06-24')) - 1) * 100, 1) AS next_session_move_pct,
round(anyIf(shares_m, et_date = toDate('2026-06-25')), 1) AS next_session_shares_m,
round(anyIf(shares_m, et_date = toDate('2026-06-25')) - maxIf(shares_m, et_date != toDate('2026-06-25')), 1) AS shares_lead_over_next_busiest_m,
if(month_high_date = toDate('2026-06-25'), 1, 0) AS month_high_on_jun25
FROM (
SELECT toDate(toTimeZone(window_start, 'America/New_York')) AS et_date,
argMaxIf(toFloat64(close), window_start, (toHour(window_start) * 60 + toMinute(window_start)) BETWEEN 810 AND 1199) AS close_usd,
toFloat64(sum(volume)) / 1e6 AS shares_m
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker = 'MU'
AND window_start >= toDateTime('2026-06-01 00:00:00') AND window_start < toDateTime('2026-07-01 00:00:00')
GROUP BY et_date
)Le 8-K trimestriel de MU est daté du 2026-06-24, le 10-Q suivant 1 jour plus tard (8 dépôts en juin, 3 formulaires 4 d'initiés). La séance suivant la date du 8-K a clôturé 15.8 % plus haut, sur 77.2 millions d'actions, la plus lourde du mois, 5.9 millions devant la suivante. Le plus haut du mois, à 1255 $, s'est imprimé lors de cette même séance (2026-06-25 09:35 ET ; la colonne de concordance fixe le rapprochement). La coïncidence est l'observation ; cette page s'arrête là.
Une histoire Micron, ou une histoire de mémoire ?
Le reste du complexe mémoire et stockage a-t-il bougé aussi ? Le panier est fixe et déclaré à l'avance : les trois valeurs de stockage que les co-tags d'actualité de juin associent le plus à MU, plus NVDA et SPY comme repères.
Le SQL exact derrière chaque chiffre
WITH (
SELECT (argMaxIf(toFloat64(close), window_start, (toHour(window_start) * 60 + toMinute(window_start)) BETWEEN 810 AND 1199) / argMinIf(toFloat64(open), window_start, (toHour(window_start) * 60 + toMinute(window_start)) BETWEEN 810 AND 1199) - 1) * 100
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker = 'MU' AND window_start >= toDateTime('2026-06-01 00:00:00') AND window_start < toDateTime('2026-07-01 00:00:00')
) AS mu_return
SELECT ticker,
round(june_return_pct, 1) AS june_return_pct,
round(june_return_pct - mu_return, 1) AS vs_mu_pct_points,
rth_dollar_bn,
round(100 * rth_dollar_bn / max(rth_dollar_bn) OVER (), 1) AS pct_of_top_turnover
FROM (
SELECT ticker,
(argMaxIf(toFloat64(close), window_start, (toHour(window_start) * 60 + toMinute(window_start)) BETWEEN 810 AND 1199) / argMinIf(toFloat64(open), window_start, (toHour(window_start) * 60 + toMinute(window_start)) BETWEEN 810 AND 1199) - 1) * 100 AS june_return_pct,
round(sumIf(toFloat64(close) * toFloat64(volume), (toHour(window_start) * 60 + toMinute(window_start)) BETWEEN 810 AND 1199) / 1e9, 1) AS rth_dollar_bn
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker IN ('MU', 'SNDK', 'WDC', 'INTC', 'NVDA', 'SPY')
AND window_start >= toDateTime('2026-06-01 00:00:00') AND window_start < toDateTime('2026-07-01 00:00:00')
GROUP BY ticker
)
ORDER BY june_return_pct DESCCe fut un mouvement de mémoire, et MU l'a suivi avec retard. SNDK a gagné 31.3 %, INTC 27.5 %, WDC 19.1 %. Chaque valeur de stockage a devancé MU de 5.1 à 17.3 points, tandis que SPY et NVDA ont terminé juin en baisse. La particularité de MU : son volume dépasse chaque ligne ici.
Le plus gros ticker de la bande
Le SQL exact derrière chaque chiffre
SELECT ticker,
round(sum(toFloat64(volume) * toFloat64(close)) / 1e9, 1) AS regular_hours_dollar_bn,
round(100 * sum(toFloat64(volume) * toFloat64(close)) / max(sum(toFloat64(volume) * toFloat64(close))) OVER (), 1) AS pct_of_leader
FROM global_markets.delayed_stocks_minute_aggs
WHERE window_start >= toDateTime('2026-06-01 00:00:00') AND window_start < toDateTime('2026-07-01 00:00:00')
AND (toHour(window_start) * 60 + toMinute(window_start)) BETWEEN 810 AND 1199
AND ticker NOT IN ('SPCX')
GROUP BY ticker
ORDER BY regular_hours_dollar_bn DESC
LIMIT 10Le SQL exact derrière chaque chiffre
WITH (
SELECT sum(toFloat64(volume) * toFloat64(close))
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker = 'MU'
AND window_start >= toDateTime('2026-06-01 00:00:00') AND window_start < toDateTime('2026-07-01 00:00:00')
AND (toHour(window_start) * 60 + toMinute(window_start)) BETWEEN 810 AND 1199
) AS mu_d
SELECT
countIf(d > mu_d AND ticker != 'MU') + 1 AS mu_rank,
round(mu_d / 1e9, 1) AS mu_dollar_bn,
round((mu_d - maxIf(d, d < mu_d AND ticker != 'MU')) / 1e9, 1) AS lead_over_next_bn
FROM (
SELECT ticker, sum(toFloat64(volume) * toFloat64(close)) AS d
FROM global_markets.delayed_stocks_minute_aggs
WHERE window_start >= toDateTime('2026-06-01 00:00:00') AND window_start < toDateTime('2026-07-01 00:00:00')
AND (toHour(window_start) * 60 + toMinute(window_start)) BETWEEN 810 AND 1199
AND ticker NOT IN ('SPCX')
GROUP BY ticker
)MU s'est classée first de tous les symboles cotés aux États-Unis par volume en dollars en séance régulière de juin : 995.7 milliards de dollars, 224.3 milliards d'avance sur SPY, deuxième. Une seule entreprise qui échange plus que le fonds indiciel phare pendant un mois entier est une structure de bande rare ; les sections sur la semaine des résultats et les pairs, ci-dessus, en donnent le contexte. Base de calcul : séances régulières du 1er au 30 juin, une cotation à symbole réutilisé exclue en attendant vérification de l'entité (ses preuves). La vue d'ensemble du marché se trouve dans le récapitulatif de juin.
De quoi la bande était faite
Le SQL exact derrière chaque chiffre
WITH
(
SELECT (round(count() / 1e6, 2),
round(100.0 * countIf(bid_price > 0 AND ask_price > 0 AND ask_price > bid_price) / count(), 2),
countIf(bid_price > 0 AND ask_price > 0 AND ask_price < bid_price),
countIf(bid_price <= 0 OR ask_price <= 0))
FROM global_markets.cache_stocks_quotes
WHERE ticker = 'MU'
AND sip_timestamp >= toDateTime64('2026-06-01 00:00:00', 9) AND sip_timestamp < toDateTime64('2026-07-01 00:00:00', 9)
) AS quote_census
SELECT
round(count() / 1e6, 2) AS prints_m,
quantileDeterministic(0.5)(toFloat64(size), toUInt64(abs(sequence_number))) AS median_print_shares,
round(avg(toFloat64(size)), 1) AS avg_print_shares,
round(100.0 * countIf(size < 100) / count(), 1) AS odd_lot_pct_of_prints,
round(100.0 * countIf(toFloat64(size) != round(toFloat64(size))) / count(), 2) AS fractional_pct_of_prints,
quote_census.1 AS nbbo_updates_m,
quote_census.2 AS clean_two_sided_pct,
quote_census.3 AS crossed_updates,
quote_census.4 AS one_sided_or_empty_updates
FROM global_markets.stocks_trades
WHERE ticker = 'MU'
AND sip_timestamp >= toDateTime64('2026-06-01 00:00:00', 9) AND sip_timestamp < toDateTime64('2026-07-01 00:00:00', 9)35.17 millions de transactions pour une médiane de 8 actions, et 91.7 % de lots impairs, l'une des bandes les plus découpées en petites tailles que nous ayons mesurées (le juin de NVDA est nettement plus bas ; son analyse approfondie présente le panneau jumeau). À un cours à quatre chiffres, un « lot rond » représente une somme sérieuse, si bien que les petites transactions dominent par construction ; les transactions fractionnées (9.04 %) vont dans le même sens. Le volet cotations : 19.64 millions de mises à jour NBBO, 99.86 % propres et à deux côtés, 16963 croisées, 78 à un seul côté ou vides : divulguées, pas écartées.
L'écart pendant une revalorisation
Une action qui triple presque en un trimestre pose la question de l'écart différemment : est-elle restée cotée de façon serrée pendant que le prix trouvait un nouveau niveau ?
Le SQL exact derrière chaque chiffre
SELECT session,
round(quantileDeterministicIf(0.5)(toFloat64(ask_price) - toFloat64(bid_price), toUInt64(toUnixTimestamp64Micro(sip_timestamp)), bid_price > 0 AND ask_price >= bid_price) * 100, 1) AS med_spread_cents,
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,
count() AS quote_updates,
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 = 'MU'
AND sip_timestamp >= toDateTime64('2026-06-01 13:30:00', 9) AND sip_timestamp < toDateTime64('2026-07-01 00:00:00', 9)
AND (toHour(sip_timestamp) * 60 + toMinute(sip_timestamp)) BETWEEN 810 AND 1199
GROUP BY toDate(toTimeZone(sip_timestamp, 'America/New_York')) AS session
ORDER BY sessionEn points de base, l'écart est resté de qualité institutionnelle tout au long du mouvement : 3.96 pb le 2026-06-01, 4.19 pb à la dernière séance. La colonne en cents suit à peu près le niveau de prix lui-même. Pour la mécanique, voir l'explicatif sur l'écart.
Options : un carnet à double sens
Le SQL exact derrière chaque chiffre
SELECT
round(count() / 1e6, 2) AS prints_m,
uniqExact(ticker) AS distinct_contracts,
round(sum(size) / 1e6, 2) AS contracts_traded_m,
round(sum(toFloat64(price) * size) * 100 / 1e9, 2) AS premium_notional_busd,
round(toFloat64(sumIf(size, substring(ticker, 11, 1) = 'P')) / toFloat64(sumIf(size, substring(ticker, 11, 1) = 'C')), 2) AS month_put_call_ratio,
uniqExact(substring(ticker, 5, 6)) AS expiries_traded,
round(intDiv(toUInt32OrZero(substring(argMax(ticker, sz), 12, 8)), 1000), 0) AS busiest_strike_usd
FROM (
SELECT ticker, price, size, sum(size) OVER (PARTITION BY ticker) AS sz
FROM global_markets.options_trades
WHERE startsWith(ticker, 'O:MU') AND length(ticker) = 19
AND sip_timestamp >= toDateTime64('2026-06-01 00:00:00', 9) AND sip_timestamp < toDateTime64('2026-07-01 00:00:00', 9)
)16.76 millions de contrats répartis sur 11789 contrats distincts, pour 77.13 milliards de dollars de prime. Le carnet était à double sens : un ratio put/call mensuel de 0.99, quasiment la parité (le juin de NVDA penchait vers les calls ; comparer). Une quasi-parité pendant une revalorisation violente montre un marché des options partagé des deux côtés du mouvement : les données montrent le partage, pas l'intention.
Le SQL exact derrière chaque chiffre
SELECT
concat('$', toString(toUInt32(bucket))) AS strike_bucket,
call_contracts,
put_contracts,
round(100.0 * put_contracts / (call_contracts + put_contracts), 1) AS put_share_pct
FROM (
SELECT
least(floor(toFloat64(toUInt32OrZero(substring(ticker, 12, 8))) / 1000 / 100) * 100, 1500) AS bucket,
toUInt64(sumIf(size, substring(ticker, 11, 1) = 'C')) AS call_contracts,
toUInt64(sumIf(size, substring(ticker, 11, 1) = 'P')) AS put_contracts
FROM global_markets.options_trades
WHERE startsWith(ticker, 'O:MU') AND length(ticker) = 19
AND sip_timestamp >= toDateTime64('2026-06-01 00:00:00', 9) AND sip_timestamp < toDateTime64('2026-07-01 00:00:00', 9)
GROUP BY bucket
)
ORDER BY toUInt32OrZero(substring(strike_bucket, 2))La carte des strikes couvre une plage qui aurait paru absurde en janvier : un volume réel depuis la tranche $0 jusqu'au plafond $1500+, une empreinte de l'ampleur du mouvement du sous-jacent. Combien coûtait le fait de posséder ce mouvement ? La dernière séance du mois en donne le prix :
Le SQL exact derrière chaque chiffre
WITH (
SELECT argMaxIf(toFloat64(close), window_start, (toHour(window_start) * 60 + toMinute(window_start)) BETWEEN 810 AND 1199)
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker = 'MU' AND window_start >= toDateTime('2026-06-30 00:00:00') AND window_start < toDateTime('2026-07-01 00:00:00')
) AS spot
SELECT
toString(any(expiry)) AS nearest_expiry,
dateDiff('day', toDate('2026-06-30'), any(expiry)) AS calendar_days_to_expiry,
round(spot, 2) AS spot_close,
argMin(strike_usd, (dist, strike_usd)) AS atm_strike,
round(argMin(call_last + put_last, (dist, strike_usd)), 2) AS straddle_usd,
round(argMin(call_last + put_last, (dist, strike_usd)) / spot * 100, 2) AS straddle_pct_of_spot,
count() AS two_sided_strikes
FROM (
SELECT expiry, strike_usd, abs(strike_usd - spot) AS dist,
anyIf(last_px, opt_type = 'C') AS call_last,
anyIf(last_px, opt_type = 'P') AS put_last
FROM (
SELECT
toDateOrNull(concat('20', substring(ticker, 5, 2), '-', substring(ticker, 7, 2), '-', substring(ticker, 9, 2))) AS expiry,
substring(ticker, 11, 1) AS opt_type,
toFloat64(toUInt32OrZero(substring(ticker, 12, 8))) / 1000 AS strike_usd,
argMax(toFloat64(price), (sip_timestamp, toFloat64(price))) AS last_px
FROM global_markets.options_trades
WHERE startsWith(ticker, 'O:MU') AND length(ticker) = 19
AND sip_timestamp >= toDateTime64('2026-06-30 00:00:00', 9) AND sip_timestamp < toDateTime64('2026-07-01 00:00:00', 9)
GROUP BY expiry, opt_type, strike_usd
)
WHERE expiry > toDate('2026-06-30')
GROUP BY expiry, strike_usd
HAVING countIf(opt_type = 'C') > 0 AND countIf(opt_type = 'P') > 0
)
WHERE expiry = (
SELECT min(toDateOrNull(concat('20', substring(ticker, 5, 2), '-', substring(ticker, 7, 2), '-', substring(ticker, 9, 2))))
FROM global_markets.options_trades
WHERE startsWith(ticker, 'O:MU') AND length(ticker) = 19
AND sip_timestamp >= toDateTime64('2026-06-30 00:00:00', 9) AND sip_timestamp < toDateTime64('2026-07-01 00:00:00', 9)
AND toDateOrNull(concat('20', substring(ticker, 5, 2), '-', substring(ticker, 7, 2), '-', substring(ticker, 9, 2))) > toDate('2026-06-30')
)À la clôture du 30 juin, l'échéance la plus proche se situait à 2 jours calendaires ; la paire à la monnaie, un call plus un put au strike de 1150 $, s'est échangée pour la dernière fois à 69.95 $ au total : 6.08 % du cours de 1151.01 $. Un acheteur avait besoin d'un mouvement de cette ampleur, dans un sens comme dans l'autre, dans ces 2 jours pour rentrer dans ses frais. Juin s'est achevé encore tarifé pour un mouvement démesuré.
Le flux d'actualité
Le SQL exact derrière chaque chiffre
WITH
(
SELECT (JSONExtractString(any(publisher), 'name'), count())
FROM global_markets.stocks_news
WHERE has(tickers, 'MU')
AND published_utc >= toDateTime('2026-06-01 00:00:00') AND published_utc < toDateTime('2026-07-01 04:00:00')
GROUP BY JSONExtractString(publisher, 'name') ORDER BY count() DESC LIMIT 1
) AS top_pub
SELECT
count() AS june_articles,
uniqExact(JSONExtractString(publisher, 'name')) AS publishers,
top_pub.1 AS top_publisher,
round(100.0 * top_pub.2 / count(), 0) AS top_publisher_pct,
countIf(has(tickers, 'NVDA')) AS nvda_co_articles,
countIf(has(tickers, 'SNDK')) AS sndk_co_articles,
countIf(has(tickers, 'INTC')) AS intc_co_articles
FROM global_markets.stocks_news
WHERE has(tickers, 'MU')
AND published_utc >= toDateTime('2026-06-01 00:00:00') AND published_utc < toDateTime('2026-07-01 04:00:00')195 articles taggés MU venant de 4 éditeurs. À lire avec prudence : The Motley Fool en a écrit 59 % à lui seul. Les co-tags dessinent une histoire de semi-conducteurs : NVDA dans 86 articles, SNDK dans 32, INTC dans 21. De quoi parlait-on ? Les propres tags d'articles du fournisseur donnent le vocabulaire sans l'endosser :
Le SQL exact derrière chaque chiffre
SELECT keyword, count() AS articles,
round(100.0 * count() / (SELECT count() FROM global_markets.stocks_news WHERE has(tickers, 'MU') AND published_utc >= toDateTime('2026-06-01 00:00:00') AND published_utc < toDateTime('2026-07-01 04:00:00')), 1) AS pct_of_articles
FROM global_markets.stocks_news
ARRAY JOIN keywords AS keyword
WHERE has(tickers, 'MU')
AND published_utc >= toDateTime('2026-06-01 00:00:00') AND published_utc < toDateTime('2026-07-01 04:00:00')
GROUP BY keyword
ORDER BY articles DESC, keyword ASC
LIMIT 10« AI infrastructure » arrive en tête avec 49 des 195 articles, suivi de « memory chips », « DRAM » et « high-bandwidth memory ». Un vocabulaire d'IA et de mémoire, rapporté comme un décompte de tags, pas comme une explication.
Les positions courtes ont reculé, et une lacune de couverture demeure
Le SQL exact derrière chaque chiffre
SELECT toString(date) AS d,
round(toFloat64(any(short_volume)) / 1e6, 2) AS short_shares_m,
round(100 * toFloat64(any(short_volume)) / toFloat64(any(total_volume)), 1) AS short_pct_of_offexchange
FROM global_markets.stocks_short_volume
WHERE ticker = 'MU' AND date >= toDate('2026-06-01') AND date <= toDate('2026-06-30')
GROUP BY date
ORDER BY dateD'abord la couverture : le fichier de volume court de juin pour MU ne contient que 16 des 21 séances. Au-delà de la troncature du 29 juin, commune à tout le marché, plusieurs lignes MU sont tout simplement absentes, donc aucun ratio mensuel n'est calculé ; les lignes quotidiennes sont réelles, les lacunes divulguées.
Le SQL exact derrière chaque chiffre
SELECT
toString(maxIf(settlement_date, settlement_date <= toDate('2026-06-20'))) AS mid_june_settlement,
round(toFloat64(maxIf(short_interest, settlement_date <= toDate('2026-06-20'))) / 1e6, 2) AS mid_june_shares_short_m,
toString(maxIf(settlement_date, settlement_date > toDate('2026-06-20'))) AS eom_settlement,
round(toFloat64(maxIf(short_interest, settlement_date > toDate('2026-06-20'))) / 1e6, 2) AS eom_shares_short_m,
round((toFloat64(maxIf(short_interest, settlement_date <= toDate('2026-06-20'))) - toFloat64(maxIf(short_interest, settlement_date > toDate('2026-06-20')))) / 1e6, 2) AS decline_m_shares,
round(toFloat64(maxIf(short_interest, settlement_date > toDate('2026-06-20'))) / toFloat64(maxIf(avg_daily_volume, settlement_date > toDate('2026-06-20'))), 2) AS eom_days_to_cover
FROM global_markets.stocks_short_interest
WHERE ticker = 'MU' AND settlement_date >= toDate('2026-06-01') AND settlement_date <= toDate('2026-06-30')La paire de règlements est complète : 41.59 millions d'actions à découvert au règlement du 2026-06-15, retombées à 31.67 millions au 2026-06-30. Un recul de 9.92 millions d'actions sur la seconde quinzaine, celle qui portait la semaine des résultats. La position de fin de mois équivaut à 0.53 jour de volume moyen à couvrir, un chiffre faible pour cette bande. Cette page a d'abord été publiée avec ce chiffre en attente (le délai est normal) ; le nombre ci-dessus en est l'arrivée.
Les fondamentaux sous la bande
Que montrent les propres états financiers de l'entreprise ? Une réserve : le flux de données est en retard sur le calendrier des dépôts, la ligne la plus récente précède le 10-Q de juin. C'est donc la tendance qui fait office de pièce à conviction, pas le dernier chiffre.
Le SQL exact derrière chaque chiffre
SELECT quarter_end, revenue_bn,
round(100 * revenue_bn / max(revenue_bn) OVER (), 1) AS pct_of_peak_revenue,
net_income_bn, diluted_eps
FROM (
SELECT toString(period_end) AS quarter_end,
round(toFloat64(revenue) / 1e9, 2) AS revenue_bn,
round(toFloat64(net_income_loss_attributable_common_shareholders) / 1e9, 2) AS net_income_bn,
round(toFloat64(diluted_earnings_per_share), 2) AS diluted_eps
FROM global_markets.stocks_income_statements
WHERE has(tickers, 'MU') AND timeframe = 'quarterly'
ORDER BY period_end DESC
LIMIT 6
)
ORDER BY quarter_end ASCSur les six trimestres au dossier, le chiffre d'affaires va de 7.75 milliards de dollars (2024-08-29) à 13.64 milliards (2025-11-27), la ligne la plus récente étant le sommet de la fenêtre, avec 5.24 milliards de résultat net et 4.6 $ de BPA dilué ce trimestre-là. Ce n'est pas une ligne droite, mais la fenêtre se termine à son plus haut.
À surveiller à partir d'ici
Seulement des faits de calendrier : le prochain règlement d'intérêt court arrive à la mi-juillet, publié avec le délai habituel de la FINRA ; le trimestre déposé en juin deviendra une ligne de fondamentaux une fois le flux du fournisseur à jour ; et la bande de juillet recevra ce même traitement dans la prochaine édition de la série.
FAQ
Pourquoi l'action MU a-t-elle autant bougé en juin 2026 ?
Cette page mesure plutôt qu'elle n'explique : MU s'est négociée entre 850.1 $ et 1255 $ ; le 8-K trimestriel est daté du 2026-06-24, avec la séance suivante en hausse de 15.8 % sur le plus gros volume du mois ; tout le panier mémoire a bougé dans le même sens durant la période.
Quelle a été la volatilité de MU en juin 2026 ?
Le mois le plus volatil de son semestre : 127.6 % de volatilité réalisée annualisée et une amplitude moyenne de séance de 7.6 %, pour un rendement de borne à borne de seulement 14 %.
Le mouvement de MU en juin était-il propre à l'entreprise ou sectoriel ?
Sectoriel, avec MU en retard parmi les hausses : SNDK a gagné 31.3 % et chaque valeur de stockage a devancé le 14 % de MU, tandis que SPY et NVDA ont terminé en baisse. La particularité de MU fut le volume : 995.7 milliards de dollars, le plus gros du panier.
L'intérêt court de MU est-il élevé ?
Faible par rapport à son propre volume : 31.67 millions d'actions au règlement du 2026-06-30, soit environ 0.53 jour de volume moyen à couvrir, en recul de 9.92 millions par rapport à la mi-juin. L'intérêt court se publie toujours avec un délai de règlement.
Que signifie le ratio put/call de MU ?
Le ratio de 0.99 en juin signifie que les puts et les calls se sont échangés en volumes presque égaux : un marché à double sens, pas un pari unilatéral. Bien en dessous de un se lit comme un penchant vers les calls (comme le juin de NVDA), bien au-dessus de un comme un penchant vers les puts.
Notes sur les données
Notes complètes sur les données
- Entité. MU est Micron Technology, Inc., CIK 0000723125 : une identité EDGAR continue, sans réserve de réutilisation de symbole.
- Couverture du volume court. Le fichier de juin couvre 16 des 21 séances (la troncature du 29 juin, plus des absences propres à MU) ; les ratios ne sont montrés que jour par jour.
- Panier de pairs. SNDK, WDC, INTC, les co-tags de stockage les plus fréquents dans le flux d'actualité de MU en juin, plus NVDA et SPY comme repères ; déclarés à l'avance, jamais assemblés après coup.
- Analyse des options. Échéance/type/strike ré-analysés à partir du symbole OCC (positions 5/11/12) ; la prime suppose le multiplicateur de 100 actions.
- Méthode du straddle. Derniers prix négociés (pas des cotations) au strike le plus proche de la clôture finale, échéance la plus proche après la fin du mois : une preuve de transaction, pas une volatilité implicite de modèle.
- Délai des fondamentaux. Le flux des états de résultat est en retard sur le calendrier des dépôts ; sa ligne MU la plus récente précède le 10-Q de juin : contexte de tendance uniquement.
- La fermeture du 19 juin est vérifiée par la preuve du tableau de bord à zéro barre SPY.
- Les panneaux d'écart excluent les cotations croisées ou à un seul côté, avec les décomptes d'exclusion divulgués dans chaque ligne.
- Le contexte de marché dans son ensemble, ce ticker en tête du classement de toute la bande inclus, se trouve dans le récapitulatif de juin 2026.
Méthodologie
- La période va du 1er au 30 juin 2026 (21 séances, vérifiées à partir des barres observées). Les rendements vont de la première ouverture en séance régulière à la dernière clôture en séance régulière ; juin est entièrement en heure d'été de l'Est (EDT), donc la séance régulière correspond à 13 h 30–20 h 00 UTC en bornes brutes. Les panneaux glissants couvrent des mois en heure normale de l'Est (EST) et utilisent plutôt le filtre sur l'horloge de l'Est.
- Volatilité réalisée = écart-type d'échantillon des rendements logarithmiques de clôture à clôture (clôtures en séance régulière), annualisé par la racine carrée de 252 ; le premier rendement d'un mois franchit la frontière du mois et compte dans le mois suivant.
- Les comparaisons glissantes se recalculent en direct, jamais à partir d'une valeur stockée.
- La génération se fait uniquement en lot via le chemin de lecture seule contrôlé ; la page publique n'exécute jamais de requête en direct. Entrepôt à jour au 12 juillet 2026.
Chaque panneau est un objet stocké unique : graphique, tableau, SQL. Poussez n'importe quelle requête plus loin sur le terminal Strasmore.