L'ora del giorno era volatilità travestita
Six layers of analysis, three claims retracted while checking them, and in the end the hour of the day dissolves: it was never a cause, only a name for a state of the market.
Our own idea, measured and abandoned
This research document is written in Italian. The summary above is in English; the body below — method, tables and verdict — is not translated.
luglio è stata riaperta con un protocollo nuovo, e si è dissolta: l'ora non è una causa, è il nome di uno stato di mercato. Condizionando su quello stato, l'orologio smette di dire qualcosa.
Questo documento contiene anche tre affermazioni che ho scritto e poi ritirato nel corso della stessa giornata. Sono la parte che vale di più: raccontano come una misura può sembrare solida a ogni livello tranne quello successivo.
Da dove si riparte
Il 30 luglio un protocollo pre-registrato aveva provato dodici ipotesi sull'ora del giorno applicate al nocciolo di reversione — entrata quando l'oscillatore esce dai suoi estremi (sotto 20 o sopra 80), uscita al ritorno a 50 o dopo sessanta giorni, una posizione per volta — e le aveva bocciate tutte (La reversione ha un orologio?, 0 su 12). Una cella sola era rimasta a mezz'aria: su EURCHF, le entrate fra mezzanotte e le sette rendevano +0,286% per operazione più del resto della giornata, 2,4 volte l'errore, con le due metà del campione concordi.
Non fu promossa, e per una ragione precisa: la soglia di quel giro era 2,87 — perché le ipotesi contate erano nove — e il massimo atteso da nove confronti di puro rumore vale circa 2,3-2,5 volte l'errore. La cella cadeva esattamente dove il rumore mette il suo campione migliore.
Fu registrata con le regole per riprenderla: mai rileggerla sugli stessi dati con lo stesso disegno, una sola ipotesi dichiarata, soglia da confronto singolo. Questo giro le rispetta.
L'ipotesi, e perché era plausibile
Su EURCHF, il ritorno alla media dagli estremi rende di più quando l'entrata cade
nelle ore fra mezzanotte e le sette (ora del broker).
La storia dietro: EURCHF è la coppia sotto sorveglianza della Banca Nazionale Svizzera; nelle ore asiatiche la banca non opera e il libro è sottile, quindi gli allontanamenti dal centro potrebbero essere più "tecnici" — e più reversibili — che informativi. Una storia plausibile, non una prova.
Il primo strato: la statistica regge
La distribuzione dei rendimenti per operazione ha asimmetria +6,1 e curtosi 99: una sola operazione vale diciassette volte la media, cioè quattordici scarti tipici. Su una forma così, la scelta del test conta più dei dati.
| test | p |
|---|---|
| formula normale | 0,026 |
| permutazione sulla differenza | 0,116 |
| permutazione studentizzata | 0,013 |
| bootstrap | 0,009 |
Prima affermazione ritirata. Avevo scritto che le code pesanti invalidavano la formula normale, sulla base della permutazione semplice. Falso: la permutazione semplice non è esatta quando i due gruppi hanno varianze diverse — e qui lo sono. Quella studentizzata è il test corretto, e conferma la formula normale.
Quindi la cella è statisticamente reale dentro il suo campione. Il che, come si vedrà, non basta nemmeno lontanamente.
Il secondo strato: è evidenza già spesa
Le due implementazioni — quella di luglio e quella di oggi — sono identiche riga per riga: 410 operazioni su 410 coincidono, differenza massima zero esatto. Troncando i dati alla data del vecchio protocollo si riproduce il suo numero alla terza cifra.
Sovrapposizione: 68 entrate notturne su 71.
E quel p = 0,013 è il p di una cella selezionata come migliore di nove. Corretto per la selezione che l'ha prodotta: 0,12. Si torna esattamente da dove si era partiti.
Le tre operazioni davvero nuove, accumulate in sette giorni, hanno perso tutte e tre (−0,127%, −0,222%, −0,347%). Tre non falsificano niente, ma sono il primo assaggio di dati che la cella non ha contribuito a scegliere, ed è andato dall'altra parte.
Il terzo strato: è il massimo di ventiquattro tagli
La finestra "mezzanotte-sette" non è l'unica possibile. Ce ne sono ventiquattro, da otto ore ciascuna, e quella scelta è la migliore di tutte e ventiquattro. Il massimo di ventiquattro finestre nulle ha mediana 1,50 e novantacinquesimo percentile 2,36; l'osservato vale 2,22, cioè il novantaduesimo percentile. Corretto per la scelta della finestra: p = 0,083.
E la fragilità si vede a occhio: spostando la finestra di un'ora in avanti il risultato collassa da +2,22 a −0,19, perché entra un'ora sola con nove operazioni.
Il quarto strato: non fa più soldi, ne fa meno della metà
| somma dei rendimenti in sedici anni | operazioni | |
|---|---|---|
| tutte | +52,3% | 410 |
| solo notturne | +24,4% | 71 |
Il per-operazione è quattro volte migliore, ma costa l'83% delle occasioni. È lo stesso schema già registrato altrove: una selezione più pulita toglie rumore e oscillazione, e il profitto non sale.
E c'è un dettaglio che ridimensiona l'intero motore, non solo la cella: una singola operazione vale +17,5% su +52,3% — un terzo del profitto di sedici anni. Fu aperta a dicembre 2014 e chiusa a gennaio 2015, attraversando l'abbandono improvviso del pavimento svizzero del 15 gennaio 2015. Un evento da una volta al secolo.
Il quinto strato: le spiegazioni noiose non spiegano
Prima di dichiararla morta, ho provato a ucciderla con gli artefatti. Non ci sono riuscito, e vale la pena dirlo:
- Il pavimento SNB a 1,20 (settembre 2011 → gennaio 2015) — il sospetto più forte, perché in quel periodo il cambio era ancorato e il ritorno alla media era meccanico. Togliendo quel periodo l'effetto cresce (+0,332% contro +0,261%). Escluso.
- Il fuso orario — la conversione è l'identità sulla macchina, e il profilo dello spread conferma che quelle ore sono davvero la sessione asiatica. Escluso.
- La profondità del segnale — le entrate notturne sono appena più profonde, ma stratificando per quintile l'effetto sopravvive in quattro su cinque. Escluso.
- Il passaggio di data — togliendo l'ora del rollover l'effetto si rafforza. Escluso.
Un effetto che sopravvive a quattro artefatti e non a un campione indipendente non è una scoperta: è un'ipotesi che ha superato i controlli sbagliati.
Il sesto strato: la grandezza era sbagliata
A questo punto ho cambiato domanda, ed è qui che sono cascato due volte.
Tutti i protocolli fin qui misuravano quanto rende un'operazione: la grandezza dove il rumore vale quasi cinque volte il segnale. Nessuno aveva misurato quanto tempo ci mette il prezzo a rientrare. Misurandolo, sembrava di aver trovato tutto: rientri notturni molto più rapidi, su cinque simboli su otto.
Seconda affermazione ritirata. Era una distorsione mia, doppia: misuravo in ore di orologio — e il fine settimana entra nel conto come quarantotto ore di attesa — e scartavo i casi che non rientravano entro un tetto. Ma i due gruppi si troncano in modo diverso: su EURCHF le escursioni notturne non rientrano nel 28% dei casi contro il 17% delle diurne, e su GBPUSD 63% contro 38%. Buttando via i lenti della notte più di quelli del giorno, l'effetto lo fabbricavo io.
Rifatto in barre di mercato con i troncati tenuti, il rapporto di 4,1 volte diventa z = −0,40, p = 0,69. Il "cinque su otto" non esiste.
Terza affermazione ritirata. Avevo anche scritto che EURUSD — un controllo fuori dalla famiglia del franco — mostrava lo stesso effetto, e ne avevo tratto che la spiegazione della banca centrale era sbagliata. Ma quel controllo valeva 1,83 volte l'errore ed era il massimo di otto controlli: il massimo atteso di otto misure nulle ha mediana 1,73. Leggevo il massimo di otto come se fosse una misura.
La dissoluzione
L'errore era di impostazione, e stava all'inizio.
Ho trattato l'ora come un trattamento: «prendo queste operazioni e le sposto di notte, cosa succede?». Ma il controfattuale non esiste. Un allontanamento che nasce alle tre di notte non sarebbe esistito alle tre del pomeriggio: le condizioni che lo generano, di pomeriggio, non ci sono. La selezione nel trattamento è il trattamento. «Notte» non è una manipolazione applicata a un oggetto: è il nome di un mondo diverso.
E c'è un secondo problema, più antico della statistica. «Allontanamento di questo strumento fra le zero e le sette» è un predicato costruito dopo aver visto i dati, dalla congiunzione di uno strumento specifico e di una finestra d'orologio specifica. Si adatta perfettamente al passato e non ha nessuna ragione di reggere in avanti. «Allontanamento nato a mercato fermo» è un predicato di un altro tipo: nomina un meccanismo, vale per strumenti diversi, si aggancia a una teoria. Il p-value non distingue i due. La proiettabilità sì.
Da qui la soluzione: l'ora non è una causa, è un indice di uno stato non osservato. E se è così, deve valere lo schermo — condizionando sullo stato, l'ora deve smettere di dire qualcosa.
La prova dello schermo
Stato ricostruito dai soli prezzi: spread, volatilità a un giorno e a un'ora, movimento medio, quota di barre in cui il prezzo si muove, profondità dell'allontanamento, distanza dal centro. Evento: rientro entro una giornata.
| «notte» da sola | «notte» dopo lo stato | |
|---|---|---|
| EURCHF | p 0,014 | p 0,17 — schermata |
| altri cinque | — | schermate |
| altri due | — | sopravvivono (due su otto ≈ caso) |
Su EURCHF — dove viveva tutta la storia — l'orologio non aggiunge niente a chi già conosce lo stato del mercato.
Il predicato che regge
Cercando quale grandezza dello stato porta davvero il segnale, e chiedendo non il p-value ma la concordanza del segno su tutti gli strumenti:
| grandezza | simboli concordi |
|---|---|
| movimento del giorno | 8 su 8 |
| volatilità, attività, profondità | 8 su 8 |
| distanza dal centro | 7 su 8 |
| spread | 5 su 8 — non proiettabile |
E il confronto diretto, quota di rientro entro una giornata:
- volatilità alta contro bassa: più alta su 8 simboli su 8
- notte contro giorno: più alta su 1 su 8
Su sette simboli su otto la notte rientra più lentamente.
Il verso è capovolto
L'ipotesi diceva: a mercato sottile gli allontanamenti sono tecnici, quindi transitori. I dati dicono il contrario: si rientra prima quando il mercato si muove di più. La notte, che si muove di meno, rientra più tardi.
L'ora era volatilità travestita da orologio. E questo spiega, retroattivamente, perché in questo laboratorio ogni taglio orario è sempre morto: tagliavano su un sostituto sporco invece che sulla grandezza.
Cosa non riprovare
Non cercare un effetto dell'ora del giorno sul ritorno alla media. Non c'è, e adesso si sa anche perché non c'è: l'ora è un indice della volatilità, e la volatilità è già l'unica grandezza che questo laboratorio sa prevedere. Chi riparte da qui riscopre un sostituto peggiore di una cosa che abbiamo già.
Non promuovere una cella per il suo p-value. Questa ne aveva uno rispettabile a ogni livello di analisi tranne quello successivo, e ce ne sono voluti sei.
Cosa portarsi via, sul metodo
Nove trappole di misura, otto pagate in un giorno solo, tre delle quali hanno ribaltato una conclusione già scritta:
- una soglia presa da un'altra scala non è una soglia;
- la memoria effettiva di uno smorzamento non è il suo periodo dichiarato;
- nei percentili mobili i valori mancanti contano come valori alti;
- un segnale direzionale va spaccato per ora prima di crederci;
- si misura il bersaglio che il prodotto promette, non quello comodo;
- il massimo di k misure nulle non vale zero;
- la troncatura differenziale inverte il segno;
- il test dei ranghi logaritmici non vede i rischi che si incrociano;
- il metro del tempo dev'essere quello del mercato — se il risultato cambia fra ore d'orologio, barre e barre in cui l'indicatore si muove, il risultato è il metro.
Il conto onesto di questa giornata
Sei livelli di analisi, tre affermazioni mie ritirate mentre le verificavo, una pista chiusa per sempre e nessun edge trovato.
Chi cerca il rendimento in un laboratorio di ricerca legge la riga sbagliata. La riga giusta è: una pista che sarebbe costata mesi è chiusa, e il modo in cui si è chiusa insegna nove cose a chi verrà dopo.