Strasmore Research
சந்தைச் சுருக்கம் Matt Connorஆசிரியர் Matt Connor · புதுப்பிக்கப்பட்டது 2026-07-24 · data as of July 24, 2026 · refreshed weekly

52-week high மற்றும் low விலையில் உள்ள பங்குகள்

Exchange tape மூலம் திரட்டப்பட்ட தரவுகளின்படி, 52-week high மற்றும் 52-week low விலையில் முடிவடைந்த பங்குகள் மற்றும் அவற்றின் எண்ணிக்கையை இங்கே காணலாம்.

52-week high என்பது கடந்த ஓராண்டில் ஒரு பங்கின் அதிகபட்ச இறுதி விலை (closing price) ஆகும்; 52-week low என்பது அதன் குறைந்தபட்ச விலை ஆகும். கடந்த வர்த்தக அமர்வில், Jul 21, 2026, 26 பங்குகள் 52-week high விலையில் அல்லது அதற்கும் 1% வரம்பிற்குள் முடிவடைந்தன; 7 பங்குகள் 52-week low விலையில் அல்லது அதற்கும் 1% வரம்பிற்குள் முடிவடைந்தன. இந்தத் திரை (screen) அதிக நீர்மைத்தன்மை (liquidity) கொண்ட பெரிய US நிறுவனங்களை உள்ளடக்கியது மற்றும் exchange tape மூலம் தரவுகள் புதுப்பிக்கப்படுகின்றன.

52-week highs-இல் உள்ள பங்குகள்

இந்த பட்டியலில் ஆண்டுத் தொடக்கத்திலிருந்து (year-to-date) அதிக லாபம் ஈட்டிய பங்குகளின் பட்டியல் கீழே கொடுக்கப்பட்டுள்ளது; இதில் பன்னிரண்டு பங்குகள் வரை உள்ளன. இவை ஒவ்வொன்றும் கடந்த 52 வாரங்களில் தங்களது மிக உயர்ந்த முடிவிலிருந்தோ அல்லது 1% வரம்பிற்குள்ளேயோ இந்த அமர்வில் நிறைவடைந்தன.

வினவவும்52-week highs கொண்ட பங்குகள், year-to-date return அடிப்படையில்
ஒவ்வொரு எண்ணின் பின்னணியில் உள்ள துல்லியமான 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 விலையில் அமர்ந்து முதலிடத்தில் உள்ளது. இந்த பட்டியலில், ஒவ்வொரு பங்கின் முடிவும் அதன் 52-week high விலைக்கு 1% வரம்பிற்குள் இருப்பதால், விலைத் தரவு (price column) சோதனை செய்யப்படும் அளவாகவும் (level being tested) செயல்படுகிறது. DINO அடுத்து 99% என்ற அளவில் உள்ளது, மேலும் MPC 96.6% என்ற அளவில் உள்ளது. அட்டவணையின் இறுதியில் ROKU இந்த ஆண்டில் 33% என்ற அளவில் உள்ளது.

அந்த இடைவெளியே (spread) முக்கியமானது. 52-week high என்பது ஒரு பங்கின் ஒரு ஆண்டு வரம்பிற்குள் (one-year range) அதன் விலை எந்த நிலையில் உள்ளது என்பதைக் குறிக்கிறதே தவிர, அதைத் தாண்டி எதையும் குறிப்பதில்லை. கடந்த கோடையில் கடுமையாக சரிந்து, மீண்டும் மீண்டு வந்த ஒரு பங்கிற்கும், தொடர்ந்து உயர்ந்து கொண்டே சென்ற ஒரு பங்கிற்கும் இதே லேபிள் (label) வழங்கப்படுகிறது.

52-week lows-இல் உள்ள பங்குகள்

அதே ஸ்கிரீன், தலைகீழாக மாற்றப்பட்டது. கடந்த 52 வாரங்களில் மிகக் குறைந்த விலையில் (lowest close) அல்லது அதிலிருந்து 1% வரம்பிற்குள் முடிவடைந்த பங்குகள், மிகக் குறைந்த year-to-date மதிப்பிலிருந்து வரிசைப்படுத்தப்பட்டுள்ளன. இதில் மொத்தம் பன்னிரண்டு பங்குகள் உள்ளன.

வினவவும்52-week lows கொண்ட பங்குகள், year-to-date return அடிப்படையில்
ஒவ்வொரு எண்ணின் பின்னணியில் உள்ள துல்லியமான 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

பட்டியலில் மிகக் குறைந்த year-to-date மதிப்பைக் கொண்ட பங்காக PNR உள்ளது, அதன் மதிப்பு -41%. இது $61.48 விலையில் முடிவடைந்தது, இது அதன் 52-week closing low-விலிருந்து 1% வரம்பிற்குள் உள்ளது. அடுத்ததாக -30.6% மதிப்பைக் கொண்ட CPRT உள்ளது.

52-week low என்பது ஒரு விலை வரம்பின் நிலைமையைக் குறிக்கிறதே தவிர, ஒரு நிறுவனத்தின் வணிகத் திறனைத் தீர்மானிப்பதல்ல. லாபகரமாக இயங்கும் நிறுவனங்கள் கூட நீண்ட கால அமைதியான காலக்கட்டங்கள் மூலம் இந்தப் பட்டியலில் இடம்பெறலாம்; அதேபோல் உண்மையான நிதி நெருக்கடியில் உள்ள நிறுவனங்களும் இடம்பெறலாம். வெறும் closing price மட்டுமே அவற்றைத் தனித்தனியாகப் பிரித்துக் காட்டாது. சந்தை ரீதியான இதே கேள்விக்கான விளக்கத்திற்கு, சந்தைகள் crashes-லிருந்து எவ்வாறு மீண்டு வருகின்றன என்பதைப் பார்க்கவும்.

High மற்றும் low எண்ணிக்கைகள் market breadth குறித்த தகவல்களை எவ்வாறு தெரிவிக்கின்றன

Index எவ்வளவு தூரம் நகர்ந்தது என்பதை விட, ஒரு நகர்வில் எத்தனை பங்குகள் பங்கேற்கின்றன என்பதை breadth அளவிடுகிறது. New highs மற்றும் new lows ஆகியவற்றின் எண்ணிக்கை என்பது மிகவும் பழமையான breadth அளவீடுகளில் ஒன்றாகும்; இந்தப் பக்கத்தில் நாம் கவனிக்க வேண்டிய எண் இதுவேயாகும்.

வினவவும்கடந்த ஆறு வாரங்களில் தினசரி புதிய 52-week highs மற்றும் lows
ஒவ்வொரு எண்ணின் பின்னணியில் உள்ள துல்லியமான 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-week high அல்லது அதற்கு அருகாமையில் 26 பங்குகள் இருந்தன; அதே நேரத்தில் low அல்லது அதற்கு அருகாமையில் 7 பங்குகள் இருந்தன. இதன் நிகர reading 19 ஆகும். ஆறு வாரங்களுக்கு முன்பு, Jun 9, 2026 அன்று, இதே screen 35 highs மற்றும் 3 lows ஆகியவற்றைக் காட்டியது.

வரைபடத்தில் உள்ள 29 sessions முழுவதும், இரண்டு எண்ணிக்கைகளும் நாள்தோறும் கடுமையாக மாறுபடுகின்றன. எனவே, ஒரு குறிப்பிட்ட session-ன் அளவை விட, வாரக்கணக்கில் ஏற்படும் மாற்றமே (drift) முக்கியமானது. High count குறைந்து கொண்டே வரும்போது ஒரு index நிலையாக இருந்தால், அந்த market index மட்டும் காட்டுவதைக் காட்டிலும் மிகவும் குறுகிய (narrower) சந்தையாகும். Low count அதிகரிக்கும் சூழலே மற்றவர்கள் அச்சப்படும்போது வாங்குதல் என்பதன் பின்னணியில் உள்ள சூழலாகும்; இதை நாங்கள் news sentiment உடன் ஒப்பிட்டுச் சோதித்தோம்.

சந்தையின் மற்ற பங்குகள் அவற்றின் உச்சத்திலிருந்து எவ்வளவு தூரத்தில் உள்ளன

உச்சங்கள் மற்றும் தாழ்வுகள் என்பவை ஒரு பரவலின் (distribution) இரு முனைகள்; பெரும்பாலான பங்குகள் அவற்றின் நடுப்பகுதியில் உள்ளன. இந்தத் தொகுப்பு (panel), திரையில் உள்ள அனைத்துப் பங்குகளையும் அவற்றின் 52-week high-லிருந்து எவ்வளவு தூரத்தில் உள்ளன என்பதன் அடிப்படையில் வரிசைப்படுத்துகிறது; மேலும் ஒவ்வொரு பிரிவிலும் (band) உள்ள median year-to-date return-ஐயும் அறிக்கையிடுகிறது.

வினவவும்முழுத் திரையும் அதன் 52-week high இலிருந்து எவ்வளவு கீழே உள்ளது
ஒவ்வொரு எண்ணின் பின்னணியில் உள்ள துல்லியமான 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 பங்குகள், 52-week high-லிருந்து 1% வரம்பிற்குள் முடிவடைந்தன. மறுபுறம், 17% பங்குகள் உச்சத்திலிருந்து 35%-க்கும் மேலாகக் குறைந்து முடிவடைந்தன. மேல்தரையில் உள்ள median year-to-date return 32.8% ஆகவும்; கீழ்த்தரையில் அது -28.9% ஆகவும் உள்ளது; இந்தத் தரவுகளுக்கு இடையிலான மாற்றத்தை வரைபடம் காட்டுகிறது.

இந்தக் கோட்டுத் தொடர்ச்சி (gradient) ஒரு புதிய கண்டுபிடிப்பை விடக் கணக்கீட்டு முறையை (arithmetic) ஒட்டியே உள்ளது: ஒரு பங்கின் விலை அதன் 52-week high-க்கு அருகில் இருந்தால், அது அந்த ஆண்டின் பெரும்பகுதியை உயர்ந்து கொண்டே சென்றிருக்கும். இந்தத் தொகுப்பு அதன் முக்கியத்துவத்தை நிரூபிக்கிறது: உச்ச நிலைகள் எவ்வளவு அசாதாரணமானவை என்பதையும், சந்தையின் பெரும்பகுதி அதன் சிறந்த விலையிலிருந்து எவ்வளவு தூரத்தில் உள்ளது என்பதையும் இது காட்டுகிறது. இத்தகைய பங்குகளில் அதிக அளவில் முதலீடு செய்வது ஒரு பங்கின் உண்மையான இடர் என்பதைக் குறிக்கும்.

சந்தை தனது 52-week வரம்பில் எந்த நிலையில் உள்ளது

ஒரு தனிப்பட்ட பங்கின் விலை அதன் உச்சத்தில் இருக்கும்போது, சந்தை அதன் உச்சத்திற்கு அருகாமையில் இருந்தால் அதன் தாக்கம் மாறுபடும்; சந்தை உச்சத்திலிருந்து வெகு தொலைவில் இருந்தால் அதன் தாக்கம் வேறாக இருக்கும். கீழே உள்ள ஐந்து பரந்த சந்தை ETFs, மேலே உள்ள பங்குகளைப் போலவே அளவிடப்படுகின்றன.

வினவவும்ஐந்து broad-market ETFs அவற்றின் 52-week range-க்குள் எங்கு உள்ளன
ஒவ்வொரு எண்ணின் பின்னணியில் உள்ள துல்லியமான 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) தனது 52-week high-க்கு 1.08% கீழே முடிவடைந்தது, இது இந்த ஐந்துக்கும் மிக நெருக்கமானது; மேலும் இது 17.2% அளவில் அதன் 52-week low-க்கு மேலே உள்ளது. Nasdaq 100 (QQQ) தனது உச்சத்திலிருந்து 4.98% தொலைவில் உள்ளது. Year to date, இவை 11.1% மற்றும் 15.4% ஆக உள்ளன.

ஒரே Index-ன் equal-weighted மற்றும் cap-weighted பதிப்புகளுக்கு இடையிலான இடைவெளியே ஒரு breadth reading ஆகும். Equal-weighted கோடு அதன் உச்சத்திற்கு அருகில் இருந்தால், சராசரி பங்குகள் மிகப்பெரிய பங்குகளை விட வேகமாகச் செயல்படுகின்றன என்று அர்த்தம். Cap-weighted கோடு உச்சத்திற்கு அருகில் இருந்தால், ஒரு சில மிகப்பெரிய நிறுவனங்களே அந்த Index-ஐ வழிநடத்துகின்றன என்று அர்த்தம். இந்த அமைப்புகள் எதனையும் முன்னறிவிப்பதில்லை; தவறான நேரத்தில் சந்தையிலிருந்து வெளியேறுவது சந்தையின் சிறந்த நாட்களைத் தவறவிடும் இழப்பை ஏற்படுத்தும்.

இது எவ்வாறு அளவிடப்படுகிறது

இந்தத் பக்கத்தில் உள்ள ஒவ்வொருத் தரவும் US exchange tape-ன் minute bars மூலம் பெறப்பட்டு, தினசரி closing prices ஆகத் தொகுக்கப்படுகின்றன. இதற்கான முழுமையான விதிகள்:

  • The universe. கடந்த 400 நாட்களுக்குள் SEC-விடம் தாக்கல் செய்யப்பட்ட company income statement மூலம் அடையாளம் காணப்பட்ட, US-listed operating companies மட்டுமே இதில் அடங்கும். எனவே ETFs மற்றும் funds ஆகிய இரண்டும் இந்தப் பட்டியல்களில் இருக்காது. கூடுதல் பாதுகாப்பிற்காக, Leveraged மற்றும் inverse ETFs பெயரளவில் பட்டியலிடப்படுவதில்லை.
  • Liquidity floor. ஒரு stock கடந்த 20 calendar days காலப்பகுதியில் குறைந்தது $2 billion மதிப்பிலான வர்த்தகத்தைக் கொண்டிருக்க வேண்டும். வார இறுதி நாட்கள் மற்றும் விடுமுறை நாட்களைத் தவிர்த்தால், அந்த காலப்பகுதி சுமார் பன்னிரண்டு trading sessions ஆகும், எனவே ஒரு session-க்கு சராசரியாக $150 million வர்த்தகம் இருக்க வேண்டும். இது வாசகர்கள் எளிதில் வர்த்தகம் செய்யக்கூடிய பங்குகளை மட்டுமே பட்டியலிடவும், குறைந்த வர்த்தக அளவு (thin tape) காரணமாகத் தவறான தரவுகள் உருவாவதைத் தடுக்கவும் உதவுகிறது.
  • Splits are excluded, not adjusted. கடந்த 460 நாட்களில் stock split செய்த எந்தவொரு ticker-ம் இந்தத் திரையில் காட்டப்படாது. கீழே உள்ள breadth chart எந்தத் தரவைச் சென்றடைகிறதோ, அதை உள்ளடக்கும் வகையில் இந்த காலப்பகுதி வேண்டுமென்றே ஒரு வருடத்திற்கு மேலாக அமைக்கப்பட்டுள்ளது. இத்தகைய பக்கங்கள் தவறான தகவல்களைத் தருவதற்கு இதுவே மிக முக்கியமான காரணமாகும்: உதாரணமாக, ஒரு 1-for-20 reverse split, வர்த்தகம் இன்றி மேற்கோள் காட்டப்படும் விலையை இருபது மடங்கு உயர்த்தும், அப்போது unadjusted screen ஒரு பிரம்மாண்டமான புதிய 52-week high-ஐக் காட்டும். ஒரு forward split இதற்கு நேர்மாறாகச் செயல்பட்டு ஒரு போலி 52-week low-ஐக் காட்டும்.
  • Closing prices, not intraday extremes. High மற்றும் low மதிப்புகள் closing prices மூலம் அளவிடப்படுகின்றன. ஒரு stock பகல் நேர வர்த்தகத்தில் தனது 52-week high விலையைத் தாண்டி வர்த்தகம் செய்துவிட்டு, அதன் கீழே close ஆனால், அது இங்கே காட்டப்படாது. Intraday prints மூலம் உருவாக்கப்படும் திரைகள் அதிக எண்ணிக்கையிலான தரவுகளைக் காட்டும்.
  • The session must be complete. ஒரு நாளின் close என்பது நியூயார்க் நேரப்படி 15:30 முதல் 16:00 மணிக்கு இடைப்பட்ட கடைசி minute bar ஆகும். இன்னும் முடிவடையாத session-ல் அந்த அரை மணி நேரத்திற்குள் எந்த bar-ம் இருக்காது, எனவே அது கணக்கீட்டில் சேர்க்கப்படாது. அதே காரணத்திற்காகவே, தற்போது நடந்து கொண்டிருக்கும் session மற்றும் முன்கூட்டியே முடிவடையும் விடுமுறை தின session-கள் கணக்கில் கொள்ளப்படாது. மேலே உள்ள தேதி, இந்தத் தேர்வைச் சந்தித்த கடைசி session ஆகும், எனவே அது காலண்டரை விட ஒன்று அல்லது இரண்டு நாட்கள் பின்னால் இருக்கலாம்.
  • A full year of history. ஒரு stock 52-week window-க்குள் குறைந்தது 200 sessions மற்றும் அதன் முதல் session குறைந்தது 350 நாட்களுக்கு முன்னால் இருக்க வேண்டும். மூன்று மாதங்களுக்கு முன்பு பட்டியலிடப்பட்ட ஒரு நிறுவனம் இங்கே 52-week high-ஐக் காட்ட முடியாது.
  • The 1% band. "At a 52-week high" என்பது, கடந்த 52 வாரங்களில் இருந்த மிக உயர்ந்த close விலைக்குச் சமமாகவோ அல்லது 1% வரம்பிற்குள்ளோ அதன் close அமையும் என்பதைக் குறிக்கும்; low list இதையே பிரதிபலிக்கும். Year-to-date returns என்பது 2025-ன் இறுதி close விலையிலிருந்து அளவிடப்படுகிறது.

FAQ

Is buying at a 52-week high a good idea?

There is no general answer, and nothing here is advice. What this page can show is backward-looking: stocks within 1% of a 52-week high carry a median year-to-date return of 32.8%, against -28.9% for stocks more than 35% below their high. That describes the year behind those stocks, not the year ahead. The label marks a position in a price range, not a valuation.

What does it mean when a stock hits a 52-week low?

It means the stock closed lower than at any point in the previous 52 weeks. On Jul 21, 2026 that applied to 7 names on this screen. A low can accompany a deteriorating business or a long drift in a profitable one, and the price by itself does not tell you which.

How many stocks are at 52-week highs right now?

As of the close on Jul 21, 2026, 26 stocks on this screen closed at or within 1% of a 52-week high, against 7 at or within 1% of a 52-week low. The screen holds large, liquid US operating companies clearing a $2 billion turnover floor over the past 20 calendar days, so these counts run smaller than an all-listings screen would report.

How is a 52-week high calculated?

Take every closing price over the trailing 52 weeks and find the largest. If the latest close equals it, the stock has set a 52-week closing high. This page also counts any stock within 1% of that level, and drops any ticker with a split in the past 460 days, since a split changes the quoted price without changing what a holding is worth.


Every panel above stores the SQL behind it. Open the query under any table to audit the screen, or run it on the Strasmore terminal. For the week's largest moves rather than the year's extremes, see the biggest stock gainers and losers this week.

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