# 2026-09-09 — Guadagnare nei crolli: revisione dei sistemi, il crollo catturato, piu' monete su Deribit **Richiesta dell'operatore:** *"fai analisi e revisione dei sistemi adottati e trova soluzione per guadagnare anche nei crolli (usa le opzioni se serve), anche + monete ma sempre in deribit"*. Analisi e revisione col modello `fable` (revisore fresco, agente separato), test con Opus. **Esito in una riga:** nel **giorno** del crollo il libro live **perde** (−0,48%/g, positivo nel 18% dei giorni ≤ −5%); per **finestra** e' immune-o-positivo e **dal 2022 chiude in utile 8/8 peggiori finestre**, tutte per la gamba SHORT di SKH01 marcata all'uscita; la sola leva che aumenterebbe quel guadagno e' il peso di SKH01, che il gate del progetto boccia su una condizione in-sample; le opzioni, misurate per la prima volta su un **crollo catturato a quote vere**, danno un rapporto di credito identico al rally (f_net 0,74 vs 0,714) — **non** il `f` di stress che la regola del 19/06 aspettava (crollo a vol bassa, gate di VRP01 chiuso, famiglia inverse); XRP, l'unica "altra moneta" liquida e non misurata di Deribit, **diluisce** esattamente come SOL. **Libro, pesi, config, cron INVARIATI. Nessun ordine.** ## 0. Prima di misurare: cosa era gia' morto (memoria letta, non riaperta) | meccanismo "guadagnare nei crolli" | esito | perche' e' morto (chi riapre deve battere questo) | |---|---|---| | gamba short del trend a 1d (§42) | SCARTATO | −1,91%/anno di drift in 0/24 ancore; il 2022 lo tiene a galla a meta' | | put deep-OTM statica (§46) | REFUTATO 0/162 | beta del libro +0,076: non si assicura un libro gia' piatto | | collar ≤15g (§71) · pavimento come licenza (§72) | REFUTATI | il DD lo riduce il TETTO (troncatura, C9); la put sola peggiora il DD 16/16 | | gamma scalping long-vol | SCARTATO | paga il VRP ogni anno, ogni frequenza | | DVOL direzionale · gate macro · skew de-risk | HEDGE / RIDONDANTI | TP01 e' gia' flat nei crolli (Δ 0,00) | | SOL terza gamba (22/08) | ESCLUSO dall'operatore | hold-out −0,166 in 0/24; un anno solo (2023) | | XS01 su Deribit (§50) | MORTO per ampiezza | 11 gambe con ≥1 anno: 1,265 → 0,116 | Condizione di riapertura scritta tre volte (§3 short-vol, §71, §72): **un `f` di stress reale su un crash catturato**. E' la cosa che oggi si poteva misurare e non era stata misurata. ## 1. Il libro nei crolli — `r0909_libro_nei_crolli.py` Lente: sleeve di ricerca, ancora canonica, fee 0,10% RT, funding fuori; pesi importati da `src/live/book` (P1). ⚠️ **SKH01 e' marcato all'USCITA del trade** (`harness.backtest_signals`): la serie giornaliera e' zero nell'87,7% dei giorni, e uno short aperto nella finestra e chiuso fuori e' accreditato fuori — per questo la tabella per GIORNO mostra SKH01 ≈ 0 e quella per FINESTRA il guadagno. Indice 50/50 BTC/ETH; giorno di crollo ≤ −5%; episodio = 12 peggiori finestre di 20 giorni non sovrapposte + 9 episodi nominati prima. Classi ESCLUSIVE nell'ordine dichiarato: immune (|libro| < |idx|/10, col segno) → POSITIVO → PERDE. | misura | valore | |---|---| | beta del libro all'indice | **+0,0769 sulla finestra di §46** (2021-03-24+; memoria +0,076: riprodotto al millesimo) · +0,086 su tutta la storia · +0,002 nei giorni ≤ −3% | | 160 giorni ≤ −5% (indice −7,76%/g) | libro **−0,48%/g**: TP01 −0,63, SKH01 +0,15; **libro > 0 nel 18%** dei giorni; somme per anno: 2024 −11,9%, 2025 −7,3%, 2022 +8,2%, 2026 +4,7% | | 24 giorni ≤ −10% (indice −14,4%/g) | libro −0,51%/g: TP01 −0,93, SKH01 **+0,42** | | 12 peggiori finestre 20g | **4 POSITIVO / 6 immune (4 col segno +) / 2 PERDE**; libro > 0 in 8/12; **dal 2022 in 8/8** (mediana +3,3% contro indice −29%); le 2 perdite sono 2019 e maggio 2021 (TP01 ancora long: il trend non si era girato) | | 9 episodi nominati | libro > 0 in LUNA (+4,3%), giugno 2022 (+3,1%), FTX (+0,7%), agosto 2024 (+0,4%), 5/02/2026 (+4,4%), 1-5/06/2026 (+3,3%); COVID −0,04%, feb 2025 −1,5%, maggio 2021 −3,4% | | da dove viene il guadagno | la gamba **SHORT di SKH01 = 108%** dei guadagni negli episodi con libro > 0 (scomposizione ESATTA: long + short == intera su 2735/2735 giorni, verificato con assert; TP01 contribuisce in negativo); per anno al peso 0,25: 2022 **+10,7%**, 2026 **+7,7%** | | peggior giorno del libro (lente canonica) | 2025-10-10 −3,38%, tutto TP01 con esposizione **0,505**, indice −9,7%: **e' un giorno di crollo con TP01 mezzo long** (lo squeeze di §33 sta sulla lente hourly e qui non si riproduce: dichiarato nel docstring) | | riga informativa 37,5/62,5 (§26) | batte il 75/25 in 12/12 episodi, **ma** Sharpe 1,81 vs 1,82 e maxDD 12,1% vs 9,4%: paga i crolli con gli squeeze | 🚨 **Errore catturato in revisione (fable):** la prima stesura provava "GUADAGNA" prima di "immune" e stampava **8/12 GUADAGNA**; con le classi nell'ordine dichiarato sono **4 POSITIVO + 6 immune**. *L'ordine delle regole era il verdetto.* Ora il verdetto e' tre affermazioni separate (giorno / finestra / provenienza) e il conteggio nudo libro > 0 e' stampato accanto. 📌 **Il meccanismo "guadagnare nei crolli" esiste ed e' in produzione: e' SKH01 short** — ma guadagna **dopo** il giorno del crollo (marcato all'uscita), non dentro. Nel senso stretto della domanda dell'operatore il libro **perde nel giorno** e recupera nella finestra. Le due perdite storiche per finestra sono di TP01 nei crolli che arrivano *dentro* un trend rialzista (2019, 2021): e' il costo del long-flat (§42 ha misurato che la short del trend lo aggrava). **La leva che aumenterebbe il guadagno e' il peso di SKH01, e il gate la boccia:** `r0726_reeval_live_weight.py` rilanciato: argmax 0,35, plateau [0,25-0,50] (il live e' dentro), `weights_tilt_null` 0,25→0,35: `delta_insample −0,0026`, `pctl_hold 31,2`, **`gate_pass False`**. ⚠️ Precisazione della revisione: lo script legge la cache `data/_cache/skh_sigtab/*` **ferma al 2026-07-25** — sono le stesse cifre del diario 26/07, non un ri-esame coi segnali di oggi. La condizione che fallisce e' pero' **in-sample (pre-2025)**, che 46 giorni di dati nuovi non possono cambiare: la decisione 75/25 resta vincolante e la sua condizione di riapertura resta non soddisfatta, ma la data da citare e' il 26/07. ## 2. Il crollo catturato — `r0909_crash_catturato.py` **Fatto nuovo:** `bite_archive.parquet` copre con bid E ask il crollo del **1-5 giugno 2026** (BTC −25% / ETH −30% dal 31/05 al minimo; ETH −11,1% il 05/06) su una scadenza (19/06, 14-21 DTE). Il campione del 22/08 (§11) partiva **dopo**, dal fondo. Limiti dichiarati prima: n = 1 crollo, 1 scadenza, tenor 14-21 g (VRP01 e' a 7), spot dal feed 1h certificato, regolamento allo spot dell'ora di scadenza, **famiglia INVERSE** (premi in ETH: VRP01 opererebbe sulla USDC-lineare, che il conto margina e che NON e' nell'archivio). Ancora d'ingresso = ogni snapshot 30/05-04/06; mediana e banda. ⚠️ **Non e' un crollo a vol alta:** DVOL pre 37 (BTC) / 49 (ETH) all'IV-rank 0,05 / 0,10; il **picco** del crollo (49 / 69) sta al **29° / 46° percentile storico** — sotto la mediana. Il gate IV-rank ≥ 0,30 di VRP01 e' **chiuso in tutte le ore** e il modello del sleeve segna 0,0 su tutte le settimane di giugno: VRP01 non sarebbe stato a mercato. | ETH, ingressi PRE-crollo (286 snapshot = **4 strutture** di strike, δ −0,27/−0,09, larghezza 200) | reale | modello (BS su DVOL) | f | |---|---|---|---| | credito del put credit spread | | | **0,74** [0,65-0,82] — 22/08 in rally: 0,714 | | P&L a scadenza per unita' | **−$174** | −$168 | 1,04 — **tautologico nell'83%** dei trade: entrambe le gambe ITM ⇒ payoff = larghezza per reale e modello, resta solo f_net | | perdita sul rischio (fee incluse) | 101% [65-102] | | = perdita **MASSIMA** dello spread (+ fee); 65% per la 1900/1600 | | peggior MTM, chiusura **tagliata alla larghezza** | **−$172** | −$161 | **1,08** [1,07-1,31]; a quell'ora IV corta 68 = DVOL 68 | | put δ−0,10 comprata all'ask: costo | | | **1,92×** il modello (§46 a δ−0,10 su BTC_USDC: 1,27 — punto NUOVO e piu' alto, ETH inverse) | | put δ−0,10 a scadenza (ITM di $4: K 1700, ST 1694) | −$6 | ≈ $0 | 0,96 sul solo sottoinsieme con payoff modellato ≥ $5 | | put δ−0,10 al picco del percorso (look-ahead, limite sup.) | +$163 | +$173 | 0,94 | | debit spread −0,28/−0,10 a scadenza | +$169 | +$163 | 1,04 (stessa tautologia, specchio) | | ingressi DURANTE il crollo (02-04/06, 283 snapshot) | mediana +$5, **perde nel 46%**, p10 −$133 / p90 +$26 | | bimodale: la mediana nasconde le perdite | BTC: **non misurabile pre-crollo** — la griglia di strike dell'archivio il 30/05-01/06 non contiene la δ−0,10 (78 snapshot fuori geometria, 0 in geometria prima del 02/06). Durante: 247 snapshot, f_net 0,79, perde nel 37% (p10 −$1.718 / p90 +$818 su larghezza 5000). 🚨 **Tre correzioni della revisione, applicate:** 1. *"Il percorso costa 2,6× il modello (f_mtm 2,58), la IV della gamba corta e' esplosa a 108 per lo skew"* — **artefatto di quote.** Il costo di chiusura `(ask corta − bid lunga)` superava la **larghezza** dello spread (una quota 0,208/0,376 ETH su un intrinseco di $296: 158% di spread relativo, a T→0) e `min()` pescava li'; uno spread a rischio definito non costa mai piu' della larghezza per chiudere. Tagliato: **f_mtm 1,08**. E la IV 108 e' del **18/06 alle 17:00** (deep ITM, T→0), non del crollo: all'ora del peggior MTM la IV e' 68 = DVOL. 2. *"f a scadenza 1,04: il modello prezza bene la perdita"* — **tautologia**: con entrambe le gambe ITM il payoff e' la larghezza per entrambi; f_exp e' una funzione di f_net. E la "banda su 286 snapshot" sono 4 strutture (N_eff = 1 crollo × 4). 3. `S.asof(ts)` sul feed 1h **guardava un'ora avanti**: la barra e' etichettata all'apertura (la 20:00 chiude col 5m delle 20:55). Corretto con `spot_causale` (indice +1h). ⚠️ **`cblib.spot_series` ha lo stesso difetto** → il f 0,714 di §11 e ogni numero di `cblib` con `asof` sullo spot; qui innocuo (ambo le gambe ITM per ogni ST < 1700) e nel MTM giocava contro l'autore. **Debito nuovo, registrato in CLAUDE.md §5.** Non toccato: cambierebbe numeri pubblicati. 📌 **Cosa dice davvero il crollo catturato (n = 1):** il **rapporto di credito reale/modello non cambia col regime** (0,74 nel crollo contro 0,714 nel rally); la put comprata paga nel crollo cio' che il modello dice (0,94-1,04) ma **costa 1,9× il modello all'ingresso** — il bleed e' dove il modello sbaglia, il payoff no (e' il motivo di §46/§72 visto dal lato del sinistro); il gate di VRP01 lo ha tenuto fuori. **La condizione di riapertura di §3 e' soddisfatta nella forma** (un archivio bite con bid/ask su un crollo) **e non nella sostanza**: crollo a vol bassa, sotto il gate, tenor 14-21, famiglia inverse, e l'unico f non tautologico (MTM) vale 1,08 su 4 strutture. **Non si riapre.** Primo punto di una distribuzione che `collect_chain` riempira' da solo; il secondo punto utile e' un crollo **con IV-rank > 0,30**. ## 3. Piu' monete, sempre in Deribit — `r0909_deribit_universo.py` · `r0909_xrp_terza_gamba.py` **Il venue letto oggi (15:05Z):** 32 perpetual USDC-lineari aperti (+6 non aperti, fra cui **APT inactive**: e' il mancante rispetto al 23/08). Volume 24h ≥ $10M solo per **XRP ($38M, il piu' scambiato del venue, spread 4 bps, listato 2022-03-16), ETH, BTC, SOL ($13M)**; tutto il resto fra $0,01M e $7M (TAO, HYPE, ADA, AVAX, NEAR…) con spread 2-20 bps. XS01: **13/19** gambe — mancano ARB, OP, APT, INJ, TIA, SEI → §50 resta: morto per ampiezza. Opzioni USDC-lineari su 7 sottostanti (SOL 676, HYPE 442, XRP 442, TRX, AVAX) con la liquidita' misurata il 22/08 (SOL: 9% delle put a due lati). Trovati dalla revisione, registrati perche' il controllo costa €0 e nessuno li riapra: **`BTCDVOL_USDC-30SEP26`** (l'unico strumento long-vol diretto del venue: volume 0, OI 132, bid/ask 39,1/43,9 = spread 12% → non negoziabile, e in contango sanguina come la put) e **PAXG perpetual** (oro, dal 2024-12: $0,18M/g, OI $8,3M — non misurato, non morto, stessi muri di SOL/XRP: 9 mesi di storia contro i 3 anni della decisione 22/08). ⇒ **L'unica "altra moneta" liquida su Deribit mai misurata come gamba direzionale e' XRP.** Misurata col harness di `r0822_sol_leg` (TP01 e SKH01 **congelati**, 24 ancore, differenze appaiate, de-levering, per anno), ipotesi a priori dichiarata: diluisce. Certificazione (Coinbase dal rilisting 2023-07, Bitstamp prima — Coinbase aveva delistato XRP per la causa SEC): >1% dal riferimento 0,06% (2022) · **0,57% (2023)** · 0,01-0,02% (2024+); mediana 5-6 bps. ⇒ **L-PULITA dal 2024** (stessa soglia e stesso anno sporco di SOL). ⚠️ Barre 5m flat **27-61%** (BTC/ETH 2021+: 0,1-2%; SOL 21%): il 5m su cui gira SKH01 e' 20-100× piu' flat. | | L-FULL (2022-03+) | L-PULITA (2024+) | |---|---|---| | dSharpe FULL (mediana, 24 ancore) | **−0,206** [−0,26, −0,16], >0 in 0% | −0,066, >0 in 12% | | dSharpe hold-out | **−0,169** [−0,32, −0,15], **>0 in 0%** | −0,169, 0% | | dCAGR | −2,27 pp, 0% | −1,32 pp, 4% | | null del de-levering | Sh 3g 1,23 vs 2g×0,974 **1,44** → de-levering | 1,54 vs 1,53 → pari | | per anno (dSh) | 2022 −0,55 · 2023 −0,66 · **2024 +0,54** · 2025 −0,44 · 2026 −0,25 → **1/5** | | | corr(gamba XRP, book) | +0,35 / +0,37 (SOL 0,40-0,56) | | **XRP DILUISCE** — lo stesso −0,17 di hold-out di SOL, in 0/24 ancore, con **un anno buono** (2024). TP01 XRP da solo: Sharpe −0,01, hold-out −0,49; SKH01 XRP maxDD 40,1% (il criterio di selezione di SKH01-V2-DD, maxDD<30%, fallisce anche qui, come SOL). Eseguibilita' non e' il vincolo (min 1 XRP = $1,42). Non misurato: **SKH01 solo-short su una terza moneta** (la domanda riguarda i crolli, dove paga lo short) — ma il filtro di direzione e' una famiglia nuova (M20) e il 5m di XRP e' peggio di SOL: il muro e' lo stesso. **Nessuna proposta.** Il dato vive in `data/raw/alt_xrp_*` (namespace di ricerca, non rinfrescato dal cron, `load_data("XRP")` fallisce; `tests/test_sol_leg.py` lo presidia via `DERIBIT_INSTR`). La cache del riferimento in `data/_cache` e' gitignored e fuori backup: la certificazione si riproduce **con rete** (N11 vale con rete). ## 4. Cosa cambia una decisione — niente; cosa si registra | voce | prima | oggi | |---|---|---| | il libro nei crolli | "immune, beta 0,076" | perde nel GIORNO (−0,48%/g, 18% positivi), immune-o-positivo per finestra, **> 0 in 8/8 dal 2022** per SKH01 short marcato all'uscita; beta 0,0769 riprodotto | | f di stress delle opzioni | non misurato ("serve un crash catturato") | crollo catturato **a vol bassa, sotto il gate, inverse**: f_net 0,74 = rally; f_mtm 1,08; ali 1,92×. **Condizione non soddisfatta nella sostanza** | | peso SKH01 | gate fallisce (26/07) | invariato: la condizione che fallisce e' in-sample; cache segnali ferma al 25/07 | | XRP | mai misurato | diluisce come SOL (−0,169 hold-out, 0/24) | | universo Deribit | 14/19 (23/08) | 13/19 (APT inactive); liquidi solo BTC/ETH/XRP/SOL; BTCDVOL future non negoziabile; PAXG non misurato | | debito nuovo | — | `cblib.spot_series` + `asof` guarda un'ora avanti (feed 1h etichettato all'apertura) | **Cosa riaprirebbe qualcosa:** (a) un secondo crollo catturato **a IV-rank > 0,30** (VRP01 a mercato), sulla famiglia USDC-lineare, per il f di stress; (b) `weights_tilt_null` che passa — si rigenera `skh_sigtab` e si rilancia `r0726_reeval_live_weight`, non si ridiscute; (c) per le "altre monete", un meccanismo che non sia TP01/SKH01 congelati, o 3 anni di dato 5m liquido. ## 5. Errori catturati in sessione (prima della revisione) - Percorso ora per ora in un ciclo `groupby` per ancora: >10 minuti; riscritto su una tabella ora×strumento (`Quote`), ~3 minuti. - BTC "in geometria" senza guardia: la griglia rada faceva scegliere a `pick_legs` una δ−0,02 al posto della δ−0,10 (K72000/55000). Guardia `TOL_D` (±0,08/±0,06), scritta dopo aver visto BTC ma che per ETH scarta 2/288 e non cambia nessun verdetto (verificato dal revisore). - Coinbase restituiva un batch vuoto per XRP 2022 e il ciclo si fermava: certificazione vuota. Riscritto con avanzamento su batch vuoto e riferimento Bitstamp dove Coinbase manca. ## 6. Revisione (`fable`, agente fresco) — 21 segnalazioni, tutte verificate Applicate: #1 artefatto del MTM (taglio alla larghezza; IV 108 e' a T→0) · #2 f_exp tautologico (quota stampata, N_eff = strutture) · #3 "101%" = perdita massima + fee · #4 `asof` un'ora avanti (`spot_causale`; debito su `cblib`) · #5 famiglia inverse dichiarata · #8 "durante" bimodale (p10/p90, quota che perde) · #9 ordine delle classi (immune → POSITIVO → PERDE, tre affermazioni nel verdetto) · #10 peggior giorno = crollo con TP01 0,505, docstring (c) corretto · #11 beta sulla finestra di §46 (0,0769, tolleranza 0,01) · #12 scomposizione esatta con assert · #13 lente "marcata all'uscita" dichiarata · #14 confronto bit-exact con `_skyhook_returns` · #15 cache `skh_sigtab` ferma al 25/07 · #16 1,92 e' un punto nuovo, non "gia' noto" · #17 il crollo e' sotto la mediana del DVOL: verdetto riscritto · #18-19 BTCDVOL future e PAXG registrati · #21 APT inactive, cache con rete. Non applicate: nessuna. Il revisore ha trovato **due conclusioni che non reggevano** (il 2,6× e l'"8/12 guadagna") e le ha smontate con numeri riprodotti: la regola *"chi rivede non e' chi ha scritto"* ha pagato in una sessione. **Test (Opus, agente separato): `tests/test_r0909_*.py`, 92 test, suite intera 1008/1008 verdi** (erano 916). Coprono: ordine delle classi e riproduzione verbatim dei verdetti, `spot_causale` col controllo positivo sul difetto che ripara, taglio alla larghezza, geometria `in_geom` derivata da `VRP_CFG`, regola L-PULITA (anno pulito isolato ignorato), `_fetch_1h` su batch vuoti, P1 per identita' (`W_TP01`, `XS_UNIVERSE`), zero rete e zero scritture in `data/`. **Due difetti trovati da Opus nel verdetto di XRP, corretti:** un campione vuoto stampava "DILUISCE" (ora "NON MISURABILE", P5) e il criterio per anno era cablato al 2024 invece che derivato dall'anno della lente (P1).