research(wave-0822): MONITOR-AUDIT — 4 monitor su 6 rotti, il gate STATARB si ribalta, ma la finestra e' rigenerabile e nessuna data si sposta

This commit is contained in:
Adriano Dal Pastro
2026-08-22 17:52:53 +00:00
parent cef559b350
commit fbb6e75e67
3 changed files with 234 additions and 55 deletions
+48
View File
@@ -21,6 +21,7 @@ null de-levering superato + eseguibilita' al capitale dichiarato.
| — | **SLIP-AUDIT** (audit di fatto) | **SCARTATO** = nessun costo nascosto a questa taglia | i backtest a 10 bps RT restano **conservativi di ~1,5 bps/lato**; nessuna evidenza di impatto sopravvive al null (p=0,274; estremi avversi **1/18 contro 4,7 attesi**). **Ma la misura ha una data di scadenza** |
| — | **SCETTICO su GROWTH-POLICY** | **REGGE** (condizione bloccante DECADUTA) | la lente wick accoppiata **non cambia il gradino**: e' un ricarico moltiplicativo **costante ~3,5%** sul maxDD, non un'amplificazione (Δ/k **cala**). Ma su una regola a **UN giorno** close-only e' **esattamente cieca** (rapporto INF) -> la lezione 25/07 e' vera e **non si trasferisce** |
| 13 | BASIS-CALENDAR | **SCARTATO** + **1 dataset nuovo** | il basis dei futures datati **E' il funding del perp quotato diversamente** (7,33% contro 6,48%/anno): non e' un quarto lato del filone funding, e' lo stesso lato. Premio incassabile **+0,85%/anno con IC95 che contiene lo zero** |
| — | **MONITOR-AUDIT** (produzione) | 🚨 **4 monitor su 6 rotti**, ma **la finestra NON e' persa** | `paper_statarb` registra **4 minuti al giorno** e il suo gate del **27/09 si ribalta su 2 criteri su 3** (Sharpe registrato **+1,96** contro **2,02** ricostruito). **La riparazione e' "riparare + RIGENERARE", non "riparare e azzerare": nessuna data di gate si sposta** |
## Note che sopravvivono ai singoli filoni
@@ -590,3 +591,50 @@ formula ma il binario**: meno gradi di liberta', **dimezza gli ordini** (miglior
$635), 115% sul FULL — ma paga in fragilita' d'ancora (20/23 contro 23/23, banda che include 0,061,
hold-out +0,072 contro +0,101). **Resta un terzo della fortuna d'ancora del libro stesso (+0,196):
niente qui giustifica di toccare pesi, cron o config.**
### MONITOR-AUDIT (r0822_monitor_audit.py) — audit di PRODUZIONE, 6 monitor, 4,7 s
**Metodo che rende il risultato non contestabile:** l'audit **riesegue `advance()` di produzione
tale e quale**, sostituendo solo `_append` con un raccoglitore in memoria -> nessuna
reimplementazione, quindi **nessun drift fra audit e monitor**. Sola lettura verificata (gli mtime
di `data/paper_*` sono rimasti quelli del cron delle 00:35).
| monitor | barra parziale | barre coincidenti | corr | **min/giorno misurati** | gate | ricostruibile |
|---|---|---|---|---|---|---|
| `paper_statarb` | **SI'** | **0/46** | +0,297 | **4** | **STATARB 27/09** | **SI', bit-exact** |
| `paper_dvolspread` | **SI'** | 0/28 | +0,262 | **2** | DVOLSPREAD 24/10 | SI', bit-exact |
| `paper_xsr` | **SI'** | 1/28 | 0,045 | **41** | XSR01 23/10 | SI', bit-exact |
| `paper_portfolio` | **SI'** | 7/56 | +0,245 | 19 | — (dashboard) | si', non al bit |
| `paper_prevday` | si' (1 barra su 24) | **1259/1319** | **+0,997** | 1.438 | — | si', bit-exact |
| `paper_combo` | **NO** | 7/37 | +0,991 | 1.402 | — | si', non al bit |
📌 **La patologia e' la stessa, la TAGLIA varia di un fattore 20** — e dipende da quanto pesa la
barra piu' recente nel segnale, esattamente come la lezione del 26/07 su SKH01 contro TP01.
🚨 **Il gate STATARB del 27/09 si ribalta su DUE criteri su tre:** Sharpe registrato **+1,96** (sopra
la soglia 0,5) contro **2,02** ricostruito; maxDD **2,2% contro 15,3%** (guardia <10%). *Fra 36
giorni si sarebbe deciso su una serie che misura 4 minuti di mercato al giorno.*
⚠️ XSR01 e DVOLSPREAD danno lo **stesso verdetto** oggi, ma su numeri implausibili (Sharpe 15,8 su
28 barre = oltre 4 SE). **`implausible_sharpe` esiste dal 26/07 e non e' mai stato puntato sulle
serie forward.**
**LA BUONA NOTIZIA, ed e' misurata: la finestra forward NON va persa.** Il replay *e'* la serie
corretta sulla stessa finestra, con config congelata e codice di produzione. Le due condizioni sono
**provate due volte in modo indipendente**: (a) `paper_prevday` ha **1427/1488 barre identiche al
bit** dopo 62 notti di riscrittura (il feed **non tocca** le barre chiuse); (b) le 6 barre di
`paper_statarb` recuperate dopo un guasto coincidono **al bit**.
-> **La decisione non e' "riparare e azzerare" ma "riparare `advance()` + RIGENERARE", e nessuna
delle tre date di gate si sposta.** Anche nell'ipotesi pessimista (`--reset`) l'unico gate che
slitterebbe e' STATARB, di **+18 giorni**.
📌 **Dettaglio che vale una regola: le uniche barre corrette di `paper_statarb` esistono perche' il
feed si e' ROTTO.** `rebuild_history` e' abortito per 7 giri consecutivi (09-15/07, EPERM sul
backup, gia' riparato); al ripristino il monitor ha recuperato 7 barre in un colpo, **6 delle quali
gia' chiuse** -> coincidono col replay al bit. *Il guasto ha prodotto da solo il controllo che
serviva a diagnosticare l'altro guasto.*
📌 **`paper_combo` e' sano PER CASO:** aspetta la chiusura di una **borsa**, non per progetto.
Nessuna riga di codice chiede la barra chiusa — **se la sua griglia cambiasse diventerebbe rotto in
silenzio.**
**Guardia raccomandata (NON implementata), e ha il pregio di essere banale:**
`ts_ultima_barra + cadenza <= mtime del file di serie`, grazia 5 min. **O(1)**, nessuna strategia da
rieseguire, usa solo cio' che il monitor gia' scrive; segnala **5/6** e **tace sul sano**; controllo
positivo sintetico **6/6 nei due versi**. Il vol-ratio va **dopo, non al posto**: copre un guasto
diverso (drift monitor-strategia) e **non vede `paper_prevday`** (rapporto 0,999).
⚠️ Limiti dichiarati: i "minuti/giorno" sono una lettura del **rapporto di varianza** (assume random
walk sull'intervallo troncato), non un cronometro — il cronometro diretto e' 32-35 min; e per
`paper_portfolio`/`paper_combo` la ricostruzione **non sara' al bit** perche' la gamba GTAA legge
`ADJUSTED_LAST` di IB, ri-aggiustato all'indietro.