Data Integrity

Data Integrity

In breve

Data Integrity sorveglia una domanda semplice ma facile da trascurare: i dati storici delle mie strategie sono ancora gli stessi da un’analisi all’altra, o è cambiato qualcosa sotto il cofano?

Ogni volta che carichi un portafoglio, QANTHOS calcola un’impronta digitale (fingerprint) dello storico trade di ciascuna strategia e la confronta con quella dell’ultima volta. Se un file di export cambia — un backtest ri-esportato dopo una modifica al codice, un rollover che altera i trade storici, un fornitore dati che corregge un prezzo — questo tab te lo segnala, distinguendo un semplice aggiornamento (nuovi trade aggiunti in coda) da un’alterazione dei dati storici già visti in precedenza, che merita attenzione ben maggiore.

Non è un controllo qualità della strategia: è un controllo di stabilità dei dati su cui la strategia è stata valutata. Un portafoglio costruito su metriche calcolate su uno storico che poi cambia silenziosamente è un rischio nascosto — Data Integrity lo rende visibile.

Una premessa importante. QANTHOS è uno strumento di analisi, validazione e scoperta, non un consulente finanziario. Data Integrity non giudica se una modifica ai dati sia “grave” o “innocua”: segnala il fatto e ti fornisce il dettaglio (cosa è cambiato, quale impatto ha avuto sulle metriche) perché tu possa valutarlo.

1. Il concetto: fingerprint e stati di cambiamento

A ogni verifica, QANTHOS calcola un hash del contenuto dello storico trade di ciascuna strategia e lo confronta con quello salvato in precedenza. Dal confronto emerge uno dei seguenti stati:

Stato Icona Significato
Invariata 🟢 Lo storico è identico all’ultima verifica. Nessuna azione necessaria.
Nuovi trade La parte storica è invariata, ma sono comparsi trade più recenti in coda. È l’aggiornamento “normale” che ci si aspetta man mano che il tempo passa.
Primo import 🟡 Non esiste una verifica precedente per questa strategia: è la prima volta che QANTHOS ne vede lo storico.
Dati estesi 🟠 Sono comparsi trade più vecchi dell’inizio storico noto (backfill), ma i trade nel periodo già in comune sono rimasti invariati. Un caso particolare, distinto da una vera alterazione.
Modificata 🔴 Lo storico già visto in precedenza è cambiato: trade modificati o rimossi in un periodo che QANTHOS aveva già verificato. È lo stato che richiede più attenzione.

La distinzione fra 🟠 (dati estesi) e 🔴 (modificata) è deliberata: aggiungere storia più vecchia non è di per sé un problema, mentre alterare trade già verificati sì. Trattarli allo stesso modo avrebbe generato falsi allarmi continui su un caso innocuo.

2. La Dashboard

La Dashboard è la vista di sintesi, con tre livelli di lettura.

Le card riassuntive contano le strategie per stato: totale, numero di Snapshot salvati, e i cinque conteggi 🟢/➕/🟡/🔴/🟠 descritti sopra.

Il banner Frozen Mode (vedi §5) mostra se la modalità di congelamento dati è attiva, con un pulsante per attivarla o disattivarla.

La tabella strategie elenca ciascuna strategia con Stato (colorato e con icona), Ultimo check, Trade count (con il confronto “vecchio → nuovo” quando disponibile), l’hash abbreviato e una Nota sintetica. Passando il mouse sulla cella Stato, un tooltip dettagliato mostra — per le strategie modificate — quanti trade sono stati alterati o rimossi, l’impatto sulle metriche (Net Profit, Max Drawdown, Profit Factor, Win Rate: valore prima → dopo), e un elenco delle cause più comuni di questo tipo di alterazione: un rollover che ha ricalcolato lo storico, un aggiornamento del fornitore dati, o un semplice ri-import dello stesso file.

Doppio click su una riga apre un dialog con il dettaglio completo dei cambiamenti rilevati per quella strategia.

3. Eseguire una verifica

Nell’header del tab, tre azioni principali:

  • Verifica — esegue un controllo completo confrontando lo storico attuale delle strategie caricate con l’ultimo fingerprint salvato, e mostra il risultato nella Dashboard.
  • Aggiorna — rilegge lo stato dal database senza ricalcolare nulla: utile per un refresh rapido della vista.
  • Accetta modifiche — quando delle strategie risultano “Modificata” (🔴) e hai verificato che il cambiamento è legittimo (per esempio un rollover atteso), questo pulsante accetta lo stato attuale come nuova baseline: da questo momento, il fingerprint corrente diventa il nuovo riferimento per i confronti futuri.

Un pulsante aggiuntivo, Reset database (evidenziato come azione distruttiva), cancella completamente il database di integrità del portafoglio corrente — utile solo per ripartire da zero, con conferma esplicita prima di procedere.

La verifica di integrità viene eseguita anche automaticamente al caricamento di un portafoglio, in background: non è necessario premere Verifica manualmente a ogni apertura.

4. Snapshot

Il sotto-tab Snapshots conserva fotografie della configurazione di analisi in un dato momento: non solo la composizione del portafoglio, ma anche l’intero set di impostazioni usate (pesi del cluster score, soglie di regime, parametri di score, correlazione e position sizing). Ogni snapshot registra anche alcune metriche di sintesi (Net Profit, Max Drawdown, numero di strategie) e il modulo sorgente da cui è stato creato.

Non è lo stesso strumento delle Snapshot del tab Confronto. Il Portfolio Builder ha un proprio sistema di snapshot pensato per confrontare l’equity di più portafogli (capitolo Confronto fra Portafogli). Questo, in Data Integrity, è più ampio: cattura l’intera configurazione di analisi per poterla ripristinare in un secondo momento, non solo per confrontare curve.

Azioni disponibili dalla toolbar:

Azione Cosa fa
Crea Salva un nuovo snapshot della configurazione corrente.
Confronta Mette a confronto due snapshot selezionati: strategie aggiunte/rimosse/invariate/modificate, e la variazione delle metriche aggregate.
Ripristina Riapplica al Portfolio Builder l’intera configurazione di analisi salvata in uno snapshot (cluster score, soglie regime, score settings, correlazione, position sizing) — utile per tornare esattamente al setup con cui un certo risultato era stato ottenuto.
Esporta / Importa Salva uno snapshot su file o ne carica uno da file esterno.
Elimina Rimuove uno o più snapshot selezionati.

5. Frozen Mode

Il Frozen Mode congela una copia locale dei dati delle strategie correnti. Mentre è attivo, le reimportazioni successive vengono ignorate: lavori sempre e comunque con i dati congelati al momento dell’attivazione, indipendentemente da cosa cambi nei file sorgente.

È pensato per due situazioni tipiche:

  • Proteggersi da un rollover in corso — se sai che uno strumento sta per cambiare contratto e i file di export potrebbero variare nello storico durante la transizione, il Frozen Mode ti garantisce di continuare a lavorare sui dati che avevi già validato.
  • Mantenere coerenza durante un’analisi lunga — se stai conducendo un’analisi articolata su più sessioni, il Frozen Mode evita che un aggiornamento dati a metà lavoro introduca incoerenze fra le fasi.

Si attiva e disattiva dal banner nella Dashboard, con conferma esplicita in entrambi i casi.

6. Lo storico modifiche (Changes)

Il sotto-tab Changes è il registro cronologico di tutte le modifiche rilevate nel tempo, filtrabile per periodo (oggi, ultimi 7 giorni, ultimi 30 giorni, tutto) e per tipo di stato (tutte, modificate, nuove, primo import). È lo strumento per rispondere a “cosa è cambiato nell’ultima settimana?” senza dover riverificare ogni singola strategia dalla Dashboard.

7. Errori comuni e note

Molte strategie risultano “Primo import”. Normale la prima volta che apri un portafoglio con Data Integrity, oppure dopo un Reset database: non c’è ancora uno storico di confronto.

Una strategia è “Modificata” ma so che è solo un rollover. Verifica il dettaglio nel tooltip (o nel dialog di doppio click) per confermare che il cambiamento sia coerente con quanto atteso, poi usa Accetta modifiche per stabilire il nuovo stato come baseline. Considera anche di attivare il Frozen Mode prima del prossimo rollover per evitare la sorpresa.

“Dati estesi” invece di “Modificata”. È uno stato diverso e meno preoccupante (vedi §1): significa che sono stati aggiunti trade più vecchi dell’inizio storico noto, senza alterare il periodo già verificato.

Il pulsante Ripristina in Snapshots non sembra fare nulla. Verifica di avere il Portfolio Builder già aperto: il ripristino richiede che il tab esista per poter applicare le impostazioni.

Reset database non trova nulla da cancellare. Il database di integrità per il portfolio corrente potrebbe già non esistere (per esempio se non è mai stata eseguita una verifica su questo portafoglio).

8. Un esempio di flusso operativo

Un percorso tipico, non una prescrizione.

  1. Carica il portafoglio: la verifica di integrità parte automaticamente in background.
  2. Apri Data Integrity e controlla le card: se ci sono strategie 🔴, indaga prima di procedere con l’analisi.
  3. Passa il mouse sullo stato di una strategia modificata per leggere il dettaglio e l’impatto sulle metriche.
  4. Se il cambiamento è atteso e legittimo, usa Accetta modifiche; altrimenti approfondisci con doppio click.
  5. Prima di un evento noto (es. un rollover imminente), valuta di attivare il Frozen Mode.
  6. Salva uno Snapshot della configurazione di analisi quando raggiungi un setup di cui vuoi conservare traccia, per poterlo eventualmente ripristinare in futuro.

Data Integrity non impedisce di lavorare con dati alterati: ti dà solo la visibilità per accorgertene e decidere consapevolmente come procedere.

9. Per approfondire

  • Rollovers — una delle cause più comuni di dati storici alterati; il Frozen Mode è un modo diretto per proteggersi durante un rollover.
  • Confronto fra Portafogli — il sistema di Snapshot per il confronto di equity, distinto da quello di Data Integrity.
  • Tab Strategie — dove i file di export vengono caricati per la prima volta.
QANTHOS è uno strumento di analisi, validazione e scoperta, non un servizio di consulenza finanziaria. Le metriche e i valori mostrati hanno scopo illustrativo e descrivono comportamenti passati. Il trading su strumenti finanziari a leva comporta un rischio significativo di perdita.