diff --git a/CLAUDE.md b/CLAUDE.md index 546e563..4d4773e 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -1241,6 +1241,121 @@ Prima ondata di ricerca onesta su BTC/ETH certificati (5 track, harness condivis powers*, conti dormienti) non lo sorveglia nessuno; `MAINT_GRACE_HOURS`=2 **presume** gli annunci invece di leggerli (due `locked=true` in 4 giorni: 18/08 ~4h, 21/08 ~1h); la terza referenza non e' validabile sulla storia. +- ๐ŸŒŠ **QUARTA ONDATA 2026-08-23 (5 filoni, `research/wave-0822`) โ€” 0 candidati, 1 lead + RIDEFINITO, 1 premessa MIA falsificata, e la scorta di DATI dichiarata esaurita.** Registro + `docs/research/RESULTS-0822.md` ยง41-45. **Libro, pesi, cron, config INVARIATI.** + ๐Ÿšจ **(1) ยง41 TP01-SIZE โ€” in questa famiglia la selezione in-sample e' ANTI-correlata col + futuro.** *Esiste una size che risponde alla CONVINZIONE, a pari vol realizzata?* 60 celle + dichiarate prima, 24 ancore. **`Spearman(ShIS, ShHOLD) = โˆ’0,527` (p<0,001)**: scegliere in-sample + e' **peggio di una moneta**, ed e' meccanismo, non rumore โ€” `Spearman(rho, ShHOLD) = +1,000` a + tutti e sei i q (in hold-out l'ottimo e' al bordo) mentre in-sample la curva e' **a gobba** con + ottimo interno. **La convinzione e' informativa in-sample e ANTI-informativa in hold-out** (BTC + hold-out: convinzione debole Sh **+2,20** contro piena **โˆ’0,06**) โ†’ l'unica cella con guadagno + hold-out robusto e' esattamente quella selezionabile **solo guardando l'hold-out**. **Non esiste + una cella proponibile.** Il meglio della griglia vale **+0,30pp** di CAGR iso-vol e il maxDD di + libro peggiora a **24 ancore su 24** โ€” cioe' proprio cio' per cui TP01 esiste. + ๐Ÿšจ **CORREZIONE A UNA MIA PREMESSA, verificata al sorgente: il bucket di convinzione 2/3 NON + ESISTE.** `tsmom_blend` media **tre `np.sign(...)`** โ†’ direzione in **{โˆ’1,โˆ’1/3,+1/3,+1}**, dopo il + clip long-flat in **{0, 1/3, 1}** (BTC 44,2/24,7/31,1%). Trovato da **due agenti indipendenti**. + **Conseguenza:** potenza `c^p`, floor affine e soglia sono **la stessa cella riparametrizzata** โ€” + la famiglia della convinzione ha **UN** grado di liberta', non tre. + ๐Ÿ“Œ **Null del RE-LEVERING, forma piu' pura mai misurata (6ยช occorrenza, prima col segno + rovesciato):** togliere il vol-targeting fa **CAGR 16,32% โ†’ 46,75% (+186%)** e a iso-vol + **โˆ’2,40pp**. **Era tutta leva.** + โš ๏ธ **Fatto sull'harness:** `altlib.tp01_baseline_daily()` **NON e' bit-exact col sleeve** โ€” 1 ulp + su **68,5%** dei giorni, perche' `_to_daily` fa `(1+r).resample("1D").prod()-1`, no-op + **algebrico** ma non in virgola mobile. *"Bit-exact vs altlib" non e' un controllo ottenibile.* + โŒ **(2) ยง42 TP01-LS โ€” la short del trend a 1d SCARTATA, e piu' nettamente dell'attesa.** + Meccanismo congelato, un solo grado di liberta' (floor da 0 a โˆ’1); โœ… replica bit-exact a 4 vie + (**floor=โˆ’1 == `CANONICAL(long_only=False)`**, `max|diff| = 0.0`). Esito: **โˆ’1,91%/anno di drift + in 0/24 ancore**, **gate iso-vol FAIL 3/3** (non e' leva travestita: alza la vol **e** abbassa il + ritorno), **maxDD +8,80pp in 24/24**, NEUTRAL con alpha โˆ’2,60%/anno, e **a fee ZERO** 1,338 contro + 0,904 โ†’ *non e' morte-per-fee, l'edge lordo non c'e'*. **L'attesa a priori ("sara' il 2022") e' + confermata e superata: 2/8 anni positivi, e SENZA il 2022 il divario RADDOPPIA** (dShFULL โˆ’0,406, + iso-vol โˆ’7,44%) โ€” *il 2022 non e' l'anno che regge la tesi, e' l'unico che la tiene a galla a + meta'*. **Non selezionabile**: `select_cell_insample` sceglie il canonico. + โš ๏ธ L'unica cosa a favore (**dShHOLD +0,292 in 23/24**) **all'ancora canonica vale โˆ’0,008** = caso + **speculare** della lezione del 26/07 (li' l'ancora canonica inventava un danno, qui ne nasconde + un vantaggio). ๐Ÿ“Œ **Trovato per strada: `src/live/book.py` contiene `max(tp_frac, 0.0)` โ€” il + long-flat e' cablato anche nell'ESECUTORE**, non solo in `CANONICAL`. + ๐Ÿšจ **(3) ยง43 DATA-UNUSED โ€” LA SCORTA DI DATI DEL PROGETTO E' ESAURITA.** Inventario su **647 + file `.py`** (`Old/` escluso): **ogni dataset con storia vera e' gia' stato analizzato almeno una + volta**; cio' che resta non letto e' **telemetria a finestra corta (30-113 giorni)**, con una sola + eccezione โ€” `external/coinmetrics/` (**26 colonne su 31 mai lette**, storia dal 2018). + Misurato prima di usarlo che il dato **fosse** nuovo: il flusso **netto** e' `corr +0,9993` con la + derivata dello stock gia' ucciso il 24/07, il **lordo** e' ortogonale (`+0,035`) perche' **il 94% + del flusso si cancella**. E perde: **massimo atteso dal PURO RUMORE su 36 trial = Sharpe 1,009, il + candidato fa 0,951 โ€” sotto**; DSR 0,437; multi-cut negativo 7/7 anni. + ๐Ÿ“Œ **METODO RIUSABILE: mettere nella griglia una variabile che si SA gia' morta** trasforma + *"il candidato perde"* in *"il dato non contiene nient'altro di selezionabile"* โ€” qui la selezione + in-sample e' **tornata sul controllo negativo**. E' l'unica forma in cui un inventario puo' + concludere qualcosa di positivo su un'assenza. + โš ๏ธ **Conferma diretta del ยง10** catturata dall'agente su se stesso: il pool *"N=12"* del + deflated-Sharpe erano **le 12 celle MIGLIORI** e faceva **PASSARE** il candidato a **0,975** + invece di 0,678. + โŒ **(4) ยง44 DEPOSIT-TIMING โ€” il timing dei bonifici non paga, 0/12 celle in OGNI lente** + (โ‚ฌ500/m, โ‚ฌ250/m, IID, drift dimezzato). โœ… Replica 4/4 prima di ogni delta, fra cui P0 vs + `PN.accumula` a **`max|dif| = 0.0`** su capitale **e** giorno d'arrivo. + ๐Ÿ“Œ **Il segnale FA quello che promette e perde lo stesso:** dip 20% compra al **0,494** del + livello medio del piatto (**51% piu' in basso**) e arriva al capitale-rendita nel **6,3%** dei casi + contro l'**85,4%** del piatto โ€” *comprare meglio e comprare tardi sono la stessa mossa*. E sotto + soglia bassa **si ribalta**: dip 5% compra a **1,009**, cioe' **piu' in alto** (su una serie che + sale, una condizione poco profonda non compra il calo, **ritarda dentro la salita**). + ๐Ÿ“Œ **L'asimmetria e' la misura: un rialzo del 20% dal minimo arriva in 16 giorni, un ribasso + del 20% dal massimo in 3.682.** *Il costo non e' scommettere sul lato sbagliato, e' mettere una + **condizione rara** davanti a un bonifico โ€” in qualunque direzione.* + Rischio di venue **separato** dal timing: tenere i soldi fuori vale +2,4pp a p=1% contro โˆ’15,7pp + di penalita' di timing, e **`P(libro azzerato)` e' IDENTICA per tutte le politiche** (21,6%) โ€” *il + conto salta comunque, cambia quanto c'e' sopra*; la protezione si compra con un **secondo conto**. + โš ๏ธ Due errori dell'agente catturati da un controllo: un diagnostico che diceva *"il buy-the-dip + contiene previsione"* (+11,5%) e che **sotto IID vale +14,9%**, cioe' **piu' grande** โ†’ meccanico; + e lo specchio anti-dip, che **si legge sulla colonna dell'ATTESA, non su quella del segno** (P4 e' + piatto perche' la sua condizione e' quasi sempre gia' vera). + **Ordine di grandezza: la migliore politica di timing vale โˆ’0,1pp, dentro il rumore MC di 2,0pp; + โ‚ฌ250 โ†’ โ‚ฌ500 al mese vale +71pp (14% โ†’ 85%).** + โš ๏ธ **(5) ยง45 SPOT-NETTING โ€” il lead dello spot REGGE, ma non per la ragione per cui il filone e' + stato aperto.** Il margine **non e' il vincolo**: BTC/ETH sono `in_cross_collateral_pool` (11 + valute su 51), lo spot ha `max_leverage: 10` (โ‡’ vive nel conto marginato) e nel caso peggiore la + **copertura e' 50,0x, invariante al capitale** โ€” anche valutando lo spot **zero** come collaterale. + **L'haircut non e' leggibile e non e' binding**: *unico caso in cui "non lo so" e "non conta" + coincidono, e va detto in quest'ordine.* + ๐Ÿšจ **A bloccarlo e' IL CODICE, non Deribit:** `src/live/shadow.py::_equity` legge **solo** + `account_summary("USDC")` โ†’ con $477 in spot il libro **leggerebbe $159 invece di $636 (25%)** e il + riconciliatore **ricomprerebbe** la gamba. *Non e' un cambio di strumento, e' un cambio del + percorso di SIZING del live.* + ๐Ÿšจ **La separazione delle gambe non vale nulla, su tutti e tre gli assi:** (i) **T1 sbloccato e' + un DECLASSAMENTO** โ€” `onbook_tp โˆ’ hourly` **riproduce** il pubblicato (+0,051/+0,057) ma contro il + path che il live **gia' percorre** fa **โˆ’0,048 FULL (6/23)** *(conferma indipendente della + decisione del 26/07, per un'altra strada)*; (ii) il **netting perso RISPARMIA** commissioni + (**$4,34 โ†’ $2,97/anno, โˆ’0,216%**) โ€” la stima "1-2%" di ยง39 era **alta di un ordine di grandezza** โ€” + e le ore a **segni opposti** sono lo **0,61%** della storia; (iii) meno ordini **non e' meglio**: + il tracking peggiora del **+12%** (5ยช occorrenza della lezione *"banda in valuta assoluta"*). + **Il valore e' il FUNDING e basta: lordo +1,58%/anno โ†’ netto [+1,55%, +1,66%]**, [+1,33%, +1,44%] + se lo spot passasse a 3,50 bps, **+0,50% nello scenario fiscale sfavorevole**. Il costo vero + d'esecuzione e' lo **spread** (perp a **un tick**, spot 1,5-3,1 bps) โ†’ **[โˆ’0,034%, +0,077%]/anno**, + ampiezza 7% del lead: **l'esecuzione non decide questo lead**. + โŒ **Ipotesi dell'agente nata e refutata nel filone:** l'`apr 3,40` di USDC in `get_currencies` + costerebbe fino a **2,55%/anno** โ€” ma su **6 run col conto flat (il piu' lungo 257 giri orari)** + l'equity e' **invariata al centesimo** โ‡’ **< 0,029%/anno**. *L'obiezione e' morta e il lead non + deve pagarla.* + ๐Ÿšจ **Due costi NUOVI mai contati, che la separazione introduce:** (a) se i derivati sono + `c-quater` i **comparti fiscali si SEPARANO** โ†’ le minusvalenze del perp (SKH01) smetterebbero di + compensare le plusvalenze spot (TP01); (b) il disaster-SL oggi protegge la posizione **netta**: + separando resterebbe **solo sul perp**, e in un blackout **TP01 resterebbe long al 75% del conto + senza stop**. (Di contro, lo spot **non si liquida**: esce dal perimetro il 75% del libro.) + โš ๏ธ E `fee_watch` **non vedrebbe** una gamba spot (deriva `INSTRUMENTS` da `BOOK_INSTRUMENT`, il + difetto corretto il 21/08); `convenzione('BTC_USDC')` ritorna **`'ignota'`** โ†’ servirebbe una + **terza famiglia 'spot'**. *La ragione per sorvegliarlo non e' che la fee lo ucciderebbe (perde il + 14% del guadagno e sopravvive), e' che oggi nessuno se ne accorgerebbe.* + ๐Ÿ“Œ **IL PROSSIMO PASSO NON E' UN BACKTEST: e' la domanda al commercialista** (gia' aperta dal + 07/08) **e un acquisto di prova da $7,73** โ€” le tre cose non determinabili senza conto reale + (haircut, se `equity` USDC includa i saldi BTC/ETH, se `get_positions` ritorni lo spot) si + risolvono cosi'. **E' un ordine โ‡’ decisione dell'operatore.** + ๐Ÿ“Œ **(6) LA RIGA DI SINTESI.** Quattro filoni su cinque SCARTATI, il quinto ridimensionato a + *"vale il funding e basta"*. Ma la misura piu' grande dell'ondata resta quella di ยง44: **la + migliore politica di timing vale โˆ’0,1pp mentre passare da โ‚ฌ250 a โ‚ฌ500 al mese vale +71pp**. + **Con questa sono 45 filoni in due giorni e 0 candidati promossi: la ricerca ha smesso di essere + il vincolo binding il 26/07, e sette ondate lo hanno CONFERMATO invece che ribaltarlo.** - ๐Ÿšจ **IL TRASPORTO DEGLI ALLARMI E' UN PUNTO SINGOLO DI GUASTO โ€” misurato 2026-08-23, NON riparato (produzione, decisione dell'operatore).** Registro `docs/research/RESULTS-0822.md` (sezione NOTIFIER). Il progetto ha tarato il **rilevatore** (`venue_watch`: 1 falso allarme in 8