Azioni a basso P/E vicino ai minimi annuali
Screen esatto, classifica per distanza dal minimo a 52 settimane e dati su quanto spesso questi titoli segnano nuovi minimi in seguito.
Le azioni con P/E basso vicine ai minimi delle ultime 52 settimane si trovano all’incrocio di due filtri molto diversi: un multiplo sugli utili trailing contenuto e un prezzo vicino al fondo del proprio intervallo annuale. Il filtro seguente esprime entrambe le condizioni con numeri replicabili, ordina i titoli in base alla distanza dal minimo e mostra la query sotto ogni pannello. Un’avvertenza iniziale: una lista costruita in questo modo raccoglie falling knives almeno quanto occasioni, e una sezione successiva illustra l’aritmetica alla base del filtro.
Cosa significa essere vicini a un minimo delle ultime 52 settimane
Il minimo delle ultime 52 settimane è il prezzo più basso stampato da un’azione nell’ultimo anno. La distanza dal minimo lo trasforma in una percentuale: ultima chiusura divisa per il minimo delle ultime 52 settimane, meno uno. Un’azione che chiude a 55, contro un minimo delle ultime 52 settimane pari a 50, si trova 10% sopra il minimo. Questa aritmetica determina interamente la graduatoria, mentre la nostra guida ai massimi e minimi delle ultime 52 settimane illustra l’intervallo in maggiore dettaglio.
Il rapporto P/E, cioè il prezzo diviso per gli utili per azione trailing degli ultimi dodici mesi, proviene dalla tabella dei rapporti giornalieri stocks_ratios, la stessa fonte alla base del nostro filtro sulle azioni con il dividend yield più elevato. L’intervallo di prezzo proviene da stocks_daily_aggs, con una riga per ogni azione e per ogni seduta.
Quattro parametri definiscono il filtro, e ciascuno è arbitrario finché non viene indicato esplicitamente:
- distanza dal minimo delle ultime 52 settimane pari o inferiore al 10%
- P/E trailing superiore a zero e pari o inferiore a 15
- market cap pari o superiore a 10 miliardi di dollari
- volume medio giornaliero pari o superiore a 1.000.000 di azioni
Gli ultimi due parametri limitano la lista a titoli con un mercato effettivo su entrambi i lati. Una società da 40 milioni di dollari che scambia 20.000 azioni al giorno può mostrare qualsiasi multiplo.
L'esatto SQL dietro ogni numero
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 15Il pannello elenca i 6 titoli più vicini ai rispettivi minimi secondo questi parametri, con un massimo di quindici righe. VICI è il più vicino al proprio minimo, a 2.3% sopra il prezzo più basso stampato nell’ultimo anno, con un multiplo trailing pari a 10.5. All’estremo opposto del pannello, BRK.B si trova 9.7% sopra il proprio minimo.
Come ordinare la lista
L’ordinamento è il passaggio che la maggior parte dei filtri omette. Ordinare per P/E mette in cima il multiplo apparentemente più conveniente e nasconde la posizione del prezzo. Ordinare per distanza dal minimo mette in cima i titoli più vicini a un nuovo minimo e nasconde quanto costano. Il pannello ordina in senso crescente per distanza e riporta il multiplo nella colonna successiva, mantenendo entrambe le informazioni nella stessa riga. In caso di parità, l’ordinamento avviene alfabeticamente. È un dettaglio rilevante quando diversi titoli vengono arrotondati allo stesso decimale.
Per replicare il risultato servono quattro input: una serie di chiusure giornaliere che copra un intero anno trailing, un dato di EPS trailing, il numero di azioni per calcolare la market cap e un volume medio. Dopo questo, tutto si riduce a sottrazioni e divisioni.
Il numero di titoli che superano il filtro dipende dai parametri
Basta modificare un parametro per cambiare la dimensione della lista. Il pannello seguente mantiene fisse le soglie di market cap e liquidità, amplia progressivamente l’intervallo di distanza dal 5% al 30% e conta i titoli idonei con due diversi limiti di P/E.
L'esatto SQL dietro ogni numero
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 cutoffCon i parametri del primo pannello, un intervallo del 10% e un limite di 15, in totale risultano idonee 7 large cap. Restringendo l’intervallo al 5%, ne restano 1. Ampliandolo al 30%, il conteggio sale a 43, mentre aumentando il limite a 25 con la stessa ampiezza si arriva a 137. Nessuna impostazione è oggettivamente corretta. Sono parametri regolabili, e il modo corretto di pubblicare un filtro è dichiarare dove sono stati impostati.
Il minimo delle ultime 52 settimane è una soglia mobile
Il minimo stesso cambia. È una misura rolling: con il passare del calendario, un vecchio minimo esce dalla finestra e la soglia può salire in una giornata in cui non è accaduto nulla al titolo. Seguire un titolo mese per mese rende il fenomeno visibile. Il pannello seguente segue KO, una large cap conosciuta al grande pubblico, rispetto al prezzo più basso degli ultimi dodici mesi.
L'esatto SQL dietro ogni numero
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 mAl 2026-08, KO ha chiuso a $87.71 contro un minimo trailing degli ultimi dodici mesi pari a $65.35, con una distanza del 34.2%. Il divario tra le due linee di prezzo è la quantità misurata da questo filtro. Quando la linea del minimo sale mentre quella della chiusura resta piatta, la distanza misurata si riduce senza che il titolo si sia mosso.
Perché il filtro raccoglie falling knives
Il meccanismo è aritmetico. La E del P/E è trailing e si aggiorna quattro volte l’anno, quando la società pubblica i risultati. La P si aggiorna ogni secondo durante l’apertura del mercato. Se il prezzo scende nel corso di un trimestre, mentre il dato sugli utili resta fisso fino al report successivo, il multiplo si riduce settimana dopo settimana. Il multiplo appare più conveniente proprio quando il prezzo si è allontanato maggiormente dall’ultimo dato pubblicato. Quando il report successivo riduce gli utili, il multiplo si espande nuovamente al nuovo prezzo più basso, e il titolo non è mai stato davvero conveniente. Questo schema ha un nome: value trap.
I titoli ciclici mostrano la stessa misura in modo opposto. Un produttore automobilistico o un costruttore di abitazioni tende a mostrare il P/E trailing più basso al picco del ciclo degli utili, quando l’EPS trailing raggiunge il massimo, e quello più alto nel punto di minimo.
Misurare questo schema significa ricostruire il filtro alla data passata e poi seguire ogni titolo che lo aveva superato. Servirebbe un multiplo trailing per ciascun ticker calcolato alla data passata, non soltanto quello più recente. Le righe stocks_ratios alla base dei pannelli precedenti vengono lette alla data più recente disponibile per ciascun ticker, e questa pagina descrive il meccanismo senza allegare un numero di follow-through per il quale non può mostrare la query. In ogni caso, una coorte osservata a partire da una sola data sarebbe una singola osservazione: iniziando in un mese diverso, i numeri cambierebbero. La lista non contiene alcuna previsione sul comportamento successivo dei prezzi.
Cosa non mostra un P/E basso
- Quali utili. L’EPS trailing include componenti una tantum, cessioni di attività e accordi transattivi legali. Un singolo trimestre eccezionalmente positivo mantiene basso il multiplo per un anno, anche dopo che la relativa liquidità è venuta meno.
- Il contesto settoriale. Banche, assicurazioni, produttori automobilistici e società di raffinazione presentano multipli strutturalmente più bassi rispetto alle software company. Applicare un unico limite a tutti i settori riempie la lista con gli stessi pochi comparti.
- Il bilancio. Il P/E ignora il debito. Due società con lo stesso multiplo ma livelli di leva molto diversi non hanno lo stesso prezzo.
- Le perdite. Una società con utili negativi non ha un P/E significativo e non compare mai qui. L’assenza dalla lista non è un giudizio.
Due liste affini si leggono bene accanto a questa. I titoli con le maggiori variazioni questo mese mostra quali titoli hanno percorso la distanza maggiore nell’ultimo mese, mentre le azioni con la volatilità più bassa mostra il profilo opposto.
Note e definizioni sui dati
- I prezzi provengono da
stocks_daily_aggs, con una riga per ogni titolo e per ogni seduta. Il minimo delle ultime 52 settimane è il valore minimo della colonna dei minimi giornalieri negli ultimi 372 giorni di calendario. - Il multiplo, la market cap e il volume medio provengono da
stocks_ratios, utilizzata prendendo la riga più recente per ciascun ticker. - Un frazionamento o una distribuzione speciale di importo elevato durante la finestra modifica l’intervallo dei prezzi raw. È opportuno verificare questo aspetto per ogni titolo che ne abbia effettuato uno nell’ultimo anno.
- Il filtro richiede un multiplo trailing positivo, quindi le società in perdita non compaiono.
FAQ
Cosa significa quando un’azione è vicina al minimo delle ultime 52 settimane?
Significa che il prezzo corrente è vicino al prezzo più basso raggiunto dal titolo nell’ultimo anno. La distanza dal minimo è data dall’ultima chiusura divisa per il minimo delle ultime 52 settimane, meno uno, espressa in percentuale.
Quale P/E si considera basso?
Non esiste una soglia fissa. I filtri fissano spesso il limite del multiplo trailing a 15, oppure a 10 per una selezione più restrittiva. Inoltre, i multipli variano abbastanza da settore a settore: un unico limite applicato all’intero mercato riempie la lista con gli stessi pochi comparti.
Un’azione con P/E basso vicina al minimo delle ultime 52 settimane è un buon acquisto?
Nessun filtro può rispondere a questa domanda, e questa pagina non lo fa. Le due condizioni descrivono il passato: quanto il mercato paga per ogni dollaro di utili già dichiarati e dove si trova il prezzo all’interno del proprio intervallo annuale. Nessuna delle due descrive ciò che accadrà dopo.
Cos’è una value trap?
Una value trap è un titolo che appare conveniente sulla base di un multiplo trailing e continua a scendere. L’utile per azione si aggiorna ogni trimestre, mentre il prezzo si aggiorna continuamente. Di conseguenza, un prezzo in calo contro una E trailing fissa produce un multiplo progressivamente più basso, e il report successivo può riportare quel multiplo su livelli più elevati a un prezzo inferiore.
Ogni pannello qui presente viene pubblicato insieme alla query che lo ha prodotto. Aprine uno, modifica il limite del P/E o l’intervallo di distanza e ricostruisci la lista con i tuoi parametri sul terminale Strasmore.