سهام با P/E پایین در نزدیکی کف 52 هفتهای
بررسی دقیق سهام با P/E پایین که در نزدیکی کف 52 هفتهای قرار دارند. این گزارش شامل رتبهبندی فاصله تا کف و تحلیل احتمال تداوم روند نزولی قیمت این نمادها است.
سهام با P/E پایین که در نزدیکی کف 52 هفتهای خود قرار دارند، در نقطه تلاقی دو فیلتر کاملاً متفاوت جای میگیرند: ضریب سودآوری (Earnings Multiple) پایین بر اساس دادههای گذشتهنگر و قیمتی که در نزدیکی پایینترین سطح دامنه یکساله خود قرار دارد. فیلتر زیر هر دو شرط را بهصورت اعدادی ارائه میدهد که میتوانید آنها را کپی کنید؛ همچنین بازماندگان این فیلتر را بر اساس فاصله تا کف قیمت رتبهبندی کرده و کوئری مربوط به هر پنل را نمایش میدهد. یک هشدار پیشفرض: فهرستی که به این روش تهیه میشود، دستکم به همان اندازهای که فرصتهای خرید (Bargains) را شناسایی میکند، «چاقوهای در حال سقوط» (Falling Knives) را نیز جمعآوری میکند؛ در بخشهای بعدی، محاسبات پشت این استراتژی بررسی خواهد شد.
چه چیزی «نزدیک به کف 52 هفتهای» محسوب میشود
کف 52 هفتهای، پایینترین قیمتی است که یک سهم در طول یک سال گذشته ثبت کرده است. فاصله تا کف، این مفهوم را به یک درصد تبدیل میکند: آخرین قیمت بسته شدن تقسیم بر کف 52 هفتهای، منهای یک. سهمی که با قیمت 55 بسته شده و کف 52 هفتهای آن 50 است، 10٪ بالاتر از کف خود قرار دارد. این محاسبات، کل مبنای رتبهبندی است و راهنمای ما در سقفها و کفهای 52 هفتهای، جزئیات بیشتری درباره این بازه ارائه میدهد.
نسبت P/E، یعنی قیمت تقسیم بر سود هر سهم (EPS) در دوازده ماه گذشته، از جدول نسبتهای روزانه stocks_ratios استخراج میشود؛ همان منبعی که برای فیلتر سهام با بالاترین بازده سود نقدی استفاده میکنیم. بازه قیمتی نیز از stocks_daily_aggs، یعنی یک ردیف به ازای هر سهم در هر جلسه معاملاتی، به دست میآید.
چهار شاخص این فیلتر را تعریف میکنند که هر کدام تا زمانی که مکتوب نشوند، قراردادی هستند:
- فاصله تا کف 52 هفتهای برابر یا کمتر از 10٪
- P/E گذشتهنگر (Trailing) بزرگتر از صفر و برابر یا کمتر از 15
- ارزش بازار برابر یا بیشتر از 10 میلیارد دلار
- میانگین حجم معاملات روزانه برابر یا بیشتر از 1,000,000 سهم
دو شرط آخر باعث میشود فهرست تنها شامل نامهایی باشد که از نقدشوندگی واقعی در هر دو سمت خرید و فروش برخوردارند. یک شرکت 40 میلیون دلاری با حجم معاملات 20,000 سهم در روز، میتواند هر ضریبی را که بخواهد ثبت کند.
کد دقیق SQL پشت هر عدد
WITH ratios AS
(
SELECT
ticker,
argMax(price_to_earnings, date) AS pe,
argMax(market_cap, date) AS mcap,
argMax(average_volume, date) AS adv
FROM global_markets.stocks_ratios
WHERE date >= today() - 14
AND ticker NOT IN ('SPCX')
GROUP BY ticker
),
band AS
(
SELECT
ticker,
min(low) AS low_52w,
argMax(close, date) AS last_close
FROM global_markets.stocks_daily_aggs
WHERE date >= today() - 372
AND ticker NOT IN ('SPCX')
GROUP BY ticker
)
SELECT
b.ticker AS ticker,
round(toFloat64(b.last_close) / toFloat64(b.low_52w) * 100 - 100, 1) AS pct_above_low,
round(r.pe, 1) AS pe_ratio
FROM band AS b
INNER JOIN ratios AS r ON r.ticker = b.ticker
WHERE r.mcap >= 10000000000
AND r.adv >= 1000000
AND r.pe > 0
AND r.pe <= 15
AND b.low_52w > 0
AND toFloat64(b.last_close) / toFloat64(b.low_52w) <= 1.10
ORDER BY pct_above_low ASC, b.ticker ASC
LIMIT 15این پنل 6 نامی را که بر اساس این شاخصها به کف قیمت خود نزدیکتر هستند، تا سقف پانزده ردیف فهرست میکند. VICI در فاصله 2.3% بالاتر از پایینترین قیمتی که در سال گذشته ثبت کرده، در نزدیکترین موقعیت به کف خود قرار دارد و ضریب گذشتهنگر آن 10.5 است. در انتهای دیگر پنل، BRK.B در فاصله 9.7% بالاتر از کف خود قرار گرفته است.
نحوه رتبهبندی فهرست
مرتبسازی، مرحلهای است که اکثر فیلترها از آن غافل میشوند. رتبهبندی بر اساس P/E، ارزانترین ضریب را در صدر قرار میدهد و موقعیت قیمت را پنهان میکند. رتبهبندی بر اساس فاصله تا کف، نامهایی را که به کف جدید نزدیکترند در صدر قرار میدهد و هزینه آنها را پنهان میکند. این پنل بر اساس فاصله بهصورت صعودی مرتب شده و ضریب را در ستون بعدی قرار میدهد که هر دو واقعیت را در یک ردیف حفظ میکند. در صورت تساوی، رتبهبندی بهصورت الفبایی انجام میشود؛ جزئیاتی که هنگام گرد شدن چندین نام به یک رقم اعشاری یکسان، اهمیت مییابد.
بازسازی این فهرست نیازمند چهار ورودی است: سری قیمتهای بسته شدن روزانه برای یک سال کامل، رقم EPS گذشتهنگر، تعداد سهام برای محاسبه ارزش بازار، و میانگین حجم معاملات. هر چیزی پس از آن، صرفاً تفریق و تقسیم است.
تعداد نامهای واجد شرایط به تنظیمات شاخصها بستگی دارد
با تغییر هر شاخص، اندازه فهرست تغییر میکند. پنل زیر، کف ارزش بازار و نقدشوندگی را ثابت نگه میدارد، بازه فاصله را از 5٪ تا 30٪ تغییر میدهد و نامهای واجد شرایط را در دو سقف P/E میشمارد.
کد دقیق SQL پشت هر عدد
WITH ratios AS
(
SELECT
ticker,
argMax(price_to_earnings, date) AS pe,
argMax(market_cap, date) AS mcap,
argMax(average_volume, date) AS adv
FROM global_markets.stocks_ratios
WHERE date >= today() - 14
AND ticker NOT IN ('SPCX')
GROUP BY ticker
),
band AS
(
SELECT
ticker,
min(low) AS low_52w,
argMax(close, date) AS last_close
FROM global_markets.stocks_daily_aggs
WHERE date >= today() - 372
AND ticker NOT IN ('SPCX')
GROUP BY ticker
),
universe AS
(
SELECT
b.ticker AS ticker,
toFloat64(b.last_close) / toFloat64(b.low_52w) * 100 - 100 AS pct_above_low,
r.pe AS pe
FROM band AS b
INNER JOIN ratios AS r ON r.ticker = b.ticker
WHERE r.mcap >= 10000000000
AND r.adv >= 1000000
AND r.pe > 0
AND b.low_52w > 0
)
SELECT
concat('within ', toString(cutoff), '%') AS distance_band,
countIf(pct_above_low <= cutoff AND pe <= 15) AS names_pe_under_15,
countIf(pct_above_low <= cutoff AND pe <= 25) AS names_pe_under_25
FROM
(
SELECT
pct_above_low,
pe,
arrayJoin([5, 10, 15, 20, 25, 30]) AS cutoff
FROM universe
)
GROUP BY cutoff
ORDER BY cutoffبا شاخصهای پنل اول، یعنی بازه 10٪ و سقف 15، در مجموع 7 شرکت بزرگ (Large Cap) واجد شرایط هستند. اگر بازه را به 5٪ محدود کنید، 1 نام باقی میماند. با افزایش آن به 30٪، تعداد به 43 میرسد، در حالی که افزایش سقف به 25 در همان بازه، 137 نام را نشان میدهد. هیچ تنظیماتی در اینجا بهطور عینی درست نیست. اینها صرفاً ابزارهای تنظیم هستند و روش صادقانه برای انتشار یک فیلتر، اعلام تنظیمات اعمالشده بر آن است.
کف 52 هفتهای یک کف متحرک است
خودِ کف قیمت نیز حرکت میکند. این یک اندازهگیری غلتان (Rolling) است؛ بنابراین با پیشروی تقویم، کفهای قدیمی از بازه خارج میشوند و در روزهایی که هیچ اتفاق خاصی برای سهم نیفتاده است، کف قیمت بالا میرود. ردیابی ماهانه یک نام، این موضوع را نمایان میکند. پنل زیر، وضعیت KO، یک شرکت بزرگ و شناختهشده را در مقایسه با پایینترین قیمت دوازده ماه گذشتهاش دنبال میکند.
کد دقیق SQL پشت هر عدد
SELECT
formatDateTime(m, '%Y-%m') AS month,
round(toFloat64(month_close), 2) AS close_price,
round(toFloat64(trailing_low), 2) AS trailing_12m_low,
round(toFloat64(month_close) / toFloat64(trailing_low) * 100 - 100, 1) AS pct_above_low
FROM
(
SELECT
m,
month_close,
min(month_low) OVER (ORDER BY m ASC ROWS BETWEEN 11 PRECEDING AND CURRENT ROW) AS trailing_low
FROM
(
SELECT
toStartOfMonth(date) AS m,
argMax(close, date) AS month_close,
min(low) AS month_low
FROM global_markets.stocks_daily_aggs
WHERE ticker = 'KO'
AND date >= today() - 1100
GROUP BY m
)
)
WHERE m >= toStartOfMonth(today() - 400)
ORDER BY mتا تاریخ 2026-08، قیمت بسته شدن KO برابر با $87.71 در برابر کف دوازده ماهه $65.35 بوده که فاصلهای معادل 34.2% را نشان میدهد. شکاف بین این دو خط قیمت، کمیتی است که این فیلتر اندازهگیری میکند. در جایی که خط کف بالا میرود در حالی که خط قیمت بسته شدن ثابت میماند، فاصله اندازهگیریشده بدون هیچ حرکتی در سهم، کاهش مییابد.
چرا این فیلتر «چاقوهای در حال سقوط» را جمعآوری میکند
مکانیسم این فیلتر ریاضی است. حرف E در P/E، گذشتهنگر است و چهار بار در سال، هنگام گزارشدهی شرکت، بهروز میشود. حرف P (قیمت) هر ثانیه که بازار باز است، بهروز میشود. قیمتی که در طول یک فصل کاهش مییابد، در برابر رقم سودی که تا گزارش بعدی ثابت است، هفته به هفته ضریب پایینتری را ثبت میکند. ضریب در لحظهای که قیمت بیشترین فاصله را از آخرین رقم گزارششده طی کرده، ارزانترین حالت را نشان میدهد. وقتی گزارش بعدی سود را کاهش میدهد، ضریب در قیمت جدید و پایینتر دوباره افزایش مییابد و در واقع هیچگاه چیزی ارزان نبوده است. این الگو نامی دارد: تله ارزشی (Value Trap).
در شرکتهای چرخهای (Cyclicals)، همین اندازهگیری معکوس عمل میکند. یک خودروساز یا سازنده مسکن معمولاً پایینترین P/E گذشتهنگر خود را در اوج چرخه سودآوری نشان میدهد، یعنی زمانی که EPS گذشتهنگر در بالاترین سطح خود قرار دارد، و بالاترین P/E خود را در زمان رکود ثبت میکند.
اندازهگیری این الگو مستلزم بازسازی فیلتر در یک تاریخ گذشته و سپس دنبال کردن تمام نامهایی است که از آن عبور کردهاند؛ این کار نیازمند ضریب گذشتهنگر برای هر تیکر در آن تاریخ خاص است، نه فقط آخرین ضریب. ردیفهای stocks_ratios پشت پنلهای بالا، در جدیدترین تاریخ خود برای هر تیکر خوانده میشوند و این صفحه مکانیسم را بدون پیوست کردن عددی که نمیتواند کوئری آن را به شما نشان دهد، بیان میکند. یک گروه از یک تاریخ شروع، در هر صورت تنها یک مشاهده خواهد بود: اگر آن را در ماه دیگری شروع کنید، اعداد تغییر میکنند. این فهرست هیچ ادعایی درباره حرکت بعدی قیمت ندارد.
آنچه P/E پایین نادیده میگیرد
- کدام سود؟ EPS گذشتهنگر شامل اقلام یکباره، فروش داراییها و تسویههای حقوقی است. یک فصل با سود غیرعادی، ضریب را تا یک سال پس از خروج نقدینگی، پایین نگه میدارد.
- بافت صنعت. بانکها، بیمهها، خودروسازان و پالایشگاهها بهطور ساختاری ضرایب پایینتری نسبت به شرکتهای نرمافزاری دارند و اعمال یک سقف واحد برای همه آنها، فهرست را از چند صنعت تکراری پر میکند.
- ترازنامه. P/E بدهی را نادیده میگیرد. دو شرکت با ضریب یکسان و اهرم مالی بسیار متفاوت، در قیمت یکسانی نیستند.
- زیانها. شرکتی که سود منفی دارد، P/E معناداری ندارد و هرگز در اینجا ظاهر نمیشود. عدم حضور در فهرست به معنای قضاوت منفی نیست.
دو فهرست مجاور در کنار این یکی بهخوبی خوانده میشوند: بزرگترین تغییرات قیمت سهام در این ماه نشان میدهد کدام نامها بیشترین فاصله را در ماه گذشته طی کردهاند و سهام با کمترین نوسان، خلقوخوی مخالف را نشان میدهد.
یادداشتهای داده و تعاریف
- قیمتها از
stocks_daily_aggs، یک ردیف به ازای هر سهم در هر جلسه معاملاتی، میآیند. کف 52 هفتهای، حداقلِ ستون «کمترین قیمت روزانه» در طول 372 روز تقویمی گذشته است. - ضریب، ارزش بازار و میانگین حجم معاملات از
stocks_ratiosمیآیند که بهعنوان جدیدترین ردیف برای هر تیکر خوانده میشود. - تقسیم سهام یا توزیع سود نقدی بزرگ در طول این بازه، بازه قیمتی خام را تغییر میدهد که بررسی آن برای هر نامی که در طول سال گذشته چنین رویدادی داشته، ضروری است.
- این فیلتر نیازمند ضریب گذشتهنگر مثبت است، بنابراین شرکتهای زیانده هرگز در آن ظاهر نمیشوند.
پرسشهای متداول
وقتی یک سهم نزدیک به کف 52 هفتهای خود است، به چه معناست؟
به این معناست که قیمت فعلی به پایینترین قیمتی که سهم در طول سال گذشته معامله شده، نزدیک است. فاصله تا کف، آخرین قیمت بسته شدن تقسیم بر کف 52 هفتهای، منهای یک است که بهصورت درصد خوانده میشود.
چه P/Eای پایین محسوب میشود؟
خط ثابتی وجود ندارد. فیلترها معمولاً سقف ضریب گذشتهنگر را روی 15، یا برای یک برش سختگیرانهتر روی 10 تنظیم میکنند. ضرایب در صنایع مختلف بهقدری متفاوت هستند که یک سقف واحد برای کل بازار، فهرست را از چند صنعت تکراری پر میکند.
آیا سهام با P/E پایین که نزدیک به کف 52 هفتهای خود هستند، خرید خوبی محسوب میشوند؟
هیچ فیلتری به این پرسش پاسخ نمیدهد و این صفحه نیز چنین کاری نمیکند. این دو شرط گذشته را توصیف میکنند: آنچه بازار به ازای هر دلار سود گزارششده میپردازد و جایی که قیمت در دامنه یکساله خود قرار دارد. هیچکدام از اینها آینده را توصیف نمیکنند.
تله ارزشی (Value Trap) چیست؟
تله ارزشی سهمی است که بر اساس ضریب گذشتهنگر ارزان به نظر میرسد اما همچنان به سقوط خود ادامه میدهد. سود هر سهم بهصورت فصلی بهروز میشود در حالی که قیمت بهطور مداوم در حال تغییر است؛ بنابراین قیمتِ در حال سقوط در برابر یک E گذشتهنگر ثابت، ضریب پایینتری را ثبت میکند و گزارش بعدی میتواند آن ضریب را در قیمت پایینتر، دوباره به سطح بالاتری بازگرداند.
هر پنل در اینجا به همراه کوئری تولیدکننده آن ارائه شده است. یکی را باز کنید، سقف P/E یا بازه فاصله را تغییر دهید تا فهرست بر اساس شاخصهای شخصی شما در ترمینال Strasmore بازسازی شود.