Strasmore Research
Огляди ринку Matt ConnorВід Matt Connor · Оновлено 2026-07-24 · data as of July 24, 2026 · refreshed weekly

акції на максимумах та мінімумах за 52 тижні

Перегляньте список акцій, що закрилися на 52-тижневих максимумах або мінімумах. Використовуйте ці дані для аналізу ринкової ширини та пошуку нових трендів.

Максимум за 52 тижні — це найвищий ціна закриття акції за останній рік; мінімум за 52 тижні — найнижчий. На останній завершеній сесії, Jul 21, 2026, 26 акцій у цьому списку закрилися на рівні або в межах 1% від максимуму за 52 тижні, а 7 закрилися на рівні або в межах 1% від мінімуму за 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 >= 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 тижні. Список відсортовано за найгіршими показниками з початку року (year-to-date) — у списку представлено дванадцять позицій.

ЗапитАкції на 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-тижневі максимуми проти мінімумів, щоденно, за останні шість тижнів
Точний 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, кількість акцій на рівні або поблизу 52-тижневого максимуму становила 26 проти 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 днів, видаляється з екрана. Цей період спеціально перевищує один рік, щоб охопити найстаріші ціни, які відображає графік широкого ринку нижче. Це найімовірніший спосіб отримання помилкових даних: зворотний спліт у співвідношенні один до двадцяти двадцятикратно збільшує котируемую ціну без реальних торгів, і не скоригований екран покаже вражаючий новий 52-тижневий максимум. Прямий спліт створює зворотний ефект і створює фіктивний 52-тижневий мінімум.
  • Ціни закриття, а не внутрішньоденні екстремуми. Максимум і мінімум вимірюються за цінами закриття. Акція може торгуватися вище свого 52-тижневого максимуму протягом дня, закритися нижче нього і не з'явитися тут. Екрани, побудовані на внутрішньоденних котируваннях, показують більше значень.
  • Сесія має бути завершена. Закриття дня — це остання хвилинна barra між 15:30 та 16:00 за часом Нью-Йорка. Сесія, що ще завантажується, не має барів у цій півгодині, тому вона не може бути включена в розрахунок; поточна сесія також не враховується. Сесії з раннім закриттям у святкові дні виключаються з тієї ж причини. Дата, вказана вище, — це дата останньої завершеної сесії, яка пройшла перевірку, тому вона може відставати від календаря на один або два дні.
  • Повна річна історія. Акція повинна мати принаймні 200 сесій у межах 52-тижневого вікна, а перша сесія має бути не пізніше ніж 350 днів тому. Компанія, яка вийшла на біржу три місяці тому, не може показати тут 52-тижневий максимум.
  • Діапазон 1%. Статус «на 52-тижневому максимумі» означає, що ціна закриття знаходиться на рівні або в межах 1% від найвищої ціни закриття за останні 52 тижні; список мінімумів працює аналогічно. Дохідність з початку року (year-to-date) вимірюється від останньої ціни закриття 2025 року.

FAQ

Чи є вигідною покупка на рівні 52-тижневого максимуму?

Універсальної відповіді не існує, і ця інформація не є рекомендацією. Дані на цій сторінці відображають минулі показники: акції, ціна яких знаходиться в межах 1% від 52-тижневого максимуму, мають медіанну доходність з початку року на рівні 32.8%, тоді як для акцій, ціна яких нижча за максимум на понад 35%, цей показник становить -28.9%. Це характеризує результати минулого року, а не майбутнього. Цей показник вказує на позицію ціни в діапазоні, а не на оцінку вартості.

Що означає досягнення акціями 52-тижневого мінімуму?

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

Скільки акцій зараз перебувають на рівні 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