Strasmore Research
Deep Dives · Matt ConnorBy Matt Connor · · Updated 2026-07-23

MU: Micron en junio de dos mil veintiséis

Micron en junio de dos mil veintiséis registró 995.7 billones de dólares en turnover, el puesto first del mercado, con un repricing del 14 por ciento.

Micron experimentó una revalorización violenta durante la primera mitad de 2026. En junio, el precio se estabilizó, pero el volumen de negociación no lo hizo. MU cerró junio en $1151.01, un aumento de 14%, siendo su mes más tranquilo desde febrero tras un mayo con un 89.8%. Su volumen de negociación en horario regular de $995.7 mil millones lo posicionó en el puesto first de todo el mercado estadounidense, superando al propio SPY. Analizado día a día, también fue el mes más volátil del semestre (127.6% anualizado): la calma es una ilusión. Estos son los resultados de junio: volumen, registros de la semana de resultados, volatilidad, pares, spread, opciones, posiciones cortas y el arco de seis meses. Cada cifra proviene de una consulta almacenada; puede expandir cualquier panel para ver su SQL.

El mes en una sola fila

ConsultaMU en junio en una fila: apertura, cierre, extremos, turnover y sus resultados
El SQL exacto detrás de cada cifra
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')

El rango intrames fue enorme para una empresa de este tamaño: un mínimo de $850.1 (2026-06-05 16:34 ET) y un máximo de $1255 (2026-06-25 09:35 ET) — más amplio que el año completo de la mayoría de las acciones. El 19 de junio hubo un cierre en todo el mercado (0 barras de SPY), por lo que el mes tuvo 21 sesiones.

Junio frente al arco de seis meses

¿Es +14% una cifra grande? Para este ticker, en este semestre, fue el periodo de calma. El panel recalcula los datos cada mes de forma idéntica y en tiempo real.

ConsultaMU mes a mes, recalculado en vivo: retorno, cierre y turnover en horario regular
El SQL exacto detrás de cada cifra
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_start

El arco: 40.5% en enero, un 0% plano en febrero, un -15.9% en marzo que marcó el cierre mínimo del semestre ($337.62), luego 48.4% en abril y 89.8% en mayo — de $414.73 a $1151.01 en seis meses. El volumen de negociación aumentó con ello: de 235.8 billones en enero a 995.7 billones en junio. El movimiento de precio de junio fue el más pequeño desde febrero; el volumen de operaciones de junio fue el más alto del periodo.

El precio se enfrió. La volatilidad no.

¿Es un mes de +14% tranquilo? La volatilidad realizada —los movimientos de cierre diarios, anualizados— muestra un panorama muy distinto para junio.

ConsultaMU por mes: volatilidad realizada anualizada, rango promedio de sesión y mayor movimiento diario
El SQL exacto detrás de cada cifra
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_start

Junio fue el mes más volátil del semestre según esta medida: 127.6% anualizada, incluso por encima del 101.4% de mayo, con un rango promedio de sesión de 7.6% y un movimiento de cierre sobre cierre de 15.8%. Los puntos finales fueron estables; los días intermedios no lo fueron.

Sesión por sesión

ConsultaLas 21 sesiones: cierre, cambio close-over-close y volumen total del día
El SQL exacto detrás de cada cifra
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_date

La tabla presenta una alta volatilidad, pasando de $1034.83 en 2026-06-01 durante el periodo de turbulencia a $1151.01 en la sesión final. Esto es lo que oculta el "+14% en el mes": solo los puntos extremos fueron estables. Los valores más altos se encuentran en la semana de reportes de ganancias, que se presenta a continuación.

¿Coincidieron las oscilaciones con un trimestre reportado?

Se pueden fechar: el rastro documental de MU de junio, según el propio índice de la SEC, junto con el comportamiento del tape en esas fechas.

ConsultaPresentaciones ante la SEC de MU en junio y la sesión posterior al 8-K trimestral
El SQL exacto detrás de cada cifra
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
)

El 8-K trimestral de MU tiene fecha de 2026-06-24, y el 10-Q un día después (1, con los archivos de junio en 8 y los Form 4 de insiders en 3). La sesión posterior a la fecha del 8-K cerró 15.8% más alto con 77.2 millones de acciones —el volumen más pesado del mes, con 5.9 millones de diferencia respecto al siguiente— y el máximo mensual de $1255 se registró en esa misma sesión (2026-06-25 09:35 ET; la columna de acuerdos confirma la coincidencia). La observación es la alineación; este análisis termina ahí.

¿Una historia de Micron o una historia de la memoria?

¿Se movió también el resto del sector de memoria y almacenamiento? El grupo de referencia está definido: los tres nombres de almacenamiento que la noticia de junio vinculó más con MU, además de NVDA y SPY como indicadores de referencia.

ConsultaJunio comparativo: basket de memoria/almacenamiento, NVDA y SPY
El SQL exacto detrás de cada cifra
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 DESC

Fue un movimiento de la memoria, y MU se quedó atrás. SNDK subió 31.3%, INTC 27.5%, WDC 19.1% — cada nombre de almacenamiento superó a MU por entre 5.1 y 17.3 puntos — mientras que SPY y NVDA cerraron junio a la baja. El rasgo distintivo de MU: su rotación supera a todas las demás en esta lista.

El ticker con mayor volumen

ConsultaTodo el tape de EE. UU. clasificado por dollar volume en horario regular a junio de 2026 (un símbolo excluido pendiente de verificación)
El SQL exacto detrás de cada cifra
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 10
ConsultaResumen de ranking: posición de MU, ventaja sobre el siguiente nombre y base
El SQL exacto detrás de cada cifra
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 ocupó el puesto first de todos los símbolos listados en EE. UU. por volumen de dólares en horario regular durante junio — $995.7 mil millones, con $224.3 mil millones de diferencia frente al SPY en segundo lugar. Que una sola empresa supere el volumen de negociación del ETF principal durante un mes es una estructura de mercado poco común; las secciones de reportes de ganancias y de pares arriba proporcionan su contexto. Base: del 1 al 30 de junio en horario regular, se excluyó un listado con símbolo reutilizado pendiente de verificación de entidad (sus recibos). La visión general del mercado se encuentra en el resumen de junio.

De qué se compuso la cinta

ConsultaTodo el tape de MU en una fila: prints, tamaños de print y censo de quotes
El SQL exacto detrás de cada cifra
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 millones de operaciones con una mediana de 8 acciones — y 91.7% lotes irregulares, una de las cintas con mayor fragmentación minorista que hemos medido (la de NVDA en junio fue materialmente más baja; su análisis profundo contiene el panel doble). Con un precio por acción de cuatro dígitos, un "lote redondo" implica sumas considerables, por lo que las operaciones pequeñas dominan por naturaleza; las operaciones fraccionarias (9.04%) indican lo mismo. La mitad de las cotizaciones: 19.64 millones de actualizaciones de NBBO, 99.86% con bid-ask limpio, 16963 cruzadas, 78 unidireccionales o vacías — todas divulgadas, no omitidas.

El spread durante una revalorización

Una acción que casi triplica su valor en un trimestre plantea la cuestión del spread de forma distinta: ¿se mantuvo con cotizaciones ajustadas mientras el precio alcanzaba un nuevo nivel?

ConsultaEl spread por sesión: mediana en horario regular en centavos y basis points
El SQL exacto detrás de cada cifra
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 session

En puntos básicos, el spread se mantuvo en niveles institucionales durante todo el movimiento: 3.96 bps en 2026-06-01, 4.19 bps en la última sesión; la columna de los centavos sigue aproximadamente el nivel del precio. Para entender la mecánica, consulte la explicación del spread.

Opciones: un libro de doble vía

ConsultaMercado de options de MU en una fila: totales, vencimientos y split put/call
El SQL exacto detrás de cada cifra
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 millones de contratos en 11789 contratos distintos, con una prima de $77.13 mil millones — y el libro era de doble vía: un ratio put/call mensual de 0.99, esencialmente paridad (el de junio de NVDA estuvo cargado hacia las calls; comparar). La paridad cercana durante una revalorización violenta indica que el mercado de opciones está dividido en ambos lados del movimiento — los datos muestran la división, no la intención.

ConsultaDistribución de contratos: volumen de calls y puts por strike bucket
El SQL exacto detrás de cada cifra
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))

El mapa de strikes abarca un rango que habría sido absurdo en enero — volumen real desde el segmento $0 hasta el límite de $1500+; una huella de cuánto se movió el subyacente. ¿Cuál fue el costo de capturar ese movimiento? Los precios de la última sesión del mes lo determinan:

ConsultaMovimiento de precio a fin de mes: el último straddle at-the-money de junio
El SQL exacto detrás de cada cifra
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')
)

Al cierre del 30 de junio, el vencimiento más cercano estaba a 2 días naturales; el par at-the-money — una call más una put en el strike de $1150 — cotizó finalmente por un total de $69.95: 6.08% del precio de la acción de $1151.01. Un comprador necesitaba un movimiento de esa magnitud, en cualquier dirección, dentro de esos 2 días para alcanzar el punto de equilibrio — junio terminó con precios que aún anticipaban un movimiento extraordinario.

El flujo de noticias

ConsultaArtículos con tag de MU en junio: volumen, participación del principal editor y co-tags
El SQL exacto detrás de cada cifra
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 artículos con la etiqueta MU de 4 editores — léase con escepticismo, solo The Motley Fool escribió 59% de ellos. Las etiquetas conjuntas enmarcan una historia sobre semiconductores: NVDA en 86 artículos, SNDK en 32, INTC en 21. ¿De qué se trataba? Las propias etiquetas de los artículos del proveedor proporcionan el vocabulario sin adoptarlo:

ConsultaTemas de la cobertura de MU en junio: conteo de tags de artículos del vendor
El SQL exacto detrás de cada cifra
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" lidera en el 49 de 195 artículos, con "memory chips", "DRAM" y "high-bandwidth memory" a la siguiente — un vocabulario de IA y memoria, reportado como recuento de etiquetas, no como una explicación.

Las posiciones cortas disminuyeron — y persiste un vacío de cobertura

ConsultaShort volume off-exchange de FINRA: cobertura de MU en junio y participación marked-short
El SQL exacto detrás de cada cifra
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 date

Sobre la cobertura: el archivo de volumen de posiciones cortas de MU de junio contiene solo el 16 de 21 sesiones — además del truncamiento general del mercado el 29 de junio, faltan varias filas de MU — por lo tanto, no se calcula una proporción a nivel mensual; las filas por día son reales, los vacíos han sido revelados.

ConsultaPar de liquidación de junio: short interest de mitad de mes y fin de mes
El SQL exacto detrás de cada cifra
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')

El par de liquidación está completo: 41.59 millones de acciones en corto al cierre de 2026-06-15 cayeron a 31.67 millones para el 2026-06-30 — una disminución de 9.92 millones de acciones durante la segunda mitad, la mitad que incluyó la semana de resultados. La posición de fin de mes equivale a 0.53 días de volumen promedio — una cifra pequeña para este ticker. Esta página se publicó inicialmente con ese dato pendiente (el retraso es normal); la cifra anterior es su actualización.

Los fundamentos detrás de la cotización

¿Qué muestran las declaraciones de la propia empresa? Una advertencia: el flujo de datos sigue el calendario de presentaciones; la fila más reciente es anterior al 10-Q de junio, por lo que la tendencia es el dato relevante, no el extremo más reciente.

ConsultaÚltimos seis trimestres reportados de MU: revenue, net income y EPS diluido
El SQL exacto detrás de cada cifra
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 ASC

A lo largo de los seis trimestres registrados, los ingresos varían desde $7.75 mil millones (2024-08-29) hasta $13.64 mil millones (2025-11-27) —la fila más reciente representa el pico del periodo— con $5.24 mil millones en ingresos netos y $4.6 en EPS diluido en ese trimestre. No es una línea recta, pero el periodo termina en su punto máximo.

Qué observar de aquí en adelante

Solo hechos del calendario: el próximo liquidación de posiciones cortas ocurre a mediados de julio, con su publicación siguiendo el retraso habitual de FINRA; el trimestre con archivos de junio se convertirá en un dato fundamental una vez que el feed del proveedor se actualice; y la serie de julio recibirá este mismo tratamiento en su próxima edición.

Preguntas frecuentes

¿Por qué la acción de MU tuvo tanto movimiento en junio de 2026?

Esta página mide en lugar de explicar: MU cotizó entre $850.1 y $1255; el reporte trimestral 8-K tiene fecha de 2026-06-24, con la siguiente sesión al alza 15.8% con el mayor volumen del mes; todo el sector de memorias se movió de la misma forma durante el periodo.

¿Qué tan volátil fue MU en junio de 2026?

El mes más volátil de su semestre: 127.6% de volatilidad realizada anualizada y un rango promedio por sesión de 7.6%, frente a un retorno de extremo a extremo de apenas 14%.

¿El movimiento de MU en junio fue específico de la empresa o de todo el sector?

Fue de todo el sector, siendo MU el rezagado entre las acciones con ganancias: SNDK subió 31.3% y cada nombre de almacenamiento superó el 14% de MU, mientras que SPY y NVDA cerraron a la baja. El rasgo distintivo de MU fue la rotación: $995.7 mil millones, la mayor del basket.

¿Es alto el short interest de MU?

Pequeño en relación con su propio volumen de negociación: 31.67 millones de acciones al cierre de 2026-06-30 — aproximadamente 0.53 días de volumen promedio para cubrir, lo que representa 9.92 millones menos que a mediados de junio. El short interest siempre se publica con un retraso respecto al cierre.

¿Qué significa el put/call ratio de MU?

El ratio de 0.99 de junio significa que los puts y calls negociaron en volúmenes casi iguales — un mercado de dos vías, no una apuesta unidireccional. Un valor muy por debajo de uno indica sesgo hacia los calls (el de NVDA en junio lo tuvo), mientras que un valor muy por encima de uno indica sesgo hacia los puts.

Notas de datos

Notas completas de datos
  • Entidad. MU es Micron Technology, Inc., CIK 0000723125 — una identidad EDGAR continua; sin advertencias de reutilización de símbolo.
  • Cobertura de volumen de ventas en corto. El archivo de junio abarca el 16 de las sesiones de 21 (el truncamiento del 29 de junio más las ausencias específicas de MU); los ratios se muestran solo por día.
  • Canasta de pares. SNDK, WDC, INTC — las etiquetas de empresas de almacenamiento más frecuentes en el flujo de noticias de MU en junio — además de NVDA y SPY como indicadores; declarados de antemano, nunca ensamblados a posteriori.
  • Análisis de opciones. El vencimiento/tipo/strike se reanaliza desde el símbolo de la OCC (posiciones 5/11/12); la prima asume el multiplicador de 100 acciones.
  • Método straddle. Últimos precios de negociación (no cotizaciones) en el strike más cercano al cierre final, más cercano al vencimiento después del cierre de mes — un registro de operación, no volatilidad implícita de modelo.
  • Retraso de fundamentales. El flujo del estado de resultados sigue el calendario de presentaciones; su fila más reciente de MU es anterior al 10-Q de junio — solo contexto de tendencia.
  • Cierre del 19 de junio verificado por el registro de marcador de cero barras de SPY.
  • Paneles de spread excluyen cotizaciones cruzadas o de un solo lado, con recuentos de caídas divulgados en la fila.
  • El contexto general del mercado — incluyendo este ticker en la tabla de clasificación de toda la cinta — se encuentra en el resumen de junio de 2026.

Metodología

  • El periodo comprende del 1 al 30 de junio de 2026 (21 sesiones, verificadas mediante barras observadas). Los rendimientos se calculan desde la apertura hasta el cierre del horario regular; junio utiliza EDT, por lo que los límites del horario regular son de 13:30 a 20:00 UTC. Los paneles históricos cubren meses en EST y utilizan el filtro de hora del Este.
  • Volatilidad realizada = desviación estándar de la muestra de los rendimientos logarítmicos de cierre a cierre en horario regular, anualizada mediante la raíz cuadrada de 252; el primer rendimiento de un mes que cruza el límite mensual se contabiliza en el mes posterior.
  • Las comparaciones históricas se recalculan en tiempo real, nunca desde un valor almacenado.
  • La generación se realiza únicamente por lotes mediante la ruta de lectura restringida; la página pública nunca realiza consultas en vivo. Almacenamiento actualizado al 12 de julio de 2026.

Cada panel es un objeto almacenado: gráfico, tabla, SQL. Puede realizar cualquier consulta adicional en la terminal Strasmore.