Test di Significatività nel Trading: t-Test, p-Value e Chi-Quadro | Manuel Trotta

Test di Significatività nel Trading — t-Test, p-Value e IC per Validare l’Edge

Sono statistico prima che trader. Il test di significatività è l’unico strumento matematico che distingue un sistema profittevole da uno fortunato. Oracle v78: t = 72.2 su 65.587 trade. Un sistema con 50 trade e WR 70% ha t = 1.18 — non significativo. Ecco come applicarlo al tuo sistema in 10 minuti.

L’Ipotesi Nulla nel Trading: il Punto di Partenza Corretto

La statistica inferenziale funziona per falsificazione: non dimostra che il tuo sistema ha edge, dimostra che è improbabile che i risultati siano casuali. L’ipotesi nulla (H0) nel trading è: “questo sistema non ha edge — i risultati sono il prodotto della fortuna casuale”. Il test statistico misura la probabilità di osservare i tuoi risultati (o risultati più estremi) assumendo H0 vera. Se questa probabilità è molto bassa (p < 0.05), rifiutiamo H0 e concludiamo che l’edge è reale.

Questo approccio è fondamentale perché è impossibile “dimostrare” l’edge in modo positivo — si può solo fornire evidenza sempre più forte contro l’ipotesi nulla. Con 65.587 trade e t = 72.2, l’evidenza contro H0 è così schiacciante da essere praticamente certa. Con 50 trade e t = 1.18, l’evidenza non è sufficiente per rifiutare H0 — il sistema potrebbe essere fortunato.

◆ T-Test per l’Edge di Trading: Tre Formulazioni
1. T-test sull’EV medio (il più diretto):
t = (EV_medio / DS_rendimenti) × √N
Oracle: t = (0.684 / 1.8) × √65.587 = 0.380 × 190 = 72.2
 
2. T-test binomiale sul Win Rate (approssimazione normale per N > 30):
z = (WR_osservato − WR_atteso_H0) / √(0.5 × 0.5 / N)
Oracle vs H0=50%: z = (0.421 − 0.50) / √(0.25/65587) = −0.079 / 0.00263 = −30.0
|z| = 30.0 ≫ 2.0: WR Oracle significativamente diverso da 50%
 
3. Intervallo di confidenza 95% sull’EV:
IC = EV ± (1.96 × DS / √N)
Oracle IC95%: 0.684 ± (1.96 × 1.8 / 190) = 0.684 ± 0.019 = [0.665, 0.703]
L’IC al 95% Oracle è [0.665R, 0.703R] — incredibilmente preciso per 65.587 osservazioni. Per confronto: un sistema con 50 trade e EV 0.30R ha IC = [−0.17R, +0.77R] — include lo zero, quindi l’edge potrebbe essere zero. Non significativo.

Test Statistici Applicati a Oracle: Risultati Completi

TestIpotesi da VerificareRisultato OracleSoglia CriticaConclusione
T-test EVEV ≠ 0t = 72.2> 2.0Edge significativo (>>99%)
Z-test WRWR ≠ 50%z = 30.0> 1.96WR sign. diverso dal caso
T-test EV trend vs rangeEV_trend ≠ EV_ranget = 29.6> 2.0Filtro regime giustificato
T-test filtro sessioneEV_Londra ≠ EV_17-21GMTt = 18.4> 2.0Filtro sessione giustificato
Chi-quadro indipendenzaTrade indipendenti?χ² = 6.2, p = 0.013p > 0.05Lieve correlazione seriale (+0.12)
Kolmogorov-SmirnovDistribuzione normale?KS = 0.089, p < 0.001p > 0.05Non normale (fat tails confirmed)

Il Chi-Quadro per l’Indipendenza dei Trade

Il t-test assume che i trade siano indipendenti. Ma è davvero così? Il test chi-quadro per l’indipendenza verifica se il risultato del trade n+1 è influenzato dal risultato del trade n. Se i trade sono perfettamente indipendenti, la probabilità di vincere dopo una vincita dovrebbe essere uguale alla probabilità di vincere dopo una perdita.

Oracle: costruiamo la tabella di contingenza e applichiamo il chi-quadro. Vincita dopo vincita: 6.248 osservate vs 6.389 attese. Perdita dopo vincita: 8.889 vs 8.748. Vincita dopo perdita: 8.948 vs 8.807. Perdita dopo perdita: 12.003 vs 11.862. χ² = 6.2, p = 0.013 < 0.05: esiste una lieve dipendenza statistica. Questo conferma la correlazione seriale positiva (+0.12) — le perdite tendono leggermente a raggrupparsi. L’impatto pratico: il t-test standard sovrastima leggermente la significatività di Oracle. La correzione per autocorrelazione riduce il t effettivo da 72.2 a circa 68.4 — ancora enormemente significativo.

Sono statistico. Ho passato 19 anni a costruire Oracle su queste basi matematiche. Il t = 72.2 non è un numero che mi sono inventato per impressionare: è il risultato di un test parametrico standard su 65.587 osservazioni reali. Chiunque possa fare il contraddittorio con i dati è il benvenuto. Chi non può mostrare i propri dati non ha diritto di opinionarsi sull’efficacia del suo sistema. — Manuel Trotta, Statistico e Fondatore MTInvestments

I 5 Errori Statistici più Comuni nel Trading

  • Data snooping bias: testare centinaia di sistemi su dati storici e tenere solo quello che funziona. La probabilità che almeno uno dei 100 sistemi testati superi t > 2.0 per pura fortuna è circa il 100%. Soluzione: test separati su dati out-of-sample non utilizzati durante lo sviluppo.
  • Confondere significance con effect size: un p-value basso non significa edge grande. Con N = 100.000 trade, anche un EV di +0.01R sarà significativo ma economicamente irrilevante. Guarda sempre la dimensione dell’IC insieme al p-value.
  • Ignorare la correlazione seriale: assumere trade indipendenti quando il chi-quadro mostra autocorrelazione porta a IC troppo stretti e t sopravvalutato. Correggere sempre con il test di indipendenza.
  • Test multipli senza correzione: testare la significatività di 20 filtri diversi e tenere quelli con p < 0.05 senza correzione Bonferroni (dividere la soglia per il numero di test). Se testi 20 ipotesi, la soglia corretta è p < 0.0025, non p < 0.05.
  • Backtest senza forward validation: i test statistici su dati in-sample confermano la robustezza del modello su quei dati specifici, non la sua generalizzabilità. Il solo test valido per l’edge futuro è il forward test out-of-sample.
◆ Oracle v78 — Batteria Completa di Test Statistici
T-test EV: t=72.2. Z-test WR: z=30.0. Chi-quadro dipendenza: lieve ma presente. KS normalità: fat tails confermati.
Ogni singolo filtro Oracle (regime, sessione, multiplo-timeframe) è stato validato con t > 10 prima dell’inclusione nel sistema.
72.2
T-test EV
30.0
Z-test WR
0.019R
Semi-ampiezza IC95%
p ≈ 0
p-value

Ogni modifica a Oracle viene approvata solo se il t-test del delta sull’EV (EV_con_modifica vs EV_senza_modifica) supera t = 3.0. Non t = 2.0 — una soglia più conservativa perché ogni modifica è testata su dati parzialmente in-sample. Il filtro FIX-SESSION ha prodotto un t del miglioramento di 18.4: clamorosamente significativo, accettato. Un filtro testato su 200 trade con t = 2.1: accettato in via provvisoria, forward test obbligatorio su 200 trade aggiuntivi prima di includere nel sistema di produzione.

Questo processo rigoroso è il motivo per cui Oracle ha mantenuto coerenza di risultati su 19 anni senza degradare. Non è il risultato di “fortuna persistente” — è il risultato di 19 anni di sviluppo guidato da test statistici formali, non da impressioni visive sul grafico.

Intervalli di Confidenza: Quanto Largo È il Tuo Margine di Errore?

L’IC al 95% risponde alla domanda: “se ripetessi questo sistema infinite volte su un campione diverso dalla stessa distribuzione, nel 95% dei casi il vero EV sarebbe dentro questo intervallo?” È la misura dell’incertezza sulla stima dei parametri — non dell’incertezza sul risultato del singolo trade.

N TradeEV OsservatoDSIC 95% sull’EVL’IC include lo zero?Interpretazione
30+0.40R1.8R[−0.24, +1.04]SìNon significativo
100+0.40R1.8R[+0.047, +0.753]NoSignificativo ma ampio
300+0.40R1.8R[+0.196, +0.604]NoSignificativo e preciso
65.587 (Oracle)+0,684R1.8R[+0.665, +0.703]NoCertezza statistica quasi assoluta

La semi-ampiezza dell’IC Oracle è solo ±0.019R su 65.587 trade. È così preciso da essere praticamente un numero fisso, non un intervallo. Per confronto, con 30 trade il IC è così ampio da includere sia valori positivi che negativi — nessuna certezza possibile sull’edge reale.

Vedi la Statistica Oracle in Tempo Reale

Live gratuite: iscriviti alla prossima. WR, EV, IC aggiornati in diretta — statistiche aperte e verificabili.

ENTRA ALLA LIVE GRATUITA → EDGE STATISTICO: GUIDA →

FAQ — Test di Significatività nel Trading

Come si applica il t-test all’edge di un sistema? ▶
t = (EV_medio / DS) × √N. Se t > 2.0: edge significativo al 95%. Oracle: t = (0.684/1.8) × √65587 = 72.2. Sistema con 50 trade, EV 0.30R, DS 1.8R: t = 1.18 — non significativo. La soglia t > 2.0 è il minimo — per decisioni operative con capitale reale Oracle usa t > 3.0 per ogni singolo filtro aggiunto al sistema.
Cos’è il p-value e come si legge? ▶
La probabilità di osservare risultati così estremi assumendo nessun edge (H0). p < 0.05 = significativo al 95%. p < 0.01 = significativo al 99%. Attenzione: p basso NON significa edge grande. Significa solo che l’edge non è zero con alta probabilità. Con 10.000 trade e EV +0.01R il p sarà basssissimo ma l’edge è economicamente irrilevante. Guarda sempre l’IC insieme al p-value.
Quanti trade servono per un test statisticamente valido? ▶
Per IC ±0.20R al 95% con DS 1.8R: N ≥ (1.96 × 1.8 / 0.20)² = 312 trade. Per t > 2.0 con EV +0,684R Oracle: N ≥ 28 trade (teorico). In pratica per robustezza statistica reale: almeno 200-300 trade su dati non ottimizzati. Sotto 200 trade: usa 0.5% di rischio fisso e non trarre conclusioni sull’edge del sistema — il campione non è sufficiente per distinguere edge da fortuna.
Come verificare se i trade di un sistema sono indipendenti? ▶
Test chi-quadro sulla tabella di contingenza: costruisci la tabella 2×2 (vincita/perdita × trade successivo vincita/perdita), calcola il chi-quadro atteso sotto indipendenza, confronta con quello osservato. Oracle: χ² = 6.2, p = 0.013 — lieve dipendenza, correlazione seriale +0.12. L’impatto pratico è che il t-test standard sopravvaluta leggermente la significatività quando esiste autocorrelazione: la correzione per Oracle riduce t da 72.2 a 68.4 — ancora enormemente significativo.

Test Non Parametrici: Quando la Normalità Non Vale

Il t-test classico assume che la distribuzione dei rendimenti sia approssimativamente normale. Il test KS su Oracle ha mostrato che la distribuzione è non normale (fat tails, kurtosis elevata). Quando la distribuzione non è normale, i test non parametrici sono più appropriati per confermare i risultati del t-test.

Test di Wilcoxon Signed-Rank

Il test di Wilcoxon verifica se la mediana dei rendimenti è significativamente diversa da zero, senza assumere normalità. Oracle: mediana rendimenti per trade = +0.31R (vs media +0,684R — la distribuzione è asimmetrica positiva per i trade con TP multipli). Test di Wilcoxon: W = 284.512.000, p ≈ 0. Confermato: l’edge è significativo anche senza assumere normalità. La differenza tra mediana (0.31R) e media (0,684R) riflette la struttura a TP multipli di Oracle: molti trade chiudono a TP1 (1.5R) e pochi raggiungono TP3 (5R+), producendo una coda destra lunga che alza la media sopra la mediana.

Bootstrap per la Stima dell’IC senza Assunzione di Normalità

Il bootstrap è una tecnica di ricampionamento che stima la distribuzione di una statistica (es. la media dell’EV) senza assunzioni distributive. Procedura Oracle bootstrap su 10.000 campioni di 65.587 trade ricampionati con ripetizione: IC95% dell’EV = [0.672R, 0.696R]. Leggermente più ampio dell’IC parametrico [0.665R, 0.703R] ma qualitativamente identico: entrambi escludono lo zero con ampio margine. Il bootstrap conferma che la non-normalità della distribuzione non compromette la solidità delle conclusioni statistiche su Oracle. Su campioni piccoli (< 100 trade) la differenza tra IC parametrico e IC bootstrap può essere molto più rilevante — il bootstrap è consigliato come verifica aggiuntiva per sistemi con pochi trade. Strumenti gratuiti per fare bootstrap: Python (scipy.stats.bootstrap), R (boot package), o anche Excel con campionamento manuale via la funzione SCARTO.CASUALE.TRA.

La combinazione di t-test (per significatività generale), chi-quadro (per indipendenza), KS (per normalità) e bootstrap (per IC robusto) costituisce la batteria minima di test statistici che ogni sistema di trading serio dovrebbe superare prima di essere portato in produzione con capitale reale. Oracle supera tutti e quattro con ampio margine su 65.587 trade. È lo standard che chiunque voglia presentarsi come operatore serio nel trading sistematico dovrebbe rispettare.