Strasmore Research
Market recaps Matt ConnorNi Matt Connor · Na-update noong 2026-07-24 · data as of July 24, 2026 · refreshed weekly

Pinakamalaking stock movers ngayong buwan

Ranking ng mga pinakamalaking stock gainers at losers base sa exchange tape. Ipinapakita ang halaga ng dollars na nagpalitan at ang bawat filter na ginamit.

Narito ang ranking ng mga pinakamalaking stock movers ngayong buwan base sa exchange tape, na sumasaklaw sa 21 na natapos na trading sessions mula Jun 23 hanggang Jul 22. Ang screen ay nagpapakita lamang ng mga operating companies na may trading volume na hindi bababa sa $1 billion sa loob ng window, kaya ang bawat galaw sa board ay may totoong kapital sa likod nito. Hindi kasama ang mga leveraged at inverse funds, at ang window ay nag-uupdate habang natatapos ang mga bagong session.

Pinakamalaking stock gainers ngayong buwan

Naka-rank sa table ang pinakamalaking gains sa loob ng window na ito. Ipinapakita ng bawat row ang halaga ng dollars na nagpalitan kasama ang percentage, na siyang nagpapakita kung ang repricing ay may mataas na volume o hindi.

QueryPinakamalaking stock gainers ngayong buwan (companies trading $1B+ over the window)
Ang eksaktong SQL sa likod ng bawat numero
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

Nanguna ang CRNX sa board na may 136.1% sa $9.7 billion na traded, mas mataas kaysa sa PBF na may 65.9% at MAN na may 62.1%. Ang ganitong laki ng galaw sa loob ng isang buwan ay karaniwang nagsisimula bilang mataas na relative volume kumpara sa average daily volume ng stock, at madalas itong nagsisimula sa isang overnight gap sa isang session sa halip na tuloy-tuloy na pag-akyat sa buong window.

Pinakamalaking stock losers ngayong buwan

Ang parehong konstruksyon sa reverse: ang pinakamalalang pagbaba sa loob ng window, sa mga kumpanyang lumampas sa $1 billion floor.

QueryPinakamalaking stock losers ngayong buwan (companies trading $1B+ over the window)
Ang eksaktong SQL sa likod ng bawat numero
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

Ang CLBK ang may pinakamalalang pagbaba sa -44.6% sa $1.1 billion na traded, habang ang NVTS ay nasa -41.6%. Bantayan ang dollar column sa board na ito. Ang pagbaba sa heavy tape ay ibang kaganapan kumpara sa nangyayari sa isang quiet market, at ang dalawang ito ay malinaw na pinag-iiba rito sa halip na ipagpalagay lamang.

Ang parehong tanong sa tatlong timeframe

Isang tanong, tatlong window. Ang isang pangalan ay maaaring nasa tuktok ng isang board ngunit hindi makikita sa dalawa pang iba.

Ang tatlong board ay ginawa nang hiwalay at hindi magkapareho ang kanilang mga screen. Ang weekly page ay may sariling liquidity floor at session minimum sa loob ng five-session window, at ang year-to-date page ay gumagamit ng average daily dollar volume sa halip na total traded sa buong window. Ang bawat page ay may sariling rules sa kani-kaniyang method section, kaya basahin ang mga ito bago ilipat ang isang pangalan mula sa isang board patungo sa isa pa.

Isang single gap ang nangingibabaw sa weekly board ngunit nawawala na sa loob ng isang taon. Ang mabagal na monthly grind ay hindi kailanman umaabot sa weekly board. Ang sabay-sabay na pagbabasa sa tatlo ang pinakamadaling paraan upang matukoy ang isang one-day event mula sa isang trend.

Ang kalagayan ng merkado sa parehong window

Iba ang performance ng isang stock kumpara sa performance ng buong merkado sa loob ng isang buwan. Ang apat na pangunahing index tracker, na bawat isa ay naka-rebase sa unang opening print nito sa loob ng window:

QueryAng apat na major index trackers sa parehong window, rebased sa first open
Ang eksaktong SQL sa likod ng bawat numero
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

Sa huling session, ang S&P 500 tracker ay nasa 1.85%, ang Nasdaq 100 tracker ay nasa -1.47%, ang Dow tracker ay nasa 1.33%, at ang Russell 2000 tracker ay nasa 0.17%. Apat na basket, isang window, apat na magkakaibang resulta. Ihambing ang leaderboard sa range na iyon: ang pinakamataas na gainers ay lumampas sa 136.1% sa loob ng parehong mga session. Mas malawak ang paggalaw ng mga indibidwal na kumpanya kumpara sa mga basket na naglalaman sa kanila, na siyang dahilan kung bakit ang movers list ay binubuo ng mga single names.

Ang performance ng mga household names

Ang mga reader na naghahanap ng best performing stocks ngayong buwan ay karaniwang gustong malaman din ang performance ng mga stocks na hawak na nila. Narito ang isang fixed basket ng walong household mega-caps, gamit ang parehong window at construction:

QueryWalong household mega-cap names sa parehong window
Ang eksaktong SQL sa likod ng bawat numero
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

Ang grupo ay tumakbo mula 11.5% para sa META sa itaas hanggang -4.7% para sa TSLA sa ibaba. Hindi sila gumalaw bilang isang bloc, na siyang karaniwang nangyayari. Pinagsasama ng index membership ang mga kumpanyang ito; ngunit ang kanilang mga revenue lines ay walang direktang kaugnayan sa isa't isa. Ang basket na ito ay isang fixed list ng walong pangalan sa halip na isang ranking, kaya gamitin ito bilang orientation at hindi bilang pahayag kung aling mga kumpanya ang pinakamalaki.

Ganito ang hitsura ng isang normal na buwan

Ipinapakita ng mga leaderboard ang mga extreme na galaw. Ito naman ang nagpapakita ng kabuuan. Lahat ng 1167 na kumpanya na nakapasa sa screen, na hinati sa mga bucket base sa kanilang return sa loob ng window:

QueryNasaan ang bawat screened company: monthly returns by bucket
Ang eksaktong SQL sa likod ng bawat numero
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

52 sa mga kumpanyang na-screen ang kumita ng 20% o higit pa sa loob ng window, at 50 ang nawalan ng 20% o higit pa. Ang dalawang bucket na pinakamalapit sa flat ay may 300 at 515 na mga pangalan. Ang chart na iyan ang pinagmumulan ng movers leaderboard, at ang top ten ang nasa pinaka-kanang bahagi nito. Basahin ang mga board sa itaas nang may ganitong pag-unawa: ang top-ten monthly move ay isang outlier dahil sa mismong pagkakagawa nito, at hindi ito kailanman magiging tipikal na buwan para sa isang tipikal na stock.

Ano ang naglalagay sa isang stock sa monthly movers list

Ang isang buwan ay sapat na haba para sa maraming kaganapan, ngunit sapat din para dominahin ng isa sa mga ito ang listahan. Ang mga pangalan sa mga board na ito ay karaniwang tumutugma sa mga petsa sa calendar ng kumpanya. Ang quarterly results ang pinakakaraniwan: ang paglampas o pagkabigo sa target ay nagpapabago sa presyo sa loob ng isang session, at ang natitirang bahagi ng buwan ay nagte-trade sa paligid ng bagong level na ito. Ang mga pagbabago sa guidance ay may katulad na epekto kahit walang kasamang results.

Ang mga balita tungkol sa merger at acquisition ang nag-iiwan ng pinakamalinaw na marka sa isang monthly board. Ang stock ay tumatalon sa level na malapit sa announced deal price at pagkatapos ay tumitigil ang paggalaw, habang nananatiling malaki ang dollars traded kahit flat na ang percentage change. Kung ang isang pangalan sa itaas ng gainers table ay nagpapakita ng malaking dollar figure at presyong hindi na gumagalaw sa gitna ng window, dapat suriin ang pattern na iyon bago ang iba.

Ang mga sector moves ay mahalaga sa loob ng isang buwan sa paraang bihirang mangyari sa loob ng isang linggo. Ang pagbabago sa rates, oil, o memory pricing ay nakakaapekto sa isang buong grupo nang sabay-sabay, kaya ang mga monthly boards ay madalas nagpapakita ng mga cluster ng magkakatulad na negosyo sa halip na sampung magkakaibang pangalan. Ang mga aksyon ng analyst, pagdagdag at pagtanggal sa index, mga trial at regulatory readouts, at short squeezes ang bumubuo sa iba pa. Hindi ito makikita sa percentage lamang, kaya ang dollars-traded column at ang window ng market ay kasama sa bawat move dito.

Paano ito sinusukat

Lahat ng threshold ay nakasaad dito sa halip na ipinapahiwatig lamang. Ang isang screen na may mga nakatagong panuntunan ay nagmumukhang data ngunit sa katunayan ay isang opinyon lamang.

  • Ang window. Ang trailing 30 calendar days hanggang sa pinakabagong session na kumpletong loaded ang tape, na binubuo ng 21 sessions mula Jun 23 hanggang Jul 22. Dalawang panuntunan ang nagpapasya kung kwalipikado ang isang session. Dapat itong nakasara bago ang kasalukuyang petsa sa New York, kaya ang session na kasalukuyang tumatakbo ay hindi kailanman kasama sa scope. Dapat ding maabot ng regular-hours bar count nito ang 85% ng median session sa loob ng 34-day scan, na nag-aalis sa mga naunang araw na hindi pa kumpleto ang tape. Ang isang maikling holiday session ay naglalabas lamang ng halos kalahating normal na araw ng mga bar, kaya tinatanggal ito ng parehong panuntunan sa halip na sukatin ito nang kalahating loaded.
  • Ang return. Mula sa unang regular-session opening price sa loob ng window hanggang sa huling regular-session close, na binuo mula sa mga minute bar. Regular hours lamang, kaya hindi kasama ang mga premarket at after-hours prints. Ito ay isang price return: hindi idinaragdag ang mga dividend.
  • Ang mga floors. Hindi bababa sa $1 billion ang na-trade sa buong window, may opening price na $10 o higit pa, at may mga prints sa hindi bababa sa 15 sessions ng window. Ang dollar floor ay isang monthly total, kaya mas madali itong maabot kaysa sa parehong halaga na sinusukat sa loob ng isang linggo.
  • Ang mga exclusions. Ang mga leveraged at inverse funds ay tinatanggal base sa kanilang pangalan. Ang bawat ticker ay dapat ding may company fundamentals at market capitalization sa aming reference data. Ang pangalawang panuntunang ito ay nagtatanggal sa mga ETF, closed-end funds, commodity trusts, at ang mabilis na lumalagong grupo ng leveraged single-stock products, na kung hindi ay mapupuno ang parehong boards. Ang reference table na ito ay may isang row bawat ticker sa halip na isang dated daily snapshot, kaya binabasa ng screen ang buong table at hindi isang partikular na petsa ang nagpapasya kung sino ang eligible. Ang anumang ticker na may stock split na naganap sa huling 45 days ay tinatanggal sa halip na i-back-adjust, dahil ang split ay nagpapabago sa per-share price nang hindi binabago ang halaga ng isang holding. Ang isang symbol na muling itinalaga ng vendor feeds sa pagitan ng dalawang magkaibang kumpanya ay tinatanggal base sa pangalan.
  • Ang mega-cap panel. Isang fixed basket ng walong malalaking US companies na marami ang may-ari, na nakalista ang mga pangalan sa SQL ng panel na iyon. Gumagamit ito ng parehong window at parehong return construction gaya ng mga board, at hindi ito kasama sa dollar-volume screen.
  • Ano ang hindi ginagamit. Walang sector filter, walang market-cap floor, at walang index-membership requirement, kaya ang isang maliit na kumpanya na may mataas na turnover ay maaaring makasama sa board kasama ang isang malaking kumpanya. Ang ranking ay base lamang sa percentage change, kaya ang dollars-traded column ay nakalagay sa tabi nito.

Isang panel ang naglalaman ng lahat ng detalye: ang mga session na sakop ng window, at ang universe kung saan binuo ang bawat board.

QueryAng window at ang screened universe sa likod ng bawat board sa page na ito
Ang eksaktong SQL sa likod ng bawat numero
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

Nagsimula ang screen sa 4121 tickers na may market capitalization sa reference table at nagtapos sa 1167 kumpanya na nakapasa sa dollar-volume, price, at session floors. Ang parehong figure ay iniimbak sa bawat refresh ng pahinang ito, kaya ang resulta ng isang maliit na universe ay makikita sa receipt sa halip na hindi mapansin.

FAQ

Ano ang mga pinakamalaking stock gainers ngayong buwan?

Para sa window na nagtatapos sa Jul 22, ang pinakamalaking gains sa mga kumpanyang may trading volume na higit sa $1 billion ay ang CRNX sa 136.1% at ang PBF sa 65.9%. Ang kumpletong top ten ay nasa unang table sa pahinang ito, at nag-uupdate ito habang natatapos ang mga bagong session.

Anong mga stock ang may pinakamalaking pagbaba ngayong buwan?

Ang CLBK ang may pinakamataas na decline sa -44.6%, na sinundan ng NVTS sa -41.6%. Pareho silang sinusukat sa loob ng 21 sessions, gamit ang parehong $1 billion dollar-volume floor gaya ng sa gainers board.

Paano sinusukat ang monthly stock returns?

Ang monthly return dito ay ang pagbabago mula sa unang regular-session opening price ng isang stock sa loob ng window hanggang sa huling regular-session close nito, na binuo mula sa minute bars. Ito ay isang price return, kaya hindi isinasama ang mga dividends, at anumang kumpanya na may stock split malapit sa window ay tinatanggal sa halip na i-back-adjust.

Bakit hindi kasama ang mga leveraged ETF sa stock movers list?

Ang isang leveraged o inverse fund ay pinararami ang daily move ng isang index o isang single stock, kaya maaari itong maging top sa isang raw movers board sa isang ordinaryong market day kahit walang balita tungkol sa kumpanya. Ang pagtanggal sa kanila ay upang mapanatili ang listahang ito para sa mga operating companies lamang. Ang Paano gumagana ang leveraged ETFs ay nagpapaliwanag tungkol sa daily reset at ang drift na kasama sa paghawak nito sa loob ng isang buwan.


Ang bawat panel sa itaas ay isang stored query na may nakalakip na SQL. Buksan ang isa, palitan ang dollar floor o ang window length, at i-screen ang parehong tape sa Strasmore terminal.