registro §51 e §48: cosa raccogliere (2 su 10, e il +90% era +18%) e il quinto lato del DVOL chiuso

This commit is contained in:
Adriano Dal Pastro
2026-08-23 01:48:56 +00:00
parent 9cb3465374
commit 4e1dae5c09
+123 -2
View File
@@ -713,10 +713,10 @@ stessi hanno nominato senza poterli eseguire**. Stesso contratto di consegna, st
| 45 | SPOT-NETTING | separare TP01 e SKH01 su due strumenti: quanto vale, e il margine lo uccide? | **LEAD REGGE, SEPARAZIONE SENZA VALORE** — il margine non e' il vincolo (copertura **50x**, invariante al capitale), ma **T1 sbloccato e' un DECLASSAMENTO** (0,048 contro il path che gira) e il netting perso **risparmia** commissioni: il lead vale **il funding e basta**, [+1,55%, +1,66%]/anno; a bloccarlo e' **il codice di sizing**, non Deribit | | 45 | SPOT-NETTING | separare TP01 e SKH01 su due strumenti: quanto vale, e il margine lo uccide? | **LEAD REGGE, SEPARAZIONE SENZA VALORE** — il margine non e' il vincolo (copertura **50x**, invariante al capitale), ma **T1 sbloccato e' un DECLASSAMENTO** (0,048 contro il path che gira) e il netting perso **risparmia** commissioni: il lead vale **il funding e basta**, [+1,55%, +1,66%]/anno; a bloccarlo e' **il codice di sizing**, non Deribit |
| 46 | TAIL-HEDGE | comprare put deep-OTM come assicurazione statica compra DD a prezzo migliore del de-levering? | _in corso_ | | 46 | TAIL-HEDGE | comprare put deep-OTM come assicurazione statica compra DD a prezzo migliore del de-levering? | _in corso_ |
| 47 | ANCHOR-ENSEMBLE | eseguire l'ensemble delle 24 ancore invece di sceglierne una e correggere il numero | _in corso_ | | 47 | ANCHOR-ENSEMBLE | eseguire l'ensemble delle 24 ancore invece di sceglierne una e correggere il numero | _in corso_ |
| 48 | VOLVOL | la volatilita' del DVOL (secondo momento, mai usato) contiene cio' che livello e spread non contengono? | _in corso_ | | 48 | VOLVOL | la volatilita' del DVOL (secondo momento, mai usato) contiene cio' che livello e spread non contengono? | **SCARTATO** — e' davvero una variabile NUOVA (ortogonalita' PASS, max \|corr\| 0,396) ma **guarda INDIETRO**: picco a lag **5/10** e parziale con la vol futura **NEGATIVA**. Quinto lato del filone DVOL chiuso |
| 49 | TP01-TWIN | il 75% del libro dipende da UNA definizione di trend: un ensemble di meccanismi protegge meglio? | _in corso_ | | 49 | TP01-TWIN | il 75% del libro dipende da UNA definizione di trend: un ensemble di meccanismi protegge meglio? | _in corso_ |
| 50 | BOOK-3RD | qual e' il miglior TERZO sleeve realmente eseguibile sul libro live a $635 — e a quale capitale cambia? | _in corso_ | | 50 | BOOK-3RD | qual e' il miglior TERZO sleeve realmente eseguibile sul libro live a $635 — e a quale capitale cambia? | _in corso_ |
| 51 | NEWDATA-SCOUT | se la scorta e' esaurita: cosa iniziare a raccogliere OGGI, che fra 12-24 mesi apra una famiglia? | _in corso_ | | 51 | NEWDATA-SCOUT | se la scorta e' esaurita: cosa iniziare a raccogliere OGGI, che fra 12-24 mesi apra una famiglia? | **RACCOGLIERE 2 FONTI SU 10** — catena USDC (**+18%, non +90%**) e una **campagna a termine** di book depth; il criterio di ricostruibilita' ne uccide 4 da solo e **refuta una raccomandazione del 22/08** |
| 52 | SKEPTIC-SPOT | il lead dello spot (+1,55-1,66%/anno) sopravvive a un attacco deliberato? | _in corso_ | | 52 | SKEPTIC-SPOT | il lead dello spot (+1,55-1,66%/anno) sopravvive a un attacco deliberato? | _in corso_ |
| 53 | SKEPTIC-LEVA | il gradino di leva 1,25x sopravvive a un attacco deliberato, col funding dentro? | _in corso_ | | 53 | SKEPTIC-LEVA | il gradino di leva 1,25x sopravvive a un attacco deliberato, col funding dentro? | _in corso_ |
| — | **NOTIFIER** (audit di fatto) | 🚨 **PUNTO SINGOLO DI GUASTO nella rete di sicurezza** | il `send()` di Telegram e' **un solo tentativo da 10s, senza retry, con l'esito MAI registrato** — e lo stato `alerted=True` viene scritto **prima** dell'invio: un 🚨 di `venue_watch` perso e' perso **per l'intero episodio**. Tasso di fallimento **misurato 6,9%** (2/29, IC95 [1,9%, 22,0%]) | | — | **NOTIFIER** (audit di fatto) | 🚨 **PUNTO SINGOLO DI GUASTO nella rete di sicurezza** | il `send()` di Telegram e' **un solo tentativo da 10s, senza retry, con l'esito MAI registrato** — e lo stato `alerted=True` viene scritto **prima** dell'invio: un 🚨 di `venue_watch` perso e' perso **per l'intero episodio**. Tasso di fallimento **misurato 6,9%** (2/29, IC95 [1,9%, 22,0%]) |
@@ -2603,3 +2603,124 @@ e' il funding e basta**, e in cambio si prendono due costi nuovi mai contati (co
separati, gamba TP01 senza disaster-SL) piu' un cambio al percorso di sizing del live. separati, gamba TP01 senza disaster-SL) piu' un cambio al percorso di sizing del live.
📌 **Il prossimo passo non e' un backtest: e' la domanda al commercialista e un acquisto di prova da 📌 **Il prossimo passo non e' un backtest: e' la domanda al commercialista e un acquisto di prova da
$7,73.** **Libro, pesi, cron, config INVARIATI.** $7,73.** **Libro, pesi, cron, config INVARIATI.**
---
## 51 — NEWDATA-SCOUT (cosa iniziare a raccogliere)
`scripts/research/r0823_newdata_scout.py`. Conseguenza diretta di §43: se la scorta e' esaurita, la
domanda utile non e' piu' *"cosa abbiamo e non guardiamo"* ma *"cosa NON abbiamo, che varrebbe la
pena iniziare a raccogliere oggi"* — perche' **una catena opzioni non e' ricostruibile a posteriori**
e un'ora non raccolta e' persa per sempre.
| fonte | apre | ricostruibile? | costo | tempo utile | verdetto |
|---|---|---|---|---|---|
| **catena opzioni USDC-lineare** | nessuna famiglia nuova: **rende onesti i numeri di uno sleeve VIVO** (VRP01, 12%) | **NO** | **+117 chiam./giro = +18%** | episodi (1 regime IV-rank>0,30) | **RACCOGLIERE** |
| **book depth L2 perpetual** | la curva haircut-vs-taglia (oggi **18 fill**) | **NO** | 2.880/g a 1/min×2 | giorni per la mediana, anni per la coda | **CAMPAGNA A TERMINE** |
| trade tape / flusso aggressore | flusso d'ordine (mai aperto) | **NO** — muro **24h/26h** | ~6/ora | **6,0 anni** | NON RACCOGLIERE |
| liquidazioni Deribit | coda/stress | NO (vive nel tape) | — | non calcolabile | NON RACCOGLIERE |
| OI per strike nel tempo | — | irrilevante | zero | in corso | **GIA' FATTO** |
| **OI perpetual** (il collettore raccomandato da §10) | affollamento — famiglia **CHIUSA 4 lati** | 🚨 **SI', >=800 giorni** | 1/ora | testabile **oggi** | **NON RACCOGLIERE — TESTARE PRIMA** |
| telemetria Binance (taker, long/short) | posizionamento retail | **NO** — muro 30g | ~24/g | 6,0 anni | NON RACCOGLIERE |
| funding/basis altri venue · DVOL · macro | famiglie chiuse / gia' posseduto | SI' | — | — | NON RACCOGLIERE |
📌 **Il criterio 1 (ricostruibilita') ne uccide 4 da solo, ed e' stato applicato PROVANDO
l'endpoint, non deducendolo** — ogni verdetto e' una GET con **controllo positivo**, perche' *uno
zero non e' una risposta finche' non si prova che la stessa chiamata funziona altrove*:
tape Deribit **24h → 100 trade, 26h → 0** (muro verificato coi timestamp restituiti); Binance
**20g risponde, 40g rifiuta esplicitamente** (`parameter 'startTime' is invalid`); funding e DVOL
serviti storici su richiesta.
🚨 **E ribalta una raccomandazione del 22/08:** §10 proponeva di accendere un collettore di OI
perpetual *"perche' oggi ripartirebbe da zero"*. **Non riparte da zero:** Bybit risponde a 800
giorni coi timestamp dentro la finestra (2024-06-14). **L'ipotesi e' testabile oggi a costo zero**, e
solo se sopravvive vale pagare la specificita' di venue.
🚨 **Correzione a un numero che avevo pubblicato io (+90%).** Con **gli stessi filtri del
collettore vivo** (≤95 giorni, OI≥100) la catena USDC BTC+ETH e' di **113 strumenti**, non ~587 →
**+18%, non +90%**. ✅ **Verificato indipendentemente dal coordinatore sul venue**: inverse
(BTC 270 + ETH 379) = **649**, USDC = **113****+17,4%**. L'origine del 587 era il conteggio
**grezzo** senza il filtro OI (1.140 strumenti USDC ≤95g, cioe' +81% — vicino al 90% pubblicato):
**il filtro che il collettore applica davvero taglia il 90% della famiglia USDC**, ed e' la replica
esatta di §8 (*OI e negoziabilita' sono anti-correlati su Deribit USDC*; BTC_USDC ha **5**
strumenti sopra soglia). Il giro passerebbe da **652 chiamate / 163 s** a **769 / 192 s**, che
finisce prima del :30 e non tocca `cron_book` al :07. ⚠️ E' un numero **di oggi**: cresce con la
liquidita' USDC e va ri-misurato prima di accendere.
**Tempo perche' sia utile, dal MDE** (`≈ 1,96/√anni`): Sharpe 0,8 → **6,0 anni**; 1,0 → 3,8; 1,3 →
2,3. **Il soffitto direzionale del progetto e' ~1,15-1,3 ⇒ qualunque fonte che alimenti un SEGNALE
non e' una decisione di oggi.** 📌 **Le due sopravvissute sfuggono al MDE perche' non producono uno
Sharpe: sono misure di COSTO (depth) e di PREZZO REALE (catena USDC).**
⚠️ **Onesta' dell'agente su cio' che le due fonti NON fanno:** la catena USDC **non apre una famiglia
chiusa** — vale perche' il `f=0,73` di VRP01 e' misurato sulla famiglia **inverse, che un conto USDC
non puo' marginare**: ripara il numero di uno sleeve vivo, non apre alpha. Il depth: la domanda
binding (*quanto costa eseguire a $5k/$20k*) si risponde in **due settimane**; solo la coda di stress
richiede l'archivio — da cui **"campagna", non "collettore"**.
⚠️ **Bug catturato in sessione:** `urlopen` **solleva** su HTTP 400, quindi il rifiuto di Binance
veniva ingoiato come guasto di rete e il muro **si ribaltava in silenzio in "RICOSTRUIBILE"** — la
stessa conflazione *errore / assenza-di-dato* gia' codificata in `collect_chain` con `quote_status`.
**VERDETTO: `RACCOGLIERE DUE FONTI SU DIECI, E NESSUNA DELLE DUE PER FARNE UN SEGNALE`** — catena
USDC (+18%) e una campagna a termine di book depth. **Nessuna azione presa: e' materiale per una
decisione dell'operatore.**
---
## 48 — VOLVOL (il secondo momento del DVOL)
`scripts/research/r0823_volvol.py` (**20 s**, nessuna rete, nessuna scrittura). **36 celle**
dichiarate prima (3 finestre × 3 soglie × 4 usi), tenute poche di proposito data l'aritmetica dei
168 trial.
**L'ortogonalita' — che era il gate — la PASSA**, e questa e' meta' dell'attesa a priori
**refutata**: misurata prima di costruire qualsiasi strategia, Pearson **e** rango, 6 celle × 6
referenze, **max |corr| = 0,396** (soglia 0,80): contro il livello DVOL 0,13-0,21, contro l'IV-rank
di VRP01 0,01-0,24, contro RV30 0,09-0,38, contro |esposizione TP01| 0,03-0,30. **E' una quinta
variabile, non una quarta riscritta.**
⚠️ **Correzione a una mia riga del briefing, fatta leggendo il codice in produzione:** il
**DVOLSPREAD in forward-monitor NON e' implicitarealizzata**`r0726_dvolspread_gate.make_book`
calcola **`log(dvol_btc) log(dvol_eth)`**, un relative-value **cross-asset** (✅ verificato dal
coordinatore al sorgente, riga 67). L'agente ha misurato contro **entrambe**: *correlare contro
quella sbagliata avrebbe dato un "ortogonale" gratuito contro una variabile che nessuno trada.*
📌 **DOVE MUORE: guarda INDIETRO.** `corr(VoV_t, |r|_{t+k})` su BTC: **10: +0,164 · 5: +0,169
· 1: +0,132 · 0: +0,113 · +1: +0,057 · +10: +0,018** — picco a lag **5/10**, curva monotona
decrescente. **Non e' il termometro contemporaneo** di TERM-STRUCTURE e SKEW: **insegue con una
settimana di ritardo**. Correlazione **parziale** con la vol realizzata futura a 10g, al netto di
`RV_t` e `DVOL_t`: **0,069 (BTC) / 0,090 (ETH)**. ✅ Controllo positivo del rilevatore **2/2 nei
due versi** (lead sintetico → +3, lag sintetico → 3).
**Gate:** cella in-sample-only SIZE w=10 p=0,50, marginal **NEUTRAL**, **DSR 0,448 FAIL**
(0,441/0,381/0,228 a N=36/72/168) → `earns_slot_honest=False`. **La trappola del trend in chiaro:**
la cella scelta ha **corr→TP01 0,995 sull'hold-out**; e per uso, RISKOFF/SIZE ereditano lo Sharpe
del trend (mediana IS 0,40/0,66) mentre **DIR — l'unico uso in cui la variabile decide da sola — ha
mediana IS 0,24 e 5/9 celle con FULL negativo**.
**Arm VRP01** (replica del sleeve **bit-exact 2/2** prima di ogni delta): 5/9 battono il canonico =
moneta, maxDD giu' in **9/9 = de-levering**, e contro gate **casuali** che saltano lo stesso numero
di settimane la mediana e' 0,71/0,72 con **0/9 al 95° pctl** → **quinto fallimento consecutivo di un
gate nuovo su VRP01**.
📌 **IL NUMERO CHE DECIDE, e non e' un gate.** Barre **attive**: FULL 985 → **MDE 1,51**;
hold-out 303 → **MDE 2,73**. Il candidato migliore batte TP01 nudo di **+0,034 di Sharpe — un
fattore 44 sotto l'MDE**: *su questo dato la domanda non e' rispondibile in positivo nemmeno in
linea di principio*. A chiudere sono le due misure che **hanno** potenza e **non dipendono da nessuna
cella scelta**: la parziale negativa, e il **controllo NON CAUSALE** — la stessa cella con la
vol-of-vol che **sbircia** fa **0,292 sotto TP01**. *Non e' che la si stima male: la variabile non
contiene l'informazione.*
⚠️ **Errori dell'agente su se stesso:** (i) la lettura dell'ortogonalita' era **cablata** e diceva
*"il legame piu' forte e' con la vol realizzata"* mentre la tabella diceva SPREAD → ora e' calcolata
dalla tabella; (ii) il null del gate casuale estraeva le settimane **indipendentemente per gamba**
mentre il gate vero e' guidato da due DVOL correlati — differenza risultata **immateriale** (0,71
contro 0,72) *ma andava misurata, non assunta* (nel 25/07 lo stesso errore valeva 2-3×);
(iii) un off-by-one nel conteggio.
**Non misurato, dichiarato:** vol-of-vol **intra-giornaliera** (il DVOL su disco e' 1d, e un secondo
momento e' proprio dove la frequenza puo' contare); vol-of-vol **implicita dalla curvatura dello
smile**; un modello **congiunto** RV+livello+VoV invece di un gate binario. *"Un uso non provato non
e' un uso refutato."*
**VERDETTO: `E' UNA VARIABILE NUOVA E GUARDA INDIETRO`** — SCARTATO, **quinto lato del filone DVOL
chiuso**. **Libro, pesi, cron, config INVARIATI.**