# 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 || 4 | DEALER-GAMMA | **SCARTATO** | la gamba tradeable e' INCOERENTE (BTC non separa, ETH separa al ROVESCIO); cio' che resta e' quasi tutto DVOL (corr 0.66), gia' refutato il 26/06. DSR 0.440 e la cella migliore sta SOTTO il massimo atteso dal rumore | | 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 **~$109 di sleeve (~$730 di book), 27x piu' in basso** | | 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 |t| in avanti 2,35 contro 2,08 atteso dal rumore). Ma Q3 e' grosso: **il f=0,73 di VRP01 e' per il 42% STRUTTURA A TERMINE e solo per il 25% skew** | | — | **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_tp01` inutilizzabile: su 90 giorni full e hold-out COINCIDONO (`n_hold_days == n_days == 90`). - **Null location-matched** (aggiunto dall'agente): `gamma_flip_level` bocciato — 96% di accordo con `spot > 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=0` corrisponde a `GEX=+5.8e6` su 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_oos` False 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*TP01` fa 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_xsr` da' **2.23**; 1.82 non e' nessuna delle due. Spiegazione piu' probabile: `data/raw` e' 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_sharpe` **FLAGGED** su entrambi (0 perdite su 10 -> regola del tre: tasso vero fino al 30%, su un payoff che perde 7,4x il credito); `deflated_sharpe` **non 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=True` in 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_sharpe` NON 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_sharpe` scatta. I **5 giorni migliori valgono il 61% del log-equity**. - ⚠️ `marginal_vs_tp01` **non puo' dare ADDS per costruzione** su questa finestra: `multicut` vuole >=2 tagli annuali da >=120g e `has_insample_edge` e' 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 `jit` concordava in segno con la propria regola solo nel **14%** dei casi (5% per `jit_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 `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.**~~ **<- RITIRATA, vedi sotto** 🚨 **REGOLA 2 — il null del de-levering e' DEGENERE quando la variante e' una ri-scalatura** (`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,000` dichiarato **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_null` passa. **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_term` passa da **0,83** (IV-rank basso) a **0,93** (alto) e supera **1,0 in backwardation**, mentre `f_skew` resta piatto (0,91-0,93) -> **la parte maggiore 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_max` osservato 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:** 1. **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**. 2. **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_gate` addebita *"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): titolo `demean_skeptic` **1,82** · gate `basket_gate` **1,75-1,79** (fee raddoppiate su una gamba inesistente) · monitor `paper_xsr` **2,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_utc` in `book_executions.jsonl` **non e' l'ora del fill** ma l'etichetta dell'ultima barra del feed (**18/18 dicono `00: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** in `logs/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 schema `fee_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**. E `REF-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 `volume` di `get_tradingview_chart_data` e' 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 stampa `None` va verificato prima di dichiararlo "non girato"** — stampava le chiavi sbagliate. ✅ Disciplina di rete rispettata: <=2 req/s e **sospensione automatica nella finestra :25-:29** di `cron_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:** 1. **"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"**. 2. **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. 3. **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**.