CLAUDE.md: ondata 2026-08-22 — difetto dei monitor forward, tre soglie falsificate, la leva invisibile ai gate, e una regola ritirata

This commit is contained in:
Adriano Dal Pastro
2026-08-22 18:04:52 +00:00
parent 272622b6e8
commit 827ae54dc1
+146
View File
@@ -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. ⚠️ **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' 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. 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: - **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. 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.** - **Sweep "strategie alternative" (2026-06-20) — 104 ipotesi / 153 agenti / NIENTE di nuovo regge.**