Il valore del NO: una ricerca completa a risultato negativo

Questo articolo documenta una ricerca quantitativa il cui esito è: l'ipotesi è falsa, non tradate questo. Lo pubblico per una ragione precisa: nella formazione sul trading il risultato negativo non esiste — nessuno vende un corso intitolato "questa cosa non funziona, ho controllato". Eppure la capacità di produrre "no" affidabili, in fretta e a costo zero, è più preziosa di qualunque singola strategia: ogni "no" da tre ore di calcolo è un conto non bruciato e tre mesi di sviluppo non sprecati.

L'ipotesi da testare era la più popolare del pianeta: i pattern di price action (rigetti con ombra lunga, breakout con corpo esteso) hanno potere predittivo tradabile su Bitcoin a 5 minuti. Metà dei canali YouTube di trading vive su questa premessa. Vediamo cosa dicono i dati quando li si interroga con metodo.

L'impianto sperimentale

Dati: BTCUSDT spot, barre 5 minuti, due anni: 210.240 barre, scaricate con le API di Binance. Prima di qualunque test, l'audit di integrità: zero duplicati, zero gap, zero violazioni OHLC — e la normalizzazione di 148.608 timestamp che il feed forniva in microsecondi anziché millisecondi. Il genere di difetto silenzioso che, non corretto, disallinea le feature e fabbrica edge fantasma. Regola: l'audit dei dati viene prima dell'ipotesi.

Feature senza look-ahead: rapporti corpo/ombre, posizione della chiusura nel range, rendimento, ATR e regime di volatilità/volume su finestre mobili, taker buy ratio, flag di breakout su finestra shiftata — ogni valore calcolabile solo con la barra chiusa.

Pattern testati: rigetto con ombra inferiore ≥60% del range (long); speculare superiore (short); momentum breakout con corpo ≥65% in entrambe le direzioni; più il baseline — tutte le barre, sempre long — come gruppo di controllo: qualunque pattern deve battere lui, non lo zero.

Esiti: rendimenti forward da 1 a 48 barre, al netto di 6,5 bps di costo round-trip; in parallelo, triple barrier con stop/target in multipli di ATR. Split rigido: sviluppo in-sample, verdetto sugli ultimi 6 mesi mai toccati.

I risultati, senza anestesia

Test 1 — Edge direzionale

Su ogni pattern e ogni orizzonte, l'edge netto è ≈ −6,5 bps: cioè l'edge lordo è ≈ zero — il netto coincide col solo costo. Il miglior valore lordo dell'intero scan: 1,285 bps in-sample, che inverte segno out-of-sample. Nessun pattern batte il baseline. Rapporto segnale/costo: ~1:30.

Test 2 — L'edge condizionale (il test del "filtro AI")

Obiezione standard: "il pattern da solo no, ma filtrato da volatilità/volume/sessione/order flow…". Testata sistematicamente: bucket per regime di volatilità, di volume, per taker buy ratio, per ora del giorno; entrambi i versi; tre orizzonti. Zero bucket con edge lordo sopra i costi robusto IS e OOS.

Questo test ha un valore particolare: dimostra che non c'era nulla che un modello di machine learning avrebbe potuto imparare. Un classificatore addestrato su feature senza segnale condizionale non estrae edge: fabbrica overfitting industriale. Il "filtro AI" promesso da mezzo marketing del settore, su questi dati, non aveva materia prima.

Test 3 — Triple barrier

Tutte le 24 configurazioni stop/target/tempo in ATR: profit factor sotto 0,65, perdita netta per trade tra −6 e −8 bps, IS e OOS concordi. Con drift nullo, le barriere danno PF≈1 al lordo, quindi <1 dopo i costi: la gestione dinamica non crea un edge che non c'è — lo stesso teorema che vale per i vostri trailing stop.

Test 4 — Order flow come segnale primario

Promossa l'analisi da pattern a flusso: OFI per barra, delta cumulato, net-flow multi-barra, divergenze flusso/prezzo — otto segnali, doppio verso, quattro orizzonti. Esito: gross tra −1,7 e +2,0 bps che invertono segno tra IS e OOS — la firma del rumore. Diagnosi: il taker flow aggregato su barre da 5 minuti è un proxy troppo grezzo; l'informazione di order flow vera vive a livello tick/book e bassa latenza — il dominio, non a caso, del bot di latency arbitrage.

Come si legge un "no"

Quattro test indipendenti, un'unica conclusione convergente, con i caveat dichiarati (i rendimenti sovrapposti gonfiano le t-stat — ma a sfavore dell'ipotesi già bocciata; il modello di costo esclude spread e slippage — quindi la realtà è ancora peggiore del test). Questo è un "no" di qualità: non "non ho trovato niente", ma "ho cercato con potenza statistica adeguata, nei posti giusti, e posso quantificare quanto il niente è niente" — il segnale, se esiste, è sotto 1,3 bps lordi contro 6,5 di pedaggio.

E un "no" così produce direzioni: l'edge direzionale su barre veloci a costi retail non esiste → salire di orizzonte o cambiare natura del segnale; l'order flow paga solo dove è nativo → investire sull'engine strutturale; restano le ipotesi di carry — funding e basis dei perpetual, che non richiedono di prevedere la direzione ma di farsi pagare un premio.

Un processo di ricerca sano è un imbuto che uccide in fretta, a ogni piano, e lascia salire solo ciò che ha dimostrato di meritarlo. Se il vostro imbuto promuove tutto quello che ci entra, non è un imbuto: è un tubo.

La pipeline completa per replicare questo tipo di ricerca sulle vostre ipotesi: Python + API Binance, la guida.