25 KiB
ONDATA 2026-08-22 — esiti per filone (aggiornato man mano)
Regola di lettura: SCARTATO con un meccanismo misurato vale quanto un LEAD — chiude un filone
e smette di farlo pagare alle ondate successive. CANDIDATO richiede marginal ADDS + DSR>=0.95 +
null de-levering superato + eseguibilita' al capitale dichiarato.
| # | filone | verdetto | in una riga |
|---|---|---|---|
| 9 | ADAPTIVE-HORIZON | SCARTATO | il "vincitore adattivo" ha lookback incollato al bordo il 100% del tempo = TSMOM costante a 20g (corr 1.000, dSh 0.00 in 8/8 anni e 0/12 ancore); isolando le celle davvero adattive -> NEUTRAL, corr→TP01 0.90 = TP01 travestito |
| 2 | GROWTH-POLICY | LEAD (condizione, non data) | il libro gira al 7% di Kelly e raccoglie il 15% della crescita massima in log; il gradino eseguibile 1.00x->1.25-1.50x vale 14.7a -> 12.9-11.6a al muro. Ma un solo giorno -10% all'anno porta k* da ~10x a 2x: non si decide su un conto vero con la lente close-only |
| 12 | ORTHO-SCREEN | SCARTATO 7/7 | nessuna famiglia arriva a ADDS+DSR; e il motivo e' aritmetico: su 168 trial il massimo atteso dal rumore e' Sharpe 1.572, SOPRA il soffitto direzionale misurato (~1.3) -> uno screen largo su BTC/ETH direzionale non puo' passare un DSR, per costruzione |
| 3 | XS-LITE | SCARTATO (come sleeve) + 1 soglia pubblicata falsificata | concentrare XS01 non crea uno sleeve nuovo (corr 0.81-0.96 col canonico, DSR FAIL, de-levering non superato) — ma il muro "XS01 serve ~$20k" e' misurato su una diagnostica di TURNOVER: il ribilancio vero smette di passare sotto |
| 10 | FLOW-SQUEEZE | SCARTATO (2 motivi indipendenti) | meta' dell'ipotesi non esiste nel dato (liquidation_*_risk = una sola categoria in 17.229/17.229 righe); l'altra meta' e' sotto la propria soglia di potenza dichiarata prima (MDE 1,056% vs effetto 0,402%) ed e' comunque morta alla nascita (la colonna non e' ricostruibile) |
| 11 | VRP-QUOTE-VERE | SCARTATO + 1 difetto di RACCOLTA in produzione | il campione contiene l'astensione della strategia (0/19 settimane passano IV-rank>0.30) e il titolo non sopravvive all'ora d'ingresso; ma soprattutto: collect_chain.py raccoglie la famiglia di contratti che il conto NON puo' marginare |
| 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' |
Note che sopravvivono ai singoli filoni
9 — ADAPTIVE-HORIZON (r0822_adaptive_horizon.py, 112 trial dichiarati)
- Sanity: il baseline dell'agente riproduce TP01 canonico a max|diff| = 0.0 (n=2719).
- Il controllo giusto NON era TP01 ma il miglior lookback COSTANTE: senza quel controllo il null confonde "adattare paga" con "un orizzonte piu' corto paga su questo campione". L'agente se l'e' costruito da solo dopo aver visto l'argmax incollato al bordo, e ha dichiarato i trial in piu'.
- ⚠️ Segnalazione, NON proposta: 30/90/180 e' rango 18/24 in-sample nella propria famiglia di orizzonti (10/24 sull'hold-out), ma la superficie di L e' un crinale di rumore — il salto di Sharpe fra L ADIACENTI e' +0.18, cioe' il 47-67% dell'intero vantaggio del vincitore su TP01, ed estendere la griglia ha spostato l'argmax da L=20 a L=15. "Piu' corto e' meglio" e' un max-of-k su una superficie frastagliata. Nessun cambio a TP01.
- Riaprirebbe il filone: un rilevatore il cui L si muove DAVVERO che batta il miglior L costante (non TP01) in >=6/8 anni appaiati con corr→TP01 < 0.6 — es. BOCPD/PELT vero, non provato.
4 — DEALER-GAMMA (r0822_dealer_gamma.py, 136 statistiche dichiarate)
⚠️ DIFETTO DI DATO, il risultato piu' riusabile del filone: dealer_net_gamma e' il GEX col SEGNO
INVERTITO — corr -0.95 BTC / -0.89 ETH contro la ricostruzione da manuale sulla catena
(962/1116 snapshot, ~280-316 strike), fit dng ~ -0.7*GEX. Chi lo usasse col nome che porta
leggerebbe ogni regime al contrario. Spiega anche la contraddizione interna del file (corr fra
dng>0 e spot>flip = -0.28 / -0.92).
⚠️ Il file dichiara piu' di quel che ha: cadenza 15 min solo dal 2026-05-01; i 37 giorni
prima sono un punto al giorno -> 90 giorni, non 4 mesi. liquidation_long_risk e
liquidation_short_risk sono COSTANTI ('low' in 17.229 righe su 17.229 non nulle) = zero
informazione. gamma_flip_level congelato nel 61% dei passi su BTC.
- Gate: null de-levering FALLITO (baseline x0.6 stesso maxDD con Sharpe migliore); DSR 0.440
su 64 trial, e nel modo piu' netto — la cella migliore (+4.98 lordo) sta sotto il massimo
atteso dal puro rumore (+5.12).
marginal_vs_tp01inutilizzabile: su 90 giorni full e hold-out COINCIDONO (n_hold_days == n_days == 90). - Null location-matched (aggiunto dall'agente):
gamma_flip_levelbocciato — 96% di accordo conspot > SMA(720h)su ETH; su BTC la SMA nuda da' uno spread MAGGIORE. - Ampiezza effettiva: 73/59 episodi di regime ma 6-8 coprono il 78-86% del tempo -> n_eff 53 (BTC) / 24 (ETH) ore su 2.130. Il regime coincide col MESE (maggio long, giugno short, luglio long).
- ✅ Ricostruibile oggi dalla NOSTRA catena, meglio dell'originale (518 ore dal 01/08, ~209-262
strike/ora, quote_status ok ~100%, segno giusto) — ma la soglia non e' portabile (
dng=0corrisponde aGEX=+5.8e6su BTC): ricalibrarla sui 90 giorni sarebbe la selezione che il progetto rifiuta. Riapertura non prima di ~30-40 episodi di regime = ~2 anni (meta' 2028).
2 — GROWTH-POLICY (r0822_growth_policy.py, 241 celle dichiarate)
✅ Controllo di replica superato: il motore riproduce r0807_piano_netto §2 al numero pubblicato
(EUR250/m -> 19,8a / P 52%; EUR500/m -> 14,7a / P 99%) con path diversi.
📌 Il risultato strutturale: ogni gate del progetto e' INVARIANTE ALLA SCALA. Lo Sharpe misura
1,31 a OGNI cella del knob di leva -> deflated_sharpe e marginal_vs_tp01 non falliscono, non
vedono la variabile. E' per questo che la leva e' l'unica leva del libro mai esaminata in 2 mesi.
- Serie de-luckata x0,89: drift 17,11%/a, vol 11,37%, Sharpe 1,51, peggior giorno -3,95%. Netto fee E netto fisco d'accumulo (33% + carry 4a + patrimoniale 0,2%).
- k* empirico ~10-14x (banda 10x a 1500 path / 14x a 2500: la POSIZIONE non e' risolta), Kelly gaussiano 13,2x. Libro a k=1 -> g 17,0%/a, maxDD mediano 18,1%, P(DD>30%) 1,4%.
- Fragilita' che decide il verdetto: k* e' lineare nell'errore del drift (stimato su 7,4 anni) — -1 SE -> 10x, -2 SE -> 7x, drift dimezzato -> 7x, drift zero -> 0,5x. E allo stress di coda un giorno -10% all'anno porta k* a 2x, -15%/anno a 1x.
- ⚠️ Controllo di plausibilita' FALLITO dall'agente sul proprio output (e riportato): capitale mediano $4,4e12 da $600 a k=14x -> il modello assume ritorno indipendente dalla size. A k>2 i numeri sono aritmetica, non previsioni.
- Gate pre-registrato (condizione, non data): nessuna proposta di k>1 prima di rifare la curva con
la lente WICK ACCOPPIATA (
r0725_prop_coupled) — a leva il breach si valuta sul MINIMO, e la lente close-only usata qui e' quella misurata cieca il 25/07 (raddoppia i breach da daily-loss). - 📌 Sottoprodotto da verificare (tocca un'etichetta del libro live): a
target_vol=20%la vol realizzata di TP01 e' 12,14% — il target vale sulla posizione quando c'e', e TP01 e' long-flat. L'etichetta sovrastima il rischio preso di ~40%.
12 — ORTHO-SCREEN (r0822_ortho_screen.py, 174 trial: 7 famiglie x 24 + 6 controlli)
📌 Il risultato piu' riusabile dell'ondata, ed e' metodologico: il deflated-Sharpe va calcolato di screen (168 trial) e non solo di famiglia (24). Su quel pool il massimo atteso dal puro rumore e' Sharpe 1.572, cioe' sopra il soffitto direzionale misurato del progetto (~1.3). Conseguenza: una ricerca a rete larga su un singolo stream direzionale BTC/ETH non puo' passare il proprio gate — non e' sfortuna, e' aritmetica. Le ondate future o dichiarano famiglie molto piu' piccole in anticipo, o cambiano meccanismo (non-direzionale / cross-sectional). 📌 Per la prima volta nel progetto l'eseguibilita' a $600 non e' il vincolo binding di niente (haircut 0.00-0.01 su 7/7): muore tutto molto prima, sull'edge.
- Famiglie: RSKEW (skew realizzata), TACC (accelerazione del trend), VPX (volume-prezzo), XDISP
(dispersione dei 51 alt come timer), XCORR (corr BTC-ETH), XTAIL (dopo shock 3σ), VRAT
(variance-ratio). Miglior DSR di famiglia 0.633, di screen 0.034.
robust_oosFalse 7/7. - TACC e' l'unica ADDS (corr→TP01 0.09) ma il suo uplift hold-out vive tutto nel 2026 (2025 da solo −0.314) = finestra fortunata. E la domanda della famiglia ha risposta: e' il LIVELLO, non l'accelerazione — la cella scelta si riduce al ritorno a 5 giorni, corr +0.784 col momentum di livello.
- ✅ Tre falsificazioni che chiudono spazio: (1) la mean-reversion non torna in vita sotto due conditioner mai provati (volume, shock 3σ): la selezione in-sample sceglie il ramo di CONTINUAZIONE in entrambi i casi; (2) la dispersione dei 51 alt come timer di mercato e' negativa (−0.899 sulla sola finestra attiva, non e' un artefatto di calendario); (3) RSKEW e' il ritratto del fitting — miglior in-sample dello screen (1.281) e peggior hold-out (−0.494), col segno OPPOSTO all'a-priori teorico dichiarato.
- ⚠️ 6ª occorrenza del null del de-levering (VRAT, maxDD 4.4% ->
k*TP01fa meglio). - ⚠️ Due candidati hanno l'ancora canonica come PEGGIORE delle 8 (TACC, VRAT): la fortuna d'ancora non ha un verso fisso, e guardare solo il canonico a volte inventa un danno.
3 — XS-LITE (r0822_xs_lite.py, 26 celle + 120 valutazioni d'ancora)
✅ Repliche bit-exact prima di ogni delta: XS01 vs sleeves._xsec_returns e XSR01 vs
basket_from_positions(demean=True), entrambe max|diff| = 0.0.
📌 Falsificazione di un numero pubblicato: il muro "XS01 serve ~$20k" non e' un fatto di
Sharpe ma di turnover — e a capitale piccolo il min-order salta la deriva del vol-target
(|Δw| giornaliero 0.001) che non porta segnale, non il ribilancio (|Δw| 0.091-0.157). Capitale
minimo perche' il ribilancio passi: $109 (k=5) / $86 (k=3) / $64 (k=2) di sleeve. Stessa lezione
gia' imparata su TP01 nel 2026 ("a $600 il min-order e' gia' la banda ottimale") e mai applicata a
XS01. ⚠️ L'agente ha usato min-order $10 (Hyperliquid), non $5 (Deribit) — un audit dedicato
sta verificando i minimi veri del venue.
- Concentrare non ripara il rischio #1 di XSR01: XS-LITE regge oltre 50 bps/gamba, XSR-LITE muore a ~28 bps a ogni k, pieno incluso.
- La radice dell'ampiezza non descrive XS01: da 10 a 4 gambe si perde il 2% di Sharpe mediano-di-fase mentre N_hhi passa 6.9 -> 3.0 (il segnale sta negli estremi del ranking; le gambe 3-5 per lato aggiungono rischio quanto segnale). Il collasso arriva solo a k=1 (41%).
- ⚠️ Da inseguire — tocca un gate pre-registrato: lo Sharpe 1.82 di XSR01 NON si riproduce oggi.
Sulla finestra identica a quella di scoperta la lente "paniere" da' 1.75 e la lente "libro" di
paper_xsrda' 2.23; 1.82 non e' nessuna delle due. Spiegazione piu' probabile:data/rawe' gitignored e il cron riscrive i parquet HL ogni notte -> stesso codice, dati diversi (identico allo scoperto del 07/08 su GTAA/TLT). La decisione del 23/10 poggia su quel numero.
10 — FLOW-SQUEEZE (r0822_flow_squeeze.py, 118 trial dichiarati, griglia RIDOTTA per budget)
📌 Sottoprodotto con potenza vera, e chiude un filone: il funding non predice ne' direzione ne' volatilita' — misurato su 53.430 ore / 3 anni di funding Hyperliquid (li' la potenza c'e'): eccesso |<=0,35%| a 24h con segno instabile fra anni, |ritorno| futuro piatto e non monotono. Il filone funding, gia' chiuso su 3 lati come livello di carry, si puo' dichiarare chiuso anche come proxy di AFFOLLAMENTO. Quarto lato.
- Il "segnale" migliore (Sharpe 3,25 su 90 giorni) e' il massimo di 18 celle: DSR 0,103
(0,004 su 118 trial),
implausible_sharpe=True, e su 114 giorni il massimo atteso per caso e' Sharpe 5,40 -> il candidato sta sotto il proprio null. Il 71% del P&L e' in giugno, il 60% in 3 giorni su 114. - Il null "statica travestita" e' superato (sempre-short = −0,67), ma quello di timing casuale location-matched e' al 99,7° pctl che pero' e' il massimo di 18 -> P(per caso) = 0,06: non superato dopo il conto dei trial. Esempio pulito di come si legge un percentile alto.
- ⚠️ Ricostruibilita' MISURATA, non assunta: l'OI della catena (opzioni) contro la colonna dello snapshot (perpetual) da' Pearson +0,03 BTC / +0,21 ETH — non e' la stessa grandezza.
- 💡 Azione possibile, costo quasi nullo (NON eseguita, tocca il cron di produzione): accendere
un collettore orario dell'OI dei perpetual Deribit (una GET/ora, API pubblica). Non ripara
questo filone, ma da quel giorno la storia comincia; oggi ripartirebbe da zero. Il criterio di
falsificazione e' gia' scritto dall'agente: >=12 mesi, eccesso oltre la MDE (~0,3%) e presente in
=3 trimestri su 4.
- ⚠️ Distinzione metodologica utile (nata contraddicendo il suggerimento del coordinatore): qui il vincolo binding NON e' la concentrazione degli episodi (86-87 episodi corti, i primi 8 coprono solo il 20-25% delle ore) ma la lunghezza del calendario (90 giorni). Ampiezza scarsa e calendario corto sono due diagnosi diverse e si curano in modi diversi: piu' episodi vs piu' tempo.
11 — VRP-QUOTE-VERE (r0822_vrp_real_quotes.py, 60 trial + 9 ancore d'ingresso)
🚨 IL RISULTATO DI PRODUZIONE — collect_chain.py interroga {"currency": "BTC"|"ETH"}, che su
Deribit restituisce le sole opzioni INVERSE (regolate in BTC/ETH). Il conto e' in USDC (esegue
BTC_USDC-PERPETUAL). Esiste una famiglia USDC-lineare con lotto minimo 10x piu' piccolo:
| famiglia | min lotto | ~$ per lotto |
|---|---|---|
| BTC inverse | 0.1 | ~$7.700 |
| BTC_USDC | 0.01 | ~$780 |
| ETH inverse | 1.0 | ~$2.500 |
| ETH_USDC | 0.1 | ~$250 |
| Quindi il muro pubblicato "BTC opzioni min 0.1 = $6.210/lotto -> FUORI a $3.000" (congelato in | ||
tests/test_vrp_profit_take.py) e' misurato sulla famiglia che il conto non puo' marginare. |
||
**3ª occorrenza dello schema fee_watch (21/08): un controllo/collettore puntato su uno strumento |
||
| diverso da quello che si trada.** | ||
| ⚠️ MA la verifica indipendente del coordinatore cambia la conclusione, e in meglio: contando | ||
l'open interest famiglia per famiglia (get_book_summary_by_currency, misura mia, non dell'agente) |
||
| famiglia | strumenti | con OI>=100 |
| --- | --- | --- |
| BTC inverse | 1038 | 415 |
| ETH inverse | 932 | 548 |
| BTC_USDC | 686 | 5 |
| ETH_USDC | 660 | 119 |
| -> BTC_USDC e' praticamente morto (5 strumenti liquidi su 686). **Il muro sul BTC RESTA, ma per | ||
| la ragione giusta e meglio misurata: non la taglia del lotto, la LIQUIDITA'.** ETH_USDC (119 | ||
| strumenti, ~$250/lotto) e' l'unica gamba che varrebbe la pena raccogliere. | ||
| 📌 Sottoprodotto fuori perimetro: esiste un universo opzioni USDC piu' liquido di BTC_USDC — | ||
| SOL_USDC 341, XRP_USDC 250, HYPE_USDC 172, AVAX_USDC 146 strumenti con OI>=100. |
- Il campione misura la strategia mentre STA FERMA: 0/19 settimane passano il gate IV-rank>0.30, DVOL alla mediana del 7°/11° percentile storico, sottostante +25%/+44%.
- ✅ Replica indipendente del f del 30/07 su campione piu' lungo: f = 0,714 pooled (IC95 [0,690, 0,779], 0/19 osservazioni >= 1,0). Attraversare lo spread costa ~10% del credito.
- ⚠️ Correzione a un numero pubblicato: il forfait fee del sleeve sovrastima il listino vero di 1,44x (BTC) / 1,80x (ETH), non di "~2x". Il segno (conservativo) regge, la taglia no.
- ⚠️ Rischio sul MINIMO, non sulle chiusure: peggior mark infra-settimana mediana −6,4% del rischio, minimo −91,0%; fra le settimane chiuse in utile, minimo −56,9%.
- Gate:
implausible_sharpeFLAGGED su entrambi (0 perdite su 10 -> regola del tre: tasso vero fino al 30%, su un payoff che perde 7,4x il credito);deflated_sharpenon calcolabile (T=10) e l'agente si e' rifiutato di fabbricare una griglia giornaliera al 94% di zeri per superare il T>=30; banda d'ancora: canonico all'89° pctl, mediana onesta 1,45, banda che include il negativo. Il titolo annualizzato (32,58) e' stato deliberatamente non riportato come risultato. - ⚠️ L'agente ha refutato in corsa una propria conclusione: spostare l'ora d'ingresso cambia QUALI STRIKE corrispondono al delta obiettivo -> non e' lo stesso trade un'ora dopo, e' un'altra struttura; la media BTC cambia segno fra le ancore (−1,35% -> +11,22%).
7 — TERM-STRUCTURE (r0822_term_structure.py, 312 trial dichiarati)
🚨 MURO DEL DATO, e vale per ogni filone che usa la catena ereditata: prima del 2026-06-09
bite_archive raccoglieva UNA SOLA SCADENZA per giro (mediana 1, max 1) -> la curva non
esiste. La finestra utilizzabile non e' "3,7 mesi": e' 74 giorni, SE(Sharpe) ~ 2,2.
✅ Ricostruzione certificata contro due riferimenti indipendenti: vs il logger vol_term_*
corr 0,992-0,997 (scarto 0,00-0,30 pt-vol); vs DVOL corr 0,94 con bias −2,2/−2,8 pt-vol = il
segno atteso (DVOL integra lo smile).
- Il test piu' informativo e' quello di RISOLUZIONE: l'unica correlazione col futuro che sembrava qualcosa (h=5g: +0,29/+0,32, 94°/98° pctl vs null a blocchi) cambia SEGNO togliendo l'ultima settimana (−0,22/−0,17). Sette giorni su 70. Nella regressione controllata per il ritorno passato il t di Newey-West sta sotto 1,0 a ogni orizzonte.
- Il confronto che uccide il candidato: il buy&hold sulla stessa finestra. Mediana appaiata su
24 ancore vs B&H = +0,14 (14/24) su BTC e −0,65 (1/24) su ETH. La banda d'ancora
gate_pass=Truein isolamento e' inutile: il B&H passa lo stesso gate. - Confound proprio del filone, misurato: corr(pendenza, RV passata) −0,50/−0,57 contro RV
futura −0,39/−0,38 -> la pendenza e' il premio di vol con la gamba realizzata sostituita da
una implicita = la variabile di
dvol_directional(gia' HEDGE, earns_slot=False su 5 anni). deflated_sharpeNON girato, e la motivazione e' il risultato: su 74 osservazioni l'incertezza di CAMPIONE domina di un ordine di grandezza quella da SELEZIONE — deflazionare 312 trial darebbe un numero preciso e privo di senso.- 📌 LEAD stretto e pre-registrato (l'unico numero non banale: corr(pendenza, RV futura) −0,39): la term structure come previsore di VOL, non di ritorni. Decisione 2027-02-01, si riapre solo se (a) corr <= −0,30 su entrambi gli asset E (b) batte il DVOL a tenore singolo in R² incrementale E (c) supera il null del de-levering. Se (b) fallisce, il filone si chiude.
- ⚠️ Tre bug propri catturati in sessione, tutti del tipo che passa i test pigri: il null del de-levering cercava il primo k salendo invece del piu' grande; la RV futura aveva uno shift di troppo; l'ATM vettorializzato e' stato verificato contro il prototipo (23.544/23.545 righe identiche).
6 — OI-PIN (r0822_oi_pin.py, 516 trial dichiarati, 73 scadenze/asset)
✅ Potenza dichiarata PRIMA di guardare (e questa e' la ragione per cui il verdetto e' credibile): MDE a hte 12 = 0,46%/trade; effetto max-pain osservato +0,273% = SOTTO il proprio MDE. 📌 Il null che decide: il placebo senza opzioni. La cella migliore fa Sharpe 5,59 e batte gli strike casuali (6/72 contro ~2 attesi), ma 0/24 contro la media a 7 giorni dello spot, con cui condivide il 68-77% del segno. Non e' pinning verso uno strike: e' reversione verso il centro recente, e l'OI e' solo uno stimatore rumoroso di quel centro.
- DSR 0,290 (288 trial): lo Sharpe-null atteso e' 6,79 > 5,59 osservato — su 75 giorni il
massimo del rumore batte il risultato.
implausible_sharpescatta. I 5 giorni migliori valgono il 61% del log-equity. - ⚠️
marginal_vs_tp01non puo' dare ADDS per costruzione su questa finestra:multicutvuole=2 tagli annuali da >=120g e
has_insample_edgee' True per default perche' non esiste pre-2025. Un NEUTRAL qui non e' un giudizio. - Haircut a $600: +0,000 (si esegue sul perp) — 2ª conferma che l'eseguibilita' non e' piu' il vincolo binding di questa ondata.
- ⚠️ REGOLA NUOVA (difetto proprio, trovato e corretto in sessione): un placebo si controlla per
BILANCIAMENTO DEL SEGNO prima di usarlo. Il placebo
jitconcordava in segno con la propria regola solo nel 14% dei casi (5% perjit_gex): non era un null, era la strategia invertita, e usarlo fabbricava 3 celle "significative" e un contrasto spettacolare (−8,6 di Sharpe). Un null pulito sta a ~0,50; sotto ~0,35 il suo delta va letto come ~2x il segnale.
8 — VOL-SIZE (r0822_vol_size.py, 28 trial + 23 ancore)
✅ Sanity bit-exact: ricomposizione trade-by-trade max|diff| = 0.0 contro run_asset e contro
sleeves._skyhook_returns().
🚨 DIFETTO DI METODO GENERALE, trovato dall'agente nella propria prima stesura e MISURATO invece
che cancellato: su uno sleeve a equity a GRADINO, un overlay giornaliero e' NON CAUSALE. Tutto il
P&L di un trade SKH01 e' contabilizzato il giorno di CHIUSURA, fino a 3,83 giorni dopo
l'ingresso; moltiplicare la serie giornaliera per L_t (che usa solo dati <= t−1) passa
qualunque controllo di causalita' scritto sulla serie giornaliera — il look-ahead sta nella
CONTABILITA', non nella formula. Costo misurato: +0,04 di Sharpe hold-out fantasma.
REGOLA: un overlay si applica alla data d'INGRESSO, non a quella in cui il P&L viene contabilizzato.
🚨 REGOLA 2 — il null del de-levering e' DEGENERE quando la variante e' una ri-scalatura
(sh(k*base) === sh(base)): il test che serve non e' sul DD ma ISO-PESO sullo Sharpe, altrimenti
si sta solo misurando di quanto e' cambiato il peso di uno sleeve. Qui era decisivo: quasi ogni
variante alzava il peso effettivo di SKH fino a 0,375, e "alzare SKH01" e' gia' stato misurato e
respinto il 26/07.
📌 Il meccanismo NON e' quello ipotizzato: scomponendo la vol trailing di uno sleeve all'88% di
zeri nei due canali, il guadagno FULL viene dalla FREQUENZA (il solo filtro di attivita' fa
+0,051 su +0,061) e non dalla magnitudine (+0,003). Non e' controllo del rischio: e' un
filtro di frequenza, e va chiamato cosi'.
- Baseline del libro, stima onesta (mediana banda): 1,626 FULL / 1,037 HOLD / DD 10,4% — la fortuna d'ancora del libro vale +0,196 FULL / +0,448 HOLD.
- Cella congelata del LEAD (
VTL tv20 w90): size fissata all'ingresso =clip(0,20 / rv90(t−1), 0, 3). ISO dShFULL +0,070 (23/23 ancore), dShHOLD +0,101 (19/23), 8/8 anni positivi, null di permutazione p~0,027 (e la mediana del null e' −0,04: riassegnare a caso la stessa distribuzione di size danneggia). - ⚠️
DSR = 1,000dichiarato VACUO, non PASS: lo passa anche il baseline — su una famiglia di perturbazioni della stessa strategia il deflated-Sharpe non ha potenza. Onesta' rara. - ⚠️ Punto piu' fragile, dichiarato: l'asse della finestra e' un picco, non un plateau (w30 nettamente negativo, w180 ~0).
- Gate pre-registrato — e non e' un forward (con SE(Sharpe)~1,4 sei mesi non possono misurare
0,07): e' un secondo trasferimento, la famiglia IV su SKH01_V1, dove il meccanismo dichiarato
prevede un effetto minore (lo stop e' gia' in ATR). Se invece l'effetto e' uguale, la
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_nullpassa. Book, pesi, cron, config INVARIATI.