Strasmore Research
मार्केट रीकैप Matt Connorलेखक: Matt Connor · अपडेट किया गया: 2026-07-23 · data as of July 23, 2026 · refreshed weekly

52-week high और low वाले स्टॉक्स

जानें कौन से स्टॉक्स 52-week high या 52-week low पर बंद हुए हैं। एक्सचेंज टेप से प्राप्त डेटा के आधार पर स्टॉक्स की संख्या और बाजार की स्थिति देखें।

52-week high का अर्थ है पिछले एक वर्ष में किसी स्टॉक की उच्चतम क्लोजिंग प्राइस, और 52-week low का अर्थ है उसकी न्यूनतम क्लोजिंग प्राइस। पिछली पूर्ण ट्रेडिंग सत्र, Jul 21, 2026, में इस स्क्रीन पर मौजूद 26 स्टॉक्स 52-week high के बराबर या उसके 1% के दायरे में बंद हुए और 7 स्टॉक्स 52-week low के बराबर या उसके 1% के दायरे में बंद हुए। यह स्क्रीन US की बड़ी और लिक्विड ऑपरेटिंग कंपनियों को कवर करती है और एक्सचेंज टेप से डेटा अपडेट करती है।

52-सप्ताह के उच्चतम स्तर पर स्टॉक्स

वर्ष की अब तक की सबसे अधिक बढ़त वाले स्टॉक्स नीचे दिए गए हैं, जिनमें अधिकतम बारह स्टॉक्स शामिल हैं। इनमें से प्रत्येक स्टॉक सत्र के अंत में अपने पिछले 52 हफ्तों के उच्चतम क्लोजिंग स्तर के बराबर या उसके 1% के भीतर बंद हुआ है।

क्वेरी52-week highs पर स्टॉक्स, year-to-date रिटर्न के अनुसार
हर आंकड़े के पीछे का पूरा 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-सप्ताह के उच्चतम स्तर के 1% के भीतर है, इसलिए प्राइस कॉलम परीक्षण किए जा रहे स्तर के रूप में भी कार्य करता है। इसके बाद DINO 99% पर और MPC 96.6% पर है। तालिका के अंत में ROKU वर्ष के लिए 33% दर्ज करता है।

यही मुख्य बिंदु है। 52-सप्ताह का उच्चतम स्तर केवल यह बताता है कि किसी स्टॉक की कीमत उसके एक साल के दायरे में कहाँ स्थित है। पिछले साल गर्मियों में भारी गिरावट के बाद वापसी करने वाले स्टॉक और लगातार बढ़ते रहने वाले स्टॉक, दोनों पर एक ही लेबल होता है।

52-सप्ताह के निचले स्तर पर शेयर

वही स्क्रीन, लेकिन विपरीत क्रम में। ये नाम पिछले 52 हफ्तों के अपने सबसे निचले क्लोजिंग स्तर पर या उससे 1% के भीतर बंद हुए हैं। इन्हें साल की शुरुआत से अब तक के सबसे कमजोर प्रदर्शन के क्रम में व्यवस्थित किया गया है, जिनमें कुल बारह नाम शामिल हैं।

क्वेरी52-week lows पर स्टॉक्स, year-to-date रिटर्न के अनुसार
हर आंकड़े के पीछे का पूरा 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 पर बंद हुआ, जो अपने 52-सप्ताह के सबसे निचले क्लोजिंग स्तर के 1% के भीतर है। इसके बाद -30.6% पर CPRT का स्थान है।

52-सप्ताह का निचला स्तर केवल एक प्राइस रेंज में स्थिति है, यह किसी व्यवसाय की गुणवत्ता का निर्णय नहीं है। लाभदायक कंपनियां भी लंबे समय तक सुस्ती रहने के कारण इस सूची में आ सकती हैं, और वास्तविक संकट में फंसी कंपनियां भी। केवल क्लोजिंग प्राइस के आधार पर इनमें अंतर नहीं किया जा सकता। बाजार-व्यापी संदर्भ के लिए, बाजार क्रैश से कैसे उबरते हैं देखें।

हाई और लो काउंट मार्केट ब्रॉडथ (market breadth) के बारे में क्या बताते हैं

ब्रॉडथ इस बात का माप है कि किसी इंडेक्स की बढ़त में कितने स्टॉक्स शामिल हैं, न कि इंडेक्स कितनी दूर तक चला है। नए हाई (highs) और नए लो (lows) की संख्या सबसे पुराने ब्रॉडथ संकेतकों में से एक है, और इस पेज पर यही वह संख्या है जिसे देखना महत्वपूर्ण है।

क्वेरीपिछले छह हफ्तों में नए 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 को, 26 स्टॉक्स 52-week high के पास या उसके बराबर थे, जबकि 7 स्टॉक्स लो (low) के पास या उसके बराबर थे, जिसका शुद्ध परिणाम (net reading) 19 था। छह सप्ताह पहले, Jun 9, 2026 को, इसी स्क्रीन पर 35 हाई और 3 लो दर्ज किए गए थे।

चार्ट किए गए 29 सत्रों (sessions) में, दोनों काउंट्स में दिन-प्रतिदिन भारी उतार-चढ़ाव आता है, इसलिए किसी एक सत्र का स्तर महत्वपूर्ण होने के बजाय हफ्तों का रुझान (drift) अधिक महत्वपूर्ण है। यदि इंडेक्स स्थिर है लेकिन हाई काउंट कम हो रहा है, तो इसका मतलब है कि मार्केट इंडेक्स की तुलना में कम ब्रॉड (narrower) है। जब लो काउंट बढ़ता है, तो वह दूसरों के डर के समय खरीदारी करने की स्थिति बनाता है, जिसका हमने न्यूज़ सेंटीमेंट के विरुद्ध परीक्षण किया है।

बाज़ार अपने उच्चतम स्तर से कितनी दूर है

Highs और lows एक distribution के दो छोर होते हैं; अधिकांश stocks बीच में रहते हैं। यह panel पूरी screen को 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

Screen का 5.3%, यानी 26 names, 52-week high के 1% के भीतर बंद हुए। दूसरी ओर, 17% एक 52-week high से 35% से अधिक नीचे बंद हुए। सबसे ऊपरी band में median year-to-date return 32.8% है; सबसे निचले band में यह -28.9% है, और chart इनके बीच का आकार दर्शाता है।

यह gradient किसी खोज के बजाय arithmetic के अधिक करीब है: 52-week high के पास स्थित stock ने, अपनी संरचना के कारण, वर्ष का अधिकांश समय ऊपर की ओर बढ़ते हुए बिताया है। यह panel scale के आधार पर महत्वपूर्ण है: चरम स्थितियाँ (extremes) कितनी असामान्य हैं, और बाज़ार का कितना हिस्सा अपने सर्वोत्तम मूल्य से बहुत दूर है। इनमें से किसी भी name को बड़ी मात्रा में hold करना एक stock का वास्तविक जोखिम है।

बाजार अपने 52-सप्ताह के दायरे में कहाँ स्थित है

जब बाजार अपने उच्च स्तर के करीब होता है, तो किसी स्टॉक का उच्च स्तर पर होना, बाजार के अपने उच्च स्तर से काफी नीचे होने की तुलना में अलग संकेत देता है। नीचे दिए गए पांच व्यापक-बाजार (broad-market) 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-सप्ताह के उच्च स्तर से 1.08% नीचे बंद हुआ, जो पांचों में सबसे करीब है, और 17.2% अपने 52-सप्ताह के निचले स्तर से ऊपर है। Nasdaq 100 (QQQ) अपने उच्च स्तर से 4.98% की दूरी पर है। इस वर्ष अब तक (year to date) दोनों का प्रदर्शन 11.1% और 15.4% रहा है।

एक ही इंडेक्स के equal-weighted और cap-weighted संस्करण के बीच का अंतर अपने आप में बाजार की व्यापकता (breadth) का एक माप है। जब equal-weighted रेखा अपने उच्च स्तर के करीब होती है, तो औसत सदस्य सबसे बड़े सदस्यों की तुलना में अधिक तेजी से बढ़ रहे होते हैं। जब cap-weighted रेखा उच्च स्तर के करीब होती है, तो कुछ बहुत बड़ी कंपनियां इंडेक्स को ऊपर ले जा रही होती हैं। इनमें से कोई भी व्यवस्था भविष्य का पूर्वानुमान नहीं देती है, और गलत समय पर बाजार से बाहर निकलने पर बाजार के सबसे अच्छे दिनों को खोने की लागत चुकानी पड़ती है।

इसे कैसे मापा जाता है

इस पेज का हर आंकड़ा US एक्सचेंज टेप के मिनट बार (minute bars) से लिया गया है, जिन्हें दैनिक क्लोजिंग प्राइस में जोड़ा गया है। इसके नियम इस प्रकार हैं:

  • यूनिवर्स (The universe)। केवल US-लिस्टेड ऑपरेटिंग कंपनियां शामिल हैं। इन्हें SEC के पास पिछले 400 दिनों के भीतर फाइल किए गए इनकम स्टेटमेंट से पहचाना जाता है। इसलिए, ETFs और फंड्स दोनों सूचियों से बाहर रहते हैं। अतिरिक्त सुरक्षा के लिए, लेवरेज्ड और इनवर्स ETFs को भी नाम के आधार पर बाहर रखा गया है।
  • लिक्विडिटी फ्लोर (Liquidity floor)। पिछले 20 कैलेंडर दिनों में किसी स्टॉक का ट्रेडिंग वॉल्यूम कम से कम $2 बिलियन होना चाहिए। वीकेंड और छुट्टियों को हटाने के बाद, यह अवधि लगभग 12 सत्रों की होती है, जिससे प्रति सत्र लगभग $150 मिलियन का वॉल्यूम आवश्यक हो जाता है। यह नियम सुनिश्चित करता है कि सूचियों में केवल वे नाम हों जिनमें निवेशक वास्तव में ट्रेड कर सकें, और यह कम वॉल्यूम वाले शेयरों के कारण गलत डेटा आने से रोकता है।
  • स्प्लिट्स को शामिल नहीं किया गया है, एडजस्ट भी नहीं किया गया है। पिछले 460 दिनों में स्टॉक स्प्लिट करने वाले किसी भी टिकर को स्क्रीन से हटा दिया जाता है। यह अवधि जानबूझकर एक वर्ष से अधिक रखी गई है, ताकि नीचे दिए गए चार्ट के सबसे पुराने प्राइस को भी कवर किया जा सके। इस तरह के पेज पर गलत डेटा आने का यह सबसे बड़ा कारण है: 1-for-20 रिवर्स स्प्लिट बिना किसी ट्रेडिंग के उद्धृत (quoted) कीमत को बीस गुना बढ़ा देता है, और बिना एडजस्ट किया गया स्क्रीन एक शानदार नए 52-week high की रिपोर्ट कर सकता है। फॉरवर्ड स्प्लिट इसके विपरीत काम करता है और एक नकली 52-week low दिखाता है।
  • क्लोजिंग प्राइस, न कि इंट्राडे एक्सट्रीम। हाई और लो को क्लोजिंग प्राइस के आधार पर मापा जाता है। कोई स्टॉक दिन के दौरान अपने 52-week high को पार कर सकता है, लेकिन यदि वह उससे नीचे क्लोज होता है, तो वह यहाँ दिखाई नहीं देगा। इंट्राडे प्रिंट्स पर आधारित स्क्रीन अधिक संख्याएँ रिपोर्ट करती हैं।
  • सत्र (Session) पूरा होना चाहिए। दिन का क्लोज न्यूयॉर्क समय के अनुसार 15:30 और 16:00 के बीच का अंतिम मिनट बार है। जो सत्र अभी लोड हो रहा है, उसमें उस आधे घंटे में कोई बार नहीं होता, इसलिए वह गणना में शामिल नहीं हो सकता। चल रहे सत्र को भी शामिल नहीं किया जाता है। छुट्टियों में जल्दी बंद होने वाले सत्र भी इसी कारण बाहर हो जाते हैं। ऊपर दी गई तारीख वह अंतिम सत्र है जिसने इस परीक्षण को पास किया है, इसलिए यह कैलेंडर से एक या दो दिन पीछे हो सकती है।
  • एक वर्ष का इतिहास। 52-week विंडो के भीतर किसी स्टॉक के पास कम से कम 200 सत्र होने चाहिए और पहला सत्र कम से कम 350 दिन पुराना होना चाहिए। तीन महीने पहले लिस्ट हुई कंपनी यहाँ 52-week high नहीं दिखा सकती।
  • 1% बैंड। "At a 52-week high" का अर्थ है कि क्लोजिंग प्राइस पिछले 52 हफ्तों के उच्चतम क्लोजिंग प्राइस के बराबर या उसके 1% के भीतर है। लो (low) लिस्ट भी इसी का प्रतिबिंब है। Year-to-date रिटर्न की गणना 2025 के अंतिम क्लोज से की जाती है।

FAQ

क्या 52-week high पर खरीदना एक अच्छा विचार है?

इसका कोई सामान्य उत्तर नहीं है, और यहाँ दी गई कोई भी जानकारी सलाह नहीं है। यह पेज केवल पिछले डेटा को दर्शाता है: 52-week high के 1% के भीतर वाले शेयरों का median year-to-date return 32.8% है, जबकि अपने high से 35% से अधिक नीचे वाले शेयरों के लिए यह -28.9% है। यह उन शेयरों के पिछले वर्ष के प्रदर्शन को दर्शाता है, न कि आने वाले वर्ष को। यह लेबल केवल एक मूल्य सीमा (price range) को दर्शाता है, न कि मूल्यांकन (valuation) को।

जब कोई स्टॉक 52-week low पर पहुँचता है तो इसका क्या अर्थ है?

इसका अर्थ है कि स्टॉक पिछले 52 हफ्तों के किसी भी स्तर की तुलना में कम पर बंद हुआ है। Jul 21, 2026 को इस स्क्रीन पर 7 नाम के शेयरों पर यह लागू हुआ था। कम कीमत किसी गिरते हुए व्यवसाय के कारण हो सकती है या किसी लाभदायक व्यवसाय में लंबे समय से चली आ रही गिरावट के कारण; केवल कीमत से आप यह नहीं जान सकते।

अभी कितने स्टॉक 52-week highs पर हैं?

Jul 21, 2026 को बाजार बंद होने तक, इस स्क्रीन पर 26 स्टॉक 52-week high के बराबर या उसके 1% के भीतर बंद हुए, जबकि 7 स्टॉक 52-week low के बराबर या उसके 1% के भीतर थे। इस स्क्रीन में केवल वे बड़ी और liquid US operating companies शामिल हैं जिनका पिछले 20 कैलेंडर दिनों का टर्नओवर $2 billion से अधिक रहा है, इसलिए ये संख्याएँ सभी लिस्टेड शेयरों वाली स्क्रीन की तुलना में कम होंगी।

52-week high की गणना कैसे की जाती है?

पिछले 52 हफ्तों के सभी क्लोजिंग प्राइस लें और उनमें सबसे बड़ा मूल्य खोजें। यदि नवीनतम क्लोजिंग प्राइस वही है, तो स्टॉक ने 52-week closing high बनाया है। यह पेज उस स्तर के 1% के भीतर आने वाले किसी भी स्टॉक को भी गिनता है, और पिछले 460 दिनों में स्टॉक split होने वाले किसी भी ticker को हटा देता है, क्योंकि split होने से quoted price बदल जाता है जबकि होल्डिंग का वास्तविक मूल्य नहीं बदलता।


ऊपर दिया गया प्रत्येक पैनल अपने पीछे SQL डेटा स्टोर करता है। स्क्रीन का ऑडिट करने के लिए किसी भी टेबल के नीचे दी गई query खोलें, या इसे Strasmore terminal पर चलाएं। वर्ष के चरम स्तरों के बजाय सप्ताह के सबसे बड़े उतार-चढ़ाव के लिए, इस सप्ताह के सबसे बड़े स्टॉक गेनर्स और लूजर्स देखें।

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