Strasmore Research
Market Recap Matt ConnorBy Matt Connor · Updated 2026-07-16 · data as of July 16, 2026 · refreshed weekly

Biggest Stock Gainers and Losers This Week

The biggest US stock gainers and losers this week among the most heavily traded names, measured from the exchange tape and refreshed weekly with each move.

This page tracks the biggest US stock gainers and losers of the past week, measured straight from the exchange tape rather than a vendor's summary. It covers the most heavily traded names, those with over $1 billion changing hands during the week, and it refreshes every week. Leveraged and inverse ETFs are set aside so the list reflects individual companies.

Biggest stock gainers this week

The names below are the largest weekly gains among stocks that traded at least $1 billion, so each move has real volume behind it rather than a thin-tape spike.

QueryBiggest stock gainers this week (names trading $1B+, leveraged/inverse ETFs excluded)
The exact SQL behind every number
WITH sess AS (
    SELECT ticker, toDate(toTimeZone(window_start, 'America/New_York')) AS d,
        argMin(toFloat64(open), toTimeZone(window_start, 'America/New_York')) AS o,
        argMax(toFloat64(close), toTimeZone(window_start, 'America/New_York')) AS c,
        sum(toFloat64(close) * toFloat64(volume)) AS dollars
    FROM global_markets.delayed_stocks_minute_aggs
    WHERE window_start >= now() - INTERVAL 12 DAY
      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 NOT IN (SELECT ticker FROM global_markets.stocks_splits WHERE execution_date BETWEEN today() - 12 AND today())
      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
),
wk AS (
    SELECT ticker, argMin(o, d) AS wo, argMax(c, d) AS wc, sum(dollars) AS wd, count() AS n
    FROM sess WHERE d >= (SELECT max(d) FROM sess) - 6 GROUP BY ticker
)
SELECT ticker,
    round((wc / wo - 1) * 100, 1) AS week_return_pct,
    round(wd / 1e9, 1) AS week_dollar_bn,
    (SELECT formatDateTime(max(d), '%b %e') FROM sess) AS week_ending
FROM wk
WHERE wd >= 1000000000 AND wo >= 10 AND n >= 4
ORDER BY (wc / wo - 1) DESC
LIMIT 10

For the week ending Jul 15, the biggest gainer among heavily traded stocks was PYPL, up 26%, with META next at 16.4%. A weekly move of this size usually shows up first as elevated relative volume against the stock's average daily volume, and it often begins with an overnight gap on news.

Biggest stock losers this week

The same measure, in reverse: the steepest weekly declines among names trading over $1 billion.

QueryBiggest stock losers this week (names trading $1B+, leveraged/inverse ETFs excluded)
The exact SQL behind every number
WITH sess AS (
    SELECT ticker, toDate(toTimeZone(window_start, 'America/New_York')) AS d,
        argMin(toFloat64(open), toTimeZone(window_start, 'America/New_York')) AS o,
        argMax(toFloat64(close), toTimeZone(window_start, 'America/New_York')) AS c,
        sum(toFloat64(close) * toFloat64(volume)) AS dollars
    FROM global_markets.delayed_stocks_minute_aggs
    WHERE window_start >= now() - INTERVAL 12 DAY
      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 NOT IN (SELECT ticker FROM global_markets.stocks_splits WHERE execution_date BETWEEN today() - 12 AND today())
      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
),
wk AS (
    SELECT ticker, argMin(o, d) AS wo, argMax(c, d) AS wc, sum(dollars) AS wd, count() AS n
    FROM sess WHERE d >= (SELECT max(d) FROM sess) - 6 GROUP BY ticker
)
SELECT ticker,
    round((wc / wo - 1) * 100, 1) AS week_return_pct,
    round(wd / 1e9, 1) AS week_dollar_bn,
    (SELECT formatDateTime(max(d), '%b %e') FROM sess) AS week_ending
FROM wk
WHERE wd >= 1000000000 AND wo >= 10 AND n >= 4
ORDER BY (wc / wo - 1) ASC
LIMIT 10

The steepest weekly decline was ALNY at -26.2%, with IBM next at -25.9%. A decline on heavy volume tells a different story from one on quiet volume, which is why the dollar-traded column sits beside every move.

Where the market stood this week

A single stock's move reads differently against the market's own week. The four major index ETFs, over the same window:

QueryThe four major index ETFs this week, for context
The exact SQL behind every number
WITH sess AS (
    SELECT ticker, toDate(toTimeZone(window_start, 'America/New_York')) AS d,
        argMin(toFloat64(open), toTimeZone(window_start, 'America/New_York')) AS o,
        argMax(toFloat64(close), toTimeZone(window_start, 'America/New_York')) AS c
    FROM global_markets.delayed_stocks_minute_aggs
    WHERE window_start >= now() - INTERVAL 12 DAY
      AND ticker IN ('SPY', 'QQQ', 'DIA', 'IWM')
      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
),
wk AS (SELECT ticker, argMin(o, d) AS wo, argMax(c, d) AS wc FROM sess WHERE d >= (SELECT max(d) FROM sess) - 6 GROUP BY ticker)
SELECT multiIf(ticker = 'SPY', 'S&P 500 (SPY)', ticker = 'QQQ', 'Nasdaq 100 (QQQ)', ticker = 'DIA', 'Dow (DIA)', ticker = 'IWM', 'Russell 2000 (IWM)', ticker) AS index_etf,
    round((wc / wo - 1) * 100, 2) AS week_return_pct
FROM wk ORDER BY week_return_pct DESC

The index ETFs ranged from 0.98% to -0.13% for the week. A stock up double digits while the market is flat has moved on its own news; the same move alongside a strong tape is partly the market carrying it.

What moves a stock that much in a week

A double-digit weekly move rarely comes out of nowhere. The names on this list typically coincide with a scheduled or one-off catalyst. The most common is a quarterly earnings report, where a beat or a miss against expectations resets a stock in a single session. Close behind are guidance changes, where a company raises or cuts its outlook for the quarters ahead. Others recur through the calendar: merger and acquisition news, analyst rating changes and price-target revisions, clinical-trial or regulatory readouts for biotech and pharma names, and sector-wide moves where a shift in interest rates, oil, or chip demand carries a whole group at once. Index membership matters too. A stock added to or removed from a major index meets forced buying or selling from the funds that track it, often on a single rebalancing date. None of this is visible in a price change alone, which is why the dollars-traded column and the market's own week sit beside every move here. The tape shows what happened; the catalyst is the reader's next question.

How to read a weekly mover

A big weekly percentage is a starting point, not a conclusion. Two stocks can post the same headline number and mean very different things. A 15% gain on a name that trades $5 billion in a week is a large, liquid repricing that many investors took part in. The same 15% on a name scraping the $1 billion floor is thinner, easier to push, and easier to reverse. The dollars-traded column is there to tell the two apart. The five-session window matters as well: it nets a single wild day into the week's move, so a stock that spiked on Monday and handed back half of it by Friday shows the net, not the peak. Leveraged and inverse ETFs are excluded on purpose. A 3x fund can top any gainer list on an ordinary index day, which says more about how leveraged ETFs work than about any company.

FAQ

What were the biggest stock gainers this week?

For the week ending Jul 15, the largest gains among stocks trading over $1 billion were PYPL (+26%) and META (+16.4%). The full top ten is in the table above, refreshed weekly.

What were the biggest stock losers this week?

ALNY led the weekly decliners at -26.2%, followed by IBM at -25.9%, again among names trading over $1 billion for the week.

How are these gainers and losers measured?

Each move is the change from the first regular-session open to the last regular-session close over the trailing five sessions, computed from minute bars. The list is filtered to stocks that traded at least $1 billion in the week and opened above $10, and leveraged and inverse ETFs are excluded.

Why are leveraged ETFs not on the list?

A leveraged or inverse ETF is built to multiply an index's daily move, so it routinely tops a raw movers list without any company-specific news. Excluding them keeps this a list of individual stocks. Tickers with a stock split executing inside the window are excluded for the same reason: a split moves the per-share price without moving the value of a holding.


Every panel above is a stored, inspectable query, refreshed each week. Open the SQL under any table to audit it, or screen the week's moves yourself on the Strasmore terminal.

#market movers#gainers and losers#market data#volume