Passa al contenuto principale

Fase 1 — Raccolta universo (Universe Scan)

La Fase 1 costruisce e mantiene aggiornato il catalogo completo di tutti gli strumenti finanziari monitorati dalla piattaforma. È la base dati su cui si appoggiano le fasi successive.

Frequenza consigliata: ogni 2–4 settimane, o dopo eventi di mercato significativi (es. fusioni, delistings, nuove IPO).


Scheda operativa

VoceDettaglio
ScopoPopolare e mantenere il catalogo strumenti e fondamentali di base.
Punto di partenzaSimboli da processare + API esterne FMP.
DeliverableTabella universe aggiornata (upsert su symbol).
Microservizi coinvoltitickerscanner (fase attiva), scheduler (orchestrazione).

Parametri di pilotaggio

ParametroTipoUso
modenormal/forceIn force ricalcola integralmente; in normal privilegia aggiornamenti incrementali.
symbolslista opzionaleLimita il perimetro a sottoinsiemi specifici.
batchSizenumeroControlla il carico verso provider esterni e DB.
retry/timeoutnumeroRegola resilienza su chiamate API esterne.

Cosa viene recuperato

Per ogni simbolo, vengono chiamate le seguenti API di Financial Modeling Prep:

Chiamata FMPDati recuperati
/stable/profileSettore, paese, capitalizzazione, flag ETF/ADR/Fund, prezzo corrente, beta
/stable/key-metricsPE, PB, ROE, ROA, margine operativo, D/E, metriche chiave TTM
/stable/ratiosRatios finanziari dettagliati
/stable/financial-scoresPiotroski F-Score, Altman Z-Score
/stable/discounted-cash-flowValore DCF e upside rispetto al prezzo corrente

Dati salvati in universe

Classificazione

CampoTipoDescrizione
symbolVARCHAR(20) PKTicker di borsa (es. AAPL)
is_etfTINYINT1 se è un ETF
is_actively_tradingTINYINT1 se il titolo è attivamente scambiato
is_adrTINYINT1 se è un ADR (American Depositary Receipt)
is_fundTINYINT1 se è un fondo
sectorVARCHARSettore GICS (es. Technology)
industryVARCHARSotto-settore (es. Consumer Electronics)
countryVARCHARPaese di quotazione
exchange_full_nameVARCHARBorsa (es. NASDAQ Global Select Market)
market_capDECIMALCapitalizzazione di mercato in USD

Metriche fondamentali

CampoFonteDescrizione
betaProfileSensibilità al mercato (1 = neutro, >1 più volatile)
peKey Metrics TTMPrice / Earnings ratio
pbKey Metrics TTMPrice / Book ratio
roeRatiosReturn on Equity — redditività del patrimonio netto
roaRatiosReturn on Assets — redditività degli attivi totali
op_marginRatiosMargine operativo — efficienza operativa
piotroskiFinancial ScoresPiotroski F-Score (0–9, vedi sotto)
debt_equityRatiosDebt-to-Equity ratio — leva finanziaria
altman_zFinancial ScoresAltman Z-Score (vedi sotto)
dcf_upsideDCF / ProfileUpside DCF = (valoreModello - prezzoCorrente) / prezzoCorrente

JSON raw

CampoContenuto
profile_jsonOggetto completo /stable/profile
ratios_jsonOggetto completo /stable/ratios (normalizzato)
dcf_jsonOggetto completo /stable/discounted-cash-flow

Metadata

CampoDescrizione
last_scan_dateData dell'ultimo aggiornamento da Fase 1

Indicatori fondamentali — dettaglio

PE (Price/Earnings Ratio)

Il rapporto tra prezzo dell'azione e utile per azione. Un PE basso indica un titolo potenzialmente sottovalutato rispetto agli utili.

Valore PEInterpretazione
< 10Molto economico (possibile valore o rischio nascosto)
10 – 15Ottimale per value investing
15 – 25Valutazione ragionevole
25 – 40Prezzo elevato, giustificato da crescita attesa
> 60Sopravvalutato o crescita speculativa

PB (Price/Book Ratio)

Rapporto tra capitalizzazione di mercato e patrimonio netto contabile. Valori < 1 indicano che il mercato valuta l'azienda meno del suo book value.

Valore PBScore
< 1100 — fortemente sottovalutato
1 – 290
2 – 380
3 – 560
5 – 840
> 820 — premium elevato

ROE (Return on Equity)

Misura quanto profitto genera l'azienda per ogni euro di patrimonio degli azionisti. Indica l'efficienza nell'uso del capitale proprio.

ROEScore
< 0%0 — perdita
0 – 5%20
5 – 10%40
10 – 15%60
15 – 20%80
> 20%100 — eccellente

ROA (Return on Assets)

Misura quanto profitto genera l'azienda rispetto ai suoi attivi totali. Più alto è, più l'azienda è efficiente nell'uso delle risorse.

ROAScore
< 0%0
0 – 2%20
2 – 5%40
5 – 8%60
8 – 12%80
> 12%100

Margine Operativo (Op Margin)

Percentuale dei ricavi che rimane dopo aver coperto i costi operativi. Indica la capacità dell'azienda di trasformare i ricavi in profitto operativo.

MargineScore
< 0%0 — in perdita operativa
0 – 5%20
5 – 10%40
10 – 20%60
20 – 30%80
> 30%100 — eccellente

Piotroski F-Score

Il Piotroski F-Score è un indicatore composito (0–9) che valuta la salute finanziaria di un'azienda su tre dimensioni:

  • Profittabilità (3 punti): ROA positivo, flusso di cassa operativo positivo, ROA in crescita, accrual basso
  • Leva e liquidità (3 punti): D/E in calo, current ratio in crescita, nessuna nuova emissione azionaria
  • Efficienza operativa (3 punti): margine lordo in crescita, turnover degli asset in crescita
F-ScoreInterpretazione
0 – 2Azienda debole, rischio elevato
3 – 5Situazione neutrale
6 – 7Buona salute finanziaria
8 – 9Eccellente, tipico di value stock di qualità

Debt-to-Equity (D/E)

Rapporto tra debito totale e patrimonio netto. Misura la leva finanziaria. Valori molto alti indicano elevata dipendenza dal debito.

D/EScore
< 0.2100 — azienda quasi debt-free
0.2 – 0.590
0.5 – 1.080
1.0 – 1.560
1.5 – 2.040
> 2.020 — leva elevata

Altman Z-Score

Modello predittivo del rischio di fallimento. Combina cinque ratio finanziari in un unico indice.

Z-ScoreRischio
< 1.8Zona di pericolo — rischio fallimento elevato
1.8 – 2.7Zona grigia — incerto
> 3.0Zona sicura — basso rischio di insolvenza

DCF Upside

Differenza percentuale tra il valore intrinseco calcolato con il modello DCF (Discounted Cash Flow) e il prezzo di mercato corrente.

  • Positivo (es. +30%): il titolo è potenzialmente sottovalutato rispetto al valore dei flussi di cassa futuri
  • Negativo (es. -20%): il titolo è potenzialmente sopravvalutato

Il sistema normalizza il DCF Upside tra -20% (score 0) e +50% (score 100).


Fase successiva

L'output di questa fase (universe) è il punto di partenza della Fase 2: Indicatori tecnici e scoring giornaliero, eseguita dal microservizio tickerscanner.

La Fase 2 legge i fondamentali da universe e i prezzi storici da market_daily, calcola tutti gli indicatori tecnici e produce lo score di sistema per ogni simbolo nella tabella daily_scores.


Nota per gli ETF

Gli ETF non sono aziende: non hanno utili propri, patrimonio netto aziendale o flussi di cassa operativi nel senso tradizionale. Per questo motivo:

  • pe, pb, roe, roa, op_margin, piotroski, altman_z, dcf_upside vengono lasciati a null
  • Solo beta e market_cap sono valorizzati
  • In Fase 2, lo scoring degli ETF usa solo rischio (beta) e momentum con pesi 50%/50%

Avvio manuale e monitoraggio

Scansione incrementale (solo nuovi ticker)

POST /tickerscanner/universe/scan

Processa solo i simboli che non sono mai stati scansionati o che non hanno un aggiornamento recente. Risponde immediatamente con un jobId.

Scansione completa (forza ricalcolo)

POST /tickerscanner/universe/scan/force

Ricalcola tutti i fondamentali per tutti i simboli dell'universo. Risposta asincrona con jobId.

Monitoraggio job

GET /tickerscanner/universe/scan/jobs
GET /tickerscanner/universe/scan/status/:jobId

Cancellazione job

DELETE /tickerscanner/universe/scan/jobs/:jobId

Errori comuni e recovery

ErroreCausa probabileRecovery
Simboli mancanti in universeScansione non ancora eseguita per quel tickerAvviare scan mirato con symbols: ["TICKER"] nel body
Campi fondamentali a null (azioni)FMP non ha dati per quel simboloVerificare su FMP direttamente; il simbolo potrebbe non avere copertura
Job bloccato in runningErrore non gestito durante il batchCancellare il job con DELETE e riavviare
Timeout API FMPCarico elevato o rate limitRidurre batchSize, aumentare timeout, riavviare il job
universe non aggiornata dopo scanJob completato ma con errors > 0Controllare i log del job; i simboli con errori non vengono scritti