Strasmore Research
Resúmenes de mercado Matt ConnorPor Matt Connor · Actualizado 2026-07-23 · data as of July 23, 2026 · refreshed weekly

Acciones con mayor movimiento este mes

Ranking de las acciones con mayores ganancias y pérdidas según el tape de la bolsa, con el monto en dólares transaccionado y todos los filtros aplicados.

Las acciones con mayor movimiento este mes se presentan a continuación según los datos de la bolsa, cubriendo las 21 sesiones de negociación completadas desde Jun 22 hasta Jul 21. La lista incluye únicamente empresas operativas con un volumen de negociación de al menos mil millones de dólares durante el periodo, por lo que cada movimiento en el tablero cuenta con capital real. Se han excluido los fondos apalancados e inversos, y el periodo se actualiza conforme se completan nuevas sesiones.

Las acciones con mayores ganancias este mes

La tabla clasifica las mayores ganancias durante el periodo. Cada fila muestra el monto de dinero transaccionado junto al porcentaje, lo cual permite distinguir una revalorización con alto volumen de una con bajo volumen.

ConsultaMayores ganancias de acciones este mes (empresas con trading de +$1B en el periodo)
El SQL exacto detrás de cada cifra
WITH window_days AS (
    SELECT d
    FROM (
        SELECT d, max(d) OVER () AS last_full
        FROM (
            SELECT d
            FROM (
                SELECT d, bars, medianExact(bars) OVER () AS typical_bars
                FROM (
                    SELECT toDate(toTimeZone(window_start, 'America/New_York')) AS d, count() AS bars
                    FROM global_markets.delayed_stocks_minute_aggs
                    WHERE window_start >= now() - INTERVAL 34 DAY
                      AND toHour(toTimeZone(window_start, 'America/New_York')) * 60 + toMinute(toTimeZone(window_start, 'America/New_York')) >= 570
                      AND toHour(toTimeZone(window_start, 'America/New_York')) * 60 + toMinute(toTimeZone(window_start, 'America/New_York')) < 960
                    GROUP BY d
                    HAVING d < toDate(toTimeZone(now(), 'America/New_York'))
                )
            )
            WHERE bars >= 0.85 * typical_bars
        )
    )
    WHERE d > last_full - 30
)
SELECT ticker,
       round((argMax(c, d) / argMin(o, d) - 1) * 100, 1) AS month_return_pct,
       round(sum(dollars) / 1e9, 1) AS month_dollar_bn
FROM (
    SELECT ticker,
           toDate(toTimeZone(window_start, 'America/New_York')) AS d,
           argMin(toFloat64(open), window_start) AS o,
           argMax(toFloat64(close), window_start) AS c,
           sum(toFloat64(close) * toFloat64(volume)) AS dollars
    FROM global_markets.delayed_stocks_minute_aggs
    WHERE window_start >= now() - INTERVAL 34 DAY
      AND toDate(toTimeZone(window_start, 'America/New_York')) IN (SELECT d FROM window_days)
      AND toHour(toTimeZone(window_start, 'America/New_York')) * 60 + toMinute(toTimeZone(window_start, 'America/New_York')) >= 570
      AND toHour(toTimeZone(window_start, 'America/New_York')) * 60 + toMinute(toTimeZone(window_start, 'America/New_York')) < 960
      AND ticker NOT IN ('SPCX')
      AND ticker NOT IN ('KORU','SOXL','SOXS','TQQQ','SQQQ','NVDL','NVDS','NVD','TSLL','TSLQ','TSLZ','SPXL','SPXS','UPRO','SPXU','LABU','LABD','FAS','FAZ','TNA','TZA','YINN','YANG','UDOW','SDOW','BOIL','KOLD','UCO','SCO','USD','SSO','SDS','QLD','QID','ERX','ERY','DRN','DRV','CURE','SOXY','MUU','SNXX','UVXY','SVXY','UVIX','SVIX','BULZ','WEBL','WEBS','DPST','DRIP','GUSH','AGQ','ZSL','BITX','ETHU','MSTX','MSTU','CONL','DUST','JNUG','JDST','NUGT')
      AND ticker IN (SELECT ticker FROM global_markets.stocks_ratios
                     WHERE market_cap > 0)
      AND ticker NOT IN (SELECT ticker FROM global_markets.stocks_splits
                         WHERE execution_date BETWEEN today() - 45 AND today())
    GROUP BY ticker, d
)
GROUP BY ticker
HAVING sum(dollars) >= 1000000000 AND argMin(o, d) >= 10 AND count() >= 15
ORDER BY argMax(c, d) / argMin(o, d) DESC
LIMIT 10

CRNX lideró la lista con un 133.6% con $9.4 mil millones negociados, por delante de PBF con un 75.5% y MAN con un 56.8%. Un movimiento de esa magnitud en un mes suele manifestarse primero como un volumen relativo elevado frente al volumen diario promedio de la acción, y frecuentemente comienza con un gap nocturno en una sesión en lugar de un ascenso constante durante todo el periodo.

Las acciones con mayores pérdidas este mes

La misma estructura pero a la inversa: las caídas más pronunciadas durante el periodo, entre empresas que superan el umbral de los mil millones de dólares.

ConsultaMayores pérdidas de acciones este mes (empresas con trading de +$1B en el periodo)
El SQL exacto detrás de cada cifra
WITH window_days AS (
    SELECT d
    FROM (
        SELECT d, max(d) OVER () AS last_full
        FROM (
            SELECT d
            FROM (
                SELECT d, bars, medianExact(bars) OVER () AS typical_bars
                FROM (
                    SELECT toDate(toTimeZone(window_start, 'America/New_York')) AS d, count() AS bars
                    FROM global_markets.delayed_stocks_minute_aggs
                    WHERE window_start >= now() - INTERVAL 34 DAY
                      AND toHour(toTimeZone(window_start, 'America/New_York')) * 60 + toMinute(toTimeZone(window_start, 'America/New_York')) >= 570
                      AND toHour(toTimeZone(window_start, 'America/New_York')) * 60 + toMinute(toTimeZone(window_start, 'America/New_York')) < 960
                    GROUP BY d
                    HAVING d < toDate(toTimeZone(now(), 'America/New_York'))
                )
            )
            WHERE bars >= 0.85 * typical_bars
        )
    )
    WHERE d > last_full - 30
)
SELECT ticker,
       round((argMax(c, d) / argMin(o, d) - 1) * 100, 1) AS month_return_pct,
       round(sum(dollars) / 1e9, 1) AS month_dollar_bn
FROM (
    SELECT ticker,
           toDate(toTimeZone(window_start, 'America/New_York')) AS d,
           argMin(toFloat64(open), window_start) AS o,
           argMax(toFloat64(close), window_start) AS c,
           sum(toFloat64(close) * toFloat64(volume)) AS dollars
    FROM global_markets.delayed_stocks_minute_aggs
    WHERE window_start >= now() - INTERVAL 34 DAY
      AND toDate(toTimeZone(window_start, 'America/New_York')) IN (SELECT d FROM window_days)
      AND toHour(toTimeZone(window_start, 'America/New_York')) * 60 + toMinute(toTimeZone(window_start, 'America/New_York')) >= 570
      AND toHour(toTimeZone(window_start, 'America/New_York')) * 60 + toMinute(toTimeZone(window_start, 'America/New_York')) < 960
      AND ticker NOT IN ('SPCX')
      AND ticker NOT IN ('KORU','SOXL','SOXS','TQQQ','SQQQ','NVDL','NVDS','NVD','TSLL','TSLQ','TSLZ','SPXL','SPXS','UPRO','SPXU','LABU','LABD','FAS','FAZ','TNA','TZA','YINN','YANG','UDOW','SDOW','BOIL','KOLD','UCO','SCO','USD','SSO','SDS','QLD','QID','ERX','ERY','DRN','DRV','CURE','SOXY','MUU','SNXX','UVXY','SVXY','UVIX','SVIX','BULZ','WEBL','WEBS','DPST','DRIP','GUSH','AGQ','ZSL','BITX','ETHU','MSTX','MSTU','CONL','DUST','JNUG','JDST','NUGT')
      AND ticker IN (SELECT ticker FROM global_markets.stocks_ratios
                     WHERE market_cap > 0)
      AND ticker NOT IN (SELECT ticker FROM global_markets.stocks_splits
                         WHERE execution_date BETWEEN today() - 45 AND today())
    GROUP BY ticker, d
)
GROUP BY ticker
HAVING sum(dollars) >= 1000000000 AND argMin(o, d) >= 10 AND count() >= 15
ORDER BY argMax(c, d) / argMin(o, d) ASC
LIMIT 10

NVTS fue la acción con mayor caída con un -47.6% sobre 5.1 mil millones negociados, seguida por WOLF con un -47.1%. Observe la columna de dólares en este tablero. Una caída en un mercado con alto volumen es un evento distinto al de un mercado inactivo, y aquí se distinguen en lugar de asumirse.

La misma pregunta en tres marcos temporales

Una pregunta, tres ventanas. Un nombre puede liderar una lista y no aparecer en las otras dos.

Los tres tableros se construyen por separado y sus filtros no son idénticos. La página semanal establece su propio piso de liquidez y mínimo de sesión en un periodo de cinco sesiones; la página anual filtra por volumen diario promedio en dólares en lugar de un volumen total negociado durante todo el periodo. Cada página detalla sus propias reglas en su sección de metodología, por lo que debe leerlas antes de trasladar un ticker de un tablero a otro.

Un único gap domina el tablero semanal pero desaparece en un año. Un avance lento mensual nunca llega a aparecer en el tablero semanal. Comparar los tres simultáneamente es la forma más sencilla de distinguir un evento de un día de una tendencia.

Situación del mercado durante el mismo periodo

El rendimiento mensual de una acción difiere del rendimiento mensual del mercado. Los cuatro principales índices de referencia, cada uno con su base de cálculo en su primera cotización dentro del periodo:

ConsultaLos cuatro principales index trackers en el mismo periodo, rebasados al primer open
El SQL exacto detrás de cada cifra
WITH window_days AS (
    SELECT d
    FROM (
        SELECT d, max(d) OVER () AS last_full
        FROM (
            SELECT d
            FROM (
                SELECT d, bars, medianExact(bars) OVER () AS typical_bars
                FROM (
                    SELECT toDate(toTimeZone(window_start, 'America/New_York')) AS d, count() AS bars
                    FROM global_markets.delayed_stocks_minute_aggs
                    WHERE window_start >= now() - INTERVAL 34 DAY
                      AND toHour(toTimeZone(window_start, 'America/New_York')) * 60 + toMinute(toTimeZone(window_start, 'America/New_York')) >= 570
                      AND toHour(toTimeZone(window_start, 'America/New_York')) * 60 + toMinute(toTimeZone(window_start, 'America/New_York')) < 960
                    GROUP BY d
                    HAVING d < toDate(toTimeZone(now(), 'America/New_York'))
                )
            )
            WHERE bars >= 0.85 * typical_bars
        )
    )
    WHERE d > last_full - 30
)
SELECT session,
       round(anyIf(cum_pct, ticker = 'SPY'), 2) AS sp500_pct,
       round(anyIf(cum_pct, ticker = 'QQQ'), 2) AS nasdaq100_pct,
       round(anyIf(cum_pct, ticker = 'DIA'), 2) AS dow_pct,
       round(anyIf(cum_pct, ticker = 'IWM'), 2) AS russell2000_pct
FROM (
    SELECT ticker,
           formatDateTime(d, '%Y-%m-%d') AS session,
           100 * (c / first_value(o) OVER (PARTITION BY ticker ORDER BY d) - 1) AS cum_pct
    FROM (
        SELECT ticker,
               toDate(toTimeZone(window_start, 'America/New_York')) AS d,
               argMin(toFloat64(open), window_start) AS o,
               argMax(toFloat64(close), window_start) AS c
        FROM global_markets.delayed_stocks_minute_aggs
        WHERE window_start >= now() - INTERVAL 34 DAY
          AND ticker IN ('SPY', 'QQQ', 'DIA', 'IWM')
          AND toDate(toTimeZone(window_start, 'America/New_York')) IN (SELECT d FROM window_days)
          AND toHour(toTimeZone(window_start, 'America/New_York')) * 60 + toMinute(toTimeZone(window_start, 'America/New_York')) >= 570
          AND toHour(toTimeZone(window_start, 'America/New_York')) * 60 + toMinute(toTimeZone(window_start, 'America/New_York')) < 960
        GROUP BY ticker, d
    )
)
GROUP BY session
ORDER BY session

Al cierre de la última sesión, el índice S&P 500 se situó en 0.08%, el Nasdaq 100 en -4.46%, el Dow Jones en 0.91% y el Russell 2000 en -0.21%. Cuatro canastas, un mismo periodo, cuatro resultados distintos. Ahora compare el ranking de los valores con ese rango: el líder de las ganancias superó el 133.6% durante las mismas sesiones. El desempeño de las empresas individuales es mucho más disperso que el de los índices que las integran, razón por la cual una lista de valores con mayor movimiento se compone de nombres individuales.

Cómo les fue a las empresas de renombre

Los lectores que buscan las acciones con mejor desempeño este mes suelen querer saber también cómo les fue a las empresas que ya poseen. Una cesta fija de ocho mega-caps de renombre, en el mismo periodo y con la misma composición:

ConsultaOcho mega-cap nombres representativos en el mismo periodo
El SQL exacto detrás de cada cifra
WITH window_days AS (
    SELECT d
    FROM (
        SELECT d, max(d) OVER () AS last_full
        FROM (
            SELECT d
            FROM (
                SELECT d, bars, medianExact(bars) OVER () AS typical_bars
                FROM (
                    SELECT toDate(toTimeZone(window_start, 'America/New_York')) AS d, count() AS bars
                    FROM global_markets.delayed_stocks_minute_aggs
                    WHERE window_start >= now() - INTERVAL 34 DAY
                      AND toHour(toTimeZone(window_start, 'America/New_York')) * 60 + toMinute(toTimeZone(window_start, 'America/New_York')) >= 570
                      AND toHour(toTimeZone(window_start, 'America/New_York')) * 60 + toMinute(toTimeZone(window_start, 'America/New_York')) < 960
                    GROUP BY d
                    HAVING d < toDate(toTimeZone(now(), 'America/New_York'))
                )
            )
            WHERE bars >= 0.85 * typical_bars
        )
    )
    WHERE d > last_full - 30
)
SELECT ticker,
       round((argMax(c, d) / argMin(o, d) - 1) * 100, 1) AS month_return_pct
FROM (
    SELECT ticker,
           toDate(toTimeZone(window_start, 'America/New_York')) AS d,
           argMin(toFloat64(open), window_start) AS o,
           argMax(toFloat64(close), window_start) AS c
    FROM global_markets.delayed_stocks_minute_aggs
    WHERE window_start >= now() - INTERVAL 34 DAY
      AND ticker IN ('AAPL', 'MSFT', 'NVDA', 'AMZN', 'GOOGL', 'META', 'TSLA', 'AVGO')
      AND toDate(toTimeZone(window_start, 'America/New_York')) IN (SELECT d FROM window_days)
      AND toHour(toTimeZone(window_start, 'America/New_York')) * 60 + toMinute(toTimeZone(window_start, 'America/New_York')) >= 570
      AND toHour(toTimeZone(window_start, 'America/New_York')) * 60 + toMinute(toTimeZone(window_start, 'America/New_York')) < 960
      AND ticker NOT IN (SELECT ticker FROM global_markets.stocks_splits
                         WHERE execution_date BETWEEN today() - 45 AND today())
    GROUP BY ticker, d
)
GROUP BY ticker
HAVING count() >= 15
ORDER BY argMax(c, d) / argMin(o, d) DESC

El grupo tuvo un rango de 12.5% para META en el nivel superior a -6.6% para AVGO en el nivel inferior. No se movieron como un bloque, lo cual es la norma en lugar de la excepción. La pertenencia a un índice agrupa a estas empresas; sus líneas de ingresos tienen muy poco que ver entre sí. La cesta es una lista fija de ocho nombres en lugar de un ranking, así que tómela como una referencia y no como una afirmación sobre cuáles empresas son las más grandes.

Cómo es un mes normal

Los rankings muestran los extremos. Esto muestra el promedio. Todas las empresas de 1162 que superaron el filtro, clasificadas en grupos según su rendimiento en el periodo:

ConsultaResultado de cada empresa filtrada: retornos mensuales por bucket
El SQL exacto detrás de cada cifra
WITH window_days AS (
    SELECT d
    FROM (
        SELECT d, max(d) OVER () AS last_full
        FROM (
            SELECT d
            FROM (
                SELECT d, bars, medianExact(bars) OVER () AS typical_bars
                FROM (
                    SELECT toDate(toTimeZone(window_start, 'America/New_York')) AS d, count() AS bars
                    FROM global_markets.delayed_stocks_minute_aggs
                    WHERE window_start >= now() - INTERVAL 34 DAY
                      AND toHour(toTimeZone(window_start, 'America/New_York')) * 60 + toMinute(toTimeZone(window_start, 'America/New_York')) >= 570
                      AND toHour(toTimeZone(window_start, 'America/New_York')) * 60 + toMinute(toTimeZone(window_start, 'America/New_York')) < 960
                    GROUP BY d
                    HAVING d < toDate(toTimeZone(now(), 'America/New_York'))
                )
            )
            WHERE bars >= 0.85 * typical_bars
        )
    )
    WHERE d > last_full - 30
)
SELECT tup.1 AS return_bucket,
       tup.3 AS stocks
FROM (
    SELECT arrayJoin(arrayZip(
               ['down 20% or more', 'down 10% to 20%', 'down 0% to 10%',
                'up 0% to 10%', 'up 10% to 20%', 'up 20% or more'],
               [1, 2, 3, 4, 5, 6],
               [countIf(r <= -20), countIf(r > -20 AND r <= -10), countIf(r > -10 AND r < 0),
                countIf(r >= 0 AND r < 10), countIf(r >= 10 AND r < 20), countIf(r >= 20)])) AS tup
    FROM (
        SELECT ticker,
               (argMax(c, d) / argMin(o, d) - 1) * 100 AS r
        FROM (
            SELECT ticker,
                   toDate(toTimeZone(window_start, 'America/New_York')) AS d,
                   argMin(toFloat64(open), window_start) AS o,
                   argMax(toFloat64(close), window_start) AS c,
                   sum(toFloat64(close) * toFloat64(volume)) AS dollars
            FROM global_markets.delayed_stocks_minute_aggs
            WHERE window_start >= now() - INTERVAL 34 DAY
              AND toDate(toTimeZone(window_start, 'America/New_York')) IN (SELECT d FROM window_days)
              AND toHour(toTimeZone(window_start, 'America/New_York')) * 60 + toMinute(toTimeZone(window_start, 'America/New_York')) >= 570
              AND toHour(toTimeZone(window_start, 'America/New_York')) * 60 + toMinute(toTimeZone(window_start, 'America/New_York')) < 960
              AND ticker NOT IN ('SPCX')
              AND ticker NOT IN ('KORU','SOXL','SOXS','TQQQ','SQQQ','NVDL','NVDS','NVD','TSLL','TSLQ','TSLZ','SPXL','SPXS','UPRO','SPXU','LABU','LABD','FAS','FAZ','TNA','TZA','YINN','YANG','UDOW','SDOW','BOIL','KOLD','UCO','SCO','USD','SSO','SDS','QLD','QID','ERX','ERY','DRN','DRV','CURE','SOXY','MUU','SNXX','UVXY','SVXY','UVIX','SVIX','BULZ','WEBL','WEBS','DPST','DRIP','GUSH','AGQ','ZSL','BITX','ETHU','MSTX','MSTU','CONL','DUST','JNUG','JDST','NUGT')
              AND ticker IN (SELECT ticker FROM global_markets.stocks_ratios
                             WHERE market_cap > 0)
              AND ticker NOT IN (SELECT ticker FROM global_markets.stocks_splits
                                 WHERE execution_date BETWEEN today() - 45 AND today())
            GROUP BY ticker, d
        )
        GROUP BY ticker
        HAVING sum(dollars) >= 1000000000 AND argMin(o, d) >= 10 AND count() >= 15
    )
)
ORDER BY tup.2

El 60 de las empresas filtradas ganó un 20% o más en el periodo, y el 77 perdió un 20% o más. Los dos grupos más cercanos a un rendimiento plano contenían 315 y 426 nombres. Ese gráfico representa la estructura de la cual se extrae un ranking de activos con alta volatilidad, donde los diez principales son el extremo derecho. Lea los rankings anteriores con esto en mente: un movimiento mensual en el top diez es un valor atípico por definición, nunca un mes típico para una acción promedio.

Qué factores incluyen a una acción en una lista de movimientos mensuales

Un mes es tiempo suficiente para que ocurran varios eventos, pero lo suficientemente corto como para que uno de ellos suele dominar. Los nombres en estas listas suelen coincidir con fechas específicas en el calendario de la empresa. Los resultados trimestrales son lo más común: un resultado superior o inferior a lo esperado ajusta el precio en una sola sesión, y el resto del mes se negocia alrededor de ese nuevo nivel. Los cambios en el guidance cumplen la misma función sin necesidad de presentar resultados.

Las noticias de fusiones y adquisiciones dejan la huella más distintiva en una lista mensual. La acción salta a un nivel cercano al precio acordado en el trato y luego se estabiliza; el volumen de dólares negociados se mantiene enorme mientras el cambio porcentual se aplana. Si un nombre cerca de la parte superior de la tabla de ganadores muestra una cifra de dólares masiva y un precio que dejó de moverse a mitad del periodo, ese patrón debe revisarse antes que cualquier otra cosa.

Los movimientos sectoriales importan a lo largo de un mes de una manera que rara vez ocurre en una semana. Un cambio en las tasas, el petróleo o los precios de la memoria afecta a todo un grupo a la vez, razón por la cual las listas mensuales suelen mostrar grupos de negocios similares en lugar de diez nombres no relacionados. Las acciones de los analistas, las adiciones y eliminaciones de índices, los resultados de juicios y regulaciones, y los short squeezes completan el resto. Nada de esto es visible solo con el porcentaje, razón por la cual la columna de dólares negociados y el periodo de tiempo del mercado aparecen junto a cada movimiento aquí.

Cómo se mide esto

Todos los umbrales se declaran aquí en lugar de dejarse implícitos. Una pantalla con reglas ocultas se lee como datos, pero en realidad es una opinión.

  • La ventana. Los últimos 30 días calendario que terminan en la sesión más reciente con su tape completamente cargado, la cual consistió en 21 sesiones desde Jun 22 hasta Jul 21. Dos reglas determinan si una sesión califica. Debe haber cerrado antes de la fecha actual en Nueva York, por lo que la sesión en curso nunca entra en el alcance. Su recuento de barras en horario regular también debe alcanzar el 85% de la mediana de las sesiones del escaneo de 34 días, lo que descarta un día anterior cuyo tape aún se está completando. Una sesión festiva reducida genera aproximadamente la mitad de las barras de un día normal, por lo que la misma regla la descarta en lugar de medirla con la mitad de la carga.
  • El retorno. Desde el precio de apertura de la primera sesión regular dentro de la ventana hasta el cierre de la última sesión regular, construido con barras de un minuto. Solo horario regular, por lo que se excluyen las transacciones de premarket y after-hours. Es un retorno de precio: los dividendos no se reintegran.
  • Los suelos. Al menos $1 billón negociado en toda la ventana, un precio de apertura de $10 o más, y transacciones en al menos 15 de las sesiones de la ventana. El suelo en dólares es un total mensual, lo que lo hace más fácil de superar que la misma cifra medida durante una sola semana.
  • Las exclusiones. Los fondos apalancados e inversos se eliminan por nombre. Cada ticker también debe tener fundamentales de la empresa y una capitalización de mercado registrada en nuestros datos de referencia. Esa segunda regla descarta ETFs, fondos de inversión cerrados, fideicomisos de materias primas y la familia de productos de una sola acción apalancados de rápido crecimiento, que de otro modo llenarían la mayoría de ambos paneles. Esa tabla de referencia contiene una fila por ticker en lugar de una instantánea diaria con fecha, por lo que el escaneo lee toda la tabla y ninguna fecha única decide quién es elegible. Cualquier ticker con un split de acciones ejecutado en los últimos 45 días se descarta en lugar de ajustarse retroactivamente, ya que un split mueve el precio por acción sin cambiar el valor de la posición. Un símbolo que los feeds de los proveedores hayan reasignado entre dos empresas diferentes se excluye por nombre.
  • El panel de mega-cap. Una cesta fija de ocho empresas estadounidenses de gran capitalización ampliamente poseídas, listadas por nombre en el SQL de ese panel. Utiliza la misma ventana y la misma construcción de retorno que los paneles, y se encuentra fuera del escaneo de volumen en dólares.
  • Lo que no se aplica. No hay filtro de sector, no hay suelo de capitalización de mercado y no hay requisito de membresía de índice, por lo que una empresa pequeña con mucha rotación puede aparecer en el panel junto a una grande. El ranking es solo por cambio porcentual, razón por la cual la columna de dólares negociados se imprime junto a este.

Un panel contiene el comprobante de todo esto: las sesiones que cubrió la ventana y el universo desde el cual se escaneó cada panel.

ConsultaEl periodo y el universo filtrado detrás de cada gráfico en esta página
El SQL exacto detrás de cada cifra
WITH window_days AS (
    SELECT d
    FROM (
        SELECT d, max(d) OVER () AS last_full
        FROM (
            SELECT d
            FROM (
                SELECT d, bars, medianExact(bars) OVER () AS typical_bars
                FROM (
                    SELECT toDate(toTimeZone(window_start, 'America/New_York')) AS d, count() AS bars
                    FROM global_markets.delayed_stocks_minute_aggs
                    WHERE window_start >= now() - INTERVAL 34 DAY
                      AND toHour(toTimeZone(window_start, 'America/New_York')) * 60 + toMinute(toTimeZone(window_start, 'America/New_York')) >= 570
                      AND toHour(toTimeZone(window_start, 'America/New_York')) * 60 + toMinute(toTimeZone(window_start, 'America/New_York')) < 960
                    GROUP BY d
                    HAVING d < toDate(toTimeZone(now(), 'America/New_York'))
                )
            )
            WHERE bars >= 0.85 * typical_bars
        )
    )
    WHERE d > last_full - 30
),
screened AS (
    SELECT ticker
    FROM (
        SELECT ticker,
               toDate(toTimeZone(window_start, 'America/New_York')) AS d,
               argMin(toFloat64(open), window_start) AS o,
               sum(toFloat64(close) * toFloat64(volume)) AS dollars
        FROM global_markets.delayed_stocks_minute_aggs
        WHERE window_start >= now() - INTERVAL 34 DAY
          AND toDate(toTimeZone(window_start, 'America/New_York')) IN (SELECT d FROM window_days)
          AND toHour(toTimeZone(window_start, 'America/New_York')) * 60 + toMinute(toTimeZone(window_start, 'America/New_York')) >= 570
          AND toHour(toTimeZone(window_start, 'America/New_York')) * 60 + toMinute(toTimeZone(window_start, 'America/New_York')) < 960
          AND ticker NOT IN ('SPCX')
          AND ticker NOT IN ('KORU','SOXL','SOXS','TQQQ','SQQQ','NVDL','NVDS','NVD','TSLL','TSLQ','TSLZ','SPXL','SPXS','UPRO','SPXU','LABU','LABD','FAS','FAZ','TNA','TZA','YINN','YANG','UDOW','SDOW','BOIL','KOLD','UCO','SCO','USD','SSO','SDS','QLD','QID','ERX','ERY','DRN','DRV','CURE','SOXY','MUU','SNXX','UVXY','SVXY','UVIX','SVIX','BULZ','WEBL','WEBS','DPST','DRIP','GUSH','AGQ','ZSL','BITX','ETHU','MSTX','MSTU','CONL','DUST','JNUG','JDST','NUGT')
          AND ticker IN (SELECT ticker FROM global_markets.stocks_ratios
                         WHERE market_cap > 0)
          AND ticker NOT IN (SELECT ticker FROM global_markets.stocks_splits
                             WHERE execution_date BETWEEN today() - 45 AND today())
        GROUP BY ticker, d
    )
    GROUP BY ticker
    HAVING sum(dollars) >= 1000000000 AND argMin(o, d) >= 10 AND count() >= 15
)
SELECT formatDateTime(w.first_d, '%b %e') AS first_session_date,
       formatDateTime(w.last_d, '%b %e') AS last_session_date,
       w.n AS sessions,
       (SELECT count() FROM global_markets.stocks_ratios WHERE market_cap > 0) AS companies_on_file,
       (SELECT count() FROM screened) AS companies_screened
FROM (SELECT min(d) AS first_d, max(d) AS last_d, count() AS n FROM window_days) AS w

El escaneo comenzó con 4122 tickers con una capitalización de mercado en la tabla de referencia y terminó con 1162 empresas que superaron el volumen en dólares, el precio y los suelos de sesiones. Ambas cifras se guardan con cada actualización de esta página, por lo que una reducción en el universo se refleja en el comprobante en lugar de pasar desapercibida.

Preguntas frecuentes

¿Cuáles son las acciones con mayores ganancias este mes?

Para el periodo que finaliza en Jul 21, las mayores ganancias entre empresas con una capitalización superior a $1 mil millones fueron CRNX con un 133.6% y PBF con un 75.5%. La lista completa de los diez principales se encuentra en la primera tabla de esta página y se actualiza conforme concluyen las nuevas sesiones.

¿Qué acciones han caído más este mes?

NVTS fue la mayor caída con un -47.6%, seguida por WOLF con un -47.1%. Ambas se miden en las mismas sesiones de 21, con el mismo límite inferior de volumen de $1 mil millones que la lista de ganancias.

¿Cómo se miden los rendimientos mensuales de las acciones?

Un rendimiento mensual aquí es el cambio desde el precio de apertura de la primera sesión regular dentro del periodo hasta su último cierre de sesión regular, calculado mediante barras de un minuto. Es un rendimiento de precio, por lo que no se reinvierten los dividendos, y cualquier empresa con un split de acciones cerca del periodo de medición se excluye en lugar de ajustarse retrospectivamente.

¿Por qué se excluyen los ETFs apalancados de la lista de movimientos de acciones?

Un fondo apalancado o inverso multiplica el movimiento diario de un índice o de una acción individual, por lo que puede encabezar una lista de movimientos en un día de mercado ordinario sin noticias corporativas que lo sustenten. Eliminarlos permite que esta sea una lista de empresas operativas. Cómo funcionan los ETFs apalancados explica el reajuste diario y el drift que ocurre al mantener uno durante un mes.


Cada panel anterior es una consulta almacenada con su SQL adjunto. Abra una, cambie el límite de dólares o la duración del periodo, y analice la misma cinta usted mismo en la terminal Strasmore.