research(wave-0822): XSR-REPRO trova un difetto di produzione (i monitor forward registrano ~41 min/giorno); SKEW scompone il f di VRP01 — il 42% e' struttura a termine
This commit is contained in:
@@ -15,6 +15,8 @@ null de-levering superato + eseguibilita' al capitale dichiarato.
|
||||
| 7 | TERM-STRUCTURE | **SCARTATO** + 1 LEAD stretto (decisione 2027-02-01) | la pendenza e' un **termometro contemporaneo** (picco CCF a lag −1h/0h); il carry non paga il bid-ask (**18,6 giorni di roll-down per pagare UN round-trip**); come gate e' la **5ª occorrenza** della ridondanza col trend |
|
||||
| 6 | OI-PIN | **SCARTATO** | il max-pain batte uno strike casuale ma **non batte mai (0/24) la media a 7 giorni dello spot**, un livello che non usa NESSUN dato di opzioni: non e' pinning, e' reversione verso il centro recente con l'OI come stimatore rumoroso di quel centro |
|
||||
| 8 | VOL-SIZE | **LEAD** (gate 2026-12-22) + 1 falsificazione | dare a SKH01 una size per-trade regge a **23/23 ancore**, 8/8 anni, null di permutazione e trasferimento su V1 — ma vale **+0,07 di Sharpe di libro, un terzo della fortuna d'ancora del libro stesso (+0,196)**. Il vol-target di **libro** e' invece falsificato: compra peso SKH gia' respinto e peggiora l'eseguibilita' |
|
||||
| — | **XSR-REPRO** (integrita') | 🚨 **DIFETTO DI PRODUZIONE** | il numero 1.82 e' SPIEGATO e non era sbagliato (era su una **terza** lente, e su una barra non ancora chiusa) — ma cercandone la causa e' emerso che **`paper_xsr` registra ~41 minuti di mercato al giorno**, non un giorno. Tre gate pre-registrati leggono serie costruite cosi' |
|
||||
| 5 | SKEW | **SCARTATO** (Q1, Q2) + **LEAD** (Q3, gate 2027-02-22) | il prezzo muove lo skew (t 3,1-9,4 su 8/8 test), **non il contrario** (max |t| in avanti 2,35 contro 2,08 atteso dal rumore). Ma Q3 e' grosso: **il f=0,73 di VRP01 e' per il 42% STRUTTURA A TERMINE e solo per il 25% skew** |
|
||||
|
||||
## Note che sopravvivono ai singoli filoni
|
||||
|
||||
@@ -282,3 +284,81 @@ zeri nei due canali, il guadagno FULL viene dalla **FREQUENZA** (il solo filtro
|
||||
spiegazione e' sbagliata anche se il numero regge.** Entro **2026-12-22**, prima di qualunque
|
||||
modifica a peso/config di SKH01. Deploy solo se ISO dShFULL > 0 in >=20/23 ancore E
|
||||
`weights_tilt_null` passa. **Book, pesi, cron, config INVARIATI.**
|
||||
|
||||
### XSR-REPRO (r0822_xsr_repro.py) — filone di INTEGRITA', non di alpha
|
||||
✅ **Il numero pubblicato e' spiegato e NON era sbagliato.** 1.82 viene da una **terza** lente
|
||||
(`r0725_statarb_demean_skeptic.ret_from_pos`, divisore **fisso 50**), non da quella che ha girato i
|
||||
gate (`basket_from_positions`, divisore variabile). Sullo stato del dato del 25/07 ricostruito:
|
||||
**11 numeri pubblicati su 12 riprodotti** (Sharpe netta 1.8164, lorda 2.6956, DD −2.585%, lag
|
||||
1.82/1.19/0.81/0.50, Sharpe 2024 1.0297 / 2025 1.9752 / 2026 3.1078).
|
||||
📌 **Ma il numero di TITOLO e i numeri di GATE non sono mai stati la stessa serie:** la lente dei
|
||||
gate da' **1.79** — ed e' esattamente il "Sharpe 1.79" che il docstring dello scettico gia' citava.
|
||||
DSR ri-calcolato oggi sulla lente giusta: **0.983 PASS** (pubblicato 0.985) -> **il gate DSR regge**.
|
||||
✅ **L'ipotesi "il cron riscrive la storia" e' FALSIFICATA** da due prove indipendenti: (a) il
|
||||
registro del cron su 54 simboli, 25/07 vs 22/08, mostra crescita di **esattamente 28 barre per
|
||||
tutti** con `start_reale` invariato; (b) lo Sharpe degli **anni chiusi** si riproduce **al quarto
|
||||
decimale** attraverso quattro settimane di riscritture. **Cambia una sola barra: l'ultima.**
|
||||
🚨 **IL DIFETTO CHE CONTA — `paper_xsr` registra ~41 minuti di mercato al giorno.**
|
||||
`fetch_hyperliquid` gira alle 00:30 con `END = oggi` e scrive la barra del **giorno in corso**;
|
||||
`advance()` processa le barre con `ts > last_ts` e **porta `last_ts` su quella parziale** -> le 23
|
||||
ore e mezza restanti di **ogni** giorno non entrano in nessun rendimento registrato.
|
||||
**Misurato** (28 barre appaiate contro il replay): **1/28 identiche · corr −0,045 · vol registrata
|
||||
0,46% contro 2,74% ricalcolata** (la strategia e' progettata a 2,3%). Rapporto di varianza 0,0286
|
||||
-> ~41 min/giorno; stima indipendente dal volume: ~69 min.
|
||||
✅ **Verifica del coordinatore, indipendente:** l'ultima barra di `hl_btc_1d` ha volume **1.274**
|
||||
contro **66.926** e **102.198** dei due giorni precedenti.
|
||||
⚠️ **`monitor_health` lo dichiara OK e non puo' vederlo:** la serie e' fresca e senza buchi.
|
||||
**Una serie fresca, completa e SBAGLIATA passa ogni controllo di freschezza.**
|
||||
⚠️ Stessa **forma** di codice in `paper_statarb` (gate 27/09), che per giunta ha un docstring
|
||||
"barre 1d chiuse" mentre consuma `altlib.get(...,"1d") -> resample_tf`, che **non** scarta il giorno
|
||||
in corso. Segnalato come forma, non misurato -> **audit dedicato in corso su tutti e 6 i monitor**.
|
||||
⚠️ **Haircut, la seconda gamba del gate 23/10, e' piu' fragile della prima:** ticket per gamba
|
||||
**mediano $3,33 / medio $5,98**, **63% degli ordini sotto $5**; il pubblicato **$14,41 non ha alcuno
|
||||
script committato che lo riproduca** ed e' **~2,4x ottimista**. A min-order $10 la guardia
|
||||
formalmente passa ma si esegue **un ordine su cinque** — e il criterio pre-registrato non lo guarda.
|
||||
📌 **NUMERO ONESTO DA CITARE:** lente dei gate, sole barre chiuse -> **1.79** (finestra di scoperta)
|
||||
/ **1.63** (a oggi). **Va sempre citata la coppia (lente, ultima barra chiusa)**, mai il numero nudo.
|
||||
📌 **GATE 23/10 COMPROMESSO: PARZIALMENTE** — ammissione NO (storia chiusa stabile, DSR regge),
|
||||
**forward SI** (metrica primaria su una serie scorrelata dalla realta'), haircut SI (parametro senza
|
||||
script e ~2,4x ottimista). **La finestra forward non e' recuperabile a posteriori**; riparare
|
||||
`advance()` la **azzera**. Scelta fra gate letto su strumento rotto e gate rimandato con contatore
|
||||
nuovo: **va decisa PRIMA del 23/10, non quel giorno.**
|
||||
|
||||
### 5 — SKEW (r0822_skew.py, 37 trial dichiarati)
|
||||
- **Q1 (skew come segnale direzionale): SCARTATO, e non per mancanza di potenza — la potenza c'e' e
|
||||
falsifica.** Il **prezzo precede lo skew** con t da **3,13 a 9,39 su 8/8 test** e su entrambi gli
|
||||
asset; in avanti il max |t| su 16 test e' **2,35** contro **2,08** atteso dal rumore, e non replica
|
||||
sul secondo asset. L'unica cella con lead apparente crolla togliendo **4 giorni di rally su 24**.
|
||||
DSR **0,163 FAIL**; IC95 block-bootstrap sullo Sharpe: **[−2,90, +5,86]** (ampiezza 8,76).
|
||||
- **Q2 (skew come gate di de-risk): SCARTATO (non misurabile)** — nella finestra TP01 e' attivo
|
||||
**5 giorni su 75** con maxDD **0,14%**: non c'e' sinistro. Unica cosa leggibile: **5ª firma di
|
||||
ridondanza col trend** (il gate spegne 16 giorni in cui TP01 era gia' flat, **16/16**).
|
||||
- 📌 **Q3 — LEAD, ed e' il risultato della sessione. Il f=0,73 di VRP01 scomposto** (attribuzione
|
||||
esatta in log, i fattori si sommano):
|
||||
| causa | fattore | quota del difetto |
|
||||
|---|---|---|
|
||||
| **struttura a termine** | x0,869 | **42,3%** |
|
||||
| spread denaro-lettera | x0,904 | 30,5% |
|
||||
| **skew** | x0,920 | **25,0%** |
|
||||
| fit (controllo) | x0,992 | 2,3% |
|
||||
**La riga che conta: il sleeve prezza un'opzione a 7 GIORNI col DVOL a 30 GIORNI**, che nel **90%**
|
||||
delle ore sta ~3 punti di vol **sopra** l'ATM a 7 giorni -> sovrapprezza **ENTRAMBE** le gambe.
|
||||
Il "+0,8pp sulla gamba corta" pubblicato il 30/07 — che faceva sembrare **corretta** la gamba
|
||||
venduta — e' la **cancellazione di due errori da ~3pp** (−2,97 di termine, +2,79 di skew).
|
||||
⚠️ **E il progetto aveva gia' codificato la regola il 03/07** ("riprezzare term-structure-consistent
|
||||
prima di credere a un numero da struttura BS-flat") **e non l'ha applicata alla misura del 30/07**.
|
||||
📌 **Verso, e non e' quello che sembra:** `f_term` passa da **0,83** (IV-rank basso) a **0,93**
|
||||
(alto) e supera **1,0 in backwardation**, mentre `f_skew` resta piatto (0,91-0,93) -> **la parte
|
||||
maggiore del difetto si annulla proprio dove il gate IV-rank fa tradare il sleeve**, quindi
|
||||
f=0,73 e' plausibilmente **CONSERVATIVO li'**. Non misurato: **0/22** ingressi passano il gate, e
|
||||
l'unico episodio ad alta vol del campione e' un **rally**, non un crash. In un crash i due pezzi
|
||||
vanno in **direzioni contrarie** e il netto e' ignoto. **`VRP_CFG["f"]` NON cambiato.**
|
||||
Gate pre-registrato: rimisurare a **>=6 ingressi settimanali per asset con IV-rank>0,30**
|
||||
(il collettore li accumula da solo), revisione comunque **2027-02-22**.
|
||||
- ✅ Confound di modello **ESCLUSO e misurato**: `f_markfit` = **0,992** (la mark IV di Deribit
|
||||
riprezza i propri mid entro l'1%) -> RR/BF sono un fatto di **prezzo**, non l'output del fit.
|
||||
- ✅ **Controllo positivo cablato nello script:** con l'ancora **assunta** a :30 invece del `ts_max`
|
||||
osservato compare un **falso lead** a +15m (0,102 contro 0,031) — *"e' l'errore che avrei
|
||||
pubblicato senza quel controllo"*.
|
||||
- ✅ Smile vettorizzato (512s -> 2,0s) verificato **bit-exact** contro il ciclo lento su 21.244 celle.
|
||||
- ✅ **Convergenza indipendente** con l'agente TERM-STRUCTURE: **75 giorni utili** (l'altro trovava 74).
|
||||
|
||||
Reference in New Issue
Block a user