Formazione sui metodi di ricerca · Quantic Eagle opera solo con capitale proprio. Non gestisce fondi di terzi né offre consulenza finanziaria o segnali di trading.
Il test passa.
Hai controllato la cosa giusta?
Stai per sostituire una funzione del backtest, chiedere all’AI un secondo controllo o usare un indicatore per decidere un acquisto. Che cosa può andare storto anche quando il programma produce un risultato? Segui tre casi inventati e il controllo che ti aiutano a costruire.
I casi e i dati sono inventati per mostrare errori che puoi cercare nei tuoi test. In ogni figura parti da «Con errore», poi clicca «Caso corretto»: vedrai il risultato dopo la correzione descritta nella spiegazione. Clicca di nuovo «Con errore» per confrontarlo con il risultato iniziale.
Per ciascun caso trovi la situazione, il confronto da fare e ciò che rimane da verificare. Il pulsante di download salva la figura nello stato che stai guardando.
QE-CONTRACT-01 / 1.0
Due programmi d’accordo possono sbagliare insieme
Vuoi scegliere quale strategia approfondire e guardi il profitto di un backtest, una simulazione di acquisti e vendite su dati storici. Se il programma sottrae meno commissioni di quelle previste, una strategia può sembrare migliore solo perché le spese sono sbagliate. Anche due programmi che danno lo stesso risultato possono nascondere questo problema, se usano la stessa funzione per convertire la tariffa.
Partiamo da un conto facile da fare a mano: ti aiuta a capire che cosa controllare prima di fidarti dei calcoli di un sistema più grande. Il controllo deve partire dalla tariffa e dall’importo dell’operazione, verificati separatamente dal programma.
Nel caso inventato acquisti azioni per un valore totale di 8.000 €: è l’importo dell’acquisto, non il numero di azioni o lotti. La commissione ipotizzata è 1 punto base, ossia lo 0,01% di quell’importo. Il simulatore registra 0,008 € e un secondo programma restituisce lo stesso numero. Calcola tu la commissione prima di aprire la soluzione.
Consulta la soluzione dopo aver scritto la tua decisione
Per calcolare lo 0,01% di 8.000 €, dividi 0,01 per 100 e moltiplica: 8.000 × 0,0001 = 0,80 €. La commissione riportata dai due calcoli, 0,008 €, è cento volte troppo piccola. Il loro accordo non dimostra che la tariffa sia stata applicata correttamente: anche due calcoli possono ripetere la stessa conversione sbagliata. Confronta quindi il costo registrato nel backtest con gli 0,80 € ricavati a mano dalla tariffa ipotizzata. Per una vendita successiva usa il valore di quella vendita e la tariffa che le si applica.
Nel file gratuito trovi il calcolo, il risultato atteso e altri due confronti su finestre e posizioni aperte. Sono esempi inventati, eseguibili con Python senza librerie aggiuntive. Il progetto finale della guida collega questi controlli a dati, modello, ordini, costi e dossier.
Scarica il programma e verifica i calcoliSalva il file come QE-CONTRACT-01.py. Da un terminale nella stessa cartella esegui il comando seguente; il risultato contiene unità, importi attesi e calcoli.
python QE-CONTRACT-01.pyLa data passa il controllo. Il valore viene dal futuro.
Questo caso usa dati inventati.
Vuoi provare una strategia che usa un indicatore economico per decidere quando comprare. Scarichi un file storico dalla fonte che lo pubblica. Quel file può contenere valori corretti dalla fonte dopo la prima pubblicazione: per esempio, dopo aver ricevuto nuovi dati. Se usi oggi il valore corretto per simulare una decisione presa prima della correzione, dai al sistema un’informazione che allora non poteva avere. Controllare solo la prima data di pubblicazione non scopre questo errore.
Il caso è inventato: un ente statistico stima quanto è cambiata la produzione industriale di gennaio rispetto a dicembre in un paese immaginario. Pubblica una prima stima di +2%; dopo aver raccolto altre risposte, la rivede a −1%. La strategia dell’esercizio permette un acquisto soltanto con una variazione positiva. Il tuo programma importa ogni pubblicazione nell’archivio dei dati: la colonna «Importazione nell’archivio» indica quando il dato vi entra. Gennaio è il mese misurato: i valori diventano conoscibili soltanto alle date di febbraio indicate. Tutti gli orari sono UTC.
Tabella del caso: scorri orizzontalmente se necessario.
| Versione | Variazione · % | Pubblicazione | Importazione nell’archivio |
|---|---|---|---|
| 1 | 2 | 2026-02-01 09:00 | 2026-02-01 09:05 |
| 2 | −1 | 2026-02-03 09:00 | 2026-02-03 09:01 |
Nelle tue note, su carta o in un file, scrivi una riga per D1, D2, D3 e D4 della seconda tabella. Per ciascuna indica il valore già entrato nell’archivio in quell’istante e se la regola permette l’acquisto. Se nell’archivio non è ancora arrivata alcuna pubblicazione dell’indicatore di gennaio, annota «dato non disponibile: decisione bloccata». Uno zero sarebbe invece una variazione nulla effettivamente misurata: non è un modo per rappresentare il dato che manca. Apri poi la soluzione.
| Decisione | Istante UTC |
|---|---|
| D1 | 2026-02-01 09:02:00 |
| D2 | 2026-02-01 09:10:00 |
| D3 | 2026-02-03 09:00:00 |
| D4 | 2026-02-03 09:02:00 |
Apri la soluzione dopo aver deciso
Tabella del caso: scorri orizzontalmente se necessario.
| Decisione | Istante UTC | Variazione utilizzabile · % | Azione |
|---|---|---|---|
| D1 | 2026-02-01 09:02:00 | — | Non disponibile |
| D2 | 2026-02-01 09:10:00 | 2 | Acquisto ammesso |
| D3 | 2026-02-03 09:00:00 | 2 | Acquisto ammesso |
| D4 | 2026-02-03 09:02:00 | -1 | Nessun acquisto |
In D1 la prima stima è pubblica, ma non è ancora entrata nell’archivio del programma: la decisione va bloccata. D2 e D3 possono usare +2%; in D3 la correzione a −1% è pubblicata, ma viene importata un minuto dopo. D4 usa −1%, perciò la regola non autorizza l’acquisto. Se il backtest usa oggi −1% anche in D2 e D3, esclude acquisti allora ammessi. Attribuirgli la vecchia data di pubblicazione nasconde l’errore: devi collegare il valore alla pubblicazione che lo conteneva.
Per ogni periodo osservato, conserva tutte le versioni. A ogni decisione ammetti soltanto quelle già pubblicate e ricevute, poi scegli la più recente fra queste. Nel caso l’uguaglianza è ammessa perché gli eventi di ricezione allo stesso istante precedono la decisione; con orologi o ordine incerti occorre una regola più prudente.
Salva il download come QE-VINTAGE-01.py e avvialo con Python 3.10 o successivo. Dati e calcoli sono inclusi; non occorrono iscrizione, servizi esterni o librerie aggiuntive.
python QE-VINTAGE-01.pyIl controllo funziona solo se conservi le versioni e gli orari necessari; non misura il ritardo di un fornitore reale, la capacità predittiva o il profitto. Un’altra prova consiste nell’aggiungere dati futuri e verificare che le decisioni passate non cambino. È utile, ma può non trovare questo errore: se il file iniziale conteneva già il valore rivisto attribuito alla vecchia data, aggiungere nuove righe non corregge né rivela necessariamente quella riga sbagliata.
Per approfondire la distinzione fra periodo osservato e versione disponibile: documentazione FRED/ALFRED sui real-time periods. La fonte usa date; gli orari intragiornalieri di questo caso sono inventati.
I punteggi sono giusti. Sono abbinati alle azioni sbagliate.
Vuoi velocizzare il backtest e riscrivi la funzione che sceglie quale azione comprare. Il modello assegna un punteggio a ogni titolo: A = 0,7 e B = 0,6. Non ha ancora scelto un acquisto; la regola successiva deve comprare soltanto il titolo con il punteggio maggiore. Nella riscrittura riordini i titoli da A, B a B, A, ma lasci i punteggi nell’ordine originale. Il programma li abbina per posizione nella lista: ora attribuisce 0,7 a B e 0,6 ad A.
La lista dei numeri non cambia. Il punteggio 0,7 finisce però su B: il programma compra B.
Il modello non ha cambiato previsione. È il passaggio che associa numeri e titoli ad aver scambiato A e B. Un controllo che confronta soltanto la lista [0,7; 0,6] passa: i numeri sono ancora gli stessi. Il conto simulato contiene però B invece di A, e da quel momento guadagni, perdite e acquisti successivi possono cambiare.
Il modello restituisce un punteggio per titolo. Il difetto nasce quando i titoli cambiano ordine e i punteggi restano nell’ordine originale.
Il controllo che serve
Prima di sostituire la funzione, fai una prova con gli stessi titoli in ordine diverso. Confronta le coppie titolo–punteggio e l’azione selezionata. Se A e B sono entrambi acquistabili, deve vincere A in entrambi gli ordini. Poi riparti dallo stesso conto e confronta le decisioni in sequenza: un acquisto diverso modifica anche il denaro e le posizioni disponibili dopo.
Che cosa dimostra. Il programma allegato riproduce questo errore di associazione su dati inventati. Non attribuiamo questa causa al caso storico del laboratorio. Il confronto non simula esecuzioni del broker né dimostra profitti.
Nel tuo progetto
Prova due varianti prima di aprire le soluzioni del programma: A è esclusa dai titoli acquistabili; oppure A e B hanno entrambi 0,7 e la regola dichiarata risolve il pareggio scegliendo il titolo in ordine alfabetico. Deve sempre vincere A? Annota il titolo atteso in ciascun caso e indica quali campi confrontare per distinguere un errore di associazione da una scelta diversa ma coerente con le regole.
Due agenti dicono «tutto a posto». Hai ottenuto due verifiche?
Un agente ha preparato il tuo backtest e il risultato sembra promettente. Prima di dedicare altro tempo alla strategia, vuoi un secondo controllo sui costi: un profitto gonfiato dalle commissioni sbagliate potrebbe farti scegliere il progetto sbagliato. Affidi la verifica a due agenti. Entrambi ricevono backtest.py, il registro delle operazioni trades.csv e la tariffa broker-fees.txt. Il primo consegna il suo rapporto. Avvii il secondo nella stessa cartella, dove trova anche quel rapporto: vede già che il primo non ha segnalato anomalie.
Il secondo agente riceve anche il rapporto del primo. Due approvazioni non bastano a dimostrare due verifiche autonome.
Stai cercando qualcuno che rimetta in discussione il risultato. Se il secondo agente parte dal «tutto a posto» del primo invece di ricostruire i costi, una commissione sbagliata può restare senza un nuovo controllo. Il rischio è fidarti del profitto perché hai due approvazioni, quando non sai da quali verifiche derivino. La figura mostra il rapporto reso visibile; non dimostra che l’agente ne sia stato influenzato.
Il controllo che serve
Prima di avviare ciascun revisore, controlla quali file e messaggi precedenti può consultare: scrivere «lavora in modo indipendente» non toglie un rapporto dalla cartella. Chiedi di indicare il passaggio verificato, gli importi ricostruiti e la tariffa usata. Raccogli i rapporti separatamente, poi torna agli originali per valutare sia gli accordi sia le obiezioni.
Che cosa dimostra. Figura e programma ricostruiscono materiali assegnati in un caso inventato; non chiamano un’AI né misurano il suo bias. Separare i rapporti permette una nuova lettura senza il verdetto precedente, ma non garantisce che i due agenti trovino tutti gli errori.
Nel tuo progetto
Vuoi un controllo indipendente dei costi. Hai preparato backtest.py, trades.csv, broker-fees.txt e il rapporto già scritto dal primo agente. Prima di avviare il secondo, quale file tieni fuori? Quali conservi perché possa rifare il calcolo? Prova anche l’altro obiettivo: se vuoi soltanto finire prima il controllo di molti CSV, assegna gruppi distinti e verifica quali file sono stati esaminati. Ripetere lo stesso gruppo non completa quello rimasto fuori.
Un prezzo manca. La media cambia e parte un acquisto diverso.
Vuoi usare una media dei prezzi per decidere un acquisto. Il programma può restituire un numero plausibile anche se nel download manca una seduta: controlla le date usate prima di passare la media al modello. All’apertura della seduta 4 il prezzo disponibile è 10 €. La regola inventata compra soltanto se quel prezzo supera la media delle chiusure delle tre sedute precedenti: 1, 2 e 3. Le chiusure originali sono 10, 11 e 12 €, quindi la media è 11 € e non si compra. Nel CSV scaricato manca però la seduta 2. La funzione prende gli ultimi tre prezzi presenti: include 5 € della seduta 0 al posto degli 11 € mancanti. La media scende a 9 €.
Prezzo attuale 10 € > media errata 9 €: il programma decide di comprare.
La funzione ha calcolato (5 + 10 + 12) / 3 = 9 €. Non ha soltanto sbagliato un indicatore nel report: poiché 10 è maggiore di 9, il programma autorizza un acquisto che la regola sulle tre sedute richieste avrebbe escluso. Può succedere quando un download perde una riga e il calcolo usa le ultime tre righe presenti senza controllare le sedute a cui appartengono.
Il controllo che serve
Prima di passare la media alla regola o al modello, determina le sedute richieste dal calendario del mercato. Verifica una sola chiusura per ciascuna e che fosse disponibile prima dell’acquisto. Il controllo deve impedire di usare una seduta più vecchia per completare il conteggio. Nel programma allegato puoi vedere sia l’acquisto errato sia il blocco che lo impedisce.
Che cosa dimostra. La regola e i prezzi sono inventati per mostrare una decisione alterata dai dati. Non proponiamo questa media come strategia redditizia e non calcoliamo il rendimento dell’acquisto.
Nel tuo progetto
Prova una chiusura presente nel file ma arrivata soltanto dopo la decisione: può entrare nella media? Poi prova una riga doppia. Sono problemi diversi dalla lacuna, ma nessuno dei tre va nascosto contando soltanto tre numeri. Distingui inoltre l’inizio della serie, quando non esistono ancora tre chiusure, da una seduta che manca più avanti.
Prova questi errori prima di usare i risultati nel tuo sistema
La verifica dei dati serve prima che una media diventi un segnale, e la verifica delle associazioni prima che un punteggio diventi un acquisto. Il programma qui sotto riproduce i tre meccanismi del Museo. Prima prova a prevedere gli esiti delle prime sei varianti: un titolo escluso, un pareggio, un verdetto precedente condiviso con il secondo revisore, una tariffa dimenticata, una chiusura tardiva e una riga doppia.
Nel settimo esercizio, M1, devi scegliere fra due titoli: il prezzo mancante può cambiare prima l’ammissibilità e poi la scelta, mentre i punteggi restano uguali. Confronta gli esiti con dati incompleti, controllo attivo e dato ripristinato. Spiega nei tuoi appunti perché la prima differenza nelle decisioni non identifica da sola la causa.
Riproduci i casi, poi combina i controlli
Scarica il JavaScript e il JSON nella stessa cartella. Se hai Node.js, apri un terminale in quella cartella ed esegui i comandi qui sotto. Il primo mostra i casi spiegati nelle figure. Il secondo mostra le varianti: annota prima la tua previsione e il motivo. Il terzo mostra gli esiti da confrontare con le tue risposte.
Dati inventati e varianti · JSON · Programma autonomo · JavaScript
node QE-TRADING-CHECKS-01.js
node QE-TRADING-CHECKS-01.js --exercises --lang it
node QE-TRADING-CHECKS-01.js --solutionsNell’output, BUY significa acquisto autorizzato, NO_BUY nessun acquisto secondo la regola, BLOCKED decisione fermata per dati incompleti o non utilizzabili. Nel caso con il prezzo mancante, il calcolo senza controllo decide BUY con media 9; il controllo ferma la decisione. Dopo aver recuperato il prezzo originale, la media è 11 e l’esito valido è NO_BUY.
QE-TRADING-CHECKS-01 · 1.1. Il programma non chiama un’AI, non invia ordini e non calcola rendimenti. Ricostruisce associazioni, materiali dati ai revisori e decisioni sui dati inventati descritti sopra.
Un controllo più breve: solo copertura e media
Scarica questi due file nella stessa cartella ed esegui il comando con Node.js. Sono gli input inventati del caso della finestra: prima incompleti, poi con il dato originale recuperato.
Input e risultati attesi · JSON · Controllo leggibile · JavaScript
node QE-WINDOW-01.js QE-WINDOW-01.jsonNel caso difettoso, la media degli ultimi tre valori disponibili è 9, ma manca l’istante 2: il controllo restituisce coverage_pass: false e mean: null. Nel caso corretto restituisce true e 11. Il programma completa la verifica anche quando rileva il difetto previsto: un test riuscito può confermare che un input deve essere respinto.
QE-WINDOW-01 · versione 1.1. Il programma verifica il calendario dichiarato, i duplicati e la disponibilità prima della decisione. Non recupera o inventa dati e non certifica la provenienza reale del file.
La guida è in preparazione. Le risorse di questo sito sono gratuite. Puoi chiedere una sola email quando sarà pronta; non sono disponibili acquisti o prenotazioni.
Avvisami quando sarà prontaA cura di Quantic Eagle LTD · Formazione generale sui metodi di ricerca. Chi siamo.