Strasmore Research
學習 Matt Connor作者: Matt Connor · data as of August 15, 2026 · refreshed weekly

接近52週低點的低 P/E 股票篩選

查看低 P/E、接近52週低點股票的完整篩選條件、距離低點排名,以及這些股票之後持續創新低的實際頻率,判斷低估或下跌風險。

低 P/E、接近52週低點的股票,位於兩種截然不同的篩選條件交集:較低的歷史盈餘倍數,以及接近自身一年區間底部的股價。以下篩選器以可直接複製的數字列出兩項條件,依距離低點的遠近排列符合條件的股票,並在每個面板下方顯示查詢內容。先提醒一點:這種方法建立的清單,至少和找到便宜股一樣常會納入下跌中的股票;後文將說明背後的計算方式。

什麼算是接近52週低點

52週低點是股票在過去一年期間曾出現的最低價格。距離低點可轉換為百分比:以最新收盤價除以52週低點,再減一。若股票收在55,而52週低點為50,代表股價高於低點10%。這項計算就是整個排名的依據;我們的52週高點與低點指南也會更詳細說明這個價格區間。

P/E 比率是股價除以過去12個月每股盈餘,資料來自每日比率表 stocks_ratios;我們的最高股息殖利率股票篩選器也使用相同來源。價格區間資料來自 stocks_daily_aggs,每檔股票每個交易日各有一筆資料。

這個篩選器由四個參數定義,而在明確寫下之前,每個參數都只是任意設定:

  • 距離52週低點不超過10%
  • 歷史 P/E 高於零且不超過15
  • 市值至少為100億美元
  • 日均成交量至少為1,000,000股

後兩項條件讓清單集中在買方與賣方都有實際市場的股票。市值4,000萬美元、每日成交量僅20,000股的公司,可能顯示出任何倍數。

查詢追蹤 P/E 低於 15、且距離 52 週低點不超過 10% 的大型股
每個數據背後的精確 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
Run this yourself

這個面板列出符合上述參數、最接近低點的 6 檔股票,最多顯示15列。VICI 最接近自身底部,股價高於過去一年最低價 2.3%,歷史倍數為 10.5。面板另一端的 BRK.B,股價則高於低點 9.7%。

如何排列清單

排序是多數篩選器會省略的步驟。依 P/E 排序會把看起來最便宜的倍數放在最前面,卻掩蓋股價在區間中的位置。依距離低點排序,會把最接近新低的股票放在最前面,卻掩蓋其估值。這個面板依距離由小到大排序,並在下一欄保留倍數,讓兩項資訊位於同一列。若數值相同,則按字母順序排列;當數檔股票四捨五入後顯示相同小數時,這項細節便很重要。

要重現這項篩選,需要四項輸入資料:涵蓋完整過去一年的每日收盤價序列、歷史 EPS、用於計算市值的股數,以及平均成交量。此後的步驟就只是減法與除法。

通過條件的股票數量取決於參數設定

調整一個參數,清單規模就會改變。下方面板固定市值與流動性門檻,將距離區間從5%逐步放寬至30%,並分別以兩個 P/E 上限計算符合條件的股票數量。

查詢隨距離區間與 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
Run this yourself

在第一個面板的參數下,距離區間為10%、上限為15時,共有 7 檔大型股符合條件。將區間收緊至5%後,剩下 1 檔。放寬至30%後,數量增加至 43 檔;在相同區間下,將上限提高至25,則為 137 檔。這裡沒有哪一組設定是客觀正確的。它們只是參數;發布篩選結果時,誠實的做法是說明參數設定在哪裡。

52週低點是會移動的底部

低點本身會移動。這是一項滾動計算,因此隨著日曆推進,較早的低點會退出計算區間;即使股票當天完全沒有變動,底部也可能上移。逐月追蹤同一檔股票,就能看出這種變化。下方面板以大型民生消費股 KO 為例,對照其過去12個月的最低價格。

查詢KO 月末收盤價與其近 12 個月低點比較
每個數據背後的精確 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
Run this yourself

截至 2026-08,KO 收在 $87.71,而過去12個月低點為 $65.35,距離低點 34.2%。兩條價格線之間的差距,就是這項篩選器衡量的數值。當低點線上移、收盤價線維持不變時,即使股價沒有變動,計算出的距離也會縮小。

為什麼這項篩選器會納入下跌中的股票

背後的機制是算術。P/E 中的 E 是歷史數值,會在公司發布財報時、每年更新四次。P 則在市場開放期間每一秒都會變動。若股價在一季內持續下滑,而盈餘數字在下一次財報前維持不變,P/E 就會自行逐週下降。當股價相對於最近申報的盈餘數字跌得最深時,倍數看起來最便宜。下一次財報若顯示盈餘下降,倍數便會在更低的股價上重新擴大;實際上,股票從未真正便宜。這種模式稱為價值陷阱。

景氣循環股則會呈現相反的情況。汽車製造商或住宅建商通常會在盈餘循環高峰、歷史 EPS 位於高點時,顯示最低的歷史 P/E;而在循環谷底時,P/E 反而最高。

要衡量這種模式,必須按照過去某個日期重新建立篩選器,再追蹤當時符合條件的每一檔股票。這需要每個 ticker 在該過去日期的歷史倍數,而不只是最新倍數。上述面板背後的 stocks_ratios 資料列,是按每個 ticker 最近日期的資料讀取;本頁說明這項機制,但沒有附上無法以查詢呈現的後續報酬數字。無論如何,從單一起始日期建立的一組樣本,也只是一項觀察:若改在另一個月份開始,數字就會改變。這份清單不代表任何股價接下來必然如何變動。

低 P/E 沒有反映哪些事項

  • 哪一種盈餘。歷史 EPS 包含一次性項目、資產出售及法律和解金。一個異常高的季度盈餘,可能在現金已經消失後,仍讓倍數偏低達一年。
  • 產業背景。銀行、保險公司、汽車製造商與煉油商的結構性倍數通常低於軟體公司;對所有產業套用同一個上限,會讓清單集中在少數相同產業。
  • 資產負債表。P/E 不考慮負債。兩家公司即使倍數相同,但槓桿程度差異很大,也不代表股價處於相同水準。
  • 虧損。盈餘為負的公司沒有具意義的 P/E,因此不會出現在這裡。未出現在清單中,不代表任何結論。

有兩份相鄰的清單,適合與本清單並列閱讀。本月股價波動最大的股票顯示過去一個月股價變動幅度最大的股票,而波動率最低的股票則呈現相反的特性。

資料說明與定義
  • 價格資料來自 stocks_daily_aggs,每檔股票每個交易日各有一筆資料。52週低點是過去372個日曆日內每日最低價欄位的最小值。
  • 倍數、市值與平均成交量來自 stocks_ratios,並讀取每個 ticker 最近日期的資料列。
  • 若計算區間內發生股票分割或大額特別分配,原始價格區間會受到影響;若某檔股票在過去一年內曾發生此類事件,應進一步查核。
  • 此篩選器要求歷史倍數為正,因此虧損公司不會出現在清單中。

常見問題

股票接近52週低點代表什麼?

這表示目前股價接近股票過去一年期間的最低交易價格。距離低點是以最新收盤價除以52週低點,再減一,並以百分比表示。

P/E 多低才算低?

沒有固定標準。篩選器通常將歷史倍數上限設為15;若要採用更嚴格的篩選,則可能設為10。不同產業的倍數差異很大,因此對整個市場套用單一上限,會讓清單集中在少數相同產業。

接近52週低點的低 P/E 股票是好的買進標的嗎?

沒有任何篩選器能回答這個問題,本頁也不會代為回答。這兩項條件描述的是過去:市場為已經公布的每一美元盈餘支付多少價格,以及股價位於自身一年區間的哪個位置。兩者都無法說明接下來會發生什麼。

什麼是價值陷阱?

價值陷阱是指一檔股票依歷史倍數看似便宜,卻持續下跌。每股盈餘按季度更新,股價則持續變動,因此股價相對固定的歷史 E 下跌時,倍數會逐步降低;下一次財報可能在更低股價上,將該倍數重新推高。


本頁每個面板都附有產生結果的查詢。開啟其中一個面板,調整 P/E 上限或距離區間,便能在 Strasmore terminal 依照自己的參數重新建立清單。

#screens#52-week lows#valuation#value investing#p/e ratio