Strasmore Research
市场回顾 Matt Connor作者: Matt Connor · 更新于 2026-10-17 · data as of October 17, 2026 · refreshed weekly

52周新高与新低股票查询

查看收盘价达到或接近52周高点和低点的股票,并按交易所成交记录统计两类股票数量,作为市场广度指标。

52周高点是指一只股票在过去一年中收盘价达到的最高水平,52周低点则是最低水平。在最近一个已完成的交易时段,即Oct 16, 2026,该筛选结果中有35只股票收盘价达到52周高点或距离该高点不超过1%,另有17只股票收盘价达到52周低点或距离该低点不超过1%。该筛选覆盖美国大型、高流动性的运营公司,并根据交易所成交记录重新生成。

52周高点股票

下方列出高点名单中年初至今涨幅最大的股票,最多十二只。每只股票收盘价均达到或处于过去52周最高收盘价的1%以内。

查询处于52周高点的股票,按年初至今回报率排序
ticker收盘价年初至今收益率(%)
USO161.76133.9
APA49.15100.9
HALO121.8481
OVV69.3376.9
SU78.0575.9
PR24.5975.3
COP146.5156.5
EOG158.0150.5
XOM178.9848.7
CVX224.9947.6
WSM250.1640.1
VEEV310.3639
每个数字背后的完整 SQL
WITH universe AS (
    SELECT ticker
    FROM global_markets.delayed_stocks_minute_aggs
    WHERE window_start >= now() - INTERVAL 20 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
      AND ticker IN (SELECT arrayJoin(tickers) FROM global_markets.stocks_income_statements
                     WHERE period_end >= today() - 400)
      AND ticker NOT IN ('SPCX','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() - 460 AND today())
    GROUP BY ticker
    HAVING sum(toFloat64(close) * toFloat64(volume)) >= 2000000000
),
last_session AS (
    SELECT max(date) AS d FROM global_markets.stocks_daily_aggs
    WHERE ticker = 'SPY' AND date >= today() - 12 AND date < today()
),
daily AS (
    SELECT ticker, date AS dt, toFloat64(close) AS c
    FROM global_markets.stocks_daily_aggs
    WHERE date < today()
      AND ticker IN (SELECT ticker FROM universe)
      AND date > (SELECT d FROM last_session) - 365
),
ranged AS (
    SELECT ticker,
           argMax(c, dt) AS last_close,
           max(c) AS hi,
           min(c) AS lo,
           argMaxIf(c, dt, dt <= toDate('2025-12-31')) AS base_close,
           count() AS n_sessions,
           min(dt) AS first_dt,
           max(dt) AS last_dt
    FROM daily
    GROUP BY ticker
    HAVING n_sessions >= 200
       AND countIf(dt <= toDate('2025-12-31')) > 0
       AND last_dt = (SELECT d FROM last_session)
       AND first_dt <= (SELECT d FROM last_session) - 350
)
SELECT ticker,
       round(last_close, 2) AS close,
       round((last_close / base_close - 1) * 100, 1) AS ytd_return_pct
FROM ranged
WHERE last_close >= hi * 0.99
ORDER BY ytd_return_pct DESC, ticker ASC
LIMIT 12
自己运行这个查询

USO位居榜首,年初至今涨幅为133.9%,收盘价为$161.76。由于该名单中的股票按定义均处于52周高点的1%以内,因此价格一栏同时代表正在测试的价位。APA紧随其后,涨幅为100.9%;HALO涨幅为81%。表格末尾的VEEV年初至今涨幅为39%。

这正是差异所在。52周高点只说明价格处于自身一年区间中的位置,仅此而已。一只去年夏季大幅下跌、随后逐步收复失地的股票,与一只从未停止上涨的股票,都可能被贴上同样的标签。

52周收盘价低点股票

这是同一筛选条件的反向版本。这些股票的收盘价等于或处于过去52周最低收盘价上方1%以内,并按年初至今表现最弱的顺序排列,最多列出12只。

查询处于52周低点的股票,按年初至今回报率排序
ticker收盘价年初至今收益率(%)
OKLO27.97-61
SMR5.83-58.9
QBTS11.78-55
AVAV121.79-49.7
ASTS40.66-44
CIFR8.98-39.2
RIVN12.42-37
FSLR172.64-33.9
IREN26.99-28.5
VKTX25.17-28.5
APLD18.05-26.4
MOS18.82-21.9
每个数字背后的完整 SQL
WITH universe AS (
    SELECT ticker
    FROM global_markets.delayed_stocks_minute_aggs
    WHERE window_start >= now() - INTERVAL 20 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
      AND ticker IN (SELECT arrayJoin(tickers) FROM global_markets.stocks_income_statements
                     WHERE period_end >= today() - 400)
      AND ticker NOT IN ('SPCX','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() - 460 AND today())
    GROUP BY ticker
    HAVING sum(toFloat64(close) * toFloat64(volume)) >= 2000000000
),
last_session AS (
    SELECT max(date) AS d FROM global_markets.stocks_daily_aggs
    WHERE ticker = 'SPY' AND date >= today() - 12 AND date < today()
),
daily AS (
    SELECT ticker, date AS dt, toFloat64(close) AS c
    FROM global_markets.stocks_daily_aggs
    WHERE date < today()
      AND ticker IN (SELECT ticker FROM universe)
      AND date > (SELECT d FROM last_session) - 365
),
ranged AS (
    SELECT ticker,
           argMax(c, dt) AS last_close,
           max(c) AS hi,
           min(c) AS lo,
           argMaxIf(c, dt, dt <= toDate('2025-12-31')) AS base_close,
           count() AS n_sessions,
           min(dt) AS first_dt,
           max(dt) AS last_dt
    FROM daily
    GROUP BY ticker
    HAVING n_sessions >= 200
       AND countIf(dt <= toDate('2025-12-31')) > 0
       AND last_dt = (SELECT d FROM last_session)
       AND first_dt <= (SELECT d FROM last_session) - 350
)
SELECT ticker,
       round(last_close, 2) AS close,
       round((last_close / base_close - 1) * 100, 1) AS ytd_return_pct
FROM ranged
WHERE last_close <= lo * 1.01
ORDER BY ytd_return_pct ASC, ticker ASC
LIMIT 12
自己运行这个查询

OKLO在这份名单中的年初至今表现最弱,为-61%;其收盘价为$27.97,与自身52周收盘价低点相差不超过1%。其次是SMR,为-58.9%。

52周低点只是价格区间中的一个位置,并不能据此判断一家公司的经营状况。盈利公司可能因长期横盘而进入这份名单,经营陷入困境的公司也可能如此。仅凭收盘价无法区分两者。若要了解针对整个市场的同类问题,请参阅市场如何从崩盘中复苏。

高点和低点数量如何反映市场广度

市场广度衡量的是有多少只股票参与一轮行情,而不是指数走了多远。创新高数量与创新低数量的对比,是最古老的市场广度指标之一。在本页中,这一数据值得关注。

查询过去六周每日新52周高点与新低点对比
30 rows (showing 20)
日期处于52周高点处于52周低点净创新高数
Sep 4, 202618108
Sep 8, 20261519-4
Sep 9, 20261931-12
Sep 10, 20261631-15
Sep 11, 202623194
Sep 14, 202623203
Sep 15, 20263440-6
Sep 16, 20261637-21
Sep 17, 202632302
Sep 18, 20261645-29
Sep 21, 20263036-6
Sep 22, 202628262
Sep 23, 20262545-20
Sep 24, 20262953-24
Sep 25, 20262042-22
Sep 28, 20261951-32
Sep 29, 20262148-27
Sep 30, 20261863-45
Oct 1, 20262046-26
Oct 2, 20262648-22
每个数字背后的完整 SQL
WITH universe AS (
    SELECT ticker
    FROM global_markets.delayed_stocks_minute_aggs
    WHERE window_start >= now() - INTERVAL 20 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
      AND ticker IN (SELECT arrayJoin(tickers) FROM global_markets.stocks_income_statements
                     WHERE period_end >= today() - 400)
      AND ticker NOT IN ('SPCX','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() - 460 AND today())
    GROUP BY ticker
    HAVING sum(toFloat64(close) * toFloat64(volume)) >= 2000000000
),
last_session AS (
    SELECT max(date) AS d FROM global_markets.stocks_daily_aggs
    WHERE ticker = 'SPY' AND date >= today() - 12 AND date < today()
),
daily AS (
    SELECT ticker, date AS dt, toFloat64(close) AS c
    FROM global_markets.stocks_daily_aggs
    WHERE date < today()
      AND ticker IN (SELECT ticker FROM universe)
      AND date <= (SELECT d FROM last_session)
      AND date >= (SELECT d FROM last_session) - 425
),
rolled AS (
    SELECT ticker, dt, c,
           max(c) OVER w AS hi,
           min(c) OVER w AS lo,
           count() OVER w AS n_sessions,
           min(dt) OVER (PARTITION BY ticker) AS first_dt
    FROM daily
    WINDOW w AS (PARTITION BY ticker ORDER BY dt RANGE BETWEEN 364 PRECEDING AND CURRENT ROW)
)
SELECT formatDateTime(dt, '%b %e, %Y') AS date,
       countIf(c >= hi * 0.99) AS at_52w_high,
       countIf(c <= lo * 1.01) AS at_52w_low,
       countIf(c >= hi * 0.99) - countIf(c <= lo * 1.01) AS net_highs
FROM rolled
WHERE n_sessions >= 200
  AND first_dt <= dt - 350
  AND dt > (SELECT d FROM last_session) - 43
GROUP BY dt
ORDER BY dt
自己运行这个查询

在Oct 16, 2026,该筛选结果显示,有35只股票处于或接近52周高点,另有17只处于或接近低点,净值为18。六周前的Sep 4, 2026,同一筛选结果显示有18只股票创出或接近高点,10只股票创出或接近低点。

在图表所列的30个交易日中,两项数据每天都大幅波动。因此,单个交易日的水平不如数周内的趋势重要。指数保持稳定,但创新高数量减少,说明市场参与面比指数本身显示的更窄。低点数量增加,则构成他人恐惧时买入的市场环境;我们已将这一现象与新闻情绪进行了对比测试。

市场其余部分距离各自高点有多远

高点和低点是分布的两端;大多数股票处于中间位置。本面板按股票低于52周高点的幅度对整个股票池进行分类,并报告各区间的年初至今收益率中位数。

查询整个筛选范围距52周高点有多远
区间股票数占比(%)年初至今收益率中位数(%)
At the high (under 1%)356.227.3
1% to 5% below539.327
5% to 10% below7513.215
10% to 20% below14826.17.4
20% to 35% below13523.8-8.7
More than 35% below12221.5-20.3
每个数字背后的完整 SQL
WITH universe AS (
    SELECT ticker
    FROM global_markets.delayed_stocks_minute_aggs
    WHERE window_start >= now() - INTERVAL 20 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
      AND ticker IN (SELECT arrayJoin(tickers) FROM global_markets.stocks_income_statements
                     WHERE period_end >= today() - 400)
      AND ticker NOT IN ('SPCX','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() - 460 AND today())
    GROUP BY ticker
    HAVING sum(toFloat64(close) * toFloat64(volume)) >= 2000000000
),
last_session AS (
    SELECT max(date) AS d FROM global_markets.stocks_daily_aggs
    WHERE ticker = 'SPY' AND date >= today() - 12 AND date < today()
),
daily AS (
    SELECT ticker, date AS dt, toFloat64(close) AS c
    FROM global_markets.stocks_daily_aggs
    WHERE date < today()
      AND ticker IN (SELECT ticker FROM universe)
      AND date > (SELECT d FROM last_session) - 365
),
ranged AS (
    SELECT ticker,
           argMax(c, dt) AS last_close,
           max(c) AS hi,
           min(c) AS lo,
           argMaxIf(c, dt, dt <= toDate('2025-12-31')) AS base_close,
           count() AS n_sessions,
           min(dt) AS first_dt,
           max(dt) AS last_dt
    FROM daily
    GROUP BY ticker
    HAVING n_sessions >= 200
       AND countIf(dt <= toDate('2025-12-31')) > 0
       AND last_dt = (SELECT d FROM last_session)
       AND first_dt <= (SELECT d FROM last_session) - 350
)
SELECT multiIf(p < 1, 'At the high (under 1%)',
               p < 5, '1% to 5% below',
               p < 10, '5% to 10% below',
               p < 20, '10% to 20% below',
               p < 35, '20% to 35% below',
               'More than 35% below') AS bucket,
       count() AS stocks,
       round(100.0 * count() / sum(count()) OVER (), 1) AS share_pct,
       round(quantileExact(0.5)(ytd), 1) AS median_ytd_pct
FROM (
    SELECT (1 - last_close / hi) * 100 AS p,
           (last_close / base_close - 1) * 100 AS ytd,
           multiIf(p < 1, 0, p < 5, 1, p < 10, 2, p < 20, 3, p < 35, 4, 5) AS ord
    FROM ranged
)
GROUP BY bucket, ord
ORDER BY ord
自己运行这个查询

股票池中有6.2%、即35只股票,收盘价距离52周高点不超过1%。另一端有21.5%只股票,收盘价低于52周高点超过35%。最高区间的年初至今收益率中位数为27.3%;最低区间为-20.3%,图表展示了两者之间的变化形态。

这种梯度更接近算术结果,而非发现了什么规律:一只股票接近52周高点,按定义说明它今年大部分时间都在上涨。本面板的价值在于其覆盖范围:极端情况有多罕见,以及市场中有多大比例的股票距离自身最佳价格很远。大仓位持有其中一只股票,承担的正是单只股票的实际风险。

市场自身处于52周区间的位置

一只股票处于高位时,若市场自身也接近高位,其含义与市场远离高位时不同。以下五只大盘ETF采用与上文股票完全相同的衡量方法。

查询五只大盘ETF处于各自52周区间的位置
标签低于高点(%)高于低点(%)年初至今收益率(%)
S&P 500 (SPY)2.0320.811.9
S&P 500 equal weight (RSP)3.917.511.8
Dow 30 (DIA)4.37158
Nasdaq 100 (QQQ)6.5627.115.5
Russell 2000 (IWM)11.36189.9
每个数字背后的完整 SQL
WITH last_session AS (
    SELECT max(date) AS d FROM global_markets.stocks_daily_aggs
    WHERE ticker = 'SPY' AND date >= today() - 12 AND date < today()
),
daily AS (
    SELECT ticker, date AS dt, toFloat64(close) AS c
    FROM global_markets.stocks_daily_aggs
    WHERE date < today()
      AND ticker IN ('SPY', 'QQQ', 'DIA', 'IWM', 'RSP')
      AND date > (SELECT d FROM last_session) - 365
),
ranged AS (
    SELECT ticker,
           argMax(c, dt) AS last_close,
           max(c) AS hi,
           min(c) AS lo,
           argMaxIf(c, dt, dt <= toDate('2025-12-31')) AS base_close,
           count() AS n_sessions,
           min(dt) AS first_dt,
           max(dt) AS last_dt
    FROM daily
    GROUP BY ticker
    HAVING n_sessions >= 200
       AND countIf(dt <= toDate('2025-12-31')) > 0
       AND last_dt = (SELECT d FROM last_session)
       AND first_dt <= (SELECT d FROM last_session) - 350
)
SELECT multiIf(ticker = 'SPY', 'S&P 500 (SPY)',
               ticker = 'QQQ', 'Nasdaq 100 (QQQ)',
               ticker = 'DIA', 'Dow 30 (DIA)',
               ticker = 'RSP', 'S&P 500 equal weight (RSP)',
               'Russell 2000 (IWM)') AS label,
       round((1 - last_close / hi) * 100, 2) AS pct_below_high,
       round((last_close / lo - 1) * 100, 1) AS pct_above_low,
       round((last_close / base_close - 1) * 100, 1) AS ytd_return_pct
FROM ranged
ORDER BY pct_below_high ASC
自己运行这个查询

S&P 500 (SPY)收盘时低于52周高点2.03%,是五只ETF中距离高点最近的一只;同时高于52周低点20.8%。Russell 2000 (IWM)距离自身高点最远,为11.36%。年初至今,两者的表现分别为11.9%和9.9%。

同一指数的等权重版本与市值加权版本之间的差距,本身就是一项市场广度指标。当等权重指数更接近高点时,平均成分股的表现超过了市值最大的成分股。当市值加权指数更接近高点时,则说明少数超大型公司正在支撑指数。这两种格局都不能预测未来走势;而在不合适的阶段离开市场,可能付出错过市场最佳交易日所述的代价。

计量方法

本页的所有数据均来自美国交易所行情中的分钟线,并汇总为每日收盘价。完整规则如下:

  • 股票范围。 仅纳入在美国上市的运营公司。公司必须提交过一份截至过去400天内某一期间的SEC损益表。因此,ETF和基金不会出现在任一榜单中。杠杆ETF和反向ETF也会按名称排除,以进一步避免误纳入。
  • 流动性门槛。 股票在过去20个日历日内的成交额必须至少达到20亿美元。扣除周末和节假日后,该窗口通常包含约12个交易日,因此平均每天的成交额约为1.5亿美元。这样既能确保榜单中的股票具备实际交易流动性,也能避免低成交量行情制造极端结果。
  • 排除拆股,不进行调整。 过去460天内执行过股票拆分的任何股票代码,都会从筛选结果中剔除。该窗口有意超过完整一年,足以覆盖下方广度图表所回溯的最早价格。这是此类页面发布错误数据的最常见原因:一次20合1的反向拆股会在没有实际交易支撑的情况下,将报价放大20倍;未经调整的筛选结果就可能显示出异常强劲的52周新高。正向拆股则会产生相反效果,制造虚假的52周新低。
  • 采用收盘价,而非盘中极值。 最高点和最低点均根据收盘价计算。某只股票可能在盘中突破52周高点,但收盘低于该水平,因此不会出现在本页。基于盘中成交记录的筛选结果,统计数量会更高。
  • 交易时段必须完整。 一日收盘价取纽约时间15:30至16:00之间最后一根分钟线。仍在加载中的交易时段如果该半小时内没有分钟线,就无法进入计算;当前进行中的交易时段也不会被纳入。提前收盘的节假日交易时段同样因不满足条件而被排除。页面上方标注的日期,是最后一个通过完整性检查的交易时段,因此可能比日历日期晚一两天。
  • 完整一年的历史数据。 在52周窗口内,股票至少需要有200个交易时段的数据,且首个交易时段必须距今至少350天。上市仅三个月的公司不会在本页显示52周高点。
  • 1%的区间。 “处于52周高点”是指收盘价等于或处于过去52周最高收盘价下方1%以内;低点榜单采用相同方法。年初至今回报率以2025年最后一个交易日的收盘价为起点计算。

常见问题

在52周高点买入是个好主意吗?

没有统一答案,本文内容也不构成投资建议。本页面只能展示回溯性数据:距离52周高点不超过1%的股票,年初至今收益率中位数为27.3%;而较52周高点低出35%以上的股票,年初至今收益率中位数为-20.3%。这些数据描述的是这些股票过去一年的表现,而不是未来一年的表现。该标签表示股价在区间中的位置,并不代表估值水平。

股票触及52周低点意味着什么?

这意味着该股收盘价低于此前52周内的所有收盘价。在Oct 16, 2026,本筛选结果中有17只股票符合这一条件。股价触及低点,可能反映企业基本面恶化,也可能只是盈利企业长期缓慢下跌。仅凭价格无法判断是哪一种情况。

目前有多少只股票处于52周高点?

截至Oct 16, 2026收盘,本筛选结果中有35只股票收于52周高点或距离该高点不超过1%;收于52周低点或距离该低点不超过1%的股票有17只。本筛选覆盖规模较大、流动性较高的美国运营企业,并要求过去20个日历日的成交额超过20亿美元。因此,统计数量会少于覆盖所有上市股票的筛选结果。

52周高点如何计算?

取过去52周内的所有收盘价,并找出其中最高值。如果最新收盘价等于该最高值,则该股创下52周收盘高点。本页面还统计距离该水平不超过1%的股票,并剔除过去460天内发生过拆股的股票,因为拆股会改变报价,但不会改变持仓的价值。


上方每个面板都保存了其背后的SQL查询。打开任意表格下方的查询,即可审查筛选条件,或在Strasmore终端上运行查询。如需查看本周涨跌幅最大的股票,而不是过去一年的极值,请参阅本周涨幅最大和跌幅最大的股票。

#52-week high#52-week low#market breadth#stock screener#market data