La quasi totalità dei sistemi di analisi automatica applica un criterio unico a tutto il mercato. Funziona finché il mercato assomiglia a quel criterio, e smette di funzionare quando cambia regime — senza che nessuno se ne accorga, perché non esiste un secondo punto di vista che contraddica il primo.
BO.I.A. parte dall'ipotesi opposta. Letture strutturalmente diverse — chi segue le tendenze, chi cerca l'eccesso da correggere, chi guarda i volumi, chi osserva le mosse dei dirigenti, chi ragiona di macroeconomia, chi ha il solo compito di smontare le tesi degli altri — vengono messe in disaccordo di proposito. Accanto a loro gira un piccolo insieme di letture puramente meccaniche, che non interrogano alcun modello: non sono un ripiego, sono il termine di paragone. Il valore non sta nella singola opinione: sta in quanto sono d'accordo, e in cosa succede quando non lo sono.
Ogni giudizio porta con sé una misura di quanto gli agenti divergono. Un consenso unanime e un consenso strappato a maggioranza non valgono lo stesso, e il sistema non li presenta come se lo fossero.
Il contrarian riceve i titoli su cui il consenso è più forte e deve attaccarli. Non vota: produce un avvertimento che resta allegato al giudizio finale. È il freno strutturale contro l'entusiasmo collettivo.
Una previsione dichiara azione, orizzonte e confidenza. Alla scadenza si controlla se ha battuto l'indice nella stessa finestra. Il verdetto è ricalcolato dai dati grezzi, non archiviato: nessuno può ritoccarlo.
Ogni agente è un modello di linguaggio guidato da un prompt versionato e da una selezione di dati diversa dagli altri. Non produce testo libero: produce un oggetto strutturato validato contro uno schema. Per ogni titolo restituisce l'azione (BUY / SELL / HOLD), una confidenza, la tesi argomentata, un prezzo obiettivo, uno stop e un orizzonte temporale dichiarato in giorni.
Quell'orizzonte dichiarato non è un dettaglio: è la condizione di falsificabilità della previsione. Un agente che dice «salirà» senza dire entro quando non può essere smentito. Qui ogni previsione si porta dietro la propria scadenza, e alla scadenza viene giudicata.
Le letture puramente deterministiche — se una media mobile è sopra o sotto un'altra, se il volume supera una soglia — non sono affidate al modello. Vengono calcolate nel codice e passate all'agente già risolte. Al modello resta il giudizio, non l'aritmetica: è la parte in cui un LLM aggiunge valore, ed è l'unica in cui viene usato.
Un obiettivo che si può riscrivere a posteriori non è un obiettivo. Questi sono fissati nella specifica del progetto, insieme alla condizione esplicita che ne comporta l'archiviazione.
Il rendimento di un portafoglio è una misura rumorosa della qualità di un agente, perché dipende anche da quanto capitale si mette su ogni posizione, da quando si esegue, dai vincoli di settore e dal cash tenuto fermo. Un agente eccellente dentro un sizing sbagliato produce un portafoglio mediocre, e viceversa.
Per questo il giudizio sugli agenti è ancorato al segnale, non al P&L: correlazione di rango fra il punteggio e il rendimento in eccesso sull'indice all'orizzonte dichiarato, con intervallo di confidenza calcolato per blocchi; l'hit-rate resta come numero descrittivo. Il portafoglio resta come prova di realtà a valle, ma non è il metro con cui si decide se un agente vale.
La catena è volutamente asimmetrica: quasi tutto il lavoro è deterministico e a costo nullo, e l'intelligenza artificiale entra solo nel punto in cui serve davvero un giudizio.
Prezzi e volumi di chiusura, eventi societari, indicatori tecnici derivati, serie macroeconomiche, operazioni dichiarate dai dirigenti alle autorità di vigilanza USA. Tutto da fonti pubbliche, con controlli di continuità che segnalano buchi e discontinuità invece di ignorarli.
Un filtro meccanico, senza alcuna chiamata all'AI, porta l'indice a poche decine di candidati: quelli che si stanno effettivamente muovendo. Costa zero e taglia il grosso della spesa a valle.
Ognuno riceve una finestra di dati costruita per la propria specializzazione e produce un giudizio strutturato per titolo. Il contrarian entra per ultimo, quando gli altri hanno già parlato, e attacca i titoli col consenso più alto.
Aggregazione deterministica, senza AI: stesso input, stesso output, sempre. Ne esce un punteggio di consenso, una misura di disaccordo, mediane di obiettivo e orizzonte, e l'eventuale avvertimento del contrarian allegato.
I quattro passaggi corrispondono a quattro livelli sovrapposti. L'informazione sale dal basso; ogni livello è un pacchetto separato con la stessa struttura interna — calcolo puro (nessun accesso a database né rete), persistenza senza commit, orchestrazione — così che la parte che decide sia sempre testabile senza toccare dati reali.
La notte gira per intero da sola su server dedicato: acquisizione dei dati, controllo di continuità, selezione meccanica, le letture, l'arbitro, i controlli e la catena dei portafogli fino al ribilanciamento. Ogni passo ha un cancello che può fermare la catena prima che scriva, l'esito di ogni notte resta registrato, e un monitoraggio esterno avvisa se una notte non parte.
Non sono varianti dello stesso ragionamento. Ognuna guarda una famiglia di dati che le altre ignorano, e in condizioni di mercato diverse arriva a conclusioni opposte. È esattamente l'effetto cercato.
Il contrarian è la scelta architetturale più controintuitiva del sistema, e la più importante. Un impianto che aggrega opinioni tende a premiare il conformismo: più agenti concordano, più il punteggio sale. Il contrarian esiste per rompere quel meccanismo dall'interno, ed è misurato come tutti gli altri — con la consapevolezza che un suo hit-rate basso è il comportamento atteso, non un difetto.
Le letture non girano tutte sullo stesso modello. Alcune esistono in più varianti, identiche in tutto tranne che nel testo che le guida: è il modo per isolare una variabile sola e sapere se una formulazione diversa valga il proprio prezzo. Lo stesso impianto consente il confronto fra modelli a parità di tutto il resto, e il confronto è possibile solo perché tutto il resto resta uguale byte per byte.
Le letture meccaniche non sono un ripiego né un residuo: sono aritmetica, e servono a rispondere alla domanda più scomoda che si possa porre a questo progetto — se il modello aggiunga qualcosa a una regola di tre righe.
Perché conta per chi valuta il progetto. La composizione della squadra è versionata. Quando entra un agente nuovo, le serie storiche di performance non vengono contaminate: ogni finestra di valutazione resta legata alla squadra attiva in quel periodo. Senza questo accorgimento, ogni miglioramento apparente sarebbe indistinguibile da un cambio di formazione.
Il punto in cui la maggior parte dei sistemi multi-agente mette un ulteriore modello di linguaggio è, in BO.I.A., codice deterministico. La ragione è verificabilità: un'aggregazione fatta da un LLM non è riproducibile, non è ispezionabile e non è ricalcolabile a distanza di mesi. Questa lo è.
L'arbitro riceve i segnali disponibili per un titolo e produce un punteggio di consenso compreso tra −1 e +1: la media di direzione per confidenza sulle sole fonti effettivamente presenti. L'etichetta finale segue il puro segno del punteggio. Accanto, un punteggio di disaccordo calcolato come entropia normalizzata delle direzioni: alto significa che gli agenti sono profondamente divisi, e quel numero viaggia insieme al giudizio invece di essere nascosto.
Tutti gli agenti pesano uguale, con pesi fissi a 1.0, deliberatamente. Stimare una reputazione su qualche decina di esiti significherebbe amplificare il rumore e chiamarlo apprendimento: pochi casi fortunati basterebbero a far dominare un agente.
Il criterio. Un meccanismo adattivo entra nel calcolo solo quando il campione lo regge; finché non lo regge, resta spento e dichiarato spento. Il costo di questa scelta è una pagina meno spettacolare; il beneficio è che nessun numero pubblicato qui è il prodotto di un adattamento su un campione che non lo reggeva.
È l'idea su cui è costruita tutta la valutazione del sistema, ed è il motivo per cui il metro di questo progetto è più severo di quello che si trova altrove. La domanda non è «ha guadagnato». È: ha fatto meglio che stare fermi sull'indice, nella stessa identica finestra temporale?
Ogni previsione ha una data di ingresso (la chiusura del giorno a cui si riferisce l'analisi) e una scadenza (l'orizzonte in giorni di calendario che l'agente ha dichiarato da sé). Alla valutazione si prende l'ultima chiusura disponibile entro la scadenza, si calcola il rendimento del titolo e quello del benchmark sulle stesse due date, e la differenza è l'esito. Un BUY è corretto se l'eccesso è positivo, un SELL se è negativo.
Una previsione può essere matura (l'orizzonte è passato e i prezzi ci sono), in corso, senza orizzonte (l'agente non l'ha dichiarato: esce da ogni statistica), oppure non valutabile con motivo esplicito. La distinzione non è pedanteria: fondere questi stati in un booleano significa trasformare un dato mancante in uno zero, e uno zero in un pareggio che non è mai avvenuto. Le posizioni HOLD restano fuori dal denominatore dell'hit-rate, perché non esprimono una direzione da verificare.
Gli esiti non sono mai salvati da nessuna parte: vengono ricalcolati dai prezzi grezzi a ogni richiesta. È una scelta strutturale, non una comodità — un risultato archiviato può essere corretto, aggiornato o dimenticato, e nessuno se ne accorge. La garanzia è verificabile nel codice: il modulo che calcola gli esiti non importa alcun modulo capace di scrivere. Quando il denominatore è vuoto, l'hit-rate è nullo e non zero per cento; quando il campione è sotto la trentina di casi, il sistema stampa da sé un avviso di insufficienza statistica.
Verifica indipendente. Prima di pubblicare qualunque numero, un esito è stato ricalcolato a mano — interrogazione diretta al database e aritmetica decimale svolta separatamente dal codice — e confrontato campo per campo con l'output del sistema: prezzi, date, rendimenti, eccesso, verdetto. Scarto zero esatto su tutti i campi.
Il sistema non viene giudicato da un unico confronto. Su due piani distinti si misurano due cose diverse: se ci sia informazione, e se l'impianto sopravviva alla realtà.
Quattro portafogli simulati partono dallo stesso capitale figurato e corrono in parallelo. Uno compra l'indice e lo tiene, ed è il muro contro cui tutto va misurato. Uno segue una sola lettura. Uno segue l'arbitro con tutte le letture attive. L'ultimo compone a caso: non è una provocazione, è l'unico modo di rispondere alla domanda se scegliere valga più che estrarre — e senza di lui il confronto fra gli altri tre resta interno alle proprie premesse.
Sopra i portafogli sta il metro vero, che è il segnale. Ogni lettura affidata a un modello viene confrontata con le letture meccaniche sugli stessi dati e nella stessa finestra. Il portafoglio dice se l'impianto regge; il segnale dice se c'è informazione. Le due domande non si sostituiscono a vicenda, e questa pagina non promette di confonderle.
Nessuna di queste misure conta finché il campione non regge. Il sistema dichiara da sé quando un numero è sotto la soglia di significatività, e una misura dichiarata insufficiente non viene usata per ordinare le letture, per pesarle nell'arbitro o per rimuoverne una.
Ogni ribilanciamento è validato con quattro ricalcoli aritmetici indipendenti dal codice che lo ha prodotto — ricavo delle chiusure, dimensionamento completo delle aperture, immutabilità dei campi che non dovevano cambiare, ricomposizione manuale della liquidità — più il controllo che liquidità e posizioni tornino esattamente al valore del portafoglio. Un codice di uscita a zero non è considerato una prova.
Perché la costruzione del portafoglio è sorvegliata a parte. Il filtro che ammette i giudizi, il numero massimo di titoli, il tetto per settore e la quota per posizione sono parte deterministica: si cambiano, si rimisurano e si confrontano. Una differenza fra la qualità del segnale e il risultato del portafoglio non è una contraddizione da nascondere, è un'indicazione su quale dei due piani intervenire.
È la domanda che chiunque valuti un sistema di analisi pone per prima. Un test all'indietro fatto senza precauzioni sarebbe una misura falsa, e falsa in una direzione prevedibile — verso l'alto. La precauzione, qui, non è rinunciarvi: è misurare prima dove finisce la memoria del modello.
Contaminazione. I modelli di linguaggio sono addestrati su testi che includono l'esito di quegli anni. Chiedere a un agente cosa avrebbe fatto nel 2019 significa chiederlo a qualcuno che sa già com'è andata. Nessun accorgimento sul prompt elimina il problema.
Sopravvivenza. Un test costruito sui componenti attuali dell'indice ignorerebbe le società uscite perché fallite, delistate o acquisite. Per questo l'appartenenza all'indice è datata: in ogni seduta rigiocata la selezione avviene fra i titoli che erano nell'indice in quella data, e gli esiti escludono le previsioni sui non membri. Il residuo, i titoli usciti prima dell'archivio di prezzi, è dichiarato.
Al modello si può chiedere, senza dargli alcun dato, che cosa sia successo a un titolo in una certa data. Dove risponde troppo bene, ricorda: quel periodo è contaminato e non è terreno di prova. Dove non ricorda, il passato torna utilizzabile, e le sedute possono essere rigiocate attraverso esattamente la stessa catena della notte, con ogni vista sui dati filtrata alla data simulata. Le sedute rigiocate restano marcate come popolazione separata e non toccano i portafogli.
Il replay è il banco di prova del sistema. Le sedute del passato si rigiocano attraverso la stessa catena della notte, con ogni vista sui dati filtrata alla data simulata: centinaia di sedute in poche ore invece che in mesi. La finestra comincia dove la sonda ha misurato che il modello non ricorda più.
L'esclusione riguarda gli agenti, non l'intero impianto. Le componenti deterministiche — i criteri di selezione, il dimensionamento delle posizioni, la soglia di stop — sono codice ordinario e possono essere testate all'indietro senza contaminazione, perché non contengono alcun modello che abbia letto la storia. Su quelle il test retrospettivo è utile per confrontare parametrizzazioni diverse e per distinguere una variabilità statistica da un difetto strutturale.
La linea è netta e vale la pena enunciarla: si testa all'indietro tutto ciò che non ha memoria del futuro, e solo quello. La differenza rispetto a un progetto che si limita a dichiararlo è che qui quella linea viene misurata prima di essere usata. Ogni sistema che presenta curve retrospettive brillanti su decisioni prese da un modello di linguaggio sta, consapevolmente o no, misurando la memoria del modello anziché la sua capacità di giudizio.
L'economia dell'impianto è la ragione per cui l'architettura può permettersi molte letture invece di una — e per cui può aggiungerne senza cambiare ordine di grandezza.
La struttura del costo è una conseguenza dell'architettura, non un risultato da misurare. La selezione meccanica precede le letture e riduce l'indice a poche decine di candidati senza interrogare alcun modello: è lì che si taglia il grosso della spesa. Le letture meccaniche non costano nulla, e l'arbitro non chiama l'AI. Quel che resta cresce con il numero di titoli selezionati, non con la dimensione dell'indice.
La distribuzione dei giudizi finali di ogni notte è essa stessa un dato sorvegliato: uno sbilanciamento verso l'acquisto è un difetto noto della categoria, e viene misurato nel tempo invece che ignorato.
Il sistema è in esercizio su un server dedicato, con database applicativo isolato e utenza non privilegiata. La catena deterministica notturna è schedulata e si conclude in meno di un'ora; un servizio esterno di monitoraggio riceve un segnale a ogni esecuzione e apre un allarme se la notte salta.
I backup sono giornalieri, cifrati e conservati fuori dal server, con retention a trenta giorni. La differenza rilevante non è che esistano: è che la catena completa di ripristino — copia, archiviazione, estrazione, riporto in un database vuoto — è stata eseguita per intero e verificata a impronta crittografica identica, contando tabelle e indici. Un backup mai ripristinato è un'ipotesi, non una garanzia.
L'interfaccia di lettura non è esposta su internet pubblico. Le fonti dati sono pubbliche e gratuite: prezzi e volumi, serie macroeconomiche ufficiali, depositi societari all'autorità di vigilanza USA. Non ci sono abbonamenti a dati proprietari nella struttura di costo, e questo è un elemento di scalabilità, non un ripiego.
Il costo dominante non è l'AI. A questi volumi la spesa in modelli è trascurabile rispetto al tempo di ingegneria. È il motivo per cui la leva più promettente non è ridurre le chiamate, ma aumentare la qualità del giudizio per chiamata — e per cui confrontare modelli diversi a parità di tutto il resto è un esperimento che l'impianto può permettersi.
Un progetto che si propone di battere il mercato deve dichiarare in partenza quanto è improbabile riuscirci, e con quale soglia accetta di essere archiviato.
Commissioni, slippage, cioè la differenza fra il prezzo osservato e quello ottenuto, e tassazione erodono i margini in modo sistematico, non casuale. Una strategia che guadagna il tre per cento lordo su operazioni frequenti può chiudere in perdita netta.
Per questo ogni operazione dei portafogli simulati sconta un costo di dieci punti base in entrata e dieci in uscita, e la soglia di pareggio del segnale è calcolata al netto dei costi stimati. Un guadagno teorico che sparisce dopo commissioni e imposte non è un guadagno: è un errore di misura.
Sulla disciplina di verifica. Il progetto tiene un registro esplicito dei propri difetti aperti, numerato e datato, che comprende anche quelli scomodi: metriche che dipendono dalla freschezza dei dati, componenti mai provate a runtime, controlli passati senza che se ne conoscesse la ragione. Un difetto annotato è un difetto che qualcuno può chiedere di chiudere; un difetto taciuto no.
Ogni giudizio emesso resta conservato con la propria scadenza, e il suo esito si ricalcola dai prezzi grezzi a ogni lettura. L'archivio è pubblico: le analisi sono consultabili da chiunque insieme al verdetto che le ha seguite.
Le previsioni sbagliate fanno parte dello storico quanto quelle giuste, e il meccanismo che le misura è costruito perché nessuno possa addomesticarlo. Una pagina che mostrasse solo i successi sarebbe più impressionante e meno credibile.
BO.I.A. non vende una previsione. Costruisce un impianto che produce previsioni falsificabili, dichiara in anticipo il criterio con cui giudicarle, e pubblica il risultato anche quando è mediocre.
La domanda non è se il metodo funzioni. È se un tempo di misure oneste dica qualcosa che lo stesso tempo speso su curve retrospettive non direbbe mai.