Developer Assistant

Surface Explorer

In breve

Surface Explorer risponde a una domanda che ogni sviluppatore di strategie sistematiche prima o poi si pone: questo parametro che ho ottimizzato è davvero robusto, o ho semplicemente trovato un picco fortunato?

Prendi il risultato di un’ottimizzazione fatta su MultiCharts — la classica tabella con tutte le combinazioni di parametri e le relative metriche di performance — e QANTHOS la trasforma in una superficie esplorabile: una heatmap 2D (o una superficie 3D) dove puoi vedere a colpo d’occhio non solo dove la performance è più alta, ma soprattutto quanto è estesa e stabile la zona buona intorno a quel punto. Un singolo picco isolato in mezzo a valori bassi è un campanello d’allarme di overfitting; una zona ampia e uniforme di buoni risultati — un plateau — è un segnale ben più incoraggiante.

Surface Explorer non ti dice quali parametri usare: individua e classifica le zone di stabilità della superficie, così puoi valutare tu se il setup che avevi in mente si trova in una zona solida o su un crinale isolato.

Una premessa importante. QANTHOS è uno strumento di analisi, validazione e scoperta, non un consulente finanziario. Surface Explorer non prescrive un setup: individua pattern statistici (plateau vs picchi) nella superficie che gli fornisci. La scelta finale dei parametri, e ogni valutazione sulla loro adeguatezza, restano tue.

1. Da dove parte: l’Optimization Report di MultiCharts

Surface Explorer legge un Optimization Report esportato da MultiCharts: la tabella che elenca ogni combinazione di parametri testata durante un’ottimizzazione, con una colonna per parametro e una colonna per ciascuna metrica di performance (Net Profit, Profit Factor, % Profitable, Max Intraday Drawdown, e così via).

Due modi per caricarlo, dalla barra strumenti in alto:

  • Incolla dalla clipboard — copi la tabella direttamente da MultiCharts e la incolli qui.
  • Carica file — apri un file esportato su disco.

Il parser riconosce automaticamente quali colonne sono parametri (quelle il cui nome termina con il nome della strategia tra parentesi, es. iLongStartTime (MR_TF_Engine)) e quali sono metriche (le colonne numeriche restanti). Se durante il parsing emergono righe scartate o valori non numerici, i warning vengono elencati e mostrati esplicitamente — non c’è mai uno scarto silenzioso di dati.

Panoramica del tab Surface Explorer
Il tab Surface Explorer: barra strumenti, pannello selettori a sinistra, heatmap al centro, tabella plateau in basso.

2. Il concetto chiave: plateau vs picco isolato

Il cuore di Surface Explorer è distinguere due situazioni che, guardando solo “il miglior valore della tabella”, sembrano identiche ma non lo sono affatto:

  • Il picco isolato (“naive max”) — la singola combinazione di parametri con il valore assoluto più alto della metrica. È il numero che salterebbe all’occhio ordinando la tabella per Net Profit decrescente. Ma se le combinazioni immediatamente vicine danno risultati molto peggiori, quel numero potrebbe essere un artefatto statistico: un caso in cui l’ottimizzatore ha trovato un punto che funziona “per caso” su quello storico specifico.
  • Il plateau robusto — una zona estesa della superficie in cui i valori sono stabilmente buoni, non solo nel punto migliore ma anche nell’intorno. Se sposti leggermente i parametri all’interno di un plateau, la performance resta simile. Questa tolleranza ai piccoli cambiamenti è proprio ciò che ci si aspetta da un edge reale, che difficilmente dipende da un valore di parametro cesellato al decimo di unità.

Surface Explorer calcola entrambi e li mostra insieme sulla stessa superficie, cosicché il confronto — “il naive max coincide con un plateau, o è un’isola isolata?” — sia immediato.

3. Come funziona la plateau detection

Per chi vuole capire cosa c’è sotto il cofano (i dettagli restano comunque disponibili come tooltip sulle colonne della tabella plateau, nella UI):

  1. Per ogni cella della griglia, QANTHOS calcola la media dei vicini in una finestra 3×3 (chiamata NeighborMean) e il loro coefficiente di variazione (CV = deviazione standard / media): quanto sono alti, in media, i valori intorno a quella cella, e quanto sono dispersi tra loro.
  2. Viene fissata una soglia (di default il top 20% dei NeighborMean): solo le celle sopra soglia sono candidate a far parte di un plateau.
  3. Le celle candidate adiacenti vengono unite in un’unica regione (analisi delle componenti connesse).
  4. Ogni plateau riceve uno score che combina l’altezza media, l’estensione (più celle = punteggio più alto) e la stabilità (CV più basso = punteggio più alto).
  5. In base a dimensione e CV, ogni plateau riceve un giudizio sintetico:
Assessment Criterio Colore
Robust dimensione ampia e CV basso (< 0.15) verde
Acceptable dimensione minima e CV moderato (< 0.30) arancione
Fragile tutto il resto rosso

Le soglie numeriche esatte (dimensione minima, CV) sono quelle riportate nei tooltip della tabella plateau nella UI — qui riportiamo solo la logica, per non duplicare un dettaglio che potrebbe essere raffinato in versioni future.

Con un solo parametro ottimizzato, la logica è la stessa ma in una dimensione: invece di regioni 2D, i plateau sono segmenti contigui lungo l’asse del parametro, mostrati come uno scatter plot con bande colorate.

4. Selettori e modalità di visualizzazione

Il pannello sinistro governa cosa vedere:

  • Parametro X / Parametro Y — i due parametri della heatmap. Con un solo parametro nel dataset, Surface Explorer passa automaticamente a uno scatter 1D.
  • Metrica — la metrica di performance da rappresentare (Net Profit, Profit Factor, ecc.).
  • Aggregazione — quando più righe della tabella condividono la stessa combinazione (X, Y) — es. un terzo parametro variato mentre X e Y restano fissi — questa impostazione decide come combinarle in un unico valore di cella (di default la mediana, più robusta agli outlier della media).

Tre modalità di visualizzazione, mutuamente esclusive:

Modalità Cosa mostra
Singola Una heatmap 2D (o scatter 1D) della metrica scelta, con overlay dei plateau e del naive max.
Multi-metrica Fino a 4 metriche affiancate, più un pannello di intersezione (vedi §5).
Superficie 3D La stessa superficie della modalità singola, ma come superficie tridimensionale interattiva (trascina per ruotare).

Sulla heatmap 2D, un overlay dei conteggi (attivabile a parte) mostra quante righe della tabella sono state aggregate in ciascuna cella — utile per capire se una cella “buona” si basa su una sola osservazione o su molte. Un tooltip interattivo al passaggio del mouse riporta i valori esatti di parametro e metrica sotto il cursore.

5. Modalità multi-metrica: l’intersezione anti-overfitting

Una zona può sembrare un plateau solido sul Net Profit, ma essere fragile sul Max Drawdown o sulla % Profitable. Se un parametro “funziona” solo su una metrica e non sulle altre, è più probabile che stia sfruttando un artefatto statistico di quella metrica specifica piuttosto che un vantaggio reale della strategia.

La modalità multi-metrica affronta esattamente questo: selezioni fino a 4 metriche (per ciascuna puoi indicare se va massimizzata o minimizzata — utile per metriche dove “meno è meglio”, come il numero di perdite consecutive), e Surface Explorer disegna:

  • una heatmap per ciascuna metrica, con il contorno delle celle nel top-X% e una stella colorata sul centro del miglior plateau di quella metrica;
  • un pannello di intersezione: le celle che sono nel top-X% su tutte le metriche contemporaneamente. Se l’intersezione è vuota, non c’è una zona che soddisfi simultaneamente tutti i criteri — un’informazione preziosa quanto una zona trovata.

Nella modalità multi-metrica il colore delle singole heatmap rappresenta il rank percentile della cella all’interno della sua metrica (non il valore assoluto): permette di confrontare metriche con scale molto diverse (dollari, percentuali, fattori) sfruttando l’intera gamma di colore per ciascuna. È una scelta di leggibilità, dichiarata anche sotto il grafico.

6. La tabella dei plateau

Sotto il grafico, una tabella elenca i plateau rilevati (fino al numero massimo configurato), con una riga aggiuntiva Naive max per il confronto diretto:

Colonna Significato
# P1, P2… in ordine di score decrescente, oppure “Naive max” per il picco isolato.
Score Punteggio normalizzato 0–1: combina altezza, estensione e stabilità del plateau.
Centro (X, Y) I valori dei parametri al centro del plateau — il riferimento pratico da riportare in MultiCharts.
Valore Il valore della metrica in quel punto (non necessariamente il massimo assoluto: rinunciare a un po’ di performance in cambio di stabilità è proprio il senso dell’analisi).
Size Numero di celle del plateau.
Avg CV Coefficiente di variazione medio: quanto sono omogenei i valori nel plateau.
Assessment Robust / Acceptable / Fragile (vedi §3), colore coerente sulla heatmap.

Ogni intestazione di colonna ha un tooltip con la spiegazione completa, consultabile passando il mouse.

7. Esportare un risultato

Il pulsante Esporta salva in JSON il risultato corrente, per riportarlo in documentazione o confrontarlo in futuro:

  • in modalità singola, esporta il plateau selezionato in tabella (o P1 di default, o il naive max se non ci sono plateau);
  • in modalità multi-metrica, esporta l’intersezione corrente con le soglie usate per ciascuna metrica.

Il file include sempre il contesto (parametri, metrica, aggregazione, soglia top-X%) necessario per interpretare il risultato in un secondo momento.

8. Errori comuni e note

“Nessun dato caricato”. Serve prima incollare o caricare un Optimization Report valido dalla barra strumenti.

Il combo Parametro Y è disabilitato. Il dataset ha un solo parametro: Surface Explorer passa automaticamente allo scatter 1D, dove l’unico parametro va sull’asse X.

L’intersezione multi-metrica è vuota. Nessuna cella soddisfa il top-X% su tutte le metriche selezionate contemporaneamente — un risultato informativo, non un errore: prova ad alzare la soglia top-X% o a ridurre il numero di metriche richieste in AND.

Compaiono warning dopo il caricamento. Il parser ha scartato righe o valori non numerici; i dettagli sono nel messaggio. Verifica il file esportato da MultiCharts se il numero di warning è alto.

Il naive max e il miglior plateau non coincidono. È una situazione normale e anzi istruttiva: significa che il punto assoluto migliore non è al centro di una zona stabile. Vale la pena guardare con attenzione se il setup che avevi in mente era vicino al naive max o al plateau.

9. Un esempio di flusso operativo

Un percorso tipico, non una prescrizione.

  1. Esegui l’ottimizzazione su MultiCharts e copia (o esporta) l’Optimization Report.
  2. In Surface Explorer, incolla dalla clipboard o carica il file.
  3. Seleziona i due parametri e la metrica principale; lascia l’aggregazione su mediana come punto di partenza.
  4. Guarda la heatmap: individua se il naive max cade dentro un plateau robusto o è isolato.
  5. Se hai più di una metrica a cuore, passa alla modalità multi-metrica e controlla l’intersezione.
  6. Usa la tabella plateau per leggere il centro esatto (X, Y) della zona più solida.
  7. Esporta il risultato se vuoi conservarlo o confrontarlo con altre ottimizzazioni.

Un plateau robusto non è una garanzia di profitto futuro: è un’indicazione che il comportamento della strategia non dipende in modo fragile dal valore esatto del parametro. Resta comunque un’analisi su dati storici — la validazione più severa arriva dal comportamento fuori campione.

10. Per approfondire

  • Bias Explorer — un’altra analisi diagnostica del Developer Assistant, sui pattern temporali ricorrenti.
  • Tab Strategie — da dove nascono le strategie che poi ottimizzi e verifichi qui.
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.