90 KiB
ONDATA 2026-08-22 — esiti per filone (aggiornato man mano)
Regola di lettura: SCARTATO con un meccanismo misurato vale quanto un LEAD — chiude un filone
e smette di farlo pagare alle ondate successive. CANDIDATO richiede marginal ADDS + DSR>=0.95 +
null de-levering superato + eseguibilita' al capitale dichiarato.
| # | filone | verdetto | in una riga |
|---|---|---|---|
| 9 | ADAPTIVE-HORIZON | SCARTATO | il "vincitore adattivo" ha lookback incollato al bordo il 100% del tempo = TSMOM costante a 20g (corr 1.000, dSh 0.00 in 8/8 anni e 0/12 ancore); isolando le celle davvero adattive -> NEUTRAL, corr→TP01 0.90 = TP01 travestito |
| 2 | GROWTH-POLICY | LEAD (condizione, non data) | il libro gira al 7% di Kelly e raccoglie il 15% della crescita massima in log; il gradino eseguibile 1.00x->1.25-1.50x vale 14.7a -> 12.9-11.6a al muro. Ma un solo giorno -10% all'anno porta k* da ~10x a 2x: non si decide su un conto vero con la lente close-only |
| 12 | ORTHO-SCREEN | SCARTATO 7/7 | nessuna famiglia arriva a ADDS+DSR; e il motivo e' aritmetico: su 168 trial il massimo atteso dal rumore e' Sharpe 1.572, SOPRA il soffitto direzionale misurato (~1.3) -> uno screen largo su BTC/ETH direzionale non puo' passare un DSR, per costruzione |
| 3 | XS-LITE | SCARTATO (come sleeve) + 1 soglia pubblicata falsificata | concentrare XS01 non crea uno sleeve nuovo (corr 0.81-0.96 col canonico, DSR FAIL, de-levering non superato) — ma il muro "XS01 serve ~$20k" e' misurato su una diagnostica di TURNOVER: il ribilancio vero smette di passare sotto |
| 10 | FLOW-SQUEEZE | SCARTATO (2 motivi indipendenti) | meta' dell'ipotesi non esiste nel dato (liquidation_*_risk = una sola categoria in 17.229/17.229 righe); l'altra meta' e' sotto la propria soglia di potenza dichiarata prima (MDE 1,056% vs effetto 0,402%) ed e' comunque morta alla nascita (la colonna non e' ricostruibile) |
| 11 | VRP-QUOTE-VERE | SCARTATO + 1 difetto di RACCOLTA in produzione | il campione contiene l'astensione della strategia (0/19 settimane passano IV-rank>0.30) e il titolo non sopravvive all'ora d'ingresso; ma soprattutto: collect_chain.py raccoglie la famiglia di contratti che il conto NON puo' marginare |
| 7 | TERM-STRUCTURE | SCARTATO + 1 LEAD stretto (decisione 2027-02-01) | la pendenza e' un termometro contemporaneo (picco CCF a lag −1h/0h); il carry non paga il bid-ask (18,6 giorni di roll-down per pagare UN round-trip); come gate e' la 5ª occorrenza della ridondanza col trend |
| 6 | OI-PIN | SCARTATO | il max-pain batte uno strike casuale ma non batte mai (0/24) la media a 7 giorni dello spot, un livello che non usa NESSUN dato di opzioni: non e' pinning, e' reversione verso il centro recente con l'OI come stimatore rumoroso di quel centro |
| 8 | VOL-SIZE | LEAD RIDIMENSIONATO — gate 22/12 gia' fallito oggi | dare a SKH01 una size per-trade regge a 23/23 ancore, 8/8 anni, null di permutazione e trasferimento su V1 — ma vale +0,07 di Sharpe di libro, un terzo della fortuna d'ancora del libro stesso (+0,196). Il vol-target di libro e' invece falsificato: compra peso SKH gia' respinto e peggiora l'eseguibilita' |
| — | XSR-REPRO (integrita') | 🚨 DIFETTO DI PRODUZIONE | il numero 1.82 e' SPIEGATO e non era sbagliato (era su una terza lente, e su una barra non ancora chiusa) — ma cercandone la causa e' emerso che paper_xsr registra ~41 minuti di mercato al giorno, non un giorno. Tre gate pre-registrati leggono serie costruite cosi' |
| 5 | SKEW | SCARTATO (Q1, Q2) + LEAD (Q3, gate 2027-02-22) | il prezzo muove lo skew (t 3,1-9,4 su 8/8 test), non il contrario (max |
| — | HL-EXEC (audit di fatto) | 3 falsificazioni misurate | il pavimento vero e' $10 (non $5) e il taker 4,50 bps (non 5,0) — ma il "XS01 serve ~$20k" e' refutato del tutto (nessuna soglia da min-order), il "XSR01 ~$5.000" e' conservativo di 1,7x (vero ~$3.000), e lo slippage "rischio #1" di XSR01 e' refutato con margine 21x |
| — | SLIP-AUDIT (audit di fatto) | SCARTATO = nessun costo nascosto a questa taglia | i backtest a 10 bps RT restano conservativi di ~1,5 bps/lato; nessuna evidenza di impatto sopravvive al null (p=0,274; estremi avversi 1/18 contro 4,7 attesi). Ma la misura ha una data di scadenza |
| — | SCETTICO su GROWTH-POLICY | REGGE (condizione bloccante DECADUTA) | la lente wick accoppiata non cambia il gradino: e' un ricarico moltiplicativo costante ~3,5% sul maxDD, non un'amplificazione (Δ/k cala). Ma su una regola a UN giorno close-only e' esattamente cieca (rapporto INF) -> la lezione 25/07 e' vera e non si trasferisce |
| 13 | BASIS-CALENDAR | SCARTATO + 1 dataset nuovo | il basis dei futures datati E' il funding del perp quotato diversamente (7,33% contro 6,48%/anno): non e' un quarto lato del filone funding, e' lo stesso lato. Premio incassabile +0,85%/anno con IC95 che contiene lo zero |
| — | MONITOR-AUDIT (produzione) | 🚨 4 monitor su 6 rotti, ma la finestra NON e' persa | paper_statarb registra 4 minuti al giorno e il suo gate del 27/09 si ribalta su 2 criteri su 3 (Sharpe registrato +1,96 contro −2,02 ricostruito). La riparazione e' "riparare + RIGENERARE", non "riparare e azzerare": nessuna data di gate si sposta |
| 1 | PROP-ALLOC | LEAD (gate: XS01 fuori dalla sua finestra) + 1 ipotesi falsificata | riallocare per la barriera invece che per lo Sharpe vale +0,016 di J (il 4%): e' cio' che il conto del gambler's ruin prevedeva. Cio' che vale e' mettere XS01 su un conto funded (+0,400) — ma tutto il vantaggio poggia sul drift di XS01 misurato sulla sua finestra di scoperta |
Note che sopravvivono ai singoli filoni
9 — ADAPTIVE-HORIZON (r0822_adaptive_horizon.py, 112 trial dichiarati)
- Sanity: il baseline dell'agente riproduce TP01 canonico a max|diff| = 0.0 (n=2719).
- Il controllo giusto NON era TP01 ma il miglior lookback COSTANTE: senza quel controllo il null confonde "adattare paga" con "un orizzonte piu' corto paga su questo campione". L'agente se l'e' costruito da solo dopo aver visto l'argmax incollato al bordo, e ha dichiarato i trial in piu'.
- ⚠️ Segnalazione, NON proposta: 30/90/180 e' rango 18/24 in-sample nella propria famiglia di orizzonti (10/24 sull'hold-out), ma la superficie di L e' un crinale di rumore — il salto di Sharpe fra L ADIACENTI e' +0.18, cioe' il 47-67% dell'intero vantaggio del vincitore su TP01, ed estendere la griglia ha spostato l'argmax da L=20 a L=15. "Piu' corto e' meglio" e' un max-of-k su una superficie frastagliata. Nessun cambio a TP01.
- Riaprirebbe il filone: un rilevatore il cui L si muove DAVVERO che batta il miglior L costante (non TP01) in >=6/8 anni appaiati con corr→TP01 < 0.6 — es. BOCPD/PELT vero, non provato.
4 — DEALER-GAMMA (r0822_dealer_gamma.py, 136 statistiche dichiarate)
⚠️ DIFETTO DI DATO, il risultato piu' riusabile del filone: dealer_net_gamma e' il GEX col SEGNO
INVERTITO — corr -0.95 BTC / -0.89 ETH contro la ricostruzione da manuale sulla catena
(962/1116 snapshot, ~280-316 strike), fit dng ~ -0.7*GEX. Chi lo usasse col nome che porta
leggerebbe ogni regime al contrario. Spiega anche la contraddizione interna del file (corr fra
dng>0 e spot>flip = -0.28 / -0.92).
⚠️ Il file dichiara piu' di quel che ha: cadenza 15 min solo dal 2026-05-01; i 37 giorni
prima sono un punto al giorno -> 90 giorni, non 4 mesi. liquidation_long_risk e
liquidation_short_risk sono COSTANTI ('low' in 17.229 righe su 17.229 non nulle) = zero
informazione. gamma_flip_level congelato nel 61% dei passi su BTC.
- Gate: null de-levering FALLITO (baseline x0.6 stesso maxDD con Sharpe migliore); DSR 0.440
su 64 trial, e nel modo piu' netto — la cella migliore (+4.98 lordo) sta sotto il massimo
atteso dal puro rumore (+5.12).
marginal_vs_tp01inutilizzabile: su 90 giorni full e hold-out COINCIDONO (n_hold_days == n_days == 90). - Null location-matched (aggiunto dall'agente):
gamma_flip_levelbocciato — 96% di accordo conspot > SMA(720h)su ETH; su BTC la SMA nuda da' uno spread MAGGIORE. - Ampiezza effettiva: 73/59 episodi di regime ma 6-8 coprono il 78-86% del tempo -> n_eff 53 (BTC) / 24 (ETH) ore su 2.130. Il regime coincide col MESE (maggio long, giugno short, luglio long).
- ✅ Ricostruibile oggi dalla NOSTRA catena, meglio dell'originale (518 ore dal 01/08, ~209-262
strike/ora, quote_status ok ~100%, segno giusto) — ma la soglia non e' portabile (
dng=0corrisponde aGEX=+5.8e6su BTC): ricalibrarla sui 90 giorni sarebbe la selezione che il progetto rifiuta. Riapertura non prima di ~30-40 episodi di regime = ~2 anni (meta' 2028).
2 — GROWTH-POLICY (r0822_growth_policy.py, 241 celle dichiarate)
✅ Controllo di replica superato: il motore riproduce r0807_piano_netto §2 al numero pubblicato
(EUR250/m -> 19,8a / P 52%; EUR500/m -> 14,7a / P 99%) con path diversi.
📌 Il risultato strutturale: ogni gate del progetto e' INVARIANTE ALLA SCALA. Lo Sharpe misura
1,31 a OGNI cella del knob di leva -> deflated_sharpe e marginal_vs_tp01 non falliscono, non
vedono la variabile. E' per questo che la leva e' l'unica leva del libro mai esaminata in 2 mesi.
- Serie de-luckata x0,89: drift 17,11%/a, vol 11,37%, Sharpe 1,51, peggior giorno -3,95%. Netto fee E netto fisco d'accumulo (33% + carry 4a + patrimoniale 0,2%).
- k* empirico ~10-14x (banda 10x a 1500 path / 14x a 2500: la POSIZIONE non e' risolta), Kelly gaussiano 13,2x. Libro a k=1 -> g 17,0%/a, maxDD mediano 18,1%, P(DD>30%) 1,4%.
- Fragilita' che decide il verdetto: k* e' lineare nell'errore del drift (stimato su 7,4 anni) — -1 SE -> 10x, -2 SE -> 7x, drift dimezzato -> 7x, drift zero -> 0,5x. E allo stress di coda un giorno -10% all'anno porta k* a 2x, -15%/anno a 1x.
- ⚠️ Controllo di plausibilita' FALLITO dall'agente sul proprio output (e riportato): capitale mediano $4,4e12 da $600 a k=14x -> il modello assume ritorno indipendente dalla size. A k>2 i numeri sono aritmetica, non previsioni.
- Gate pre-registrato (condizione, non data): nessuna proposta di k>1 prima di rifare la curva con
la lente WICK ACCOPPIATA (
r0725_prop_coupled) — a leva il breach si valuta sul MINIMO, e la lente close-only usata qui e' quella misurata cieca il 25/07 (raddoppia i breach da daily-loss). - 📌 Sottoprodotto da verificare (tocca un'etichetta del libro live): a
target_vol=20%la vol realizzata di TP01 e' 12,14% — il target vale sulla posizione quando c'e', e TP01 e' long-flat. L'etichetta sovrastima il rischio preso di ~40%.
12 — ORTHO-SCREEN (r0822_ortho_screen.py, 174 trial: 7 famiglie x 24 + 6 controlli)
📌 Il risultato piu' riusabile dell'ondata, ed e' metodologico: il deflated-Sharpe va calcolato di screen (168 trial) e non solo di famiglia (24). Su quel pool il massimo atteso dal puro rumore e' Sharpe 1.572, cioe' sopra il soffitto direzionale misurato del progetto (~1.3). Conseguenza: una ricerca a rete larga su un singolo stream direzionale BTC/ETH non puo' passare il proprio gate — non e' sfortuna, e' aritmetica. Le ondate future o dichiarano famiglie molto piu' piccole in anticipo, o cambiano meccanismo (non-direzionale / cross-sectional). 📌 Per la prima volta nel progetto l'eseguibilita' a $600 non e' il vincolo binding di niente (haircut 0.00-0.01 su 7/7): muore tutto molto prima, sull'edge.
- Famiglie: RSKEW (skew realizzata), TACC (accelerazione del trend), VPX (volume-prezzo), XDISP
(dispersione dei 51 alt come timer), XCORR (corr BTC-ETH), XTAIL (dopo shock 3σ), VRAT
(variance-ratio). Miglior DSR di famiglia 0.633, di screen 0.034.
robust_oosFalse 7/7. - TACC e' l'unica ADDS (corr→TP01 0.09) ma il suo uplift hold-out vive tutto nel 2026 (2025 da solo −0.314) = finestra fortunata. E la domanda della famiglia ha risposta: e' il LIVELLO, non l'accelerazione — la cella scelta si riduce al ritorno a 5 giorni, corr +0.784 col momentum di livello.
- ✅ Tre falsificazioni che chiudono spazio: (1) la mean-reversion non torna in vita sotto due conditioner mai provati (volume, shock 3σ): la selezione in-sample sceglie il ramo di CONTINUAZIONE in entrambi i casi; (2) la dispersione dei 51 alt come timer di mercato e' negativa (−0.899 sulla sola finestra attiva, non e' un artefatto di calendario); (3) RSKEW e' il ritratto del fitting — miglior in-sample dello screen (1.281) e peggior hold-out (−0.494), col segno OPPOSTO all'a-priori teorico dichiarato.
- ⚠️ 6ª occorrenza del null del de-levering (VRAT, maxDD 4.4% ->
k*TP01fa meglio). - ⚠️ Due candidati hanno l'ancora canonica come PEGGIORE delle 8 (TACC, VRAT): la fortuna d'ancora non ha un verso fisso, e guardare solo il canonico a volte inventa un danno.
3 — XS-LITE (r0822_xs_lite.py, 26 celle + 120 valutazioni d'ancora)
✅ Repliche bit-exact prima di ogni delta: XS01 vs sleeves._xsec_returns e XSR01 vs
basket_from_positions(demean=True), entrambe max|diff| = 0.0.
📌 Falsificazione di un numero pubblicato: il muro "XS01 serve ~$20k" non e' un fatto di
Sharpe ma di turnover — e a capitale piccolo il min-order salta la deriva del vol-target
(|Δw| giornaliero 0.001) che non porta segnale, non il ribilancio (|Δw| 0.091-0.157). Capitale
minimo perche' il ribilancio passi: $109 (k=5) / $86 (k=3) / $64 (k=2) di sleeve. Stessa lezione
gia' imparata su TP01 nel 2026 ("a $600 il min-order e' gia' la banda ottimale") e mai applicata a
XS01. ⚠️ L'agente ha usato min-order $10 (Hyperliquid), non $5 (Deribit) — un audit dedicato
sta verificando i minimi veri del venue.
- Concentrare non ripara il rischio #1 di XSR01: XS-LITE regge oltre 50 bps/gamba, XSR-LITE muore a ~28 bps a ogni k, pieno incluso.
- La radice dell'ampiezza non descrive XS01: da 10 a 4 gambe si perde il 2% di Sharpe mediano-di-fase mentre N_hhi passa 6.9 -> 3.0 (il segnale sta negli estremi del ranking; le gambe 3-5 per lato aggiungono rischio quanto segnale). Il collasso arriva solo a k=1 (41%).
- ⚠️ Da inseguire — tocca un gate pre-registrato: lo Sharpe 1.82 di XSR01 NON si riproduce oggi.
Sulla finestra identica a quella di scoperta la lente "paniere" da' 1.75 e la lente "libro" di
paper_xsrda' 2.23; 1.82 non e' nessuna delle due. Spiegazione piu' probabile:data/rawe' gitignored e il cron riscrive i parquet HL ogni notte -> stesso codice, dati diversi (identico allo scoperto del 07/08 su GTAA/TLT). La decisione del 23/10 poggia su quel numero.
10 — FLOW-SQUEEZE (r0822_flow_squeeze.py, 118 trial dichiarati, griglia RIDOTTA per budget)
📌 Sottoprodotto con potenza vera, e chiude un filone: il funding non predice ne' direzione ne' volatilita' — misurato su 53.430 ore / 3 anni di funding Hyperliquid (li' la potenza c'e'): eccesso |<=0,35%| a 24h con segno instabile fra anni, |ritorno| futuro piatto e non monotono. Il filone funding, gia' chiuso su 3 lati come livello di carry, si puo' dichiarare chiuso anche come proxy di AFFOLLAMENTO. Quarto lato.
- Il "segnale" migliore (Sharpe 3,25 su 90 giorni) e' il massimo di 18 celle: DSR 0,103
(0,004 su 118 trial),
implausible_sharpe=True, e su 114 giorni il massimo atteso per caso e' Sharpe 5,40 -> il candidato sta sotto il proprio null. Il 71% del P&L e' in giugno, il 60% in 3 giorni su 114. - Il null "statica travestita" e' superato (sempre-short = −0,67), ma quello di timing casuale location-matched e' al 99,7° pctl che pero' e' il massimo di 18 -> P(per caso) = 0,06: non superato dopo il conto dei trial. Esempio pulito di come si legge un percentile alto.
- ⚠️ Ricostruibilita' MISURATA, non assunta: l'OI della catena (opzioni) contro la colonna dello snapshot (perpetual) da' Pearson +0,03 BTC / +0,21 ETH — non e' la stessa grandezza.
- 💡 Azione possibile, costo quasi nullo (NON eseguita, tocca il cron di produzione): accendere
un collettore orario dell'OI dei perpetual Deribit (una GET/ora, API pubblica). Non ripara
questo filone, ma da quel giorno la storia comincia; oggi ripartirebbe da zero. Il criterio di
falsificazione e' gia' scritto dall'agente: >=12 mesi, eccesso oltre la MDE (~0,3%) e presente in
=3 trimestri su 4.
- ⚠️ Distinzione metodologica utile (nata contraddicendo il suggerimento del coordinatore): qui il vincolo binding NON e' la concentrazione degli episodi (86-87 episodi corti, i primi 8 coprono solo il 20-25% delle ore) ma la lunghezza del calendario (90 giorni). Ampiezza scarsa e calendario corto sono due diagnosi diverse e si curano in modi diversi: piu' episodi vs piu' tempo.
11 — VRP-QUOTE-VERE (r0822_vrp_real_quotes.py, 60 trial + 9 ancore d'ingresso)
🚨 IL RISULTATO DI PRODUZIONE — collect_chain.py interroga {"currency": "BTC"|"ETH"}, che su
Deribit restituisce le sole opzioni INVERSE (regolate in BTC/ETH). Il conto e' in USDC (esegue
BTC_USDC-PERPETUAL). Esiste una famiglia USDC-lineare con lotto minimo 10x piu' piccolo:
| famiglia | min lotto | ~$ per lotto |
|---|---|---|
| BTC inverse | 0.1 | ~$7.700 |
| BTC_USDC | 0.01 | ~$780 |
| ETH inverse | 1.0 | ~$2.500 |
| ETH_USDC | 0.1 | ~$250 |
| Quindi il muro pubblicato "BTC opzioni min 0.1 = $6.210/lotto -> FUORI a $3.000" (congelato in | ||
tests/test_vrp_profit_take.py) e' misurato sulla famiglia che il conto non puo' marginare. |
||
**3ª occorrenza dello schema fee_watch (21/08): un controllo/collettore puntato su uno strumento |
||
| diverso da quello che si trada.** | ||
| ⚠️ MA la verifica indipendente del coordinatore cambia la conclusione, e in meglio: contando | ||
l'open interest famiglia per famiglia (get_book_summary_by_currency, misura mia, non dell'agente) |
||
| famiglia | strumenti | con OI>=100 |
| --- | --- | --- |
| BTC inverse | 1038 | 415 |
| ETH inverse | 932 | 548 |
| BTC_USDC | 686 | 5 |
| ETH_USDC | 660 | 119 |
| -> conteggio corretto come FATTO, **ma l'inferenza che ne ho tratto io ("BTC_USDC e' praticamente | ||
| morto") e' SBAGLIATA**: vedi filone 14 — su queste famiglie l'OI e la negoziabilita' sono | ||
| anti-correlati, e BTC_USDC ha il 93% dei put quotati a due lati. **Il muro sul BTC resta | ||
| per il PREZZO del lotto ($772 su un conto da $635), non per la liquidita'.** | ||
| ETH_USDC resta la gamba giusta su cui puntare, ma per spread e prezzo del lotto (filone 14), | ||
| non per il conteggio di OI. | ||
| ❌ Sottoprodotto RITIRATO: avevo scritto che *"esiste un universo opzioni USDC piu' liquido di | ||
| BTC_USDC (SOL 341, XRP 250, HYPE 172, AVAX 146 con OI>=100)"*. Falso nel senso che serve: quelle | ||
| famiglie hanno piu' posizioni aperte e meno quote — SOL_USDC ha il 9% dei put quotati a due | ||
| lati contro il 93% di BTC_USDC, e il suo miglior bid sta a un tick. |
- Il campione misura la strategia mentre STA FERMA: 0/19 settimane passano il gate IV-rank>0.30, DVOL alla mediana del 7°/11° percentile storico, sottostante +25%/+44%.
- ✅ Replica indipendente del f del 30/07 su campione piu' lungo: f = 0,714 pooled (IC95 [0,690, 0,779], 0/19 osservazioni >= 1,0). Attraversare lo spread costa ~10% del credito.
- ⚠️ Correzione a un numero pubblicato: il forfait fee del sleeve sovrastima il listino vero di 1,44x (BTC) / 1,80x (ETH), non di "~2x". Il segno (conservativo) regge, la taglia no.
- ⚠️ Rischio sul MINIMO, non sulle chiusure: peggior mark infra-settimana mediana −6,4% del rischio, minimo −91,0%; fra le settimane chiuse in utile, minimo −56,9%.
- Gate:
implausible_sharpeFLAGGED su entrambi (0 perdite su 10 -> regola del tre: tasso vero fino al 30%, su un payoff che perde 7,4x il credito);deflated_sharpenon calcolabile (T=10) e l'agente si e' rifiutato di fabbricare una griglia giornaliera al 94% di zeri per superare il T>=30; banda d'ancora: canonico all'89° pctl, mediana onesta 1,45, banda che include il negativo. Il titolo annualizzato (32,58) e' stato deliberatamente non riportato come risultato. - ⚠️ L'agente ha refutato in corsa una propria conclusione: spostare l'ora d'ingresso cambia QUALI STRIKE corrispondono al delta obiettivo -> non e' lo stesso trade un'ora dopo, e' un'altra struttura; la media BTC cambia segno fra le ancore (−1,35% -> +11,22%).
7 — TERM-STRUCTURE (r0822_term_structure.py, 312 trial dichiarati)
🚨 MURO DEL DATO, e vale per ogni filone che usa la catena ereditata: prima del 2026-06-09
bite_archive raccoglieva UNA SOLA SCADENZA per giro (mediana 1, max 1) -> la curva non
esiste. La finestra utilizzabile non e' "3,7 mesi": e' 74 giorni, SE(Sharpe) ~ 2,2.
✅ Ricostruzione certificata contro due riferimenti indipendenti: vs il logger vol_term_*
corr 0,992-0,997 (scarto 0,00-0,30 pt-vol); vs DVOL corr 0,94 con bias −2,2/−2,8 pt-vol = il
segno atteso (DVOL integra lo smile).
- Il test piu' informativo e' quello di RISOLUZIONE: l'unica correlazione col futuro che sembrava qualcosa (h=5g: +0,29/+0,32, 94°/98° pctl vs null a blocchi) cambia SEGNO togliendo l'ultima settimana (−0,22/−0,17). Sette giorni su 70. Nella regressione controllata per il ritorno passato il t di Newey-West sta sotto 1,0 a ogni orizzonte.
- Il confronto che uccide il candidato: il buy&hold sulla stessa finestra. Mediana appaiata su
24 ancore vs B&H = +0,14 (14/24) su BTC e −0,65 (1/24) su ETH. La banda d'ancora
gate_pass=Truein isolamento e' inutile: il B&H passa lo stesso gate. - Confound proprio del filone, misurato: corr(pendenza, RV passata) −0,50/−0,57 contro RV
futura −0,39/−0,38 -> la pendenza e' il premio di vol con la gamba realizzata sostituita da
una implicita = la variabile di
dvol_directional(gia' HEDGE, earns_slot=False su 5 anni). deflated_sharpeNON girato, e la motivazione e' il risultato: su 74 osservazioni l'incertezza di CAMPIONE domina di un ordine di grandezza quella da SELEZIONE — deflazionare 312 trial darebbe un numero preciso e privo di senso.- 📌 LEAD stretto e pre-registrato (l'unico numero non banale: corr(pendenza, RV futura) −0,39): la term structure come previsore di VOL, non di ritorni. Decisione 2027-02-01, si riapre solo se (a) corr <= −0,30 su entrambi gli asset E (b) batte il DVOL a tenore singolo in R² incrementale E (c) supera il null del de-levering. Se (b) fallisce, il filone si chiude.
- ⚠️ Tre bug propri catturati in sessione, tutti del tipo che passa i test pigri: il null del de-levering cercava il primo k salendo invece del piu' grande; la RV futura aveva uno shift di troppo; l'ATM vettorializzato e' stato verificato contro il prototipo (23.544/23.545 righe identiche).
6 — OI-PIN (r0822_oi_pin.py, 516 trial dichiarati, 73 scadenze/asset)
✅ Potenza dichiarata PRIMA di guardare (e questa e' la ragione per cui il verdetto e' credibile): MDE a hte 12 = 0,46%/trade; effetto max-pain osservato +0,273% = SOTTO il proprio MDE. 📌 Il null che decide: il placebo senza opzioni. La cella migliore fa Sharpe 5,59 e batte gli strike casuali (6/72 contro ~2 attesi), ma 0/24 contro la media a 7 giorni dello spot, con cui condivide il 68-77% del segno. Non e' pinning verso uno strike: e' reversione verso il centro recente, e l'OI e' solo uno stimatore rumoroso di quel centro.
- DSR 0,290 (288 trial): lo Sharpe-null atteso e' 6,79 > 5,59 osservato — su 75 giorni il
massimo del rumore batte il risultato.
implausible_sharpescatta. I 5 giorni migliori valgono il 61% del log-equity. - ⚠️
marginal_vs_tp01non puo' dare ADDS per costruzione su questa finestra:multicutvuole=2 tagli annuali da >=120g e
has_insample_edgee' True per default perche' non esiste pre-2025. Un NEUTRAL qui non e' un giudizio. - Haircut a $600: +0,000 (si esegue sul perp) — 2ª conferma che l'eseguibilita' non e' piu' il vincolo binding di questa ondata.
- ⚠️ REGOLA NUOVA (difetto proprio, trovato e corretto in sessione): un placebo si controlla per
BILANCIAMENTO DEL SEGNO prima di usarlo. Il placebo
jitconcordava in segno con la propria regola solo nel 14% dei casi (5% perjit_gex): non era un null, era la strategia invertita, e usarlo fabbricava 3 celle "significative" e un contrasto spettacolare (−8,6 di Sharpe). Un null pulito sta a ~0,50; sotto ~0,35 il suo delta va letto come ~2x il segnale.
8 — VOL-SIZE (r0822_vol_size.py, 28 trial + 23 ancore)
✅ Sanity bit-exact: ricomposizione trade-by-trade max|diff| = 0.0 contro run_asset e contro
sleeves._skyhook_returns().
❌ RITIRATO DALLO SCETTICO (vedi in fondo): il difetto qui sotto NON ESISTE su questo codice.
Lasciato a verbale perche' la regola era stata pubblicata e va vista insieme alla sua smentita.
🚨 DIFETTO DI METODO GENERALE, trovato dall'agente nella propria prima stesura e MISURATO invece
che cancellato: su uno sleeve a equity a GRADINO, un overlay giornaliero e' NON CAUSALE. Tutto il
P&L di un trade SKH01 e' contabilizzato il giorno di CHIUSURA, fino a 3,83 giorni dopo
l'ingresso; moltiplicare la serie giornaliera per <- RITIRATA, vedi sotto
🚨 REGOLA 2 — il null del de-levering e' DEGENERE quando la variante e' una ri-scalatura
(L_t (che usa solo dati <= t−1) passa
qualunque controllo di causalita' scritto sulla serie giornaliera — il look-ahead sta nella
CONTABILITA', non nella formula. Costo misurato: +0,04 di Sharpe hold-out fantasma.
REGOLA: un overlay si applica alla data d'INGRESSO, non a quella in cui il P&L viene contabilizzato.sh(k*base) === sh(base)): il test che serve non e' sul DD ma ISO-PESO sullo Sharpe, altrimenti
si sta solo misurando di quanto e' cambiato il peso di uno sleeve. Qui era decisivo: quasi ogni
variante alzava il peso effettivo di SKH fino a 0,375, e "alzare SKH01" e' gia' stato misurato e
respinto il 26/07.
📌 Il meccanismo NON e' quello ipotizzato: scomponendo la vol trailing di uno sleeve all'88% di
zeri nei due canali, il guadagno FULL viene dalla FREQUENZA (il solo filtro di attivita' fa
+0,051 su +0,061) e non dalla magnitudine (+0,003). Non e' controllo del rischio: e' un
filtro di frequenza, e va chiamato cosi'.
- Baseline del libro, stima onesta (mediana banda): 1,626 FULL / 1,037 HOLD / DD 10,4% — la fortuna d'ancora del libro vale +0,196 FULL / +0,448 HOLD.
- Cella congelata del LEAD (
VTL tv20 w90): size fissata all'ingresso =clip(0,20 / rv90(t−1), 0, 3). ISO dShFULL +0,070 (23/23 ancore), dShHOLD +0,101 (19/23), 8/8 anni positivi, null di permutazione superato in ENTRAMBE le terne di ancore provate, p <~ 0,03 (mediana del null −0,03/−0,05: riassegnare a caso la stessa distribuzione di size danneggia). ⚠️ Autocorrezione dell'agente, da rispettare: quel null gira su 3 ancore delle 23 per costo, e la TAGLIA dell'effetto varia di 3x fra due terne diverse della stessa banda (+0,033 vs +0,111 sulla stessa cella) -> i p-value non si citano a tre decimali: il numero da mettere a verbale e' il segno. Il resto del report e' su 23 ancore piene. - ⚠️
DSR = 1,000dichiarato VACUO, non PASS: lo passa anche il baseline — su una famiglia di perturbazioni della stessa strategia il deflated-Sharpe non ha potenza. Onesta' rara. - ⚠️ Punto piu' fragile, dichiarato: l'asse della finestra e' un picco, non un plateau (w30 nettamente negativo, w180 ~0).
- Gate pre-registrato — e non e' un forward (con SE(Sharpe)~1,4 sei mesi non possono misurare
0,07): e' un secondo trasferimento, la famiglia IV su SKH01_V1, dove il meccanismo dichiarato
prevede un effetto minore (lo stop e' gia' in ATR). Se invece l'effetto e' uguale, la
spiegazione e' sbagliata anche se il numero regge. Entro 2026-12-22, prima di qualunque
modifica a peso/config di SKH01. Deploy solo se ISO dShFULL > 0 in >=20/23 ancore E
weights_tilt_nullpassa. Book, pesi, cron, config INVARIATI.
XSR-REPRO (r0822_xsr_repro.py) — filone di INTEGRITA', non di alpha
✅ Il numero pubblicato e' spiegato e NON era sbagliato. 1.82 viene da una terza lente
(r0725_statarb_demean_skeptic.ret_from_pos, divisore fisso 50), non da quella che ha girato i
gate (basket_from_positions, divisore variabile). Sullo stato del dato del 25/07 ricostruito:
11 numeri pubblicati su 12 riprodotti (Sharpe netta 1.8164, lorda 2.6956, DD −2.585%, lag
1.82/1.19/0.81/0.50, Sharpe 2024 1.0297 / 2025 1.9752 / 2026 3.1078).
📌 Ma il numero di TITOLO e i numeri di GATE non sono mai stati la stessa serie: la lente dei
gate da' 1.79 — ed e' esattamente il "Sharpe 1.79" che il docstring dello scettico gia' citava.
DSR ri-calcolato oggi sulla lente giusta: 0.983 PASS (pubblicato 0.985) -> il gate DSR regge.
✅ L'ipotesi "il cron riscrive la storia" e' FALSIFICATA da due prove indipendenti: (a) il
registro del cron su 54 simboli, 25/07 vs 22/08, mostra crescita di esattamente 28 barre per
tutti con start_reale invariato; (b) lo Sharpe degli anni chiusi si riproduce al quarto
decimale attraverso quattro settimane di riscritture. Cambia una sola barra: l'ultima.
🚨 IL DIFETTO CHE CONTA — paper_xsr registra ~41 minuti di mercato al giorno.
fetch_hyperliquid gira alle 00:30 con END = oggi e scrive la barra del giorno in corso;
advance() processa le barre con ts > last_ts e porta last_ts su quella parziale -> le 23
ore e mezza restanti di ogni giorno non entrano in nessun rendimento registrato.
Misurato (28 barre appaiate contro il replay): 1/28 identiche · corr −0,045 · vol registrata
0,46% contro 2,74% ricalcolata (la strategia e' progettata a 2,3%). Rapporto di varianza 0,0286
-> ~41 min/giorno; stima indipendente dal volume: ~69 min.
✅ Verifica del coordinatore, indipendente: l'ultima barra di hl_btc_1d ha volume 1.274
contro 66.926 e 102.198 dei due giorni precedenti.
⚠️ monitor_health lo dichiara OK e non puo' vederlo: la serie e' fresca e senza buchi.
Una serie fresca, completa e SBAGLIATA passa ogni controllo di freschezza.
⚠️ Stessa forma di codice in paper_statarb (gate 27/09), che per giunta ha un docstring
"barre 1d chiuse" mentre consuma altlib.get(...,"1d") -> resample_tf, che non scarta il giorno
in corso. Segnalato come forma, non misurato -> audit dedicato in corso su tutti e 6 i monitor.
⚠️ Haircut, la seconda gamba del gate 23/10, e' piu' fragile della prima: ticket per gamba
mediano $3,33 / medio $5,98, 63% degli ordini sotto $5; il pubblicato $14,41 non ha alcuno
script committato che lo riproduca ed e' ~2,4x ottimista. A min-order $10 la guardia
formalmente passa ma si esegue un ordine su cinque — e il criterio pre-registrato non lo guarda.
📌 NUMERO ONESTO DA CITARE: lente dei gate, sole barre chiuse -> 1.79 (finestra di scoperta)
/ 1.63 (a oggi). Va sempre citata la coppia (lente, ultima barra chiusa), mai il numero nudo.
📌 GATE 23/10 COMPROMESSO: PARZIALMENTE — ammissione NO (storia chiusa stabile, DSR regge),
forward SI (metrica primaria su una serie scorrelata dalla realta'), haircut SI (parametro senza
script e ~2,4x ottimista). La finestra forward non e' recuperabile a posteriori; riparare
advance() la azzera. Scelta fra gate letto su strumento rotto e gate rimandato con contatore
nuovo: va decisa PRIMA del 23/10, non quel giorno.
5 — SKEW (r0822_skew.py, 37 trial dichiarati)
- Q1 (skew come segnale direzionale): SCARTATO, e non per mancanza di potenza — la potenza c'e' e falsifica. Il prezzo precede lo skew con t da 3,13 a 9,39 su 8/8 test e su entrambi gli asset; in avanti il max |t| su 16 test e' 2,35 contro 2,08 atteso dal rumore, e non replica sul secondo asset. L'unica cella con lead apparente crolla togliendo 4 giorni di rally su 24. DSR 0,163 FAIL; IC95 block-bootstrap sullo Sharpe: [−2,90, +5,86] (ampiezza 8,76).
- Q2 (skew come gate di de-risk): SCARTATO (non misurabile) — nella finestra TP01 e' attivo 5 giorni su 75 con maxDD 0,14%: non c'e' sinistro. Unica cosa leggibile: 5ª firma di ridondanza col trend (il gate spegne 16 giorni in cui TP01 era gia' flat, 16/16).
- 📌 Q3 — LEAD, ed e' il risultato della sessione. Il f=0,73 di VRP01 scomposto (attribuzione
esatta in log, i fattori si sommano):
causa fattore quota del difetto struttura a termine x0,869 42,3% spread denaro-lettera x0,904 30,5% skew x0,920 25,0% fit (controllo) x0,992 2,3% La riga che conta: il sleeve prezza un'opzione a 7 GIORNI col DVOL a 30 GIORNI, che nel 90% delle ore sta ~3 punti di vol sopra l'ATM a 7 giorni -> sovrapprezza ENTRAMBE le gambe. Il "+0,8pp sulla gamba corta" pubblicato il 30/07 — che faceva sembrare corretta la gamba venduta — e' la cancellazione di due errori da ~3pp (−2,97 di termine, +2,79 di skew). ⚠️ E il progetto aveva gia' codificato la regola il 03/07 ("riprezzare term-structure-consistent prima di credere a un numero da struttura BS-flat") e non l'ha applicata alla misura del 30/07. 📌 Verso, e non e' quello che sembra: f_termpassa da 0,83 (IV-rank basso) a 0,93(alto) e supera 1,0 in backwardation, mentre f_skewresta piatto (0,91-0,93) -> **la partemaggiore del difetto si annulla proprio dove il gate IV-rank fa tradare il sleeve**, quindi f=0,73 e' plausibilmente CONSERVATIVO li'. Non misurato: 0/22 ingressi passano il gate, e l'unico episodio ad alta vol del campione e' un rally, non un crash. In un crash i due pezzi vanno in direzioni contrarie e il netto e' ignoto. VRP_CFG["f"]NON cambiato.Gate pre-registrato: rimisurare a >=6 ingressi settimanali per asset con IV-rank>0,30 (il collettore li accumula da solo), revisione comunque 2027-02-22. - ✅ Confound di modello ESCLUSO e misurato:
f_markfit= 0,992 (la mark IV di Deribit riprezza i propri mid entro l'1%) -> RR/BF sono un fatto di prezzo, non l'output del fit. - ✅ Controllo positivo cablato nello script: con l'ancora assunta a :30 invece del
ts_maxosservato compare un falso lead a +15m (0,102 contro 0,031) — "e' l'errore che avrei pubblicato senza quel controllo". - ✅ Smile vettorizzato (512s -> 2,0s) verificato bit-exact contro il ciclo lento su 21.244 celle.
- ✅ Convergenza indipendente con l'agente TERM-STRUCTURE: 75 giorni utili (l'altro trovava 74).
HL-EXEC (r0822_hl_exec.py, 132 simulazioni, 0 celle di segnale = 0 selezione)
✅ Identita' con la produzione prima di ogni delta: sim_libro == paper_xsr._step a
max|diff| 5,4e-20; XS01 == _xsec_returns() a max|diff| 0,0.
✅ Verifica MAINNET (il progetto e' nato da un feed testnet): 51/51 asset, deviazione mediana
2,21% su feed vecchio 17h contro un movimento tipico del 2,81%; cross-check su terzo venue
BTC Deribit $77.997 vs HL $77.339 = −0,84%.
Parametri assunti -> misurati: min order $5 -> $10 (docs + 3.827 livelli a un ordine:
minimo $10,63, p01 $12,02, 0,0% sotto $10); taker 5,0 -> 4,50 bps (due fonti indipendenti
coincidono); slippage non modellato -> 1/2 spread 0,7 bps (19 major) / 1,0 bps (coda), max 4,5;
tier VIP: a $600-20k sempre tier base.
📌 XS01: la soglia dei $20k non esiste. Origine del numero pubblicato: "rumore di
arrotondamento", stima a occhio del diario 19/06. Misurato: haircut ~0 gia' a $200-600 allocati;
a $600 lo Sharpe passa 1,33 -> 1,30. E il meccanismo spiega perche': gli ordini sono due
popolazioni — il ribilanciamento del segnale (ogni 10g) e' il 13% degli ordini ma il 75% del
nozionale, ticket mediano $13,65 -> passa sempre; la deriva del vol-target giornaliera e' l'87%
degli ordini ma il 25% del nozionale, ticket $0,64 -> il pavimento la taglia, ed e' gratis.
Contare gli ORDINI da' 16% e sembra un disastro; contare il NOZIONALE da' 75% e spiega perche' lo
Sharpe non si muove. (Convergenza indipendente con XS-LITE, che era arrivato allo stesso meccanismo
con numeri diversi.)
✅ Fortuna di fase girata anche qui (l'haircut e' un Δ): 10 fasi, mediana delle differenze
appaiate +0,007, banda [−0,060, +0,061], 0/10 fasi con danno > 0,10.
📌 XSR01: soglia vera ~$3.000 (non $5.000 — sbagliata nella direzione sicura). Banda sui
pavimenti $8/$10/$12: ROTTO <=$1.000, INDECIDIBILE $1.500-2.000, ok >=$3.000.
📌 Slippage refutato come rischio #1 al livello di liquidita' odierno: lo Sharpe scende sotto
1,0 a ~20 bps/gamba = ~16 bps di slippage = 21x quello misurato. ⚠️ L'agente dichiara il limite:
3 snapshot = 172 secondi di oggi, una fotografia, non tre osservazioni. E' il MARGINE (21x) che
regge la conclusione, non il livello.
🚨 Due conseguenze che l'operatore deve vedere:
- Il "$20k" di XS01 e il "$20k" della DECISIONE DI VENUE (26/07) sono due cose diverse che CLAUDE.md ha conflato. Quello di XS01 cade; quello di venue REGGE intatto — e' una decisione dell'operatore su un altro asse (la rovina da fallimento exchange), non sull'eseguibilita'. XS01 resta fuori dal live per la decisione di venue, non per taglia.
- La gamba di eseguibilita' del gate 2026-10-23 e' tarata su un vincolo che a $5.000 non morde
(haircut li' −7%...+2%): una condizione pre-registrata che non puo' fallire non e' una
condizione. L'agente non ha anticipato il gate: la soglia Sharpe>=1,0 resta al 23/10.
⚠️ Terza spiegazione dell'1,82, complementare alle altre due:
r0725_statarb_basket_gateaddebita "2 gambe per coppia" = 50 alt + 50 gambe BTC fantasma, ma il demeaning annulla algebricamente la gamba BTC (sum(w)=0) — che e' la ragione stessa per cui XSR01 esiste. L'intuizione del demeaning era stata applicata all'AMPIEZZA e non ai COSTI. 📌 Quadro conciliato delle tre lenti (i due agenti concordano sul fatto, non sull'attribuzione del singolo decimale): titolodemean_skeptic1,82 · gatebasket_gate1,75-1,79 (fee raddoppiate su una gamba inesistente) · monitorpaper_xsr2,21. La lente che ha girato i gate e' quella PESSIMISTICA -> il DSR 0,983 PASS e' stato calcolato su una serie conservativa.
SLIP-AUDIT (r0822_slip_audit.py, 18 fill reali, ~14 varianti dichiarate)
✅ Fee sul NASTRO: 5,00 bps/lato prima del 2026-08-01, 3,50 dopo (16/16 esatti). Il taglio
Deribit e' visibile nei fill reali -> conferma indipendente di fee_watch (che legge il tier
dichiarato, non le esecuzioni) e della regola pre-registrata del 26/07 (<=5 bps -> non si tocca
nulla). Il listino si e' mosso nel verso buono.
- Slippage d'esecuzione (riferimento 5m): mediana −4,65 bps, IC95 [−34,6; +20,6]; statistica normalizzata +1,54 bps [−1,30; +4,47]. Conversione con la curva pubblicata: dSharpe −0,026 / dCAGR −0,35 pp.
- ⚠️ Autocorrezione della propria potenza: il null empirico e' 1,43x piu' largo
dell'uniforme assunto -> MDE vera 7,2 bps, non 5,0. Con n=18 nessuna via statistica risolve
1,5 bps — dichiarato invece di spacciare l'IC per una risposta.
📌 Esperimento naturale, il caso peggiore del campione: il fill del sabato 18/07 (ETH $74) e'
stato il 21,9% del volume della sua barra 5m, e quella barra ha avuto un range di 1,08 bps,
col nostro print a meta' (q=0,48). Un ordine che prende un quinto del nastro e lascia il prezzo
entro 1 bps e' la prova diretta che a questa taglia il libro non cammina il book.
🚨 La misura ha una DATA DI SCADENZA, e va scritta accanto al numero: la partecipazione scala
lineare -> quel 22% diventa 172% di una barra 5m a $5.000 e 687% a $20.000. Non si
estrapola: va rifatta a ogni salto di taglia. E' il muro di eseguibilita' gia' noto ma sull'asse
dell'attrito invece che del min-order. ⚠️ E il caso peggiore cade di sabato, dove TP01 fa il
38% del proprio gross.
⚠️ Due difetti del dato, trovati PRIMA di misurare (e ciascuno avrebbe prodotto un numero
plausibile e falso):
(a)
ts_utcinbook_executions.jsonlnon e' l'ora del fill ma l'etichetta dell'ultima barra del feed (18/18 dicono00:00:00; il fill #1 e' etichettato 08/07 ed e' stato eseguito il 14/07 = impronta del feed-freeze gia' noto). L'ora vera esiste solo inlogs/cron_book.log: senza recuperarla, ogni confronto "al prezzo dell'ora del fill" misurerebbe la mezzanotte. (b) Il feed certificato e' il perpetual INVERSE, il libro trada il LINEARE USDC — 4ª occorrenza dello schemafee_watch: misurare lo slippage sul feed certificato avrebbe misurato la base, non lo slippage (base misurata: BTC −0,03 bps, ETH −0,27). ⚠️ Con n=18 la media in bps e' inservibile — un solo giorno (19/08, ETH +14% in 6h) la ribalta: si cita la mediana. EREF-A(−50 bps) non e' slippage: e' la differenza di FASE fra l'ora del cron e la chiusura giornaliera, gia' misurata bene il 26/07 su 24 ancore appaiate.
SCETTICO su GROWTH-POLICY (r0822_leverage_skeptic.py, ~175 celle, griglia ridotta a k<=5x e dichiarato)
✅ Replica superata TRE volte prima di ogni numero nuovo: marginali del gap 25/07 (p50 −0,16 /
p90 −1,03 / p99 −2,71 contro −0,17 / −1,03 / −2,70), meccanismo del decile (~3x, pubblicato ~3x),
e €500/mese -> 14,7a / P<=20a 99% al numero pubblicato.
✅ Controllo positivo superato: una lente indipendente (gap rimescolato) sovrastima il maxDD di
+0,13pp su +0,45 e i breach daily-loss di 1,5-2,4x — stesso verso e taglia del finding 25/07
("2,0-2,9x"). La macchineria ha potenza, quindi il suo "nessuna differenza" vale.
✅ Risoluzione MC dichiarata: 0,01%/a nella regione eseguibile, 0,05pp sul Δ appaiato di maxDD ->
le differenze riportate (0,45-0,76pp) sono 9-15x la risoluzione.
📌 RISPOSTA ALLA DOMANDA: NO, l'effetto e' SOTTO-proporzionale. Il rapporto fra le due maxDD e'
piatto a 1,025-1,037 su tutta la griglia e Δ/k cala (0,478% -> 0,217%). Meccanismo: il
maxDD e' una statistica MULTI-GIORNO, il wick e' un fatto di UN giorno. Tempo al bersaglio
identico fra le due lenti; guadagno appaiato 1,00x->1,50x = 2,88 anni in entrambe.
Nessuna liquidazione a nessun k<=5x sotto nessuna lente (servirebbe 12,3x sul peggior giorno vissuto).
🚨 IL RISULTATO TRASFERIBILE — la lezione del 25/07 e' vera e NON si trasferisce. Su una regola a
UN giorno l'accoppiamento cambia tutto: a soglia daily-loss 5% e k=1,00-1,25 close-only conta
0,00 breach/anno dove il vero ne conta 0,40 e 1,21 (acc./close = INF, cecita' esatta); a
soglia 3% e k=1, 0,40 contro 2,28 = 5,7x. Su una statistica multi-giorno lo stesso difetto
vale 3,5%. ⚠️ Non assolve close-only in generale: sul canale PROP/FUNDED, dove il vincolo
binding E' una regola di daily-loss per-conto, la lente accoppiata resta OBBLIGATORIA.
⚠️ CORREZIONE a una spiegazione pubblicata (il fatto regge, la spiegazione no): il 26,8% di
giorni con m == R non sono "il giorno brutto che chiude sul minimo" — stanno nei decili
CENTRALI (56-88%), i giorni in cui il libro e' flat. Nel decile peggiore chiude sul minimo
il 4%. E un giorno di crash chiude quasi sul proprio minimo (gap medio nel 5% peggiore
−0,62% contro −1,75% nel 5% migliore) -> la lente accoppiata non peggiora lo stress di coda.
📌 Il gradino 1,00->1,50 resta NON AUTORIZZATO — cade una delle tre riserve, non le tre.
Restano: drift stimato su 7,4 anni, e coda assente dal dataset (un giorno −10%/anno porta k* a 2x).
Unica colonna a favore della prudenza: P(sfondare una soglia FISSA) e' amplificata piu' del maxDD
(1,26x a k=1) perche' vicino alla soglia la densita' e' fitta — e' quella la colonna con cui si
costruisce una frontiera iso-rischio, non il maxDD mediano.
📌 ATTACCO 2 — il 12,14% di TP01 e' VERO, ma il meccanismo dichiarato e' META', e la strada
implicita e' REFUTATA. Scomposizione esatta, verificata sullo sleeve di produzione:
20,00% x 0,682 (dentro la gamba) x 0,890 (diversificazione BTC/ETH, corr 0,59) = 12,14%.
E il x0,682 sono due meta' quasi uguali: flat nel 44,3% delle barre (x0,746) e convinzione
parziale quando non e' flat (tsmom_blend = media di 3 segni: 1/3 o 2/3) (x0,789).
"TP01 e' long-flat" spiega circa META' — e la differenza non e' accademica: essendo
convinzione, alzare target_vol aumenta la size proprio nei giorni in cui il segnale e' piu'
debole. Il terzo fattore (x0,89) non e' un difetto d'etichetta: e' diversificazione, ed e'
cio' che si vuole.
⚠️ E TP01 e' un caso particolare, non la regola: XS01 dichiara lo stesso 20% e ne realizza 20,59%.
🚨 target_vol e k NON sono la stessa leva (e non per il leverage cap, che non morde: 0-1% di
barre al cap fino a tv=60%): target_vol scala il 75% del libro e lascia fermo il 25% -> a
tv=30% il libro non e' piu' 75/25 ma 82/18, a 60% 90/10. E' simultaneamente una leva e un
tilt di pesi, e il tilt FALLISCE weights_tilt_null (gate_pass=False, delta_insample −0,0815
a tv=30% / −0,2187 a tv=60%). A pari scala 1,50 il libro via target_vol fa Sharpe 1,72 contro
1,82 via k. -> la strada pulita per un puro cambio di SCALA e' il cap di config, non il target_vol.
✅ Cosa cambia dei numeri pubblicati: NIENTE di misurato — ogni Sharpe/maxDD/muro/traiettoria e'
calcolato sulla serie realizzata; target_vol non compare in nessuna formula di rischio a valle.
❌ Ipotesi dell'agente refutata dal suo stesso numero: i contributi di rischio sono 73/27
contro pesi 75/25. Cio' che resta: sbaglia chi legge l'etichetta, non chi legge i pesi —
un lettore che prendesse "20%" per buono attribuirebbe a TP01 l'89% del rischio invece del
73%, cioe' sbaglierebbe di 16 punti proprio la domanda "quale gamba mi fa male".
📌 Il test di guardia test_leva_massima_da_config_resta_sotto_o_uguale_a_1x non protegge "la leva
e' pericolosa": protegge la conclusione del 26/07 secondo cui la liquidation fee 1% di Deribit e'
irrilevante, che vale interamente perche' a <=1x servirebbe un movimento avverso ~100%. Chi alza il
cap deve rifare r0726_fee_sensitivity, non aggirare l'assert.
13 — BASIS-CALENDAR (r0822_basis_calendar.py, 108 celle dichiarate)
✅ HA COSTRUITO UN DATASET CHE IL PROGETTO NON AVEVA, e contiene la coda che mancava a CC01.
Deribit purga le liste di strumenti scaduti (get_instruments?expired=true ritorna 1 solo
strumento) -> la via ovvia e' chiusa. Ma i nomi dei trimestrali sono deterministici (ultimo venerdi'
di MAR/GIU/SET/DIC 08:00 UTC) e get_tradingview_chart_data serve la storia completa di un
contratto SCADUTO se il nome lo si costruisce a mano: 30/30 trimestrali 2019Q1-2026Q2 rispondono
ok. Risultato: BTC 34 contratti / 240.150 barre orarie (2018-09 -> oggi), ETH 34 / 233.334,
piu' 64.110 ore di funding e indice per asset. Include il deleveraging 2022 — esattamente la
coda che a CC01 mancava per costruzione.
Certificato: barre flat 0,7-1,0% per dte<180g; convergenza a scadenza |ln(F/indice)| mediana 33-47
bps; cross-check indipendente col forward implicito nella catena opzioni: mediana −0,6 bps.
Roll gestito in spazio contratto (nessuna serie incollata -> nessun salto sul giunto).
📌 Il risultato: il premio a termine e' REALE ma e' il PREZZO DELLA COPERTURA, non un edge.
Basis BTC mediana +6,33%/anno, contango 84,9% del tempo, slope positiva 97,4%. Ma implicito
+7,33%/anno contro funding realizzato sulle finestre appaiate +6,48% -> premio incassabile
+0,85%/anno, IC95 [−1,00, +2,92] che CONTIENE LO ZERO (ETH +2,55%). A 60-100 giorni (il bucket
meno rumoroso) +0,30% BTC / +1,70% ETH contro ~1,4%/anno di costo d'esecuzione.
Quindi i futures datati NON sono un quarto lato della domanda funding: sono lo stesso lato quotato
diversamente, e il filone funding resta chiuso su tre lati senza che ne esista un quarto.
📌 E questo filone NON e' CC01, misurato: implausible_sharpe False — barre in perdita
49,9%, maxDD 18,2% -> la coda e' PRESENTE. Li' il rischio era fuori dal campione; qui e'
dentro e l'edge semplicemente non c'e'. Distinzione che il gate del 26/07 e' stato scritto per fare.
- Cella scelta in-sample-only: Sharpe +0,13 / hold −2,44. Distribuzione dei 108 Sharpe: mediana −5,19. Con 7,4 anni e vol 4,9% la SE del rendimento annuo e' 1,79pp: sotto ~3,6pp/anno nulla e' distinguibile da zero. Null de-levering REFUTED (TP01 a k=0,05 fa DD 0,75% con Sharpe 1,31).
- Test decisivo del filone: ritardo d'esecuzione 1h/2h/24h -> Sharpe 0,13/0,13/0,10 -> non e' microstruttura da prezzo stantio; non c'e' edge da falsificare.
- ⚠️ 3ª volta in questa ondata che l'eseguibilita' NON e' il vincolo: lotti minimi $10 BTC inverse / $7,73 BTC USDC / $1 ETH / $2,42 ETH USDC; servono 4,1x per gamba (~$148 di margine iniziale a $600).
- ⚠️ Limite dichiarato e NON appianato: le due lenti sul premio (hold-to-expiry vs backtest rollato) discordano nel SEGNO restando entro ~1,5 SE l'una dall'altra e dallo zero. Non si puo' stabilire il segno di una grandezza da ~1%/anno con 7 anni di dati a vol 5% — ed e' proprio questo che rende il filone non deployabile.
- Riaprirebbe il filone: il premio a 60-100 giorni stabilmente sopra ~4%/anno (2 SE sopra
zero E sopra il costo), cioe' un regime in cui basis e funding si scollano (marzo 2020, giugno
2022 — ma per giorni, non per trimestri).
⚠️ Tre errori propri catturati prima di pubblicare: (a) il
volumediget_tradingview_chart_datae' in valuta base, non USD -> la prima stesura sbagliava la liquidita' di ~5 ordini di grandezza; (b) il primo test d'ancora azzerava i rendimenti fuori dall'ora scelta = un'altra strategia, non un'ancora; (c) un gate che stampaNoneva verificato prima di dichiararlo "non girato" — stampava le chiavi sbagliate. ✅ Disciplina di rete rispettata: <=2 req/s e sospensione automatica nella finestra :25-:29 dicron_chain(verificato: si e' sospeso da solo per 264s).
SCETTICO su VOL-SIZE (r0822_volsize_skeptic.py, 43 valutazioni x 23 ancore)
✅ Replica bit-exact prima di ogni attacco: gamba 50/50 vs sleeves._skyhook_returns()
max|diff| = 0,0; e il titolo riprodotto esattamente (+0,070 ISO dShFULL 23/23, +0,101 HOLD).
🚨 RITIRA UNA REGOLA PUBBLICATA POCHE ORE PRIMA — il difetto di contabilita' NON ESISTE.
backtest_signals fa equity[i_ent:i_ex+1] = capital: il P&L e' contabilizzato al giorno
d'INGRESSO in 291/293 (99,3%) dei trade multi-giorno, all'uscita in 4. Troncando i dati
alla barra d'ingresso e ricalcolando le size da zero: 50/50 identiche, max|diff| = 0,0. E la
"riparazione" e' un no-op bit-exact (max|diff| 6,7e-16, Sharpe identico a 4 decimali).
Il "+0,04 fantasma" era interamente [L sulla gamba COMBINATA] − [L PER ASSET] — due varianti
entrambe causali — e la variante scartata come "non causale" era la MIGLIORE sull'hold-out
(+0,039). Il costo di una regola derivata da un difetto inesistente e' gia' stato pagato.
📌 REGOLA CORRETTA (piu' debole e vera): "applicare un overlay alla data d'ingresso" resta un
buon consiglio generale, ma su questo motore le due date coincidono — e va verificato con un
troncamento bit-exact prima di scartare un ramo, non dedotto dalla forma dell'equity.
🚨 IL GATE PRE-REGISTRATO AL 22/12/2026 E' GIA' FALLITO OGGI, e nel modo piu' netto. L'agente
aveva scritto: "se l'effetto e' UGUALE su V1, la spiegazione e' sbagliata anche se il numero
regge". Misurato: |effetto| mediano di famiglia V1 0,067 contro V2-DD 0,032 — l'inverse-vol
funziona il DOPPIO dove lo stop e' gia' in ATR, cioe' esattamente al contrario della previsione,
in 8 celle su 8 con 23/23 ancore positive. E il test ha potenza (su V2-DD la famiglia
arriva a +0,067, quanto il LEAD).
📌 La spiegazione avversaria e' CONFERMATA e la sua forma minima e' un binario. BIN L>=med
(size 0/1 alla mediana espandente, nessuna magnitudine, 194/406 trade scartati) vale
+0,080 FULL (20/23) = 115% del LEAD. Controllo di segno superato: il binario INVERSO fa
−0,159 (0/23). Canali: FREQUENZA +0,051 (23/23) contro MAGNITUDINE +0,003 (17/23).
I trade tenuti hanno net medio 2,03% contro 0,36% degli scartati.
✅ Un attacco dello scettico e' FALLITO, e lo dichiara: l'asse della finestra non e' un picco
— l'argmax in-sample-only cade su w=90 = la cella pubblicata, corr(IS, HOLD) fra le 9 finestre
+0,63, plateau da 45 a 270. Sotto w=45 la finestra contiene 1-3 barre attive (colonna
misurata) e il segno si rovescia: non e' fragilita', e' campione vuoto.
-> quindi anche la mia nota "picco, non plateau" nel filone 8 va letta come SUPERATA.
Stima onesta se w e' scelto (mediana di famiglia): +0,025 FULL.
📌 CONSEGUENZA: il LEAD non ha piu' una condizione aperta da attendere — la sua gamba
esplicativa e' chiusa oggi. Se qualcuno vorra' portarlo avanti, il candidato giusto non e' la
formula ma il binario: meno gradi di liberta', dimezza gli ordini (migliora l'eseguibilita' a
$635), 115% sul FULL — ma paga in fragilita' d'ancora (20/23 contro 23/23, banda che include −0,061,
hold-out +0,072 contro +0,101). Resta un terzo della fortuna d'ancora del libro stesso (+0,196):
niente qui giustifica di toccare pesi, cron o config.
MONITOR-AUDIT (r0822_monitor_audit.py) — audit di PRODUZIONE, 6 monitor, 4,7 s
✅ Metodo che rende il risultato non contestabile: l'audit riesegue advance() di produzione
tale e quale, sostituendo solo _append con un raccoglitore in memoria -> nessuna
reimplementazione, quindi nessun drift fra audit e monitor. Sola lettura verificata (gli mtime
di data/paper_* sono rimasti quelli del cron delle 00:35).
| monitor | barra parziale | barre coincidenti | corr | min/giorno misurati | gate | ricostruibile |
|---|---|---|---|---|---|---|
paper_statarb |
SI' | 0/46 | +0,297 | 4 | STATARB 27/09 | SI', bit-exact |
paper_dvolspread |
SI' | 0/28 | +0,262 | 2 | DVOLSPREAD 24/10 | SI', bit-exact |
paper_xsr |
SI' | 1/28 | −0,045 | 41 | XSR01 23/10 | SI', bit-exact |
paper_portfolio |
SI' | 7/56 | +0,245 | 19 | — (dashboard) | si', non al bit |
paper_prevday |
si' (1 barra su 24) | 1259/1319 | +0,997 | 1.438 | — | si', bit-exact |
paper_combo |
NO | 7/37 | +0,991 | 1.402 | — | si', non al bit |
| 📌 La patologia e' la stessa, la TAGLIA varia di un fattore 20 — e dipende da quanto pesa la | ||||||
| barra piu' recente nel segnale, esattamente come la lezione del 26/07 su SKH01 contro TP01. | ||||||
| 🚨 Il gate STATARB del 27/09 si ribalta su DUE criteri su tre: Sharpe registrato +1,96 (sopra | ||||||
| la soglia 0,5) contro −2,02 ricostruito; maxDD 2,2% contro 15,3% (guardia <10%). *Fra 36 | ||||||
| giorni si sarebbe deciso su una serie che misura 4 minuti di mercato al giorno.* | ||||||
| ⚠️ XSR01 e DVOLSPREAD danno lo stesso verdetto oggi, ma su numeri implausibili (Sharpe −15,8 su | ||||||
28 barre = oltre 4 SE). **implausible_sharpe esiste dal 26/07 e non e' mai stato puntato sulle |
||||||
| serie forward.** | ||||||
| ✅ LA BUONA NOTIZIA, ed e' misurata: la finestra forward NON va persa. Il replay e' la serie | ||||||
| corretta sulla stessa finestra, con config congelata e codice di produzione. Le due condizioni sono | ||||||
provate due volte in modo indipendente: (a) paper_prevday ha **1427/1488 barre identiche al |
||||||
| bit** dopo 62 notti di riscrittura (il feed non tocca le barre chiuse); (b) le 6 barre di | ||||||
paper_statarb recuperate dopo un guasto coincidono al bit. |
||||||
-> **La decisione non e' "riparare e azzerare" ma "riparare advance() + RIGENERARE", e nessuna |
||||||
delle tre date di gate si sposta.** Anche nell'ipotesi pessimista (--reset) l'unico gate che |
||||||
| slitterebbe e' STATARB, di +18 giorni. | ||||||
📌 **Dettaglio che vale una regola: le uniche barre corrette di paper_statarb esistono perche' il |
||||||
feed si e' ROTTO.** rebuild_history e' abortito per 7 giri consecutivi (09-15/07, EPERM sul |
||||||
| backup, gia' riparato); al ripristino il monitor ha recuperato 7 barre in un colpo, **6 delle quali | ||||||
| gia' chiuse** -> coincidono col replay al bit. *Il guasto ha prodotto da solo il controllo che | ||||||
| serviva a diagnosticare l'altro guasto.* | ||||||
📌 paper_combo e' sano PER CASO: aspetta la chiusura di una borsa, non per progetto. |
||||||
| Nessuna riga di codice chiede la barra chiusa — **se la sua griglia cambiasse diventerebbe rotto in | ||||||
| silenzio.** | ||||||
| ✅ Guardia raccomandata (NON implementata), e ha il pregio di essere banale: | ||||||
ts_ultima_barra + cadenza <= mtime del file di serie, grazia 5 min. O(1), nessuna strategia da |
||||||
| rieseguire, usa solo cio' che il monitor gia' scrive; segnala 5/6 e tace sul sano; controllo | ||||||
| positivo sintetico 6/6 nei due versi. Il vol-ratio va dopo, non al posto: copre un guasto | ||||||
diverso (drift monitor-strategia) e non vede paper_prevday (rapporto 0,999). |
||||||
| ⚠️ Limiti dichiarati: i "minuti/giorno" sono una lettura del rapporto di varianza (assume random | ||||||
| walk sull'intervallo troncato), non un cronometro — il cronometro diretto e' 32-35 min; e per | ||||||
paper_portfolio/paper_combo la ricostruzione non sara' al bit perche' la gamba GTAA legge |
||||||
ADJUSTED_LAST di IB, ri-aggiustato all'indietro. |
1 — PROP-ALLOC (r0822_prop_alloc.py, ~3.300 valutazioni MC di cui 360 di selezione)
✅ Previsione REGISTRATA PRIMA e confermata: dal conto del gambler's ruin, alla leva minima che
porta a +T dentro l'orizzonte resta theta ~ 2*Sharpe^2/T -> la vol sparisce e l'argmax sui PESI
deve coincidere con l'argmax di Sharpe; il contenuto vero sta nella LEVA, che lo Sharpe non
determina. Misurato: e' cosi'.
| pesi TP/SKH/XS | leva | J | P(pass) | P(vivo 12m) | E[pay/anno] | |
|---|---|---|---|---|---|---|
| argmax J | 25/25/50 | 0,75 | 0,738 | 82,2% | 89,8% | $8.556 |
| argmax Sharpe | 38/25/38 | 0,75 | 0,721 | 77,3% | 93,3% | $7.796 |
| libro LIVE 75/25 | 75/25/0 | 0,50 | 0,335 | 38,6% | 86,8% | $4.109 |
| Differenze appaiate: argmaxJ − argmaxSharpe +0,0164 ± 0,0066; argmaxJ − LIVE **+0,3996 ± | ||||||
| 0,0114**. -> Riallocare per la barriera vale il 4% di cio' che vale diversificare. | ||||||
| ✅ Replica di controllo superata: la politica MISTO del 25/07, stessa macchina, de-luck 0,60 -> | ||||||
| P(>=50/g) 4,1% / P(zero) 53,7% contro il pubblicato 5,6-6,5% / 52%. | ||||||
| 📌 Null dei tilt casuali — e il risultato e' che il PUNTO non conta: argmax al 98,5° pctl contro | ||||||
| firma best-of-45 di 97,8° = indistinguibili, e **il massimo di 200 pesi casuali (0,739) EGUAGLIA | ||||||
| l'argmax (0,738)**. Conta stare nella regione diversificata, non il vettore. | ||||||
| 📌 La leva alta non compra probabilita', compra fretta: J massimo a 0,75x, E[payout] massimo | ||||||
| a 1,00x; P(pass) senza limite di tempo e' monotona decrescente (98,9% a 0,50x -> 65,9% a | ||||||
| 1,50x). E **la barriera piu' larga sposta l'ottimo verso l'alto: il vincolo e' la regola di DD, non | ||||||
| il libro.** | ||||||
| 📌 Il 75/25 del libro live NON e' la ripartizione giusta per un conto a barriera, e non e' | ||||||
| artefatto di finestra: sul campione 2019+ che contiene il 2022 l'ottimo della coppia crypto e' | ||||||
| 38/62 @0,50x (J 0,521 contro 0,443) — stesso verso del 2024+. | ||||||
| 🚨 LA BANDA, non il numero. P(>=50/g) da €600 in 36 mesi con la scala di conti: | ||||||
| 42% al drift pieno · 7,7% allo stress moderato (SKH ×0,50, XS ×0,50) · 0,7% allo stress severo | ||||||
| (SKH ×0,33, XS ×0,00) — e allo stress severo e' peggio del libro live. **Il numero da citare e' | ||||||
| la banda.** Tetto strutturale: cap $200k (HYRO) + $400k (FTMO) = max 6 conti, oltre servono altre | ||||||
| firm, ognuna col proprio rischio di controparte. | ||||||
| ⚠️ Onesta' dell'agente sulla distorsione che NON ha potuto rimuovere: la banda d'ancora **non e' | ||||||
| girata** sotto questa lente (fuori budget), quindi l'ottimo gira sull'ancora canonica e si | ||||||
| appoggia a **SKH01, che il progetto misura come lo sleeve con la fortuna d'ancora piu' grande da | ||||||
| restituire** -> la distorsione e' a suo favore e lo dichiara. | ||||||
| ⚠️ E la sotto-pesatura di TP01, lo sleeve difensivo, e' misurata su un campione **senza | ||||||
| sinistro** (2024-2026 non contiene un crash): **su una barriera assorbente quella scommessa si paga | ||||||
| una volta sola.** | ||||||
| ⚠️ Assunzione dichiarata e non verificata con le firm: che una firm crypto listi i 19 alt | ||||||
| Hyperliquid con short abilitato. Se non li lista, XS01 sparisce e con lui il risultato. | ||||||
⚠️ Errore proprio corretto in sessione: paired_delta ignorava lo stress e stampava un delta |
||||||
| non-stressato accanto a righe stressate -> *un confronto appaiato deve ereditare TUTTI i parametri | ||||||
| della riga in cui compare*; senza quella guardia avrebbe concluso che il risultato era robusto | ||||||
quando non lo e'. Ora c'e' un assert che lega il delta alle due colonne stampate. |
ONDATA 2 — 2026-08-22 sera (7 filoni)
Mirata su cio' che la prima ondata ha lasciato scoperto, inclusi i falsificatori che gli agenti stessi hanno nominato senza poterli eseguire. Stesso contratto di consegna, stessi gate.
| # | filone | domanda che decide | verdetto |
|---|---|---|---|
| 21 | XS01-OOS | il vantaggio del PROP-ALLOC poggia sul drift di XS01 misurato sulla sua finestra di scoperta: regge fuori? | LEAD — regge, ed e' PIU' GRANDE fuori |
| 22 | MAKER | l'esecuzione passiva e' una fonte di ritorno, al netto del costo di non essere eseguiti? | SCARTATO — il segno dipende da < contro <= |
| 23 | BOCPD | un rilevatore di cambio di regime vero batte il miglior lookback COSTANTE? | SCARTATO — filone chiuso definitivamente |
| 24 | CRITICO | cosa NON e' stato misurato, e quale singola misura mancante vale di piu' | 3 correzioni all'ondata, 1 regola mia ritirata |
| 25 | BIN-FREQ | il binario di frequenza su SKH01 e' un candidato o un sottoprodotto? | in corso |
| 26 | TP01-SINISTRO | quanto pesa TP01 se l'obiettivo include un crash che nel campione non c'e'? | allarme SCARTATO — il rischio e' XS01, non TP01 |
| 27 | SURFACE-RV | la superficie e' internamente incoerente, e l'incoerenza vale piu' del costo di attraversarla? | SCARTATO — l'incoerenza al mid e' la larghezza del mercato |
23 — BOCPD (orizzonte adattivo, il falsificatore eseguito)
scripts/research/r0822b_bocpd.py (123 s). 169 trial dichiarati, conteggio al rialzo, inclusi i
13 di taratura fatti guardando solo il numero di change-point, mai uno Sharpe.
Il falsificatore che il 22/08 restava aperto e' stato eseguito con i rilevatori che nominava:
BOCPD (Adams & MacKay, run-length posterior online, Normale-InverseGamma, hazard costante) e
optimal partitioning causale (l'obiettivo che PELT accelera, ricorsione in avanti, mai un
fit_predict retrospettivo), piu' L scelto per walk-forward sul PnL realizzato.
📌 E questa volta il test HA AVUTO POTENZA — e' il fatto che rende il "no" esaustivo.
Il vincitore del 22/08 aveva lookback costante (stava al bordo il 100% del tempo, corr 1,000):
si era chiusa una famiglia di proxy, non il meccanismo. Qui 68/96 celle sono davvero adattive
(BOCPD 24/24: L_t mediano 25-107 g, IQR 28-134 g, 0-4% al tetto, 7-44 reset/anno).
| Sh FULL | Sh HOLD | maxDD | CAGR | corr→TP01 | |
|---|---|---|---|---|---|
| (A) adattivo, cella in-sample | 1,618 | 0,627 | 14,48% | 22,05% | 0,757 |
| (B) miglior COSTANTE (L=15g triple 12h) | 1,639 | 0,657 | 12,68% | 22,31% | 0,737 |
| (C) walk-forward su PnL | 1,385 | 0,382 | 16,33% | 17,20% | 0,860 |
| TP01 30/90/180 | 1,314 | 0,489 | 14,31% | 16,44% | 1,000 |
📌 La decomposizione E' il risultato: adattivo − TP01 = +0,305; miglior costante − TP01 = +0,326; adattivo − miglior costante = −0,021 → l'adattivita' spiega il −7% del vantaggio su TP01. Il 100% e' "un orizzonte piu' corto", non "adattarlo".
Gate: earns_slot_honest=False; marginal_vs_tp01 NEUTRAL con corr→TP01 0,861;
appaiato per anno vs il null giusto (B) 3/8 anni (mediana −0,15); banda d'ancora 12 ancore,
mediana delle differenze appaiate −0,136, positiva in 0/12, e la canonica sta al 92° pctl =
fortuna d'ancora a suo favore. causality_ok ok, e troncamento manuale esplicito su 4
combinazioni: max|L(prefisso) − L(pieno)| = 0 → la trappola del change-point retrospettivo e'
esclusa per misura, non per fiducia. Null del de-levering non applicabile e dichiarato
(il candidato NON riduce il maxDD: 14,5% contro 12,7%).
Il criterio del falsificatore applicato a tutte le 68 celle adattive: 0/68, e nessuna delle due condizioni va vicina — corr→TP01 minimo 0,754 (soglia 0,60), nessuna batte il miglior costante sul FULL (la migliore e' −0,013), massimo 4/8 anni battuti (richiesti 6).
⚠️ Cosa l'agente NON propone, e perche': il miglior costante batte TP01 di +0,326 — ma il salto di Sharpe fra L adiacenti e' +0,190, cioe' il 58% dell'intero vantaggio: e' un max-of-24 su un crinale di rumore, non una curva. Nessun cambio a TP01, al libro, ai pesi.
🚨 Sottoprodotto che vale fuori dal filone: un deflated-Sharpe calcolato dentro una famiglia
OMOGENEA e' CIECO. Qui dice 0,998-1,000 PASS; ricalcolato con l'sr0 di screen misurato dal
filone ORTHO (1,572 su 168 trial) dice 0,555 / 0,580 / 0,237 FAIL — TP01 compreso. Il motivo e'
strutturale: deflated_sharpe stima il massimo-dal-rumore dalla varianza degli Sharpe della
griglia, e una griglia di varianti molto correlate ha varianza piccola → sr0 basso → DSR alto per
costruzione. Gonfiare N col padding alza N e non la varianza: non basta contare i trial di
screen, serve la VARIANZA di screen.
📌 Secondo sottoprodotto, un controllo da mettere in ogni famiglia con un parametro clippato: la PROVA DI IDENTITA' batte la diagnostica. Invece di dire "questa cella sta al bordo", l'agente mostra che la sua serie e quella del lookback costante coincidono a max|Δ| = 0,000e+00 su n=2719 — non somiglia a, lo e'.
VERDETTO: SCARTATO. IL FILONE ORIZZONTE-ADATTIVO E' CHIUSO DEFINITIVAMENTE.
22 — MAKER (esecuzione passiva come fonte di ritorno)
scripts/research/r0822b_maker.py (19 s, sola lettura). 42 celle dichiarate, nessuna riduzione.
📌 Osservazione strutturale che riapriva la domanda: il netting su strumento unico — il motivo per cui T1 resto' non implementata il 26/07 — non si applica qui. Quello uccide i bracket per-sleeve (un limit al livello di SKH chiuderebbe quota TP01); l'ordine netto di ribilanciamento e' uno solo, quindi passivizzarlo non ha conflitti fra sleeve. La domanda era davvero aperta.
(1) Il differenziale, limite superiore (tutto maker, zero non-fill): dSharpe +0,0333, dCAGR +0,466 pp → $2,96/anno a $635, $23,28 a $5.000, $1.203 al muro di $258k. ✅ Replica indipendente della curva del 26/07: +0,0167 Sh/bps e +0,233 pp/bps contro i pubblicati 0,017 / 0,23.
📌 (2) Il costo del non-fill, ed e' qui che muore: il parametro che decide non e' l'orizzonte, e' cosa si chiama "riempito".
| N (min) | TOCCO low <= P (limite superiore) |
ATTRAVERSAMENTO low < P (minimo difendibile) |
|---|---|---|
| 5 | fill 93,2% · resta +0,31 bps (15,5%) | fill 86,2% · resta −0,47 bps (−23,6%) |
| 60 | 98,6% · +0,34 (17,1%) | 95,9% · −0,45 (−22,4%) |
| 120 | 98,9% · +0,67 (33,7%) | 96,9% · −0,38 (−19,0%) |
Fra le due colonne cambia una sola disuguaglianza stretta: se la barra che apre esattamente al nostro prezzo, e da li' se ne va, conta come fill. Non conta — a quel prezzo non e' stato scambiato niente dopo l'arrivo dell'ordine, e un passivo sta dietro a tutta la coda. Griglia fine: il salto e' tutto al primo passo (3,16 → 3,95 bps a penetrazione sub-tick) e non esiste un q positivo di pareggio. Lente model-free: il fill richiesto per pareggiare e' 88-98%, quello ottenuto e' sotto in 25 celle su 25.
Gate: appaiato per ORDINE (ogni ordine compare una volta in entrambe le politiche, riempito o no — allineare sui riempiti avrebbe tenuto solo i casi in cui non e' successo niente); IC95 bootstrap contiene lo zero in 10 celle su 10 al tocco e a q=0, interamente negativo da q≥1; placebo a ore casuali girato → reale ≈ placebo e incoerente fra i due asset (BTC 6,8 vs 3,1 bps; ETH 4,1 vs 4,7) ⇒ la selezione avversa non e' "il libro trada nei momenti brutti", e' strutturale all'esecuzione passiva e non si aggira scegliendo momenti migliori. Null del de-levering non pertinente e dichiarato (nessun claim di DD; il maxDD cambia segno fra le lenti = non e' un effetto).
📌 La firma della troncatura, vista dall'altra parte. Il passivo vince sul 92-98% degli ordini e perde sulla media: mediana dell'avversa −2,0 bps (favorevole), media +4,3, peggiore +948, e i 5 ordini peggiori su 1535 fanno il 42% del danno. E' la forma speculare del profit-take di VRP01 (30/07). Una politica che vince quasi sempre e perde sulla media si giudica sulla media.
⚠️ Rischio operativo quantificato: a N=60 restano aperti al giro successivo il 4,6-7,8% degli
ordini = 9-15 volte l'anno in cui l'esecutore deve cancellare-e-rimpiazzare su un conto vero. Oggi
rebalance_signed manda market e finisce: nessun ordine sopravvive al giro → si comprerebbe un
modo nuovo di rompersi (il libro ha gia' pagato quel prezzo con fresh_5m) per un beneficio il cui
IC95 contiene lo zero.
⚠️ Numero del brief non riprodotto: l'agente ricostruisce 191 ordini/anno di libro a $635 contro i "35-44/anno per asset" del brief; il nastro vero da' 18 ordini in 45 giorni = 146/anno. La conclusione non dipende da questo (il punto 1 usa il turnover modellato, che replica la curva pubblicata al terzo decimale), ma il numero del brief va ri-verificato.
VERDETTO: SCARTATO. +0,033 Sharpe nel caso impossibile, contro ±0,20 di banda d'ancora del libro.
Smentitore dichiarato: una misura di profondita' del book sui perpetual USDC (che l'OHLC non
contiene e che il progetto non raccoglie — cb_chain e' opzioni). Se a taglie di $5-80 la coda al
miglior livello si consumasse senza che il prezzo debba attraversare, il segno si ribalta. E'
misurabile in avanti: registrare book_depth al momento di ogni ordine e poi il volume scambiato
al livello.
24 — CRITICO (critico di completezza dell'ondata)
scripts/research/r0822b_critic.md (48 KB, markdown — non uno script). Ha letto brief, registro,
diario e i sorgenti degli agenti.
📌 La tesi, e regge: il metodo dei singoli filoni non e' il problema dell'ondata, la CUCITURA lo e'. I difetti gravi stanno nei punti dove nessun agente era responsabile.
🚨 (a) dealer_net_gamma NON e' "il GEX col segno invertito" — la regola l'ho pubblicata io in
CLAUDE.md ed e' FALSA. ✅ Verificata da me aprendo la fonte, che gira su questa stessa VPS:
/opt/docker/cerbero-mcp/src/cerbero_mcp/common/options.py:11-14 dichiara la convenzione
("i dealer sono SHORT calls (le vendono al retail) e LONG puts") e dealer_gamma_profile:138-140
la implementa (call_dealer_gamma -= contrib / put_dealer_gamma += contrib). Non e' un segno
invertito per errore: e' un'assunzione di posizionamento dichiarata, diversa da quella del GEX
standard. Il default top_n_strikes=50 spiega anche il coefficiente −0,7 e l'offset che il filone
DEALER-GAMMA attribuiva a "non-portabilita'". Il verdetto SCARTATO regge; cade la regola, che le
prossime ondate avrebbero ereditato al contrario.
🚨 (b) Il deflated-Sharpe e' stato misurato ai suoi DUE estremi degeneri lo stesso giorno, da due
agenti che non si citano — e tre gate pre-registrati ci poggiano sopra (XSR01 23/10, DVOLSPREAD
24/10, 22/12). altlib.deflated_sharpe calcola sr0 = sd(Sharpe dei trial) × mult(N): dipende dalla
varianza della griglia, non solo da N. Da un lato VOL-SIZE dichiara il proprio DSR VACUO
(1,000 anche per il baseline); dall'altro ORTHO-SCREEN pubblica "sr0 = 1,572 ⇒ uno screen largo su
BTC/ETH non puo' passare il proprio gate per aritmetica" — ma quell'1,572 implica sd≈0,58, e le
stesse 168 celle dichiarate come 7 famiglie da 24 danno 1,15, sotto il soffitto ~1,3: il verdetto
"impossibile per aritmetica" si ribalta senza toccare un dato, e la cura che suggerisce
(dichiarare famiglie piu' piccole) e' esattamente la manovra che il progetto ha proibito il 30/07.
✅ Convergenza indipendente: il filone BOCPD, che non ha parlato col critico, ha misurato lo
stesso difetto dall'altro capo (DSR 0,998 PASS dentro la famiglia omogenea → 0,555 FAIL con
l'sr0 di screen). Due agenti, due strade, stessa conclusione: il gate non ha una regione utile in
mezzo.
🚨 (c) Il filone ALT-OPTIONS non e' nel registro — ✅ verificato: zero occorrenze, ne' riga ne'
sezione, benche' due altri filoni lo citino e il mio brief per SURFACE-RV mandasse a leggerlo. Il
diario lo liquida come "alt-options (alt)", ma la sua conclusione riguarda ETH_USDC, che non e'
un alt: f_venue 0,980 e max-loss $16,62/lotto. Se regge, e' la quarta soglia pubblicata
falsificata (il diario ne annuncia tre) e sposta VRP01 da "servirebbe il 61% di un conto da $3.000"
a "entra in un conto da ~$140". ⚠️ Cio' che NON cambia: la regola "niente short-vol da modello in
deploy" non era una regola di eseguibilita' — VRP01 resta fuori dal libro per il f modellato e
per il gate IV-rank, non per la taglia del lotto.
📌 (d) La misura di maggior valore mai fatta, secondo il critico: il peggior giorno che il libro puo' avere, MISURATO invece che assunto. Il gradino di leva 1,00→1,50x vale 14,7a → 11,6a al capitale-rendita (~€300/mese di versamenti equivalenti, a costo zero) ed e' bloccato da un unico parametro scelto a mano ("un giorno −10%/anno porta k* a 2x"). Controllo di cinque minuti: sui 10 peggiori giorni di BTC/ETH in 7,4 anni — incluso il −41,5%/−45,7% del 12 marzo 2020 — il libro ha fatto +0,97 · +0,72 · 0,00 · −1,98 · −2,24 · +0,23%, e il suo peggior giorno assoluto (−3,38%) non e' un giorno di crash. Il −10% e' plausibilmente una coda da buy&hold importata in un libro difensivo.
📌 (e) La risposta onesta al mandato, che gli era stato chiesto di dare se vera: nessuna misura di ricerca batte "versare". 3,1 anni di ricerca valgono meno dei 5 anni che vale €250/mese in piu'. E la verifica che costa meno di tutte non e' ricerca: leggere il listino di due prop firm. L'intero risultato di testa dell'ondata (+0,400 di J) poggia sull'assunto — scritto in un commento a riga 100 — che una firm crypto listi i 19 alt Hyperliquid con short abilitato. E' la ripetizione esatta dell'errore GTAA01/PRIIPs, per cui il progetto ha gia' scritto la regola: la negoziabilita' sul conto REALE va verificata quando lo sleeve entra in RICERCA.
Altre contraddizioni fra agenti segnalate: lo Sharpe di XSR01 compare con quattro lenti (non tre); il muro di XS01 con tre numeri; la leva riceve guida opposta da GROWTH-POLICY e PROP-ALLOC; il peso di SKH01 e' respinto da un agente e raddoppiato da un altro. Piu' 6 modalita' non esplorate e 6 punti di autocritica — incluso che i 20 MB del dataset futures 2018-2026 (l'unico con la coda 2022) vivono solo in uno scratchpad di sessione.
21 — XS01-OOS (XS01 fuori dalla sua finestra di scoperta) — il risultato di testa della serata
scripts/research/r0822b_xs01_oos.py (78-126 s, cache nello scratchpad, seconda corsa offline,
numeri identici su due corse). 140 trial dichiarati (contati al rialzo: le 6 varianti di config
sono contate come trial anche se sono la rivalidazione di una selezione passata), piu' 1.200
estrazioni di null che non sono trial.
L'idea: il gate del PROP-ALLOC diceva "non aprire un funded prima che XS01 abbia una finestra fuori dal 2024-2026" = un'attesa di anni. Quella finestra esiste gia' — gli stessi 19 ticker su Binance spot USDT 1d, 2021-01 → 2023-12, che contiene LUNA e FTX. Meccanismo congelato (blend [30,90], H=10, k=5, gate p30, vol-target 20%), nessuna griglia cercata.
⚠️ L'obiezione ovvia — "Binance non e' la verita'" — e' stata misurata, non aggirata: quella
regola del progetto riguarda l'ancoraggio di prezzo, non un ranking cross-sezionale, e lo scarto
USDT e' un fattore comune che sparisce nello z-score. Verificato: corr dei ritorni giornalieri per
asset ≥0,9992 (min NEAR), |differenza| mediana 5,1 bps, e soprattutto lo stesso sleeve
calcolato sui due venue da' corr 0,9991, dSharpe −0,025. Replica dello sleeve ufficiale
max|diff| = 0,0. Dato certificato: 0 gap, flat 0,00-0,71%, volumi zero 0,00%, nessun run
iniziale a volume 0 (il rivelatore del backfill sintetico, lezione AXS).
📌 IL RISULTATO, e va nel verso opposto a quello temuto:
| Sharpe (mediana di fase) | banda 10 fasi | fasi >0 | maxDD | CAGR | |
|---|---|---|---|---|---|
| fuori campione 2021-2023 (U13) | +1,12 | [+0,74, +1,54] | 10/10 | 22,0% | +26,1% |
| finestra di scoperta 2024+ (U13) | +0,37 | — | — | 20,5% | +8,9% |
| fuori campione (U19-EXP) | +1,17 | [+0,91, +1,78] | 10/10 | 20,9% | +30,0% |
| XS01 ufficiale (HL, 2024+) | +1,15 | [+0,46, +1,59] | — | 10,8% | +29,0% |
Differenza appaiata per fase (fuori campione − scoperta): +0,668, positiva in 10/10 fasi. Il fuori campione e' la finestra MIGLIORE, non peggiore. Per anno: 2021 +2,14 · 2022 +0,22 · 2023 +0,84 · 2024 −0,48 · 2025 +0,68 · 2026 +2,26.
Sul LIBRO, solo fuori campione (TP01+SKH01 75/25 + XS01, n=1076, dati che PROP-ALLOC non aveva mai visto): w=0 → Sh +1,17 / DD 9,4% · w=0,25 → +1,65 / 6,0% · w=0,33 → +1,67 / 6,6% · w=0,50 (l'argmax di PROP-ALLOC) → +1,56 / 8,9%. corr(XS01, libro) −0,019.
Gate: causality leak-free (randomizzando i prezzi dopo la decisione max|diff| = 0);
marginal_vs_tp01 ADDS su entrambi gli universi (corr +0,031 / −0,01, is_hedge False);
banda di fase gate_pass=True 4/4, e la fortuna d'ancora e' piccola (+0,05) contro il +0,18
dello sleeve ufficiale; null di permutazione a fee zero p=0,013 (cross-sez.) e 0,017 (pesi
casuali); sopravvive a 30 bps/lato (+1,01). deflated_sharpe FAIL 0,342 — e l'agente dichiara
che il DSR penalizza una mediana-di-fase come se fosse un max-di-k, "ma un gate fallito resta
fallito". Null del de-levering non pertinente e dichiarato. Haircut a $600: non e' il vincolo
(ticket mediano $76, 0,0% sotto il min-order).
🚨 Null "universo dove NON dovrebbe funzionare" (11 settoriali SPDR, 1998+, meccanismo congelato): −0,45, 0/10 fasi positive → terza conferma indipendente che il cross-sectional e' crypto-specifico (dopo XSR01-equity 26/07 e STATARB-EQ 25/07).
🚨 Il risultato che il progetto non si aspettava: i DUE AFFINAMENTI del 2026-06-19 NON si replicano. Fuori campione il blend [30,90] e' PEGGIO del solo L=30 (+1,12 vs +1,28) e il gate di dispersione p30 vale ZERO (+1,12 con e senza) — mentre dentro la finestra di scoperta il gate vale eccome (+0,37 contro −0,03). Cio' che sopravvive e' il meccanismo cross-sectional NUDO. ⚠️ Non e' un argomento per cambiarli — cambiarli guardando questo risultato sarebbe la stessa selezione spostata di finestra — e' un argomento per non attribuire loro il valore che la memoria del progetto gli attribuisce.
⚠️ Concentrazione misurata prima di crederci (lezione SOL, stesso giorno): togliendo il 2021 il fuori campione scende +1,17 → +0,57; leave-one-asset-out: togliendo LTC la mediana di fase crolla +1,12 → +0,20 (tutte e 13 restano >0) → ampiezza effettiva bassa, stessa diagnosi di STATARB-MULTI.
VERDETTO: LEAD. Non promuove niente; riscrive il gate del PROP-ALLOC.
📌 IL GATE DEL PROP-ALLOC SI PUO' CHIUDERE OGGI: PARZIALMENTE — e non si chiude, si SOSTITUISCE.
L'attesa di anni non serve. Ma tre cose che il gate non chiedeva sono ora misurate:
- il rendimento sopravvive, il RISCHIO no: maxDD standalone 10,8% → 20,9-22,0% — e su un conto funded il vincolo binding e' la regola di DD, quindi la correzione va nel verso sbagliato;
- il peso 0,50 dell'argmax-J non sopravvive: fuori campione a w=0,50 il maxDD di libro risale a 8,9% contro 6,0% a w=0,25, cioe' restituisce quasi tutta la protezione che e' l'unica ragione per metterlo su un conto a barriera → l'ottimo fuori campione e' w ≈ 0,25-0,33;
- 32% dell'universo non e' testabile (ARB/OP/SUI/APT/SEI/TIA non quotati nel 2021-23) e su di esso vive gran parte del numero di scoperta (19 gambe 1,31 vs 13 gambe 0,54, stessa finestra e stesso venue) → cio' che e' stato validato e' una versione piu' DEBOLE di quella che sta nel libro.
⚠️ Il punto fragile che l'agente dichiara e non ha testato: la validazione di venue gira solo sul 2024+, cioe' proprio il periodo senza depeg USDT, mentre il fuori campione contiene il depeg di maggio 2022. Se i close Binance/USDT 2021-23 divergessero da un venue USD in modo non comune fra gli asset, il ranking cambierebbe e il risultato con esso.
26 — TP01-SINISTRO (il peso di TP01 contro un crash che nel campione non c'e')
scripts/research/r0822b_tp01_sinistro.py (~200 s). 1.784 valutazioni Monte Carlo contate dal
codice, ognuna 2.500 percorsi eval + 2.500 funded, lente accoppiata, de-luck x0,89.
Replica di controllo: i numeri E-ter di PROP-ALLOC (argmax 38/62 @0,50x J 0,521, live 75/25
J 0,443) riprodotti al millesimo.
L'allarme da verificare era il caveat che PROP-ALLOC aveva dichiarato contro se stesso: "la sotto-pesatura di TP01 e' misurata su un campione SENZA SINISTRO: su una barriera assorbente quella scommessa si paga una volta sola". L'agente ha registrato nel docstring, prima di misurare, che si aspettava di confermarlo.
| lente | argmax w TP01 | J argmax | J a 0,75 (live) |
|---|---|---|---|
| 2019+ (contiene il 2022) | 0,375 | 0,521 | 0,443 |
| 2024+ (la finestra di PROP-ALLOC) | 0,375 | 0,423 | 0,317 |
| SOLO-SINISTRO | 0,000 | 0,771 | 0,000 |
L'allarme e' falsificato nel VERSO, non nella cautela: TP01 ~0,375 e' l'argmax sia sulla finestra che contiene il 2022 sia su quella che non lo contiene, e nel sinistro il libro con MENO TP01 fa MEGLIO — perche' TP01 va flat mentre SKH01 si gira short e guadagna. Conto dell'assicurazione: premio -4,01%/anno fuori dal sinistro, indennizzo -12,5% cumulato sui 120 giorni di sinistro (LIVE -2,8% contro OPT +9,7%). Test dei segni: OPT batte LIVE 12/12 sulle peggiori finestre 30g (p=0,0005) e 8/8 sul solo sotto-campione pre-2024 indipendente (p=0,0078).
Null del de-levering — 7a occorrenza, in veste nuova ("protezione dal crash" invece di "meno drawdown") e decisivo: a leva comune TP01 protegge davvero (sopravvivenza al crash 32,4% -> 76,4% da TP01 0 a 0,625), ma la stessa protezione si compra abbassando la leva, e a ISO-SOPRAVVIVENZA meno TP01 paga di piu' (payout $4.490 a TP01 0,125 -> $2.119 a TP01 1,00, monotono).
Tre risultati collaterali che valgono piu' dell'allarme rimosso:
- "2024-2026 non contiene un crash" e' FALSA nella forma: il 2024+ ha buy&hold a -60% di drawdown e -39,6% in 20 giorni. Manca la taglia (~2,3x sulla coda 1-10 giorni). La domanda giusta non e' "e se arriva un crash" ma "e se ne arriva uno due volte piu' grande".
- Alle leve funded il 2022 NON era una minaccia (min equity -1,4/-2,4% contro barriera -6%): cio' che uccide un conto a barriera e' la regola a un giorno su una giornata qualunque, non il crash del sottostante. E il vincolo che morde cambia col peso: sotto TP01 0,50 e' il daily-loss, sopra e' il max-loss cumulato.
- Il rischio vero dell'ottimo non e' TP01, e' XS01: uno shock di un giorno a ~-10% dimezza la sopravvivenza quando il crash arriva, e XS01 non ha nessun sinistro nel campione. Ipotesi dell'agente nata e refutata in sessione: aveva scritto che TP01 fa da zavorra contro quell'ignoto (-12,3% a XS01 25% contro -8,0% a XS01 50%); il controllo a XS01 fisso e leva comune lo smonta - lo shock di rottura e' -10,1/-10,2/-10,2% muovendo TP01 da 12% a 38% (invariante) e la sopravvivenza severa cala. Protegge meno XS01, non piu' TP01: il primo confronto attribuiva a TP01 il merito di un altro peso.
Libro live NON toccato (75/25 resta). Nota per la memoria: il 75/25 e' fuori dalla regione di compromesso del funded (0,375-0,50) - coerente col fatto gia' scritto il 25/07, canale funded e libro proprietario vogliono libri diversi.
Caveat principale, dichiarato: anchor_luck_band non ri-misurata sotto questa lente; gira
sull'ancora canonica e si appoggia a SKH01, lo sleeve con la fortuna d'ancora piu' grande da
restituire -> la distorsione e' A FAVORE della conclusione. Smentitore dichiarato: un crash
in cui SKH01 non si gira short in tempo (gap notturno oltre lo stop, venue fermo). Il campione ne
ha quattro episodi e in tutti e quattro SKH01 ha girato: l'ampiezza effettiva della coda e' 4, e
nessun bootstrap la aumenta.
27 — SURFACE-RV (la superficie come relative value fra i suoi punti)
scripts/research/r0822b_surface_rv.py (~85-130 s). ~112 valutazioni, e nessuna e' una
selezione: e' un censimento su 1,24 M quote a due lati, non una ricerca di celle.
L'ipotesi era di microstruttura, non di previsione: non chiede alla vol implicita di prevedere niente, chiede se la superficie sia internamente incoerente e si ricomponga. E' l'unico angolo della superficie che l'ondata non aveva coperto (livello, skew, struttura a termine e quote reali erano gia' chiusi).
| test model-free (nessun interpolatore) | esito |
|---|---|
| V — monotonia P(K) | 0 / 1.111.585 |
| B — convessita' P(K) | mid 6,213% · eseguibile 1 / 1.031.256 = 0,0001%, vale $0,00, sparita l'ora dopo |
| C — varianza totale nel tenore | strike condiviso 6/107.177 (0,006%) · con interpolazione 10/112.827 → l'interpolatore contribuisce +0,003 pp |
Ampiezza: |residuo| mediano 0,125 pt-vol (BTC) / 0,200 (ETH) contro mezzo spread 0,861 / 1,208 → rapporto su spread pieno 0,053 / 0,063; sotto il tick nel 96,5% / 95,3% dei casi — l'incoerenza non e' esprimibile nella griglia di prezzo del venue. Economia al lotto minimo: fee 3 gambe $7,54 (BTC) / $2,11 (ETH), miglior credito netto su 782 k farfalle equispaziate −$0,95 / −$0,33, positivi 0. Calendario: violazione mediana $0,09 contro $0,59 di costo, e la superficie sta 13,2 pt-vol dal bordo di non-arbitraggio → vincolo strutturalmente slack.
📌 IL MECCANISMO, che vale piu' del verdetto: |residuo| cresce MONOTONAMENTE col largo del mercato — BTC 0,080 pt a spread 2,6% → 0,255 pt a spread 50%. L'incoerenza al mid e' la larghezza del mercato guardata attraverso il mid, non un errore di prezzo.
⚠️ E questo uccide l'unica riga non-zero, che era un artefatto del CONTROFATTUALE dell'agente stesso: prendendo tutta la superficie, lo spread USDC del 2,6% aprirebbe 2.293 farfalle a credito su ETH (miglior caso $123); restringendo alla parte di superficie gia' quotata stretta quanto le USDC → 0/13.287 (ETH) e 0/145.431 (BTC), miglior caso −$0,58 / −$0,82. Prendeva il mid di un mercato larghissimo e fingeva di poterlo quotare al 2,6%.
Reversione MISURATA, non assunta: β −0,062/−0,056 per ora, corr(t,t+1) +0,94, mezza-vita 11-12 h → il residuo e' la forma dello smile, non un errore che si ricompone.
Gate: controlli positivi 3/3 in entrambi i versi (violazione costruita → rilevata; catena sana
→ zero) — un rilevatore che trova ~0 e non e' validato e' indistinguibile da uno rotto; causalita'
strutturale (ogni test e' contemporaneo dentro un solo snapshot); ancora oraria girata (incoerenza
mid 5,99-6,36% su 24 ore, eseguibile max 0,00222% → nessuna ora apre una finestra).
marginal_vs_tp01/deflated_sharpe/de-levering/implausible_sharpe non girati, e il perche' e' il
risultato: non esiste una serie di ritorni da valutare (1 opportunita' su 1,03 M, del valore di
$0,00). f_markfit 1,0010 — converge col 0,992 del filone SKEW, implementazione separata →
il difetto non e' il prezzatore.
VERDETTO: SCARTATO. Il lato relative-value della superficie e' chiuso.
Smentitore piu' forte, dichiarato: quote reali della famiglia USDC (tutta l'estrapolazione e'
un controfattuale sui mid inverse) — osservazione decisiva: puntare il collettore anche su
{"currency": "USDC"} e rifare TEST B sul suo bid/ask.
🚨 SOTTOPRODOTTO — buco di colonna nell'archivio ereditato, mai registrato: bite_archive ha
index_price e underlying_price 100% None (1.232.212/1.232.212). Il sottostante esiste solo
dal 2026-07-30 (raccolta propria, 18,2% delle righe); book_depth_top3 solo nel 67,2%. Chiunque
calcoli moneyness o riprezzi sull'archivio pre-30/07 sta usando una colonna che non c'e'.
✅ Ed e' chiudibile: il forward si ricostruisce con la parita' put-call dalla catena stessa —
verificato contro l'osservato su 6.578 coppie: |errore| mediano 0,023%, p95 0,147%, corr
1,000000 → rende la superficie utilizzabile su tutti i 75 giorni invece che 23.
✅ Terza convergenza indipendente sul muro del dato (75 giorni di superficie); e lo smile —
che i filoni SKEW/TERM non usavano — esiste invece su 113 giorni dal 2026-05-01.