Strasmore Research
Обзор рынка Matt ConnorАвтор: Matt Connor · Обновлено 2026-07-23 · data as of July 23, 2026 · refreshed weekly

Акции на максимумах и минимумах за 52 недели

Узнайте, какие акции закрылись на пятидесяти двухнедельных максимумах или минимумах. Данные собраны из биржевых лент для оценки рыночного охвата.

Максимум за 52 недели — это самая высокая цена закрытия акции за последний год; минимум за 52 недели — самая низкая. По итогам последней завершенной торговой сессии Jul 21, 2026, 26 акций из данного списка закрылись на уровне максимума за 52 недели или в пределах 1% от него, а 7 закрылись на уровне минимума за 52 недели или в пределах 1% от него. Данный фильтр включает крупные ликвидные операционные компании США и формируется на основе биржевых данных.

Акции на максимумах за 52 недели

Ниже представлены наиболее прибыльные акции с начала года — их может быть до двенадцати. Каждая из них завершила сессию на уровне или в пределах 1% от своего максимального значения закрытия за последние 52 недели.

ЗапросАкции на 52-недельных максимумах, по доходности YTD
Точный 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(toDate(et)) AS d
    FROM (
        SELECT toTimeZone(window_start, 'America/New_York') AS et
        FROM global_markets.delayed_stocks_minute_aggs
        WHERE ticker = 'SPY' AND window_start >= now() - INTERVAL 12 DAY
          AND toHour(toTimeZone(window_start, 'America/New_York')) * 60 + toMinute(toTimeZone(window_start, 'America/New_York')) >= 955
          AND toHour(toTimeZone(window_start, 'America/New_York')) * 60 + toMinute(toTimeZone(window_start, 'America/New_York')) < 960
    )
),
daily AS (
    SELECT ticker, toDate(et) AS dt, argMax(c, et) AS c, count() AS nbars
    FROM (
        SELECT ticker, toTimeZone(window_start, 'America/New_York') AS et, toFloat64(close) AS c
        FROM global_markets.delayed_stocks_minute_aggs
        WHERE window_start >= now() - INTERVAL 375 DAY
          AND ticker IN (SELECT ticker FROM universe)
          AND toHour(toTimeZone(window_start, 'America/New_York')) * 60 + toMinute(toTimeZone(window_start, 'America/New_York')) >= 930
          AND toHour(toTimeZone(window_start, 'America/New_York')) * 60 + toMinute(toTimeZone(window_start, 'America/New_York')) < 960
    )
    GROUP BY ticker, dt
    HAVING nbars >= 20 AND dt > (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

DAVE лидирует с показателем 99.6% за год, закрывшись на отметке $439.18. В данном списке цена закрытия по определению находится в пределах 1% от 52-недельного максимума, поэтому столбец с ценой также отражает тестируемый уровень. Далее следуют DINO с результатом 99% и MPC с результатом 96.6%. В конце таблицы ROKU демонстрирует рост на 33% за год.

Суть в этом разрыве. Показатель «максимум за 52 недели» лишь описывает положение цены внутри ее годового диапазона. Акция, которая сильно упала прошлым летом, а затем восстановилась, получает тот же статус, что и бумага, которая постоянно росла.

Акции на 52-недельных минимумах

Тот же фильтр, но в обратном порядке. В этот список вошли двенадцать компаний, цена закрытия которых находится на уровне или в пределах 1% от их минимального значения закрытия за последние 52 недели. Список отсортирован по убыванию показателя с начала года.

ЗапросАкции на 52-недельных минимумах, по доходности YTD
Точный 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(toDate(et)) AS d
    FROM (
        SELECT toTimeZone(window_start, 'America/New_York') AS et
        FROM global_markets.delayed_stocks_minute_aggs
        WHERE ticker = 'SPY' AND window_start >= now() - INTERVAL 12 DAY
          AND toHour(toTimeZone(window_start, 'America/New_York')) * 60 + toMinute(toTimeZone(window_start, 'America/New_York')) >= 955
          AND toHour(toTimeZone(window_start, 'America/New_York')) * 60 + toMinute(toTimeZone(window_start, 'America/New_York')) < 960
    )
),
daily AS (
    SELECT ticker, toDate(et) AS dt, argMax(c, et) AS c, count() AS nbars
    FROM (
        SELECT ticker, toTimeZone(window_start, 'America/New_York') AS et, toFloat64(close) AS c
        FROM global_markets.delayed_stocks_minute_aggs
        WHERE window_start >= now() - INTERVAL 375 DAY
          AND ticker IN (SELECT ticker FROM universe)
          AND toHour(toTimeZone(window_start, 'America/New_York')) * 60 + toMinute(toTimeZone(window_start, 'America/New_York')) >= 930
          AND toHour(toTimeZone(window_start, 'America/New_York')) * 60 + toMinute(toTimeZone(window_start, 'America/New_York')) < 960
    )
    GROUP BY ticker, dt
    HAVING nbars >= 20 AND dt > (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

Наихудший результат с начала года в списке у PNR при значении -41%; цена закрытия составила $61.48, что находится в пределах 1% от 52-недельного минимума. Следующая в списке — CPRT с показателем -30.6%.

52-недельный минимум — это лишь положение цены в диапазоне, а не оценка состояния бизнеса. Прибыльные компании могут попадать в этот список после длительных периодов стагнации, как и компании, испытывающие реальные трудности. Только по цене закрытия их невозможно различить. О том, как рынки восстанавливаются после обвалов, читайте в статье как рынки восстанавливаются после обвалов.

Что говорят показатели максимумов и минимумов о широте рынка

Широта рынка показывает количество акций, участвующих в движении, а не дистанцию, пройденную индексом. Соотношение новых максимумов к новым минимумам — один из старейших индикаторов широты рынка, и на этой странице это ключевой показатель.

ЗапросНовые 52-недельные максимумы к минимумам, ежедневно за 6 недель
Точный 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(toDate(et)) AS d
    FROM (
        SELECT toTimeZone(window_start, 'America/New_York') AS et
        FROM global_markets.delayed_stocks_minute_aggs
        WHERE ticker = 'SPY' AND window_start >= now() - INTERVAL 12 DAY
          AND toHour(toTimeZone(window_start, 'America/New_York')) * 60 + toMinute(toTimeZone(window_start, 'America/New_York')) >= 955
          AND toHour(toTimeZone(window_start, 'America/New_York')) * 60 + toMinute(toTimeZone(window_start, 'America/New_York')) < 960
    )
),
daily AS (
    SELECT ticker, toDate(et) AS dt, argMax(c, et) AS c, count() AS nbars
    FROM (
        SELECT ticker, toTimeZone(window_start, 'America/New_York') AS et, toFloat64(close) AS c
        FROM global_markets.delayed_stocks_minute_aggs
        WHERE window_start >= now() - INTERVAL 425 DAY
          AND ticker IN (SELECT ticker FROM universe)
          AND toHour(toTimeZone(window_start, 'America/New_York')) * 60 + toMinute(toTimeZone(window_start, 'America/New_York')) >= 930
          AND toHour(toTimeZone(window_start, 'America/New_York')) * 60 + toMinute(toTimeZone(window_start, 'America/New_York')) < 960
    )
    GROUP BY ticker, dt
    HAVING nbars >= 20 AND dt <= (SELECT d FROM last_session)
),
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

На Jul 21, 2026 26 акций находились на уровне или около 52-недельного максимума, против 7 на уровне или около минимума; чистое значение составило 19. Шестью неделями ранее, Jun 9, 2026, этот же показатель составлял 35 максимумов и 3 минимумов.

На протяжении 29 сессий, представленных на графике, оба показателя сильно колеблются от дня к дню. Поэтому значение за одну конкретную сессию менее важно, чем общая тенденция за несколько недель. Если индекс остается стабильным, а количество максимумов сокращается, это означает, что рынок становится менее широким, чем кажется по самому индексу. Рост количества минимумов создает условия для покупки, когда другие боятся, что мы проверили на примере рыночных настроений.

Насколько остальной рынок далек от своих максимумов

Максимумы и минимумы — это две границы распределения; большинство акций находятся посередине. В этой панели все инструменты отсортированы по дистанции до 52-недельного максимума. Здесь указана медианная доходность с начала года для каждой группы.

ЗапросОтклонение всего рынка от 52-недельного максимума
Точный 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(toDate(et)) AS d
    FROM (
        SELECT toTimeZone(window_start, 'America/New_York') AS et
        FROM global_markets.delayed_stocks_minute_aggs
        WHERE ticker = 'SPY' AND window_start >= now() - INTERVAL 12 DAY
          AND toHour(toTimeZone(window_start, 'America/New_York')) * 60 + toMinute(toTimeZone(window_start, 'America/New_York')) >= 955
          AND toHour(toTimeZone(window_start, 'America/New_York')) * 60 + toMinute(toTimeZone(window_start, 'America/New_York')) < 960
    )
),
daily AS (
    SELECT ticker, toDate(et) AS dt, argMax(c, et) AS c, count() AS nbars
    FROM (
        SELECT ticker, toTimeZone(window_start, 'America/New_York') AS et, toFloat64(close) AS c
        FROM global_markets.delayed_stocks_minute_aggs
        WHERE window_start >= now() - INTERVAL 375 DAY
          AND ticker IN (SELECT ticker FROM universe)
          AND toHour(toTimeZone(window_start, 'America/New_York')) * 60 + toMinute(toTimeZone(window_start, 'America/New_York')) >= 930
          AND toHour(toTimeZone(window_start, 'America/New_York')) * 60 + toMinute(toTimeZone(window_start, 'America/New_York')) < 960
    )
    GROUP BY ticker, dt
    HAVING nbars >= 20 AND dt > (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

5.3% всех инструментов, что составляет 26 наименований, закрылись в пределах 1% от 52-недельного максимума. На другом конце 17% закрылись более чем на 35% ниже максимума. Медианная доходность с начала года в верхней группе составляет 32.8%; в нижней группе она составляет -28.9%. График отображает динамику между этими значениями.

Такой градиент ближе к арифметическому расчету, чем к рыночному открытию: акция, находящаяся вблизи 52-недельного максимума, по определению росла большую часть года. Данная панель полезна для оценки масштаба: насколько необычны экстремальные значения и какая часть рынка находится далеко от своих лучших цен. Крупная позиция в одной из таких акций — это риск, который измеряется в реальном риске одной акции.

Положение рынка относительно его 52-недельного диапазона

Показатели отдельной акции на максимуме воспринимаются иначе, если рынок находится близко к своему максимуму, нежели если он значительно от него удален. Ниже приведены пять широких рыночных ETF, измеренных по тем же принципам, что и акции выше.

ЗапросПоложение пяти широких ETF в их 52-недельном диапазоне
Точный SQL-код для каждого числа
WITH last_session AS (
    SELECT max(toDate(et)) AS d
    FROM (
        SELECT toTimeZone(window_start, 'America/New_York') AS et
        FROM global_markets.delayed_stocks_minute_aggs
        WHERE ticker = 'SPY' AND window_start >= now() - INTERVAL 12 DAY
          AND toHour(toTimeZone(window_start, 'America/New_York')) * 60 + toMinute(toTimeZone(window_start, 'America/New_York')) >= 955
          AND toHour(toTimeZone(window_start, 'America/New_York')) * 60 + toMinute(toTimeZone(window_start, 'America/New_York')) < 960
    )
),
daily AS (
    SELECT ticker, toDate(et) AS dt, argMax(c, et) AS c, count() AS nbars
    FROM (
        SELECT ticker, toTimeZone(window_start, 'America/New_York') AS et, toFloat64(close) AS c
        FROM global_markets.delayed_stocks_minute_aggs
        WHERE window_start >= now() - INTERVAL 375 DAY
          AND ticker IN ('SPY', 'QQQ', 'DIA', 'IWM', 'RSP')
          AND toHour(toTimeZone(window_start, 'America/New_York')) * 60 + toMinute(toTimeZone(window_start, 'America/New_York')) >= 930
          AND toHour(toTimeZone(window_start, 'America/New_York')) * 60 + toMinute(toTimeZone(window_start, 'America/New_York')) < 960
    )
    GROUP BY ticker, dt
    HAVING nbars >= 20
       AND dt > (SELECT d FROM last_session) - 365
       AND dt <= (SELECT d FROM last_session)
),
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 equal weight (RSP) закрылся на 1.08% ниже своего 52-недельного максимума, что является самым близким показателем среди пяти, и на 17.2% выше своего 52-недельного минимума. Nasdaq 100 (QQQ) находится дальше всего от своего максимума на уровне 4.98%. С начала года показатели составляют 11.1% и 15.4%.

Разрыв между эквивесантильным и капитализационным вариантами одного и того же индекса сам по себе является показателем охвата рынка. Когда линия эквивесантильного индекса находится ближе к своему максимуму, средний участник опережает крупнейших участников. Когда ближе находится линия капитализационного индекса, индекс удерживают несколько очень крупных компаний. Ни один из этих вариантов не является прогнозным, а выход из рынка в неподходящий момент влечет за собой издержки, описанные в упущенные лучшие дни рынка.

Методика расчета

Все данные на этой странице основаны на минутных барах котировок американских бирж, агрегированных в ежедневные цены закрытия. Полные правила:

  • Выборка. Только операционные компании, прошедшие листинг в США. Компания должна представить в SEC отчет о прибылях и убытках за период, завершившийся в течение последних 400 дней. ETF и фонды не включаются в списки. Для дополнительной надежности кредитные и обратные ETF также исключены.
  • Порог ликвидности. Объем торгов акцией должен составлять не менее 2 миллиардов долларов за последние 20 календарных дней. С учетом выходных и праздников этот период охватывает около двенадцати торговых сессий, что соответствует примерно 150 миллионам долларов за сессию. Это позволяет включать в списки только ликвидные активы и исключает искажения из-за низкой ликвидности.
  • Сплиты не корректируются, а исключаются. Любой тикер, по которому в последние 460 дней проводился дробный раздел акций (split), удаляется из выборки. Этот период намеренно превышает один год, чтобы охватить самые старые цены на графике ниже. Это основной фактор риска появления ложных данных: обратный сплит один-к-двадцати увеличивает котировку в двадцать раз без реальных торгов, и нескорректированный экран покажет ложный 52-недельный максимум. Прямой сплит дает обрачный эффект и создает ложный 52-недельный минимум.
  • Цены закрытия, а не внутридневные экстремумы. Максимумы и минимумы рассчитываются по ценам закрытия. Акция может достичь 52-недельного максимума внутри дня, но закрыться ниже него и не попасть в этот список. Системы, использующие внутридневные данные, показывают большее количество совпадений.
  • Завершенная торговая сессия. Дневное закрытие — это последняя минутная свеча в период с 15:30 до 16:00 по нью-йоркскому времени. Текущая сессия еще не имеет данных за этот получасовой интервал, поэтому она не может быть включена в расчет. Те же правила применяются к праздничным сессиям с ранним закрытием. Дата в заголовке соответствует последней завершенной сессии, прошедшей проверку, поэтому она может отставать от календарной на один-два дня.
  • Годовая история. Акция должна иметь не менее 200 сессий в течение 52-недельного периода, а первая сессия должна быть не ранее чем 350 дней назад. Компания, вышедшая на листинг три месяца назад, не может показать здесь 52-недельный максимум.
  • Диапазон в 1%. Статус «на 52-недельном максимуме» означает, что цена закрытия находится на уровне или в пределах 1% от самого высокого значения закрытия за последние 52 недели. Список минимумов работает по аналогичному принципу. Доходность с начала года (YTD) рассчитывается от цены закрытия последнего торгового дня 2025 года.

FAQ

Выгодно ли покупать акции на уровне 52-недельного максимума?

Единого ответа не существует, и данная информация не является рекомендацией. Эта страница содержит ретроспективные данные: акции, цена которых находится в пределах 1% от 52-недельного максимума, имеют медианную доходность с начала года на уровне 32.8%. Для акций, цена которых ниже максимума более чем на 35%, этот показатель составляет -28.9%. Эти данные описывают показатели за прошедший год, а не за будущий. Данный статус указывает на положение цены в диапазоне, а не на оценку стоимости актива.

Что означает достижение акцией 52-недельного минимума?

Это означает, что цена закрытия акции была ниже, чем в любой другой день в течение предыдущих 52 недель. На 7 это относилось к Jul 21, 2026 компаниям в данном списке. Минимум может быть следствием ухудшения показателей бизнеса или длительного снижения цены прибыльной компании; сама по себе цена не позволяет определить причину.

Сколько акций сейчас находятся на уровне 52-недельных максимумов?

По состоянию на закрытие Jul 21, 2026, 26 акций из этого списка закрылись на уровне или в пределах 1% от 52-недельного максимума. При этом 7 акций закрылись на уровне или в пределах 1% от 52-недельного минимума. В список включены крупные ликвидные операционные компании США с оборотом не менее 2 миллиардов долларов за последние 20 календарных дней, поэтому эти показатели меньше, чем в общем списке по всем биржам.

Как рассчитывается 52-недельный максимум?

Возьмите все цены закрытия за последние 52 недели и выберите наибольшую. Если последняя цена закрытия равна этому значению, акция установила 52-недельный максимум по цене закрытия. Данная страница также учитывает любые акции в пределах 1% от этого уровня и исключает тикеры, по которым в течение последних 460 дней был сплит, так как сплит меняет котируемую цену, не меняя стоимость владения активом.


Каждая панель выше содержит соответствующий SQL-запрос. Вы можете открыть запрос под любой таблицей для проверки данных или запустить его в терминале Strasmore. Чтобы увидеть не экстремальные значения за год, а крупнейшие изменения за неделю, перейдите по ссылке самые прибыльные и убыточные акции на этой неделе.

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