CLAUDE.md: terza ondata — due gate d'attesa eliminati, il cap e' un clamp non un moltiplicatore, e il funding non e' in nessun backtest

This commit is contained in:
Adriano Dal Pastro
2026-08-22 22:12:01 +00:00
parent 73ae21c955
commit 8eaf7aa730
+120
View File
@@ -2312,6 +2312,126 @@ Prima ondata di ricerca onesta su BTC/ETH certificati (5 track, harness condivis
su un assunto scritto in un **commento a riga 100**. *La ricerca ha smesso di essere il vincolo
binding il 26/07, e due ondate da 29 filoni lo hanno CONFERMATO invece che ribaltarlo.*
- 🌊 **TERZA ONDATA 2026-08-22 notte (4 filoni) — DUE GATE D'ATTESA ELIMINATI, 2 difetti strutturali
trovati, 0 candidati.** Diario `docs/diary/2026-08-22-wave2-xs01-funded.md`; registro
`docs/research/RESULTS-0822.md` §30-33. **Libro, pesi, cron, config INVARIATI.**
**(1) `GATE PROP-01` gamba (a) — LISTINO: PASS 13/13.** La verifica a **€0** che il hook e il
critico avevano indicato come il vero vincolo. 📌 **Metodo: non leggere il sito della firm,
interrogare il VENUE su cui la firm esegue.** HyroTrader esegue su **Bybit**;
`api.bybit.com/v5/market/instruments-info?category=linear` (pubblico, tokenless, **833 strumenti**)
**13/13 gambe U13 `Trading`, `LinearPerpetual`, min notional $5**, leva 50-150x; **6/6** anche le
gambe non testabili. **Lo short e' STRUTTURALE su un perp**, non un permesso.
⚠️ Non prova che la firm non abbia una **propria** lista ristretta: la sua pagina dichiara "700+
pairs" su un venue che ne ha 833 (coerente, ma e' la *sua* dichiarazione) → si chiude con una
domanda al supporto, non con un dataset.
**VALIDAZIONE del modello:** la firm dichiara **daily DD 4% · max loss 6%**, e
`r0725_hyro.py:48-49` usa gia' `EV_TARGET,EV_DD,EV_DL = 0.10,0.06,0.04` → **le regole modellate dal
25/07 sono quelle vere.**
🚨 **CORREZIONE ECONOMICA: la quota d'ingresso NON e' un costo affondato** — e' un *"Refundable
Challenge Deposit, returned in full alongside your first funded payout"*. Il progetto l'ha sempre
modellata come spesa persa. **Resta vero che immobilizza il 91% del conto ($579 su $635), non che lo
brucia**: si perde solo nel ramo senza payout. **E' una struttura a OPZIONE, non una fee** → l'EV del
biglietto va rifatto (gamba (c) del gate). *Qualita' delle fonti dichiarata: listino **primario e
misurato**; regole DD **primarie dichiarative**; rimborsabilita' **dichiarativa + secondarie
concordi**, non misurata.*
**(2) `GATE PROP-01` gamba (b) — chiusa OGGI invece che il 2026-10-31: PASS 23/23.**
Delta appaiato mediano **+0,1162** [p10-p90 +0,087/+0,152], **23/23 offset e 230/230 celle congiunte
positive** (soglia +0,05), su **griglia congiunta PIENA** 23 offset × 10 fasi — non un campionamento
e non una somma di marginali. Riproduzione **7/7 esatta**, bit-exact **3/3 a 0,0**.
📌 **La data non aspettava un dato: aspettava che qualcuno misurasse il COSTO** (0,6 s per offset;
i "~9 min" erano di una computazione che la misura non usa). **Secondo gate d'attesa eliminato in una
sera, per la stessa ragione del primo.**
🚨 **Ma il numero operativo scende ANCORA: P(≥50 €/g) da €600 in 36 mesi = 4,4% [2,58,2%], P(zero)
35,3%** (l'offset canonico era al **91° pctl**; all'ancora canonica la macchina ridice 7,7% → e'
**fortuna d'ancora, non disaccordo**). **Traiettoria del numero in una giornata: 42% → 7,8% → 4,4%.**
📌 **E la distorsione dichiarata DUE VOLTE e mai rimossa — *"l'ottimo si appoggia a SKH01, lo sleeve
con la fortuna d'ancora piu' grande"* — e' MISURATA E REFUTATA nella forma forte:** a **38/25/38**
SKH01 sta **allo stesso peso del LIVE**, la sua ancora si cancella nella differenza appaiata, e li'
il delta e' **il piu' alto dei tre (+0,120)** con la banda **piu' stretta**. **L'ampiezza della banda
scala col differenziale di peso su SKH01** → **cio' che paga e' XS01, non un sovrappeso dello sleeve
fragile.**
⚠️ **Due avvertenze:** (i) **il gate e' su una DIFFERENZA, il numero operativo e' un LIVELLO**
nella prima l'ancora si cancella in parte, nel secondo per niente: passano insieme e si muovono
diversamente (33% contro 44%). ***Un gate superato non e' un numero confermato.*** (ii) il
surrogato del 22/08 era finito vicino al vero **per la cancellazione di due asimmetrie opposte**:
**il numero era giusto, il metodo no.** **Smentitore residuo fuori perimetro:** l'ancora giornaliera
di **TP01** (24 ore, canonica 00:00 UTC = la piu' fortunata delle 24) non e' toccata da questa misura.
📌 **(3) GATE-RECON — il difetto `advance()` ribalta UN gate su tre, e in quello due criteri su tre.**
Audit di **sola lettura provata** (md5+mtime di **ogni** `data/paper_*` invariati).
**`STATARB 27/09 — riparata: RITIRO · attuale: CANDIDATO AL DEPLOY`** (Sharpe **+1,96 → 2,02**,
maxDD 2,24% → 15,19%); XSR01 e DVOLSPREAD danno **lo stesso verdetto** in entrambe le lenti.
**La premessa "rigenerare non perde la finestra" e' ora CONFERMATA PER VIA DIRETTA:**
`data/_feed_backup/*.prebuild.bak` conserva il vintage pre-riscrittura → **0 barre chiuse cambiate su
1.761.259**; l'unica riga che cambia per file e' **l'ultima del vintage, che era aperta** = *il
difetto stesso, in chiaro*. ⚠️ Limite: `hl_*_1d` e `dvol_*` **non hanno vintage su disco** → per
XSR01/DVOLSPREAD l'evidenza resta **indiretta**.
🚨 **Il veto d'integrita' di DVOLSPREAD NON scatta: 28 attive/28 = 100%.** Una serie che registra
**2 minuti di mercato al giorno** passa al 100% un veto progettato apposta per non far decidere su
dati mancanti — **non e' taratura**: il veto conta *se il DVOL c'era*, non *quanto dura la barra su
cui c'era* (**assi ortogonali**); la stessa soglia 0,80 sulla quota di barre **chiuse** leggerebbe
**0%**. **Variante nuova: una barra presente non e' una giornata presente.**
🚨 **Il caso peggiore NON e' quello coi numeri piu' assurdi:** XSR01 sbaglia di **×6,6** e
DVOLSPREAD di ×3,0 **senza cambiare verdetto**; **STATARB ha |Sharpe| quasi identico (1,96 contro
2,02) e cambia SEGNO** — ed e' il gate piu' vicino. Un controllo che cercasse *"numeri troppo belli"*
**lo lascerebbe passare**; `implausible_sharpe`, girato per la prima volta sulle serie forward, dice
**"ok" in entrambe le lenti** (e chiede n≥30, quindi 2 serie su 3 **non sono giudicabili**).
**La firma da cercare e' la VOL forward molto sotto quella del backtest** (7,88% contro 31,42%).
📌 **QUANDO riparare, con un numero:** con **rigenerazione zero barre perse a qualunque data**; senza,
riparare **oggi** lascia **36/90** barre vere a STATARB (62/90 XSR01, 63/91 DVOLSPREAD), **alla
vigilia 1** — e la riparazione parziale **non contamina la finestra, la ACCORCIA** (una barra troncata
porta ~1/370 della varianza *e* del rendimento di una vera, quindi non pesa). ⚠️ La diagnostica
pre-registrata del 25/07 (statica sempre-short) **non e' affetta** perche' si ricalcola dal pannello
→ al gate si confronterebbe **un benchmark giusto con un numero di strategia sbagliato**, e il
margine sembrerebbe **+5,83 invece di +1,87**.
🚨 **(4) WORST-DAY — la riserva sulla leva e' mal tarata di 2-4 ORDINI DI GRANDEZZA, ma il knob di
scala NON ESISTE.** Il gradino 1,00x→1,25-1,50x vale **14,7 → 11,6 anni** al capitale-rendita
(~€300/mese di versamenti equivalenti) ed era bloccato da un parametro **scelto a mano** ("un giorno
a 10% ogni anno"). **Il peggior giorno ha due risposte:** **3,94% in chiusura** (2020-03-13) e
**7,33% al minimo** intra-giorno (rapporto mediano **1,89×**). Coda GPD: **4,55% a 1/10.000
giorni** [6,34/3,08] ⚠️ **ma Hill dice 7,34% (ξ 0,34 contro 0,09): i due stimatori NON concordano
→ si cita la banda.** Conto **aritmetico** (cap + vol-target + gap-through di SKH01): peggior giorno
**possibile** a k=1,00x **14,32%**. 📌 **Il 10% sta al 70% del massimo strutturale: la TAGLIA e'
plausibile, la FREQUENZA no** (1 ogni 67-6.075 anni contro "ogni anno").
📌 **E la forma della coda non e' la leva: muove k* di 1-2 unita', il DRIFT di 6,7.** Anche prendendo
lo stress **alla lettera**, k* 2,95x → mezzo-Kelly **1,48x**: *lo stress bocciava il gradino DOPPIO,
non quello singolo*. C1-C5 passano tutti.
⚠️ **Il libro NON e' immune ai crash, e' immune ai crash GROSSI:** sui 160 giorni di crash perde in
media 0,505%, e l'esposizione di TP01 scende **monotona** col crollo (0,096 → **0,042** sotto il
20%) *perche' li' il trend si e' gia' girato*. **Il suo peggior giorno non e' un crash: e' uno
SHORT SQUEEZE** (SKH01 short con stop 2% che gappa a **15,77%** di sleeve mentre TP01 e' flat; il
secondo peggiore fa 6,67% → **la coda di SKH01 e' un giorno solo**).
🚨 **IL RISULTATO CHE DECIDE, e nessuno lo cercava: il cap di `config/live.json` e' un CLAMP, non un
MOLTIPLICATORE.** Morde su **3 osservazioni-asset su 5.650 (0,053%)**; alzarlo da 0,50 a 0,625
lascerebbe il libro a k=1,00x in **5.647 giorni-asset su 5.650**. ✅ **Verificato:** le chiavi sono
`max_notional_per_asset_usd/_frac`, `min_order_usd`, `disaster_sl_pct`, `max_data_age_days`,
`skh_feed_max_age_min`**non esiste una chiave di scala**; servirebbe toccare `WEIGHT`/`W_TP01`/
`W_SKH` in `src/live/book.py`, cioe' **codice** su un percorso con soldi veri.
**⇒ La regola *"ogni cambio di SCALA passa dal cap di config, non da `target_vol`"* NON E'
IMPLEMENTABILE COME SCRITTA.** *Due mesi di discussione su un knob inesistente.*
**Il gradino a 1,25x e' AUTORIZZABILE A CONDIZIONE DI** costruire prima una **chiave di scala
esplicita** in config **e** rifare `r0726_fee_sensitivity`, la cui conclusione *"liquidation fee
irrilevante"* **vale solo a nozionale lordo ≤1x** (ed era gia' legata a un test di guardia sul cap).
⚠️ **Nota dovuta:** credendo **entrambe** le riserve insieme (drift 2SE **e** 10% annuo) il drift
atteso e' **0,61%/anno** → *non e' il gradino a essere sbagliato, e' il libro; chi usa quella
combinazione sta chiedendo di spegnere anche il conto di oggi.*
🚨 **(5) IL FUNDING DEI PERPETUAL NON E' MODELLATO IN NESSUN BACKTEST — e tocca ogni numero del
progetto.** ✅ **Verificato:** **zero occorrenze** di `funding` in `src/backtest/harness.py`,
`src/strategies/trend_portfolio.py`, `src/portfolio/{sleeves,portfolio}.py` **e in tutto
`src/live/`**. Proxy Hyperliquid 14,8%/anno × esposizione long media di TP01 (0,103·E) =
**~1,53%/anno che il libro paga davvero** = **il 9% del drift de-luckato**, cioe' **lo stesso ordine
della correzione d'ancora ×0,89** che il progetto ha misurato con cura. **Il progetto ha prezzato
fee, slippage, min-order, pavimento IB, haircut, fortuna d'ancora, degrado d'esecuzione, look-ahead,
split, rischio di venue e fisco — e mai il costo di tenere una posizione aperta su un perpetual.**
**REGOLE NUOVE:** (a) **una data in un gate va giustificata col COSTO della misura, non con la sua
difficolta' percepita** — due gate d'attesa eliminati in una sera perche' nessuno aveva contato i
secondi; (b) **una verifica esterna a €0 va fatta PRIMA di qualunque misura che ne dipenda**, e si
fa **sul venue, non sul sito** di chi la dichiara; (c) **un gate superato non e' un numero
confermato**: differenze e livelli ereditano la fortuna d'ancora in modo diverso; (d) **un veto
d'integrita' sorveglia l'asse su cui e' stato scritto** — contare *se* il dato c'era non dice
*quanto* del giorno copriva; (e) **una regola operativa va provata contro il codice che dovrebbe
eseguirla**, o si discute per mesi di un knob che non esiste; (f) **quando due stimatori di coda non
concordano si cita la banda**, non quello che conviene.
- **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.**