>_ DevTrendsit

Lingua

Home

Linguaggi

Sezioni

Frontend Backend Mobile DevOps AI / ML GameDev Blockchain Embedded Sicurezza
Python

Come collegare le notizie ai grafici azionari e comprendere i driver dei movimenti di mercato

Chiunque abbia mai aperto un terminale di trading ha visto questo. Un'azione crolla improvvisamente dell'8% in una singola sessione, il grafico disegna una candela rossa inquietante e il feed di notizie finanziarie viene inondato di decine di articoli sparsi. Per abbinare un evento specifico a un movimento di prezzo, finisci per trascorrere mezza giornata cercando manualmente per date.

L'autore del progetto open-source PokieTicker ha risolto questo problema per sé stesso e ha rilasciato il codice sorgente su GitHub. Il risultato è uno strumento che sovrappone gli eventi direttamente sui grafici a candele, organizza le notizie per argomento e le elabora attraverso una combinazione di modelli linguistici e machine learning classico.

Interfaccia PokieTicker

Cosa può fare l'app

L'interfaccia è costruita attorno a un grafico interattivo D3.js. Invece di un terminale spoglio, vedi una timeline dove ogni giorno con notizie è contrassegnato con un punto. Cliccando su un punto si apre un pannello contestuale con i dettagli.

Le funzionalità principali da provare:

  • Marcatura interattiva degli eventi sui grafici a candele. Puoi vedere immediatamente in quale giorno è uscito un report trimestrale o una notizia normativa e come il prezzo ha reagito.
  • Filtro tematico. Le notizie sono suddivise per categoria: utili, prodotti, azioni normative, cambi di management e condizioni generali di mercato.
  • Ricerca di analogie storiche. Il sistema confronta l'attuale contesto di notizie con periodi passati usando la similarità del coseno degli embedding vettoriali e mostra dove il titolo si è mosso in situazioni simili.
  • Spiegazione del movimento tramite LLM. Selezioni un intervallo di date con il mouse e il modello raccoglie i fatti e produce un breve riepilogo del perché il calo o il rialzo è avvenuto.

Demo delle funzionalità

Architettura e pipeline di dati efficiente in termini di costi

Lavorare con il testo finanziario spesso ti colpisce con le fatture delle API delle reti neurali. Se invii ogni pubblicazione direttamente a Claude, il tuo saldo verrà azzerato in un paio d'ore. L'autore ha costruito una pipeline di filtraggio a tre livelli che riduce i costi non necessari.

Per prima cosa, i dati vengono recuperati dall'API Polygon. Poi entra in gioco il Livello 0—un semplice insieme di regole Python che filtra spam, clickbait e riepiloghi inutili come "5 azioni da comprare a maggio". Questo passaggio elimina circa il 17% del rumore informativo gratuitamente.

I restanti articoli passano al Livello 1. Qui, Claude Haiku viene utilizzato tramite la Batch API in lotti da 50. Il modello determina il sentiment, estrae argomenti rialzisti o ribassisti e formula il succo della discussione. L'elaborazione in batch costa solo 35 centesimi per 1.000 articoli.

Infine, il Livello 2 basato su Claude Sonnet si attiva solo su richiesta diretta dell'utente, quando è necessario un approfondimento su uno specifico picco di prezzo per un periodo selezionato.

Come funziona la previsione dei movimenti di prezzo

Oltre al sentiment delle notizie e agli indicatori tecnici, è attivo un modello basato su XGBoost. L'autore non sta cercando di costruire un "graal del trading" e avverte onestamente nella descrizione che il progetto è orientato alla ricerca.

Il vettore delle feature è composto da 31 parametri:

  1. Metriche delle notizie: conteggio degli articoli per giorno, punteggio medio del sentiment, rapporto tra positivi e negativi, medie mobili del sentiment su 3, 5 e 10 giorni, più il momentum del sentiment.
  2. Segnali tecnici: rendimenti su 1, 3, 5 e 10 giorni di trading, misura della volatilità, anomalie del volume di trading, indicatore RSI-14 e incroci delle medie mobili.

I classificatori XGBoost vengono addestrati per prevedere la direzione dei movimenti di prezzo sugli orizzonti T+1, T+3 e T+5. La logica è semplice: notizie forti innescano un'inerzia di mercato che spesso dura da uno a tre giorni, specialmente se le pubblicazioni negative arrivano in serie.

Il backend include anche un modulo LSTM sperimentale, sebbene il gradient boosting rimanga la soluzione principale di lavoro.

Un tocco interessante: per provare il progetto in locale, non devi immediatamente acquistare abbonamenti Polygon o registrarti con Anthropic. Il repository include già un archivio pronto con un database SQLite contenente 51.000 candele e 61.000 articoli di notizie, oltre ai pesi del modello addestrato.

Il deployment richiede cinque minuti:

I servizi vengono avviati in due tab del terminale. Nel primo, facciamo partire FastAPI:

Nel secondo, lanciamo Vite:

Dopo di che, l'interfaccia si apre nel browser all'indirizzo http://localhost:7777/PokieTicker/.

Se vuoi recuperare dati freschi dalla borsa, basta copiare .env.example in .env, aggiungere la tua chiave Polygon gratuita e la chiave Anthropic, poi eseguire il comando python -m backend.weekly_update.

Impressioni e conclusioni

PokieTicker è interessante non tanto come consulente di trading, ma come esempio di applicazione full-stack ben progettata. C'è molto da imparare:

  • Una configurazione pulita di FastAPI e SQLite in modalità WAL, più che sufficiente per centinaia di migliaia di record.
  • Utilizzo efficiente degli LLM attraverso il filtraggio preliminare basato su regole e la Batch API.
  • Visualizzazione di dati finanziari in puro D3.js senza widget di terze parti pesanti.
  • Combinazione pratica di metriche NLP con l'analisi classica delle serie temporali.

Il repository sarà utile per gli sviluppatori che costruiscono le proprie dashboard analitiche, sperimentano con l'elaborazione del testo per ML, o semplicemente vogliono comprendere le cause delle fluttuazioni di mercato. Il codice sorgente è rilasciato sotto la permissiva licenza MIT.

Progetti correlati