Book, pesi, config INVARIATI. Nuovo sorvegliante in cron_daily. IL CAMPIONE C'ERA GIA': 8 scadenze utilizzabili per asset su 8, entrambe le strutture, 16 osservazioni ciascuna. Non serviva aspettare per fare la misura; serve aspettare per rispondere alla DIFFERENZA, che e' un'altra domanda. CORREZIONE A UN ARGOMENTO PUBBLICATO POCHE ORE FA. Nel gate del tenore avevo scritto che la cella vincente 'sta massimizzando l'errore di modello' perche' compra l'ala piu' lontana. Misurato: il meccanismo e' confermato e piu' forte del previsto (f_long 5.85 contro 2.23) ma la conclusione era ROVESCIATA — quell'ala pesa il 3.2% del premio corto invece del 18.4%, quindi sul credito NETTO l'effetto e' minore: f_net 0.852 contro 0.718, il candidato ha un f MIGLIORE. Con f_net = (f_short - k*f_long)/(1-k), un f_long grande fa danno solo moltiplicato per un k grande: avevo guardato il fattore e non il peso. La decisione (nessun cambio) regge, ma su tre gambe invece di quattro. Artefatto di tick escluso prima di crederci: l'ask dell'ala sta a 22 tick mediani, minimo 15, 0% delle osservazioni a <=2 tick. LA DIFFERENZA NON E' STABILITA: appaiata per (asset, scadenza) fa +0.109 con IC95 [-0.047, +0.193], 11/16 positive -> contiene lo zero. Replica indipendente del canonico: 0.718 per un percorso con finestra DTE e pairing diversi da quello che stamattina dava 0.73. CRITERIO PRE-REGISTRATO, congelato in un test: >=40 coppie E ampiezza IC95 <=0.12 (oggi 16 e 0.241), prima gamba verso fine ottobre 2026. Il sorvegliante rifa' la misura ogni giorno e notifica una volta sola quando basta — lezione DVOLSPREAD, un lead senza sorvegliante e senza data e' un lead perso. Calibrazione della soglia verificata prima di fidarsene: con differenza vera nulla lo zero e' escluso nel 5.0/4.0/3.0% dei casi a n=16/40/60, cioe' il 5% atteso. Il test iniziale su seed fisso falliva perche' quel seed era uno dei 5% legittimi: sostituito con un test sulla proprieta'. REGOLE: (a) un fattore di errore si giudica moltiplicato per il suo peso; (b) prima di credere a un rapporto estremo su un prezzo piccolo, contare i tick; (c) una soglia sull'ampiezza di un IC richiede di verificarne la copertura; (d) 'non abbastanza campione' non e' 'nessuna differenza'. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
5.3 KiB
2026-07-30 (5º filone) — f misurato sul 10g: il mio sospetto era sbagliato, e il campione non basta ancora
Richiesta dell'operatore: «misura f sul 10g quando ci sono abbastanza scadenze». Esito: misurato oggi (il campione c'era), campione INSUFFICIENTE per la differenza, un mio argomento pubblicato oggi REFUTATO. Book, pesi, config INVARIATI.
Script scripts/live/vrp_f_watch.py (in cron_daily.sh), test tests/test_vrp_f_watch.py (11).
Il campione c'era già
Prima cosa misurata, non assunta: nella catena (1.235.064 righe, 2026-05-01 → 2026-07-30) ci sono 8 scadenze utilizzabili per asset su 8, per entrambe le strutture — quindi 16 osservazioni ciascuna. Non serviva aspettare per fare la misura; serve aspettare per rispondere alla differenza, che è un'altra domanda.
❌ La correzione: il mio sospetto aveva il meccanismo giusto e la conclusione sbagliata
Nel diario del gate sul tenore, poche ore fa, avevo scritto che la cella vincente «sta plausibilmente massimizzando l'errore di modello, non l'edge», perché compra l'ala più lontana e il 30/07 aveva misurato quell'ala sottoprezzata ~2.3× dal modello piatto.
Misurato:
| struttura | f_short | f_long | quota ala/corta | f_net |
|---|---|---|---|---|
| canonico 7g δ−0.10 | 1.013 | 2.233 | 18.4% | 0.718 |
| candidato 10g δ−0.05 | 0.972 | 5.846 | 3.2% | 0.852 |
Il meccanismo è confermato e più forte del previsto — l'ala a δ −0.05 costa 5.85× il modello contro 2.23× — ma la conclusione era rovesciata: quell'ala pesa il 3.2% del premio corto invece del 18.4%, quindi il suo errore muove molto meno il credito netto. Il candidato ha un f migliore, non peggiore.
L'aritmetica lo rende ovvio a posteriori: con k = premio_lungo/premio_corto,
f_net = (f_short − k·f_long)/(1 − k). Un f_long grande fa danno solo se moltiplicato per un k
grande. Avevo guardato il fattore e non il peso.
⚠️ Artefatto escluso prima di crederci. Un f_long di 5.85 su un'opzione quasi senza valore
poteva essere solo il tick minimo (0.0001). Misurato: l'ask dell'ala sta a 22 tick di mediana
(minimo 15, 0% delle osservazioni a ≤2 tick). È un prezzo vero, non discretizzazione.
La differenza NON è stabilita
Confronto appaiato per (asset, scadenza) — non due intervalli guardati a occhio:
| mediana | IC95 bootstrap | |
|---|---|---|
| f canonico | 0.718 | [0.662, 0.797] |
| f candidato | 0.852 | [0.809, 0.892] |
| differenza appaiata | +0.109 | [−0.047, +0.193] |
11 coppie su 16 positive, l'IC contiene lo zero. Il punto stimato favorisce il candidato; la misura non lo stabilisce. ✅ Replica indipendente: il f del canonico esce 0.718 per un percorso diverso (finestra DTE e pairing diversi) da quello che stamattina dava 0.73 — le due misure si confermano.
Al proprio f misurato: canonico 0.43, candidato 1.18 (a f=1.00 erano 1.32 e 1.55).
Criterio pre-registrato, e un sorvegliante invece di un promemoria
Dichiarato prima di avere il campione pieno, congelato in un test:
≥ 40 coppie appaiate (oggi 16) E ampiezza IC95 della differenza ≤ 0.12 (oggi 0.241).
Con ~2 coppie/settimana la prima gamba cade verso fine ottobre 2026. vrp_f_watch.py gira in
cron_daily.sh, rifà la misura a ogni giro e manda una notifica una volta sola quando il
criterio è soddisfatto. È la disciplina imparata con DVOLSPREAD (35 giorni di limbo): un lead
senza sorvegliante e senza data è un lead perso.
⚠️ Verificata la calibrazione della soglia prima di fidarsene. Una soglia sull'ampiezza di un IC vale solo se l'IC è calibrato. Misurato su differenza vera nulla: lo zero viene escluso nel 5.0% / 4.0% / 3.0% dei casi a n=16/40/60 — esattamente il 5% atteso. (Il test iniziale su un seed fisso falliva proprio perché quel seed era uno dei 5% legittimi: sostituito con un test sulla proprietà, 100 estrazioni.)
Cosa questa misura NON fa
Non promuove niente. Il candidato è bocciato sul deflated-Sharpe (0.948 < 0.95), che non dipende da f, e la regola niente short-vol da modello in deploy resta. Un f favorevole toglie un argomento di cautela su quattro — restano il gate pre-registrato, il fatto che la regione mai esplorata (>10g) perde comunque, e l'ineseguibilità sotto ~$2.6k.
Ma la decisione ora poggia su meno gambe di quante ne avevo dichiarate, e questo va scritto: uno dei quattro argomenti era mio, era misurabile, e l'ho misurato sbagliato.
Il valore operativo vero sta sull'altra riga della tabella: f = 0.718 sul canonico è il numero che rende onesti i conti di uno sleeve che sta nel book, non di un candidato.
Regole
- Un fattore di errore si giudica moltiplicato per il suo peso.
f_long5.85 sembra devastante e conta il 3%;f_long2.23 sembra mite e conta il 18%. Guardare il fattore senza il peso porta alla conclusione opposta a quella vera. - Prima di credere a un rapporto estremo su un prezzo piccolo, contare i tick. Un ratio di 5× su qualcosa che vale un tick è aritmetica di griglia, non mercato.
- Una soglia su un intervallo di confidenza richiede di verificare la copertura di quell'intervallo — altrimenti si pre-registra un criterio che non misura ciò che dice.
- «Non abbastanza campione» non è «nessuna differenza»: si aspetta con una data, non si conclude.