From 827ae54dc1b97707de319182067a1dfdd4dde673 Mon Sep 17 00:00:00 2001 From: Adriano Dal Pastro Date: Sat, 22 Aug 2026 18:04:52 +0000 Subject: [PATCH] =?UTF-8?q?CLAUDE.md:=20ondata=202026-08-22=20=E2=80=94=20?= =?UTF-8?q?difetto=20dei=20monitor=20forward,=20tre=20soglie=20falsificate?= =?UTF-8?q?,=20la=20leva=20invisibile=20ai=20gate,=20e=20una=20regola=20ri?= =?UTF-8?q?tirata?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- CLAUDE.md | 146 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 146 insertions(+) diff --git a/CLAUDE.md b/CLAUDE.md index 564de2d..a3d5cb4 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -1992,6 +1992,152 @@ Prima ondata di ricerca onesta su BTC/ETH certificati (5 track, harness condivis โš ๏ธ **Nota per il futuro-me:** e' una decisione presa con l'informazione completa, non una svista. Se qualcuno propone SOL "perche' e' eseguibile su Deribit", la risposta e' che l'eseguibilita' non e' mai stata il problema โ€” l'hold-out lo e', a 24 ancore su 24. +- ๐ŸŒŠ **ONDATA MULTI-AGENTE 2026-08-22 (20 filoni, branch `research/wave-0822`) โ€” 0 candidati, 1 + DIFETTO DI PRODUZIONE, 3 soglie pubblicate falsificate, 1 leva che nessun gate sa vedere.** + Diario `docs/diary/2026-08-22-wave-multiagente.md`; ledger per filone `docs/research/RESULTS-0822.md`; + briefing `docs/research/BRIEF-0822.md`; 21 script `scripts/research/r0822_*.py` (15.295 righe, + compilano tutti, ognuno gira da solo). **Book, pesi, cron, config INVARIATI.** + ๐Ÿšจ **(1) I MONITOR FORWARD REGISTRANO UNA FRAZIONE DEL GIORNO โ€” 4 su 6 rotti.** + `fetch_hyperliquid` e `resample_tf` scrivono la barra del **giorno in corso**; `advance()` la + consuma e **porta `last_ts` su di essa** -> le ore restanti non entrano in nessun rendimento. + | monitor | barre coincidenti | **min/giorno** | gate | + |---|---|---|---| + | `paper_statarb` | **0/46** | **4** | **STATARB 27/09** | + | `paper_dvolspread` | 0/28 | **2** | DVOLSPREAD 24/10 | + | `paper_xsr` | 1/28 | **41** | XSR01 23/10 | + | `paper_portfolio` | 7/56 | 19 | โ€” | + | `paper_prevday` | 1259/1319 | 1.438 | โ€” | + | `paper_combo` | 7/37 | 1.402 | โ€” (sano **per caso**: aspetta una borsa) | + **Il gate STATARB si ribalta su 2 criteri su 3**: Sharpe registrato **+1,96** contro **โˆ’2,02** + ricostruito, maxDD **2,2% contro 15,3%** (guardia <10%). + โœ… **La finestra NON va persa** (misurato 2 volte: il feed non riscrive le barre chiuse โ€” + `paper_prevday` 1427/1488 identiche al bit dopo 62 notti; le 6 barre di statarb recuperate dopo il + guasto EPERM 09-15/07 coincidono al bit) -> **"riparare `advance()` + RIGENERARE", non "riparare e + azzerare": nessuna data di gate si sposta** (pessimista: STATARB +18g). + **Guardia raccomandata, NON cablata:** `ts_ultima_barra + cadenza <= mtime del file`, grazia 5 min. + O(1), segnala 5/6, **tace sul sano**, controllo positivo sintetico 6/6 nei due versi. + โš ๏ธ `monitor_health` non poteva vederlo: **una serie fresca, completa e SBAGLIATA passa ogni + controllo di freschezza**. E `implausible_sharpe` non e' **mai** stato puntato sulle serie forward. + ๐Ÿ“Œ **(2) TRE SOGLIE PUBBLICATE, FALSIFICATE.** (a) *"XS01 serve ~$20k"* (origine: "rumore di + arrotondamento", stima a occhio del 19/06) -> **nessuna soglia da min-order**, haircut ~0 gia' a + **$200-600 allocati**. Meccanismo: gli ordini sono **due popolazioni** โ€” il ribilanciamento del + segnale e' il 13% degli ordini ma il **75% del nozionale** (ticket $13,65); la deriva del + vol-target e' l'87% degli ordini ma il **25%** (ticket $0,64) e **il pavimento la taglia gratis**. + *Contare gli ordini da' 16%, contare il nozionale da' 75%.* โš ๏ธ **Il "$20k di XS01" e il "$20k + della DECISIONE DI VENUE" sono due cose diverse conflate in questo file: il primo cade, il secondo + REGGE** (e' sull'asse della rovina, non dell'eseguibilita'). (b) *"slippage = rischio #1 di XSR01"* + -> **refutato con margine 21x**. (c) *"BTC opzioni fuori a $3.000"* -> misurato sulla famiglia + **inverse**, che un conto **USDC non puo' marginare**; la famiglia USDC-lineare ha lotti **10x piu' + piccoli** (ETH_USDC **$242**, BTC_USDC $772 contro $7.744). Il muro resta **per il prezzo del + lotto**. Parametri veri Hyperliquid: **min order $10** (non $5), **taker 4,50 bps** (non 5,0). + ๐Ÿ“Œ **(3) LA LEVA E' L'UNICA VARIABILE CHE NESSUN GATE DEL PROGETTO SA VEDERE.** Lo Sharpe e' + **invariante alla scala** (1,31 a ogni cella del knob) -> `deflated_sharpe` e `marginal_vs_tp01` + non falliscono, **non la vedono**. 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 + capitale-rendita (โ‚ฌ500/m, netto fisco). **Lo scettico conferma il numero e toglie la sua condizione + bloccante**: sotto la lente wick accoppiata il maxDD prende un **ricarico moltiplicativo costante + ~3,5%**, non un'amplificazione (**il maxDD e' multi-giorno, il wick e' di un giorno**). + **Il gradino resta NON autorizzato**: cade 1 riserva su 3; restano il drift stimato su 7,4 anni + (k* e' lineare nel suo errore) e la **coda assente dal dataset** (un giorno โˆ’10%/anno -> k* 2x). + โš ๏ธ **Ma la lezione del 25/07 e' vera e NON si trasferisce:** su una regola a **UN giorno** + (daily-loss, stop di conto) close-only e' **esattamente cieca** โ€” 0,00 breach/anno contro 0,40-1,21 + veri (**rapporto INF**). **Sul canale prop/funded la lente accoppiata resta OBBLIGATORIA.** + โš ๏ธ **`target_vol` e `k` NON sono la stessa leva:** `target_vol` scala il 75% del libro e lascia + fermo il 25% (a tv=30% il libro e' **82/18**, a 60% **90/10**) -> e' anche un tilt di pesi, e + **fallisce `weights_tilt_null`**. La strada pulita per un cambio di SCALA e' il cap di config. + ๐Ÿ“Œ **La vol realizzata di TP01 a `target_vol=20%` e' 12,14%**, scomposto: `20% x 0,682 x 0,890`, + dove lo 0,682 sono **due meta' quasi uguali** (flat nel 44,3% delle barre **e** convinzione + parziale) -> **"TP01 e' long-flat" spiega meta'**; e alzare `target_vol` **aumenta la size proprio + nei giorni in cui il segnale e' piu' debole**. Il x0,890 e' **diversificazione, non un difetto**. + โš ๏ธ **XS01 dichiara lo stesso 20% e ne realizza 20,59%: vale per TP01, non per il libro.** Nessun + numero pubblicato cambia (sono tutti sulla serie **realizzata**); sbaglia chi legge l'**etichetta** + (attribuirebbe a TP01 l'89% del rischio invece del **73%**). + ๐Ÿ“Œ **(4) PROP/FUNDED โ€” l'ipotesi centrale e' falsificata, e per la ragione teorica giusta.** + Riallocare *per la barriera* invece che *per lo Sharpe* vale **+0,016 di J (il 4%)**: il conto del + gambler's ruin lo prevedeva (**la vol sparisce, il contenuto sta nella LEVA**). Cio' che vale e' + **mettere XS01 su un conto funded: +0,400** (J 0,335 -> 0,738; P(pass) 38,6% -> 82,2%). Leva ottima + **0,75x HYRO / 1,00x FTMO**, e **la barriera piu' larga alza l'ottimo: il vincolo e' la regola di + DD, non il libro**; la leva alta **non compra probabilita', compra fretta**. Il **75/25 del libro + live non e' la ripartizione giusta per un conto a barriera** (sul 2019+ che contiene il 2022 + l'ottimo e' **38/62 @0,50x**). **Il null dei tilt dice che il PUNTO non conta**: il massimo di 200 + pesi casuali (0,739) **eguaglia** l'argmax (0,738) โ€” conta stare nella regione diversificata. + ๐Ÿšจ **Il numero da citare e' LA BANDA: P(>=50/g) da โ‚ฌ600 in 36 mesi = 42% al drift pieno ยท 7,7% allo + stress moderato ยท 0,7% a quello severo** (e li' e' **peggio del libro live**), perche' **tutto il + vantaggio poggia sul drift di XS01 misurato sulla sua finestra di scoperta**. Gate proposto: non + aprire un funded su questa allocazione prima che XS01 abbia una finestra fuori dal 2024-2026. + โš ๏ธ Distorsioni dichiarate e non rimosse: banda d'ancora **non girata** sotto quella lente (l'ottimo + gira sull'ancora canonica e si appoggia a **SKH01, che ha la fortuna d'ancora piu' grande da + restituire**); e la sotto-pesatura di **TP01, lo sleeve difensivo, e' misurata su un campione senza + sinistro** โ€” su una barriera assorbente quella scommessa si paga una volta sola. + ๐Ÿ“Œ **(5) LO SLIPPAGE DEL LIBRO LIVE, misurato per la prima volta: non c'e' a questa taglia.** + I backtest a 10 bps RT restano **conservativi di ~1,5 bps/lato** (fee vera 7 bps RT); estremi + avversi **1/18 contro 4,7 attesi**. Prova diretta: un fill ha preso il **21,9% del volume della sua + barra 5m** e quella barra ha avuto un range di **1,08 bps**. โœ… **Fee sul NASTRO: 5,00 bps/lato + prima del 2026-08-01 e 3,50 dopo, 16/16 esatti** = conferma indipendente di `fee_watch`. + ๐Ÿšจ **Ma la misura ha una DATA DI SCADENZA:** la partecipazione scala lineare -> quel 22% diventa + **172% di una barra 5m a $5.000** e **687% a $20.000**. **Va rifatta a ogni salto di taglia.** + โš ๏ธ Due difetti del dato trovati prima di misurare: `ts_utc` in `book_executions.jsonl` **non e' + l'ora del fill** (18/18 = `00:00:00`; l'ora vera sta solo in `logs/cron_book.log`); e il feed + certificato e' l'**INVERSE** mentre il libro trada il **LINEARE USDC** (**4ยช occorrenza** dello + schema `fee_watch`: misurare li' avrebbe misurato **la base**). + ๐Ÿ“Œ **(6) IL `f=0,73` DI VRP01 SCOMPOSTO โ€” il 42% e' STRUTTURA A TERMINE, solo il 25% e' skew** + (30% spread, 2% fit). **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 7g -> sovrapprezza **entrambe** le gambe. Il + "+0,8pp sulla gamba corta" del 30/07 โ€” che faceva sembrare **corretta** la gamba venduta โ€” e' la + **cancellazione di due errori da ~3pp**. โš ๏ธ **E la regola per prenderlo era gia' scritta il 03/07** + ("riprezzare term-structure-consistent prima di credere a un numero da struttura BS-flat") **e non + e' stata applicata alla misura del 30/07**. Verso: `f_term` va da **0,83** (IV-rank basso) a + **0,93** (alto) e **supera 1 in backwardation** mentre `f_skew` resta piatto -> **la parte maggiore + del difetto si annulla proprio dove il gate fa tradare il sleeve**, quindi f=0,73 e' plausibilmente + **conservativo li'**. Non misurato (0/22 ingressi passano il gate) e in un crash i due pezzi vanno + in **direzioni contrarie**. **`VRP_CFG["f"]` NON cambiato.** Replica indipendente del f: **0,714**. + ๐Ÿ“Œ **(7) CHIUSURE DI FAMIGLIA.** **Il filone funding si chiude sul QUARTO lato** (affollamento): + su **53.430 ore / 3 anni** non predice ne' direzione ne' volatilita'. E i futures datati **non sono + un quinto lato**: il loro basis **E'** il funding del perp (+7,33% implicito contro **+6,48%** + realizzato; premio incassabile **+0,85%/anno con IC95 che contiene lo zero**). **La mean-reversion + non risorge** sotto due conditioner mai provati (volume, shock 3ฯƒ): la selezione in-sample sceglie + il ramo di **continuazione** in entrambi. Scartati anche: adaptive-horizon (il "vincitore adattivo" + ha lookback **costante**, corr 1,000), dealer-gamma (BTC non separa, ETH separa **al rovescio**; + e โš ๏ธ **`dealer_net_gamma` del dataset ereditato e' il GEX col SEGNO INVERTITO**, corr โˆ’0,95, mentre + `liquidation_*_risk` e' **una sola categoria in 17.229/17.229 righe**), oi-pin (il max-pain **non + batte mai, 0/24, la media a 7 giorni dello spot**), term-structure (**termometro contemporaneo**), + skew direzionale (**il prezzo muove lo skew**, t 3,1-9,4 su 8/8, non il contrario), ortho-screen + **7/7**, alt-options (alt), xs-lite, vrp-quote-vere. + โš ๏ธ **La catena ereditata da bite ha 74-75 giorni utili, non 3,7 mesi:** prima del **2026-06-09** + raccoglieva **una sola scadenza per giro** (due agenti indipendenti, 74 e 75). + ๐Ÿ“Œ **(8) REGOLE NUOVE.** (a) **L'open interest NON misura la negoziabilita'** โ€” su Deribit USDC sono + quasi **anti-correlati (rho di rango โˆ’0,77)**: SOL_USDC e' 1ยช per OI e **ultima per quote a due + lati (9%)**, BTC_USDC ha **5** strumenti con OI>=100 e il **93%** dei put quotati (e sul short leg + di SOL il miglior bid sta a **UN tick**: vendere li' significa **pagare $27** per aprire un credit + spread). (b) **Il deflated-Sharpe va calcolato DI SCREEN, non solo di famiglia**: su 168 trial il + massimo atteso dal **puro rumore** e' **Sharpe 1,572**, sopra il soffitto direzionale (~1,3) -> + **uno screen largo su BTC/ETH direzionale non puo' passare il proprio gate, per aritmetica.** + (c) **Un placebo si controlla per BILANCIAMENTO DEL SEGNO prima di usarlo** (un null che concorda + col segnale nel 14% dei casi non e' un null, e' la strategia invertita: fabbrica celle + "significative"). (d) **Il null del de-levering e' DEGENERE quando la variante e' una + ri-scalatura** (`sh(k*base) === sh(base)`): serve **iso-peso sullo Sharpe**. (e) **Un gate che + stampa `None` va verificato prima di dichiararlo "non girato"**. (f) **Su una finestra interamente + post-hold-out `marginal_vs_tp01` non puo' dare ADDS per costruzione** โ€” un NEUTRAL li' non e' un + giudizio. (g) **Un confronto appaiato deve ereditare TUTTI i parametri della riga in cui compare.** + โŒ **REGOLA RITIRATA, pubblicata poche ore prima nella stessa ondata:** *"su equity a gradino un + overlay giornaliero e' non-causale"* โ€” **falso su questo motore**: `backtest_signals` contabilizza + al giorno d'**INGRESSO** in **291/293** trade e la "riparazione" e' un **no-op bit-exact**; il + "+0,04 fantasma" era la differenza fra due varianti **entrambe causali**, e quella scartata era la + **migliore sull'hold-out**. *Il costo di una regola derivata da un difetto inesistente e' gia' + stato pagato.* + ๐Ÿ“Œ **(9) Cosa NON e' piu' il vincolo: TRE volte in questa ondata l'eseguibilita' a $600 non ha + bocciato niente** (haircut 0,00-0,01; lotti $7-242; margine ~$148). Dopo due mesi in cui il muro + era sempre il capitale, **adesso muoiono tutti sull'edge**. + โš ๏ธ **(10) FATTO OPERATIVO: il cron gira dal WORKING TREE.** Con un branch di ricerca attivo, il + cron esegue quel branch. Durante l'ondata il diff vs `main` toccava **solo** `scripts/research/` e + `docs/research/` (verificato) -> produzione identica; ed e' il motivo per cui **nessuna riparazione + e' stata applicata**: sarebbe andata live alle 00:30 senza una decisione dell'operatore. + ๐Ÿ—‚๏ธ **Dataset nuovo in eredita':** **30/30 futures trimestrali scaduti** Deribit ricostruiti + (`get_instruments?expired=true` ne ritorna **1**, ma i nomi sono deterministici e + `get_tradingview_chart_data` serve la storia di un contratto scaduto): **BTC 240.150 barre orarie / + ETH 233.334, dal 2018-09, col deleveraging 2022 dentro** โ€” cioe' **la coda che a CC01 mancava per + costruzione**. Cross-check col forward implicito nella catena opzioni: mediana **โˆ’0,6 bps**. + - **Soffitto strutturale BTC/ETH-direzionale ~1.3** superato SOLO espandendo a un meccanismo diverso: cross-sectional su universo Hyperliquid certificato (XS01) โ†’ portafoglio Sharpe ~1.55. - **Sweep "strategie alternative" (2026-06-20) โ€” 104 ipotesi / 153 agenti / NIENTE di nuovo regge.**