Files
PythagorasGoal/docs/memory/20-ondate-e-scartati.md
T
Adriano Dal Pastro b237ad2e8b docs: compattazione di CLAUDE.md — 3458 -> 424 righe, memoria in docs/memory/
CLAUDE.md era arrivato a 310 KB (~80k token caricati a OGNI sessione) e la
sua funzione si era sdoppiata: era insieme il manuale operativo e l'archivio
di 69 filoni di ricerca. Le due cose hanno lettori diversi.

I 65 bullet-blocco sono stati spostati VERBATIM in docs/memory/ (nulla
riscritto). Verifica meccanica riga per riga prima del commit: 3272 righe
non vuote, 0 mancanti, 0 aggiunte, zero buchi e zero sovrapposizioni nella
copertura delle regioni estratte.

  10-sleeve-e-candidati.md    30 KB  TP01 XS01 VRP01 SKH01 GTAA01 XSR01
  20-ondate-e-scartati.md    126 KB  69 filoni, ogni scartato col suo perche'
  30-piano-capitale-fisco.md  59 KB  muri, versamenti, venue risk, fisco, prop
  40-produzione-e-deploy.md   66 KB  esecutore, tripwire, monitor, PRIIPs/UCITS
  50-dati-e-feed.md           14 KB  difetti del dato, catena opzioni
  60-metodo-e-gate.md          4 KB  i gate di altlib.py

In CLAUDE.md resta solo cio' che serve a non sbagliare una decisione: stato,
book live vs book di ricerca, i numeri da citare e quelli da NON citare,
7 decisioni vincolanti dell'operatore con "cosa le riapre", 6 gate
pre-registrati con la data, 9 debiti aperti non riparati, le regole di
prim'ordine (D/M/C/P/N, distillate dalle 113 righe che contenevano REGOLA),
IL DATO, metodologia, stack/struttura/comandi.

Tre fatti che erano sepolti in 3400 righe e ora stanno in testa: le TRE
baseline diverse che girano sotto il nome "libro 75/25" (spread piu' grande
di quasi tutti gli effetti misurati), il funding non modellato in nessun
backtest (-2,16%/anno), e che «N/N ancore» vale ~2 osservazioni.

Verificato prima del commit: 36/36 percorsi citati esistono su disco,
708 test collezionati, code fence bilanciati. Nessun file di codice toccato.

Convenzione aggiunta (§14) perche' il file non torni a crescere: quando un
risultato CAMBIA UNA DECISIONE si aggiorna CLAUDE.md; quando aggiunge
racconto, va in docs/memory/.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-08-25 08:50:02 +00:00

126 KiB
Raw Blame History

Ondate di ricerca e scartati

Estratto verbatim da CLAUDE.md il 2026-08-25 durante la compattazione. 69 filoni, 0 candidati promossi. Ogni bullet dice perche' e' morto: chi lo riapre deve battere il motivo, non ripetere l'esperimento. Il testo non e' stato riscritto: e' la memoria originale, spostata.


  • Lead OPZIONI VRP (income short-vol) — quantificato, NON deployscripts/research/options_vrp_*.py. Vendita put settimanali che incassa il volatility risk premium (IV>RV), scorrelato al trend (~0.07). Premio prezzato BS su DVOL reale (fetch_dvol.py) + calibrato su quote REALI cerbero-bite mainnet (options_vrp_calibrate.py): f reale ≈ 1.0 (non 1.29) → Sharpe ~0.71, DD 33%, coda severa (settimane 15..26% su LUNA/FTX). Diversificatore DEBOLE a premio reale, e short-vol da modello. Regola: niente short-vol da modello in deploy. Rivalutare quando cerbero-bite cattura un crash (per il f di stress reale). Diari 2026-06-19-options-vrp-lab / -eval-crypto-backtest-options.

  • Edge deboli/scartati: ML walk-forward BTC (Sh ~0.57), trend 1h L/S (~1.0), RV ETH/BTC (Sh 0.27, regime-luck), calendar/seasonality (buy&hold travestito), volume/vol e momentum-reversal (negativi).

  • MORTO/confermato artefatto: mean-reversion / fade (negativo anche a fee zero — la vecchia libreria +201%/+1238% era contaminazione); trend 5m/15m (fee).

  • GAMMA SCALPING (long-vol) "scalping BTC/ETH con copertura in opzioni" — SCARTATO (2026-06-26)scripts/research/options_gamma_scalp.py, test tests/test_gamma_scalp.py. È lo specchio esatto del VRP01 (long straddle ATM + delta-hedge: incassa RVIV, dove VRP01 incassa IVRV). Perde ogni anno, ogni variante, ogni frequenza (Sharpe 3 a 6; nudo/cheap-gated/rich-skip; rehedge 1d e 1h). Diagnostica strutturale: a 1d IV≈o>RV (BTC +4.9pp) → paghi il VRP; a 1h RV>IV gross ma (a) gonfiata da microstruttura, (b) il rehedge orario paga 24× la fee di hedge → variante peggiore (6). Marginale vs TP01 = DILUTES, non è nemmeno hedge (perde sia TP01-up sia TP01-down). Muro eseguibilità: opzione BTC min $5.968 ≫ $600. Schiacciato tra due muri: rehedge lento = premio, veloce = fee → nessuna frequenza vince. Regola gemella del VRP: niente long-vol scalp da modello in deploy. Il VRP01 (lato short, gated) resta l'unico edge opzioni — funziona perché sta sul lato giusto dello stesso premio. Diario 2026-06-26-gamma-scalp-options.md.

  • CASH-AND-CARRY (basis trade) "CC01" — premio REALE, Sharpe ARTEFATTO, NON deployabile (2026-06-26)scripts/research/cash_carry_hl.py, test tests/test_cash_carry.py. Diverso da FC01 (funding cross-sectional, già scartato): qui delta-neutral long-spot/short-perp sullo stesso asset → ritorno ≈ +funding (zero esposizione prezzo). Il premio di funding è reale (~+8-14%/anno aggregato, positivo ogni anno in-sample, ortogonale a TP01 corr ~0.05). MA lo Sharpe modellato 11-13 (DD 0.3%) è un ARTEFATTO: il modello cattura solo il cashflow liscio del funding e i rischi di coda sono strutturalmente fuori dal dataset — (1) storico funding dal 2023-05 → manca il 2022 (deleveraging, funding , basis blow-out); (2) procyclico (carry +23% toro 2024 → +1.7% bear 2026, si comprime quando servirebbe); (3) liquidazione short/slippage non modellati. Il mark-to-market della base (premium col → r=funding−Δpremium) sgonfia lo Sharpe solo 13→11 → il basis-from-data NON è il rischio vero. Sharpe reale di un basis-trade ~1-3 con code brusche. NON eseguibile a $600 (spot+perp = 4-38 gambe, funding HL non Deribit) → STAT-MODE. LEAD da rivedere a scala (~20k+ e venue con funding eseguibile), non uno sleeve. Sottoprodotto: CC01 passa OGNI gate del marginal scorer → punto cieco (manca un gate "Sharpe implausibile → rischio nascosto"; prossima indurita raccomandata). Diario 2026-06-26-cash-carry-hl.md.

  • TP01 × DVOL vol-targeting — NON migliora (2026-06-26)scripts/research/tp01_dvol_overlay.py, test tests/test_tp01_dvol_overlay.py. Angolo ESEGUIBILE (tocca il book live, non STAT-MODE): usare il DVOL (vol implicita forward-looking) come denominatore del vol-target di TP01 invece della vol realizzata. Su finestra comune 2021-2026: le varianti DVOL abbassano il DD (12.3%→9.2%) ma anche Sharpe FULL (0.75→0.70) e CAGR (8%→6%). Controllo decisivo: il realized a target_vol RIDOTTO (15%) eguaglia quel DD (9.4%) a Sharpe più alto (0.75) → il taglio di DD del DVOL è solo de-levering, replicabile meglio con un semplice target_vol più basso. L'unico residuo (hold-out +0.06) è single-window (storia DVOL <5 anni) → sotto la soglia multi-cut. Il gate DVOL-spike de-risk è ridondante col trend (TP01 già flat nei crash, Δ 0.00). Lezione: per meno DD sul live la leva è target_vol, non un overlay DVOL (20% resta canonico). Diario 2026-06-26-tp01-dvol-overlay.md.

  • Filoni 2026-06-29 (1ª ondata) — tutti scartati/forward. (A) DVOL-DIREZIONALE standalone BTC/ETH (buy-the-fear / IV-RV come segnale di livello): l'unico edge è un HEDGE (is_hedge=True, paga solo quando TP01 è debole), non alpha → earns_slot=False, forward-monitor come DD-dampener (diario 2026-06-29-dvol-directional.md). (B) INTRADAY ERM (efficiency-ratio regime momentum sub-daily): falso positivo da selezione-sull'hold-out → SCARTATO (vedi gate SELECTION-ON-HOLDOUT; 2026-06-29-intraday-regime.md). (C) XSEC-V2 NON-MOMENTUM su HL (reversal/idio-reversal/low-vol/BAB): solo LOWVOL 19-major regge standalone (FULL/HOLD 1.07) ma deflated-Sharpe 0.13 + storia 2.5a → DEBOLE/ forward STAT-MODE (2026-06-29-xsec-v2-nonmom.md). (D) MACRO regime-gate (equity/credito/oro/tassi → de-risk crypto): RIDONDANTE col trend (corr→TP01 0.989; il gate lavora solo nel 2-3% dei giorni, TP01 già flat nei crash) → SCARTATO (2026-06-29-macro-regime-gate.md).

  • Sweep strategie a 5 thread (2026-06-29) — 0 nuovi sleeve, 1 LEAD che rompe 2 muri su 3. Ricerca parallela onesta su aree inesplorate (harness altlib+xsec_v2_nonmom, tutti i gate incl. il nuovo study_family_honest): (1) low-risk cross-sectional, (2) momentum-structure vs XS01, (3) meta-allocazione dinamica, (4) segnali ortogonali ETH/BTC, (5) 1-gamba a segnale. Esito: soffitto ~1.3 riconfermato; ogni candidato ucciso dal gate giusto (deflated-Sharpe, is_hedge, selection-on-holdout, sostituzione-XS01, multi-cut). Niente batte/diversifica XS01 (varianti = REDUNDANT); meta-allocazione < pesi fissi (i 4 sleeve già quasi-risk-parity); 1-gamba a segnale = TP01 travestito (trend) o hedge a DSR<0.95. LEAD forward-monitor: STATARB-RESID (relative-MOMENTUM del residuo ETH−β·BTC, β OLS rolling, 2 gambe, cella vincente sgn=+1: le dislocazioni ETH-vs-BTC CONTINUANO a 1d, la MR pura sgn=1 perde) — primo stream insieme ortogonale (corr→book 0.027, β-mkt 0.013) ED eseguibile a $600 (haircut ~0, NON STAT-MODE come XS01/opzioni): marginal ADDS, robust_oos, fee-survive 0.30%/gamba; resta sotto soglia solo sull'edge (Sharpe 0.84, DSR 0.929 same-sign <0.95). CABLATO in forward-monitor PAPER: scripts/live/paper_statarb.py (W=45/sgn=+1 congelati, doppio libro MODELED/REAL-$600), nel cron giornaliero accanto a paper_prevday; test tests/test_paper_statarb.py. Se la finestra forward conferma l'edge è deployabile (2 gambe BTC/ETH perp). Altri LEAD: IVOL (idio-vol XS, STAT-MODE), DVOLSPREAD (storia DVOL corta). Diario 2026-06-29-strategy-search-5threads.md. Script scripts/research/{xsec_v3_lowrisk,xsec_v3_momstruct,meta_allocation,orthogonal_signals,signal_inout_1leg}.py.

  • Ondata 2026-07-01 (6 filoni multi-agente + scettico) — 0 edge nuovi dai filoni, 1 gate nuovo, e 1 sleeve promosso DALL'ARCHIVIO (GTAA01, sotto nel bullet portafoglio). Filoni su angoli non coperti dalle ondate precedenti: (1) funding time-series BTC/ETH (posizionamento) = SCARTATO — FOLLOW è trend-beta ritardato, FADE shorta il toro, il gate è TP01 travestito (DSR 0.215); il filone funding è chiuso su 3 lati (FC01 carry, price-clock, TS). (2) breadth/internals alt (51 HL) = SCARTATO ma unico NON-ridondante col trend (corr→TP01 0.40); muore su jackknife (uplift su 1 mese) + DSR 0.433 con ~8 mesi IS → rivisitabile tra 1-2 anni di storia HL nativa. (3) residual momentum XS (β-hedged, 19 major) = REDUNDANT — cross-section la residualizzazione è un no-op (lo z-score di XS01 rimuove già il mercato); l'edge resta solo nella coppia ETH/BTC (STATARB-RESID). (4) ri-ottimizzazione pesi + guardia-DD: il candidato EW-STR (TP30/XS25/VRP15/SKH30, HOLD 2.21→2.35) refutato dallo scettico come selezione-sull'hold-out di 2° ORDINE — SKH01/XS01 furono ammessi/affinati perché forti su quell'hold-out; pre-2025 ΔSh 0.05, finestre disgiunte 0.12/+0.06/+0.14, percentile 94-100° fra 500 tilt casuali ≈ firma best-of-15. Guardia-DD 5%/0.5: inerte OOS (la diversificazione fa già il lavoro; solo circuit-breaker d'emergenza). (5) affinamento VRP01 = NON MIGLIORA (l'alpha è tutto nel gate binario IV-rank; gate TP01 = trappola in-sample; 3° fallimento → filone "VRP dentro il modello" esaurito fino a f di stress reale). (6) stagionalità cross-sectional HL = morta allo step statistico (null permutato). GATE nuovo codificato: weights_tilt_null in src/portfolio/portfolio.py (+ combine_outer riusabile): ogni proposta di CAMBIO PESI si giudica vs il null dei tilt casuali cap-respecting — gate_pass solo se delta_insample≥0 E percentile < firma best-of-k (necessario, non sufficiente); test tests/test_weights_tilt_null.py. ⚠️ Lezione tecnica: DatetimeIndex.view("int64") su indici tz-aware non-ns (pandas 2.x) → scala sbagliata → merge_asof broadcasta = look-ahead che causality_ok non vede; usare epoca esplicita in ms (altlib verificato pulito). Diario di sintesi 2026-07-01-strategy-wave-6threads.md + 6 diari di filone; script scripts/research/r0701_*.py.

  • Ondata 2026-07-02 (TIMING + CRT, 8 filoni multi-agente + scettico) — 0 nuovi sleeve, 1 finding strutturale (anchor timing-luck di TP01, vedi ⚠️ nel bullet TP01). Goal: "strategie con timing differenti". (1) Event-clock bars (volume/vol/range da 5m, TSMOM/Donchian/EWMA in tempo-informazione): batte il wall-clock a pari segnale/frequenza solo in 4/45 coppie; cella best IS 1.45 → HOLD 0.46, NEUTRAL (corr 0.74 = trend travestito) → SCARTATO: il clock non è dove vive l'edge. (2) Calendario scadenze Deribit (expiry weekly/monthly/quarterly ven 08:00 UTC): 0/24 celle a Bonferroni; il drift post-expiry monthly fallisce placebo-weekday e permutation e si INVERTE sul quarterly (dove l'OI massimo dovrebbe amplificarlo); unico pattern robusto = gio→ven negativo, ma è day-of-week (SEA morta) a Sharpe netto ~0 → SCARTATO. (3) Anchor timing-luck TP01 + tranching: finding confermato (dettagli nel bullet TP01); tranching K=2/4 = sola riduzione della varianza della STIMA (ΔSharpe n.s., ΔDD ~0.5pt), NO deploy a $600 (il min-order lo degenera in K=1; serve feed intraday fuori path certificato) — rivalutare a ≥5-10k. Audit d'ancora ESEGUITO su XS01 e SKH01 (stesso giorno): il finding si replica su 3/3 sleeve ancorati — vedi ⚠️ nei rispettivi bullet e la stima de-luckata del book nel bullet portafoglio; diario 2026-07-02-anchor-audit-xs01-skh01.md. (4) Clock lenti (2-7g) + bande isteresi: fee drag di TP01 = ~0.4%/anno = tetto di ogni risparmio; il lag costa più del risparmio (HOLD ensemble 0.34→0.11 da N=2 a 7); a $600 il min-order $5 è GIÀ la banda ottimale (ordini 74% a costo ~0) → nessun cambio al book. (5) Velocità trend regime-condizionata (pesi tra orizzonti 30/90/180g vs percentile vol RV/DVOL): pctl 0.71 vs null pesi-statici-casuali = tilt-30d statico travestito (trappola EW-STR); pesi canonici 1/3 confermati → SCARTATO. (6-8) CRT "Candle Range Theory" (sweep-and-reclaim 3 candele, mai coperto da MRV/MIC): base 864 trial DSR 0.000 + anchor-flip + short "smart-money" negativo perfino in-sample; multi-TF (4h→15m, 1h→5m, ~10k trade) expectancy negativa ovunque anche a fee zero, e il ritest è informazione negativa (pattern con-ritest 40bps vs senza +52bps: aspettarlo seleziona i peggiori); contesto (FVG/equal-highs/sessioni, 22 trial) non salva il fade, cella "Asia" = artefatto anchor-flip → SCARTATO 3/3. Sottoprodotto: sugli stessi livelli prior-day FOLLOW > FADE ogni anno 2019-26 (conferma indipendente del lead prevday in forward-monitor). Lezione: il timing-luck d'ancora è multiple-testing che il deflated-Sharpe NON conta (candidato gate futuro anchor_luck_band). Diario 2026-07-02-timing-crt-wave.md; script scripts/research/r0702_*.py (9 file).

  • Ondata 2026-07-02-bis ("video claims": Elliott 3 filoni + Albimarini 2 + capital scaling) — 0 nuovi sleeve, 0 forward-monitor, 1 azione config pendente sul deposito. Meccanizzazione onesta di claim da video didattici: (1) Elliott range-cycle (onda1 compressa→onda3 ampia): rumore, 0/24 celle a Bonferroni, nessuna cella weekly regge a tutte le 7 ancore → SCARTATO. (2) Confluenza Fibonacci: vs null ingenui sembra buona (pctl 0.82-1.00), vs null location-matched (Fib±jitter: "0.618 vs 0.58?") crolla a 0.39-0.68 = l'apparente edge è la POSIZIONE dei livelli, non i numeri; confluenza FAIL 4/4 → SCARTATO (il null location-matched è IL test per ogni claim su livelli "speciali"). (3) Tecnica del canale Elliott: Donchian travestito — non batte il Donchian a pari geometria (corr 0.43-0.53), DSR 0.685, cella in-sample collassa in hold-out (1.40→−0.87), target 1.618 = caso (5/6 celle), anchor-luck di nuovo (4h banda hold [0.35,1.54], 00:00 la migliore) → SCARTATO. (4) Albimarini double-diagonal (short T + long T+1, deep OTM, via motore DVOL di VRP01): il condor stessa-scadenza la batte a ogni f (la long T+1 = assicurazione di coda +12/33bps nel tail, ~1bps costo medio, non dominanza); senza gate IV-rank TUTTE le strutture perdono (3ª conferma: l'alpha del VRP è il gate); su Deribit fee-negativa a QUALSIASI size (fee 8 gambe = 194-221% del theta); celle deep-OTM 0-perdite/142 trade = 2° caso "Sharpe implausibile" dopo CC01 → gate implausible_sharpe raccomandato con più forza. VRP01 resta superiore su tutta la banda skew → nessun LEAD. (5) Audit claims (28 trade, 82% win, PF 5.16, "420%/anno"): consistente con ZERO skill (P=20-45%; il 78.6% delle finestre 6-mesi 1996-2026 lo produce); replay con code reali = rovina 1998/2002/2020 col sizing dichiarato; la diagonale lascia passare il 12-40% della perdita naked. (6) Capital scaling 600→2-5k (r0702_capital_scaling.py): l'unico vincolo binding è max_notional_per_asset_usd=300 (a 5k il book live girerebbe al 49% del target) → al deposito alzare il cap a equity/2 ($1000/$1750/$2500 a 2k/3.5k/5k); min_order $5 da LASCIARE; tranching K=2 non cablare (blocco feed intraday); opzioni ETH eseguibili da ~2.6k ma la regola no-short-vol- da-modello non decade col capitale; XS01 ~20k confermata, CC01 fuori per struttura. Aspettativa onesta col CAGR de-luckato (10-15%): 2k ≈ €0.6-0.8/g, 5k ≈ €1.4-2/g (€50/g resta ≈130k). ⚠️ Lezione pandas: resample("7D", origin=...) IGNORA origin (pandas 2.x, solo RuntimeWarning) → bande d'ancora weekly finte; usare "168h". Diario 2026-07-02-elliott-albimarini-capital.md; script scripts/research/r0702_{ell_*,alb_*,capital_scaling}.py (6 file).

  • Video-claim "CRT top-down multi-TF, 74% win rate" — SCARTATO (2026-07-07): il 74% è un KNOB, non un edge. scripts/research/r0707_crt_topdown.py. Metodo ICT/SMC top-down (H1 setup CRT → M15 struttura/FVG → M5 conferma → M1 entry) con uscita parziale-70/80%-a-1.5R + break-even + runner verso prev-daily high/low. Il setup H1 CRT è già triplo-refutato (onda 2026-07-02: base DSR 0.000, MTF expectancy neg. ovunque "il ritest è informazione negativa", contesto/FVG peggiora, fade<follow) → qui testato l'UNICO angolo nuovo: la gestione d'uscita e il claim 74%. Su BTC/ETH certificati (H1→5m/15m; M1 non nel feed): WR reale 3037% a RR 1.52 (SOTTO il null gambler's-ruin 40% = P(+1.5R prima di 1R)=1/(1+1.5) → il ritest tocca il target MENO di una moneta), expectancy R negativa a ogni schema/fee/finestra/asset (1.2…−3.3R netto). Il 74% si fabbrica avvicinando il target: sweep rr1 0.5→2.0 mostra WR salire (51→32%) con expectancy R INVARIANTE (WR alto = target vicino, non direzione). DSR 0.000 (48 trial); a fee 0 expR 0.10/Sh 0.63 → non è morte-per-fee, l'edge lordo non c'è (residuo = beta di trend dei time-exit); parziale+BE+runner = 3-4 ordini/trade, alcuni sub-min-order a $600. Regola candidata: il win-rate di uno schema parziale+BE non è merito (≈1/(1+rr1)); convertire ogni claim "WR X%" in expectancy R netto fee prima di crederci (helper winrate_is_a_knob()). Diario 2026-07-07-crt-topdown-74winrate.md. Book/pesi INVARIATI.

  • Ondata WEEKEND ven→lun (2026-07-17, 4 agenti) — SCARTATO 4/4; famiglia CALENDARIO dichiarata SATURA; 1 fatto strutturale difensivo sul book. Goal "strategie che lavorino solo ven→lun a timing diversi". (1) WK-DRIFT (144 trial, griglia ore ven×lun × L/S × asset): il drift weekend è beta B&H a esposizione ridotta — null weekday: Fri = 71° pctl, sotto Mon e Sun (nessuna specialità); DSR 0.001; hold-out negativo anche a fee zero; boundary ARTIFACT-RISK. (2) WK-COND (5 gate causali × 9 timing = 99 combo): 5/5 earns_slot=False, boundary ARTIFACT-RISK 5/5; il gate TSMOM è TP01-in-weekend (β 0.67, re-timing del trend); FOLLOW-del-venerdì si inverte OOS (il lead prevday NON si trasferisce al weekend); l'unica variante HOLD+ (vol HIGH70) non è selezionabile in-sample = trappola selection-on-holdout. (3) WK-INTRA (132 celle 1h/15m: Donchian weekend, gap "CME" dom22, magnete-livelli-venerdì): ~50% celle LORDE positive = moneta simmetrica (diagnostica nuova di famiglia-rumore); il claim CME-gap è morto anche lordo; magnete del venerdì inesistente; FOLLOW>FADE riconfermato (3ª volta); a $600 l'esecuzione non è il vincolo. (4) WK-OVERLAY (lato eseguibile): il weekend porta il 38% del gross di TP01 nel 31% del tempo (positivo ogni anno) → TP01-weekend-flat è attivamente dannoso (ΔSh 0.46, P(danno)=1.000 bootstrap, banda 6/6 negativa, non-fee); half = de-levering pagato con fee (k=0.755 lo domina); boost ×1.5 n.s. → regola: non de-esporre il weekend del book; ogni futura proposta "risk-off weekend" parte REFUTED salvo null de-levering superato. Chiusura di famiglia: SEA + expiry + event-clock + 375 trial weekend ⇒ su BTC/ETH nessun edge di calendario/finestra oraria; riaprire solo con meccanismo non-calendario. Book/pesi INVARIATI. Diario 2026-07-17-weekend-window.md; script scripts/research/r0717_wk_{drift,cond,intra,overlay}.py.

  • Ondata 2026-07-25 (MAT01 + generalizzazione STATARB) — 0 sleeve nuovi, 1 DIFETTO DI DATO sul libro live trovato e riparato. Diario 2026-07-25-mat01-statarb-generalization.md. (1) MAT01 (r0725_mat01_multiasset_trend.py, r0725_mat01b_regime.py): allargare il trend difensivo da 6 a 18 ETF multi-asset-class (i 12 su disco dal 22/06, mai usati per un trend) a meccanismo GTAA CONGELATO = SCARTATO. MAT18 perde 3/4 finestre disgiunte; a PARI VOL il suo minor DD si inverte (20.6% vs 15.4%) → era solo de-levering (3ª occorrenza del null de-levering dopo VRP-DD e TP01×DVOL: e' il primo test da fare su ogni claim "meno drawdown"); corr→crypto invariata (0.110 vs 0.116) → zero guadagno di diversificazione; book 2.22→2.19. Risultato positivo da conservare: la curva d'ampiezza e' monotona (mediana OOS 0.44 a k=1 → 0.80 a k=18, DD 16.0%→−6.9%, satura a k≈10-12) — l'ampiezza E' un meccanismo reale, ma GTAA6 sta gia' al 95° pctl dei 6-subset casuali (e non e' cherry-picked: contiene TLT, il peggiore dei 18) → niente piu' ampiezza da raccogliere su questo sleeve. (2) STATARB-MULTI (r0725_statarb_multi.py): meccanismo congelato (W=45, sgn=+1) su tutte le 50 coppie alt/BTC HL, out-of-pair-sample. REGGE: 82% Sharpe>0 (media 0.38), 0/50 degeneri (mono 53% → non e' la statica short-alt travestita), perm p<0.05 nel 18% (atteso 5%), paniere Sharpe 0.82 / DD 6.0% / corr XS01 0.207. E ETH/BTC e' al rango 22/50 (58° pctl): la coppia scopritrice NON e' un outlier → per il gate 27/09 l'ipotesi "fortuna di una coppia" e' refutata. NON e' uno sleeve: ampiezza effettiva ~4.5 (corr media 0.204, gamba BTC condivisa), paniere IC95% [0.12,1.72], t 1.31 (non distinguibile da zero a 2.6 anni), uplift 0.11 vs il null a priori "sempre short alt vs BTC", 51 gambe = STAT-MODE. ⚠ Errore di metodo corretto in-sessione: il primo null statico usava sign(mean(segnale)) sull'intero campione = look-ahead; rifatto causale (media espandente) + a priori. (3) STATARB-EQ (r0725_statarb_eq.py): stesso meccanismo su 12 coppie ETF a priori, 28.5 anni, ampiezza effettiva 9.9 = SCARTATO. Paniere Sharpe 1.00 (IC95% [1.36,0.64], t 5.33), negativo in 4/4 decadi, 0% coppie a perm p<0.05. Ma la lettura sta nel LORDO (0.17, non 1.00): due terzi sono drag di turnover (0.40/g)non esiste strategia specchio (sgn=1 sarebbe lorda +0.17, netta 0.16). Il segno lordo dice che sulle azioni il residuo REVERTE debolmente mentre sul crypto CONTINUA → il meccanismo e' plausibilmente crypto-specifico. Inferenza onesta: non prova che il crypto sia falso, ma il gate 27/09 non puo' appoggiarsi all'argomento "fenomeno universale". (4) Addendum PRE-REGISTRATO al gate STATARB (registrato a forward-day 26/90, 64g prima della decisione): r0724_statarb_deploy_gate.py riporta ora anche lo Sharpe della statica sempre-short a pari vol-target sulla stessa finestra. Soglie del 24/07 NON toccate (diagnostica non binding; renderla binding e' decisione dell'operatore). Lettura odierna (26 barre): STATARB +5.70 vs benchmark 4.98, e la posizione corrente e' LONG lo spread = opposta alla statica → la finestra forward non e' spiegata dal beta di regime.

  • Ondata 2026-07-26-bis (TP01 su barra parziale + i 2 gate mai costruiti) — 0 sleeve nuovi, 1 audit sul libro live, 2 gate codificati, 1 falso positivo MIO su uno sleeve in produzione. Script r0726_tp01_partial_day.py + r0726_gates_retro.py, test tests/test_gates_implausible_anchor.py (13), diario 2026-07-26-wave-tp01-partial-gates.md. Book/pesi/cron/config INVARIATI. (1) T1 — anche TP01 legge una barra giornaliera PARZIALE nel live, ma non conta. Stesso fatto strutturale di SKH01: resample_tf non scarta il giorno in corso e current_target prende [-1]; il feed si ricostruisce alle 00:30 UTC → tutto il giorno il book vede oggi come 1 barra oraria su 24 (verificato barre1h=1/24). Docstring "ultima barra CHIUSA" falso, corretto (3ª volta in 2 giorni che un docstring di produzione dichiara una causalita' che il codice non ha). Tre path a un grado di liberta' per volta, 24 ancore, differenze appaiate: barra parziale ΔFULL 0.031 (pos. 7/24) / ΔHOLD +0.118 (pos. 19/24); ritardo d'esecuzione 1h 0.004 (11/24 = moneta); leva gonfiata +0.4%. → trascurabile, nessun cambio al live. ⚠️ All'ancora canonica sembra peggio del vero: a offset 0 la parziale costa 0.230 di hold-out = il minimo dell'intera banda (mediana +0.118) → guardando solo l'ancora canonica avrei concluso "il live degrada TP01": speculare alla lezione del 26/07 (li' l'ancora canonica nascondeva un vantaggio, qui inventa un danno). REGOLA NUOVA (il risultato trasferibile): la parzialita' dell'ultima barra conta in proporzione a quanto il segnale pesa la barra piu' recente. SKH01 = Donchian breakout su 230m, la barra corrente E' il segnale → +0.38; TP01 = TSMOM 30/90/180g, l'ora mancante e' 1/24 di UNA osservazione su 30-180 → ±0.03. La conclusione non si trasferisce fra sleeve. (2) T2 — implausible_sharpe e anchor_luck_band CODIFICATI in altlib.py (debito raccomandato 3 volte — 26/06 CC01, 02/07 Albimarini "con piu' forza" — e mai scritto). implausible_sharpe: Sharpe>3, perdite/attive<2%, Calmar>20 o maxDD~0, regola del tre (0 perdite su N → tasso vero fino a 3/N: e' perche' "0/142" non si legge "senza rischio"). anchor_luck_band: la griglia d'ancore NON e' una griglia di parametri → il deflated-Sharpe non la conta; riporta stima onesta = mediana della banda e fortuna = canonica mediana. anchor_luck_delta: mediana delle differenze appaiate (codifica l'errore del 26/07). ⚠️ Il gate ha segnalato VRP01 e il difetto era MIO: perdite contate su TUTTE le barre, ma VRP01 e' settimanale su griglia giornaliera = 94.2% di zeri → "0.96%, coda assente" su uno sleeve in produzione; sulle barre ATTIVE e' 16.5%, la forma giusta di un credit spread a rischio definito. E la lezione era gia' cablata il giorno prima nel monitor DVOLSPREAD ("barre attive, non giorni di calendario") — imparata in un contesto, non applicata nell'altro. Zeri per sleeve: VRP01 94.2 / SKH01 87.6 / XS01 39.6 / GTAA01 31.9 / TP01 30.7%. Applicazione retroattiva 7/7 — tutti ok: TP01 1.29, XS01 1.36, VRP01 1.08, SKH01 1.45, GTAA01 1.01, **XSR01 1.79 (DD 2.5% ma 47.8% di barre attive in perdita → il DD basso e' vol bassa

    • dollar-neutrality, NON una coda mancante: per il gate del 23/10 il rischio #1 resta lo slippage)**, DVOLSPREAD 0.68. Controlli positivi obbligatori superati (firme CC01 e deep-OTM segnalate, rumore Sh 0.62 no) — un gate che non segnala nulla puo' essere semplicemente rotto. Replica indipendente del finding d'ancora del 02/07: il gate applicato alla cieca a TP01 ritrova canonica +0.237 = 92° pctl delle 24, mediana onesta +0.056, banda [0.087,+0.247], fortuna +0.182 — contro mediana 0.04 / banda [0.13,+0.30] misurate il 02/07 con implementazione SEPARATA. L'hold-out onesto di TP01 e' ~+0.05, non 0.31 (il valore del sleeve resta il taglio del DD ~6× vs buy&hold, che non e' ancorato). (3) NON fatto e perche': il book sul path live e' bloccato da una incompatibilita' di lenti — il simulatore SKH01 compone per-trade a nozionale unitario, lo sleeve e' vol-targeted. Follow-up dichiarato: serve la versione vol-targeted del path live di SKH01. CHIUSO 2026-07-26 — E IL BLOCCO NON ESISTEVA: la premessa era FALSA. Lo sleeve SKH01 non e' vol-targeted (backtest_signals(..., leverage=1.0, position_size=1.0), nessun target_vol nel sorgente, e sim_equity(canonical) riproduce backtest_signals a max|diff| = 0.0): le due lenti erano gia' la stessa cosa. Il 20.7% di vol realizzata dello sleeve — probabilmente cio' che aveva suggerito "vol-target 20%" — e' un prodotto della strategia (uscite % asimmetriche + poco tempo a mercato), non un parametro; SKH01 e' l'unica delle 5 a NON essere vol-targeted, il contrario di quanto si credeva. Vedi bullet dedicato in fondo e diario 2026-07-26-skh-live-book-deluck.md. REGOLA: un blocco dichiarato e' un'ipotesi, non un fatto — si ri-verifica prima di costruirci sopra o di rimandare (qui: tre sessioni di follow-up rimandato contro due minuti di verifica).
  • ⚠️ LEAVE-ONE-OUT DEL BOOK DE-LUCKATO (2026-07-26, 3° filone del giorno) — la classifica dei contributi si RIBALTA su 2 metriche su 3, e la stima de-luckata del book era ottimista. Domanda: "quale sleeve terrei?". Script scripts/research/r0726_loo_deluck.py, test tests/test_loo_deluck.py (9), diario 2026-07-26-loo-deluck.md. Book/pesi/cron/config INVARIATI (non è un gate sui pesi: quello resta weights_tilt_null). (1) Il metodo: un leave-one-out è un Δ, quindi eredita la fortuna d'ancora come ogni Δ (lezione 26/07). Con 4 sleeve su 5 ancorati il problema è congiunto → 2000 estrazioni uniformi indipendenti sullo spazio 24×10×7×23×5, book completo + 5 LOO alla stessa configurazione, statistica = mediana delle differenze appaiate. Sanity bit-exact 5/5 (max|dif| = 0.0) sulle repliche ancorate — quattro riusate dagli audit 02/07-03/07, solo la fase di GTAA01 è nuova. (2) Contributi de-luckati (mediana, e frazione di estrazioni positive — che conta più della mediana): TP01 +0.390 FULL (100%) = quasi 3× il secondo, e il canonico lo SOTTOSTIMAVA (+0.280 al 5.8° pctl); SKH01 +0.142 (91%), XS01 +0.125 (99.9%), VRP01 +0.122 (100%), GTAA01 +0.115 (100%). (3) Due giudizi ribaltati rispetto alla lente canonica. SKH01 non è il motore del book: l'ancora regala 2/3 del FULL (+0.43→+0.14), 70% dell'hold-out (+0.65→+0.19), 80% della protezione DD (+1.64pp→+0.32pp) → de-luckato è il meno affidabile dei cinque. GTAA01 è l'unico positivo nel 100% delle estrazioni su TUTTE E TRE le metriche e il miglior protettore di DD (+2.0pp, doppio del secondo), senza fortuna da restituire (canonico sotto la mediana su FULL e DD). ⚠️ Ma attribuzione ≠ eseguibilità: sotto GTAA_MIN_CAPITAL $3k resta non deployabile, e la nota del 25/07 (€0.50/g sopra il risk-free con maxDD 10% a $10k) è intatta. (4) TP01: hold-out negativo 0.200, e NON è artefatto d'ancora (negativo nel 99.1% delle configurazioni) — mentre sul FULL è il maggior contributore. È la firma dell'assicurazione, misurata: paga premio negli anni senza incendio, riprende tutto sul campione che contiene il 2022. Regola: uno sleeve difensivo si giudica sul sinistro, non sul premio — l'hold-out negativo non è un argomento per ridurlo. XS01: protezione DD ESATTAMENTE ZERO (mediana 0.000, positiva nel 43% = moneta) → è un diversificatore di rendimento, non di rischio; conta perché sul canale funded il vincolo binding è il DD (25/07 §4). VRP01: 2ª conferma di zero fortuna (canonico al 1.8° pctl sul FULL = numeri di ammissione conservativi). (5) Contrappeso dovuto a SKH01: il de-luck lo penalizza sul path backtest, ma il path live è misurato migliore su entrambi i lati (ingressi +0.38, uscite +0.081) → vale meno dei suoi numeri di ammissione e più di questa tabella; quantificarlo resta il follow-up bloccato (serve la versione vol-targeted del path live). ⚠️ Errore di stampa catturato: il primo output dava pctl 100% per l'hold-out del book — arrotondamento di 99.55% con %.0f. Un percentile stampato a 0 decimali mente esattamente agli estremi, che sono l'unico posto dove lo si legge. Verificato a mano (9 estrazioni su 2000 battono la canonica), formato portato a 1 decimale.

  • FOLLOW-UP SKH01 "vol-targeted" CHIUSO (2026-07-26, 4° filone) — il blocco non esisteva, e il fattore de-luck ×0.6 era troppo severo del 31-34%. Script r0726_skh_sigcache.py (cache), r0726_skh_live_book.py (misura), r0726_deluck_factor.py (decomposizione), r0726_capwall_refresh.py (muri); test tests/test_skh_live_book.py (8); diario 2026-07-26-skh-live-book-deluck.md. Book/pesi/cron/config INVARIATI. (1) La premessa era falsa — vedi il bullet dell'ondata 26/07-bis: SKH01 non e' vol-targeted, le due lenti erano gia' identiche (sim_equity(canonical) == backtest_signals a max|diff| = 0.0). Test permanente test_lente_sleeve_uguale_a_quella_del_simulatore: se qualcuno aggiunge un vol-target allo sleeve, la premessa torna vera e il test deve rompersi invece di far passare numeri non piu' validi. (2) Ingressi live vs backtest, de-luckato a 8 offset (sottocampione uniforme a priori: la griglia piena a 23 costa ~9 min per asset×offset, fuori portata su 2 core col cron live). Sanity 120/120 bin con ingresso ricostruiti. Il numero del 26/07 era ~4× troppo grande: like-with-like (mediana PER-ASSET) +0.38 su 3 offset → +0.097 su 8, e "6/6 non negativi" → 13/16. A livello di sleeve 50/50 la mediana appaiata e' +0.112, positiva 8/8. ⚠️ Le due grandezze (per-asset e sleeve 50/50) non sono la stessa cosa — nel book entra la seconda, dove la diversificazione BTC/ETH cambia il denominatore. (3) A livello di BOOK: Sharpe ≈ monetina, drift certo. dSh FULL +0.048 (>0 nel 79.3%), dSh HOLD +0.051 (51.2%), d drift +0.73pp (>0 nel 100.0%). Meccanismo: l'ingresso intra-bin prende un prezzo migliore ma i falsi ingressi aggiungono churn (530-605 trade live vs 411-484) → vol e ritorno salgono insieme. REGOLA: chiedersi QUALE grandezza entra nella decisione prima di misurare — qui il ×0.6 e' sul drift, quindi lo Sharpe non era la metrica. (4) Il ×0.6 decomposto e misurato. (a) fortuna d'ancora sul drift: ×0.874 (5-sleeve) / ×0.890 (book live) — e la vol e' invariata fra le ancore (7.80→7.76%), la fortuna sta tutta nel drift; (b) path live: non-negativo ovunque (uscite +0.081 Sh, ingressi +0.73pp, TP01 trascurabile). Il ×0.6 implicava un residuo ×0.687 attribuito al live oltre l'ancora, che nessuna misura sostiene → FATTORE ONESTO ×0.87-0.91 (5-sleeve), ≥×0.89 (book live). Il sospetto registrato il 25/07 ("conta due volte la degradazione SKH01") e' confermato quantitativamente. REGOLA: un fattore correttivo scelto a occhio va DECOMPOSTO prima di accettarlo o rifiutarlo — il ×0.6 non era sbagliato, era due fattori moltiplicati insieme di cui uno contato due volte. (5) Ipotesi MIA nata e refutata nella stessa sessione: che la grid timing-luck di SKH01 (audit 02/07) fosse un artefatto della lente a chiusura-di-bin, perche' il live valuta ogni ora e non e' ancorato al confine del bin. Dispersione fra gli 8 offset: LIVE/CANONICO = 1.59×, cioe' il live e' piu' disperso, non meno → l'audit del 02/07 resta valido com'e'. L'ipotesi nasceva da 2 offset, si e' incrinata a 4 (1.24×), chiusa a 8. REGOLA: due punti non fanno una tendenza nemmeno quando la meccanica sembra spiegarla. (6) ⚠️ Trovato per strada: simulate() in r0726_skh_partial_entry.py non e' mai chiamata da main() — i numeri headline del diario del 26/07 vennero da una corsa ad hoc mai committata. Ora il driver e' committato (r0726_skh_live_book.py). Un numero pubblicato in un diario deve avere uno script committato che lo riproduce.

  • 🌊 QUARTA ONDATA 2026-08-23 (5 filoni, research/wave-0822) — 0 candidati, 1 lead RIDEFINITO, 1 premessa MIA falsificata, e la scorta di DATI dichiarata esaurita. Registro docs/research/RESULTS-0822.md §41-45. Libro, pesi, cron, config INVARIATI. 🚨 (1) §41 TP01-SIZE — in questa famiglia la selezione in-sample e' ANTI-correlata col futuro. Esiste una size che risponde alla CONVINZIONE, a pari vol realizzata? 60 celle dichiarate prima, 24 ancore. Spearman(ShIS, ShHOLD) = 0,527 (p<0,001): scegliere in-sample e' peggio di una moneta, ed e' meccanismo, non rumore — Spearman(rho, ShHOLD) = +1,000 a tutti e sei i q (in hold-out l'ottimo e' al bordo) mentre in-sample la curva e' a gobba con ottimo interno. La convinzione e' informativa in-sample e ANTI-informativa in hold-out (BTC hold-out: convinzione debole Sh +2,20 contro piena 0,06) → l'unica cella con guadagno hold-out robusto e' esattamente quella selezionabile solo guardando l'hold-out. Non esiste una cella proponibile. Il meglio della griglia vale +0,30pp di CAGR iso-vol e il maxDD di libro peggiora a 24 ancore su 24 — cioe' proprio cio' per cui TP01 esiste. 🚨 CORREZIONE A UNA MIA PREMESSA, verificata al sorgente: il bucket di convinzione 2/3 NON ESISTE. tsmom_blend media tre np.sign(...) → direzione in {1,1/3,+1/3,+1}, dopo il clip long-flat in {0, 1/3, 1} (BTC 44,2/24,7/31,1%). Trovato da due agenti indipendenti. Conseguenza: potenza c^p, floor affine e soglia sono la stessa cella riparametrizzata — la famiglia della convinzione ha UN grado di liberta', non tre. 📌 Null del RE-LEVERING, forma piu' pura mai misurata (6ª occorrenza, prima col segno rovesciato): togliere il vol-targeting fa CAGR 16,32% → 46,75% (+186%) e a iso-vol 2,40pp. Era tutta leva. ⚠️ Fatto sull'harness: altlib.tp01_baseline_daily() NON e' bit-exact col sleeve — 1 ulp su 68,5% dei giorni, perche' _to_daily fa (1+r).resample("1D").prod()-1, no-op algebrico ma non in virgola mobile. "Bit-exact vs altlib" non e' un controllo ottenibile. (2) §42 TP01-LS — la short del trend a 1d SCARTATA, e piu' nettamente dell'attesa. Meccanismo congelato, un solo grado di liberta' (floor da 0 a 1); replica bit-exact a 4 vie (floor=1 == CANONICAL(long_only=False), max|diff| = 0.0). Esito: 1,91%/anno di drift in 0/24 ancore, gate iso-vol FAIL 3/3 (non e' leva travestita: alza la vol e abbassa il ritorno), maxDD +8,80pp in 24/24, NEUTRAL con alpha 2,60%/anno, e a fee ZERO 1,338 contro 0,904 → non e' morte-per-fee, l'edge lordo non c'e'. L'attesa a priori ("sara' il 2022") e' confermata e superata: 2/8 anni positivi, e SENZA il 2022 il divario RADDOPPIA (dShFULL 0,406, iso-vol 7,44%) — il 2022 non e' l'anno che regge la tesi, e' l'unico che la tiene a galla a meta'. Non selezionabile: select_cell_insample sceglie il canonico. ⚠️ L'unica cosa a favore (dShHOLD +0,292 in 23/24) all'ancora canonica vale 0,008 = caso speculare della lezione del 26/07 (li' l'ancora canonica inventava un danno, qui ne nasconde un vantaggio). 📌 Trovato per strada: src/live/book.py contiene max(tp_frac, 0.0) — il long-flat e' cablato anche nell'ESECUTORE, non solo in CANONICAL. 🚨 (3) §43 DATA-UNUSED — LA SCORTA DI DATI DEL PROGETTO E' ESAURITA. Inventario su 647 file .py (Old/ escluso): ogni dataset con storia vera e' gia' stato analizzato almeno una volta; cio' che resta non letto e' telemetria a finestra corta (30-113 giorni), con una sola eccezione — external/coinmetrics/ (26 colonne su 31 mai lette, storia dal 2018). Misurato prima di usarlo che il dato fosse nuovo: il flusso netto e' corr +0,9993 con la derivata dello stock gia' ucciso il 24/07, il lordo e' ortogonale (+0,035) perche' il 94% del flusso si cancella. E perde: massimo atteso dal PURO RUMORE su 36 trial = Sharpe 1,009, il candidato fa 0,951 — sotto; DSR 0,437; multi-cut negativo 7/7 anni. 📌 METODO RIUSABILE: mettere nella griglia una variabile che si SA gia' morta trasforma "il candidato perde" in "il dato non contiene nient'altro di selezionabile" — qui la selezione in-sample e' tornata sul controllo negativo. E' l'unica forma in cui un inventario puo' concludere qualcosa di positivo su un'assenza. ⚠️ Conferma diretta del §10 catturata dall'agente su se stesso: il pool "N=12" del deflated-Sharpe erano le 12 celle MIGLIORI e faceva PASSARE il candidato a 0,975 invece di 0,678. (4) §44 DEPOSIT-TIMING — il timing dei bonifici non paga, 0/12 celle in OGNI lente (€500/m, €250/m, IID, drift dimezzato). Replica 4/4 prima di ogni delta, fra cui P0 vs PN.accumula a max|dif| = 0.0 su capitale e giorno d'arrivo. 📌 Il segnale FA quello che promette e perde lo stesso: dip 20% compra al 0,494 del livello medio del piatto (51% piu' in basso) e arriva al capitale-rendita nel 6,3% dei casi contro l'85,4% del piatto — comprare meglio e comprare tardi sono la stessa mossa. E sotto soglia bassa si ribalta: dip 5% compra a 1,009, cioe' piu' in alto (su una serie che sale, una condizione poco profonda non compra il calo, ritarda dentro la salita). 📌 L'asimmetria e' la misura: un rialzo del 20% dal minimo arriva in 16 giorni, un ribasso del 20% dal massimo in 3.682. Il costo non e' scommettere sul lato sbagliato, e' mettere una condizione rara davanti a un bonifico — in qualunque direzione. Rischio di venue separato dal timing: tenere i soldi fuori vale +2,4pp a p=1% contro 15,7pp di penalita' di timing, e P(libro azzerato) e' IDENTICA per tutte le politiche (21,6%) — il conto salta comunque, cambia quanto c'e' sopra; la protezione si compra con un secondo conto. ⚠️ Due errori dell'agente catturati da un controllo: un diagnostico che diceva "il buy-the-dip contiene previsione" (+11,5%) e che sotto IID vale +14,9%, cioe' piu' grande → meccanico; e lo specchio anti-dip, che si legge sulla colonna dell'ATTESA, non su quella del segno (P4 e' piatto perche' la sua condizione e' quasi sempre gia' vera). Ordine di grandezza: la migliore politica di timing vale 0,1pp, dentro il rumore MC di 2,0pp; €250 → €500 al mese vale +71pp (14% → 85%). ⚠️ (5) §45 SPOT-NETTING — il lead dello spot REGGE, ma non per la ragione per cui il filone e' stato aperto. Il margine non e' il vincolo: BTC/ETH sono in_cross_collateral_pool (11 valute su 51), lo spot ha max_leverage: 10 (⇒ vive nel conto marginato) e nel caso peggiore la copertura e' 50,0x, invariante al capitale — anche valutando lo spot zero come collaterale. L'haircut non e' leggibile e non e' binding: unico caso in cui "non lo so" e "non conta" coincidono, e va detto in quest'ordine. 🚨 A bloccarlo e' IL CODICE, non Deribit: src/live/shadow.py::_equity legge solo account_summary("USDC") → con $477 in spot il libro leggerebbe $159 invece di $636 (25%) e il riconciliatore ricomprerebbe la gamba. Non e' un cambio di strumento, e' un cambio del percorso di SIZING del live. 🚨 La separazione delle gambe non vale nulla, su tutti e tre gli assi: (i) T1 sbloccato e' un DECLASSAMENTOonbook_tp hourly riproduce il pubblicato (+0,051/+0,057) ma contro il path che il live gia' percorre fa 0,048 FULL (6/23) (conferma indipendente della decisione del 26/07, per un'altra strada); (ii) il netting perso RISPARMIA commissioni ($4,34 → $2,97/anno, 0,216%) — la stima "1-2%" di §39 era alta di un ordine di grandezza — e le ore a segni opposti sono lo 0,61% della storia; (iii) meno ordini non e' meglio: il tracking peggiora del +12% (5ª occorrenza della lezione "banda in valuta assoluta"). Il valore e' il FUNDING e basta: lordo +1,58%/anno → netto [+1,55%, +1,66%], [+1,33%, +1,44%] se lo spot passasse a 3,50 bps, +0,50% nello scenario fiscale sfavorevole. Il costo vero d'esecuzione e' lo spread (perp a un tick, spot 1,5-3,1 bps) → [0,034%, +0,077%]/anno, ampiezza 7% del lead: l'esecuzione non decide questo lead. Ipotesi dell'agente nata e refutata nel filone: l'apr 3,40 di USDC in get_currencies costerebbe fino a 2,55%/anno — ma su 6 run col conto flat (il piu' lungo 257 giri orari) l'equity e' invariata al centesimo< 0,029%/anno. L'obiezione e' morta e il lead non deve pagarla. 🚨 Due costi NUOVI mai contati, che la separazione introduce: (a) se i derivati sono c-quater i comparti fiscali si SEPARANO → le minusvalenze del perp (SKH01) smetterebbero di compensare le plusvalenze spot (TP01); (b) il disaster-SL oggi protegge la posizione netta: separando resterebbe solo sul perp, e in un blackout TP01 resterebbe long al 75% del conto senza stop. (Di contro, lo spot non si liquida: esce dal perimetro il 75% del libro.) ⚠️ E fee_watch non vedrebbe una gamba spot (deriva INSTRUMENTS da BOOK_INSTRUMENT, il difetto corretto il 21/08); convenzione('BTC_USDC') ritorna 'ignota' → servirebbe una terza famiglia 'spot'. La ragione per sorvegliarlo non e' che la fee lo ucciderebbe (perde il 14% del guadagno e sopravvive), e' che oggi nessuno se ne accorgerebbe. 📌 IL PROSSIMO PASSO NON E' UN BACKTEST: e' la domanda al commercialista (gia' aperta dal 07/08) e un acquisto di prova da $7,73 — le tre cose non determinabili senza conto reale (haircut, se equity USDC includa i saldi BTC/ETH, se get_positions ritorni lo spot) si risolvono cosi'. E' un ordine ⇒ decisione dell'operatore. 📌 (6) LA RIGA DI SINTESI. Quattro filoni su cinque SCARTATI, il quinto ridimensionato a "vale il funding e basta". Ma la misura piu' grande dell'ondata resta quella di §44: la migliore politica di timing vale 0,1pp mentre passare da €250 a €500 al mese vale +71pp. Con questa sono 45 filoni in due giorni e 0 candidati promossi: la ricerca ha smesso di essere il vincolo binding il 26/07, e sette ondate lo hanno CONFERMATO invece che ribaltarlo.

  • ⚖️ RIVALUTAZIONE DELLA STRATEGIA (2026-07-26, fine giornata) — 0 cambi, e il peso 75/25 confermato per la TERZA volta. Script r0726_reeval_live_weight.py, test tests/test_reeval_live_weight.py (6), diario 2026-07-26-reeval-strategia.md. Book, pesi, cron, config INVARIATI. (1) Solo UNA delle sei misure del giorno apriva una decisione, e per una ragione precisa: il peso 75/25 fu confermato il 24/07 con la lente hourly, che il 26/07 e' risultata pessimistica su ENTRAMBI i lati di SKH01 (uscite +0.081, ingressi +0.048 di Sharpe di book) → se SKH01 vale piu' di come e' stato pesato, 0.25 e' ancora giusto? Contro tirava il LOO de-luckato dello stesso giorno (SKH01 = il meno affidabile dei cinque). Due correzioni in versi opposti: si misura, non si deduce. (2) Misura (path live intra_entry=True, 8 offset, mediana delle differenze appaiate): argmax a w=0.35 e 0.30-0.40 batte 0.25 nell'88% degli offset — il segnale c'e' ed e' nel verso previsto. Ma plateau entro 0.05 = [0.25...0.50] (il peso live e' dentro) e weights_tilt_null FALLISCE (delta_insample 0.0026, gate_pass False). (3) ⚠️ Il motivo vero sta in cio' che la mediana nasconde: il guadagno e' tutto nella coda ALTA. p10 per peso: 1.463 (0.25) / 1.465 (0.30) / 1.455 (0.35) / 1.435 (0.40) / 1.374 (0.50) mentre il p90 sale monotono 1.915→2.064. Alzare SKH01 non compra Sharpe, compra dipendenza da quale ancora ti e' capitata (banda da 0.45 a 0.69). Coerente con altre due misure indipendenti: SKH01 ha la frazione d'ancora piu' grande da restituire (LOO) ed e' 4x piu' fee-sensibile (curva fee). Tre misure indipendenti: SKH01 e' la gamba fragile, e 0.25 sta all'estremo prudente della regione robusta. (4) 📌 La rivalutazione che conta non e' sulla strategia. Ordini di grandezza a confronto: ottimizzare il peso = +0.030 Sharpe (gate fallito); versare €250/mese invece di €0 = da mai a 16.2 anni (P(entro 20a) 92%); perdere il conto Deribit a p=1% = 18% di probabilita' di arrivare, ripartendo da zero. Il book e' dentro il suo plateau su ogni asse misurato: la ricerca ha smesso di essere il vincolo binding. I vincoli binding oggi sono capitale che entra e conto che non sparisce. (Non significa che la ricerca sia finita — significa che il margine residuo vale centesimi di Sharpe contro leve che valgono il risultato.) REGOLE: (a) una rivalutazione parte dall'elenco di cosa cambia una decisione, non dal riassunto di cosa si e' scoperto; (b) quando due correzioni puntano in versi opposti si misura (a occhio si poteva argomentare qualunque cosa); (c) un argmax dentro un plateau non e' una decisione, e la mediana da sola puo' nascondere il fatto decisivo (qui: p90 su, p10 giu'); (d) quando le leve hanno ordini di grandezza diversi dirlo, o si lavora molto senza cambiare niente; (e) rivalutare non vuol dire anticipare i gate pre-registrati — anticiparli e' selezione sull'hold-out.

  • SOL COME TERZA GAMBA DIREZIONALE — SCARTATO (2026-08-22). scripts/research/r0822_sol_leg.py, test tests/test_sol_leg.py (5), diario 2026-08-22-sol-terza-gamba.md. Book/pesi/universo direzionale/cron INVARIATI. Nato da "hai gia' analizzato XRP/SOL/UNI?": si', ma sempre dentro panieri cross-sectional su HL — SOL e' l'unico dei tre eseguibile su Deribit e TP01/SKH01 non erano mai stati misurati su di lui. Ipotesi a priori registrata prima: diluisce (trend multi-asset 19/06, corr 0.74). Confermata. (1) Dato: storico ricostruito (SOL/USDC:USDC, 466.776 barre 5m dal 2022-03-15, 0 gap) e certificato → conferma esatta del 19/06: >1% da Coinbase nell'1.3% (2022) / 0.6% (2023) delle barre, med 8.1→3.9 bps dal 2022 al 2026; flat 1h 0.2% (ok), 5m 20.8% (run 177 barre). Da qui due lenti dichiarate prima di misurare: L-FULL 2022-03+ e L-PULITA 2024+. (2) Gambe sole (meccanismi CONGELATI): TP01 SOL Sh 0.91 / hold-out 0.24; SKH01 SOL Sh 0.51 / maxDD 40.5%. ⚠️ SKH01-V2-DD fu SELEZIONATA (23/06) sul criterio maxDD<30% (BTC 21%, ETH 27%): su un asset nuovo il criterio per cui la variante esiste fallisce → era una proprieta' dei due asset di taratura, non del meccanismo. (3) Book, 24 ancore, mediana delle differenze APPAIATE: dSharpe hold-out 0.166, >0 in 0/24 ancore in ENTRAMBE le lenti; L-PULITA dSharpe FULL 0.099 (0/24) e dCAGR 1.34pp (0/24); L-FULL dSharpe FULL +0.094 (24/24) ma dCAGR +0.10pp. Canonica: 2 gambe 1.44/9.4%/14.7% → 3 gambe 1.48/7.5%/13.6% (L-FULL), 1.54 → 1.30 (L-PULITA). (4) Il DD scende ma e' DE-LEVERING (5ª occorrenza dopo VRP-DD, TP01×DVOL, MAT01, azioni intere UCITS**):** a pari maxDD, L-PULITA k=0.886 → Sh 1.54 vs 1.30 e CAGR 14.5% vs 12.6%. L'unica lente in cui SOL aggiunge e' quella costruita sui dati che la certificazione segnala. (5) 📌 E dentro quella lente il guadagno e' UN ANNO: dSh per anno 2022 0.91 · 2023 +1.06 · 2024 0.29 · 2025 0.20 · 2026 0.22 → 4 anni su 5 negativi; la gamba SOL da sola fa Sh 1.99 / +2.65 / +0.45 / +0.17 / +1.46. Il 2023 e' la risalita post-FTX da ~$8 a ~$100: un evento, non un meccanismo. Corr col book +0.404 L-FULL / +0.561 L-PULITA — vicina allo 0.74 che boccio' il trend multi-asset, e in salita man mano che il dato migliora. (6) L'eseguibilita' NON e' il vincolo: SOL_USDC-PERPETUAL min 0.001 SOL = $0.09 contro il pavimento min_order $5 → primo candidato bocciato senza che il muro sia la taglia del conto. (7) ⚠️ EFFETTO COLLATERALE TROVATO SU ME STESSO: il "guardrail solo dati certi" NON e' codice. load_data non ha whitelist: load_data("SOL") -> FileNotFoundError funziona solo perche' il file non c'e'. Ricostruendo SOL in data/raw/sol_1h.parquet il guardrail si e' disattivato in silenzio, e quel file NON viene rinfrescato dal cron (--asset BTC ETH) → sarebbe diventato dato stantio con l'aspetto di dato attivo. Riparato con la convenzione gia' in uso (hl_/eq_/eqx_/fut_): SOL vive in data/raw/alt_sol_*.parquet, fuori dal namespace nudo; guardrail verificato ripristinato e congelato in due test (uno deriva gli asset a rischio da rebuild_history.DERIBIT_INSTR, l'altro segnala se load_data acquisisce una whitelist vera). ⚠️ La prima stesura del test elencava i prefissi a mano e bocciava eqx_, fut_, vol_term_, fundnews_ — namespace veri: l'invariante si deriva dal codice, non si elenca (stessa lezione di fee_watch il giorno prima). REGOLE: (a) un meccanismo si trasferisce a un asset nuovo coi parametri congelati, o non e' un trasferimento ma una nuova famiglia (→ study_family_honest + DSR); (b) un criterio di SELEZIONE va riprovato sull'asset nuovo — quello di SKH01 non sopravvive; (c) quando il risultato dipende dalla finestra, guardare quale finestra la CERTIFICAZIONE approva; (d) un contributo positivo si scompone per ANNO prima di crederci — 24/24 ancore positive sembravano un plateau ed erano un anno solo; (e) ricostruire dati per un'analisi puo' disattivare un guardrail che vive nell'assenza di un file: chiedersi in quale namespace atterra. ⚖️ DECISIONE DELL'OPERATORE 2026-08-22: SOL ESCLUSO. Presa dopo aver visto l'analisi completa. L'universo direzionale resta BTC/ETH, presidiato da tests/test_sol_leg.py::test_l_universo_direzionale_resta_BTC_ETH. Cosa NON si ri-discute: SOL su un book a 2 gambe, con questi dati. Cosa la riaprirebbe: ~3 anni di storia SOL certificata (dal 2024) sufficienti a rifare la misura senza la finestra 2022-23 che la certificazione segnala — cioe' non prima del 2028 — oppure un meccanismo che non sia TP01/SKH01 congelati. I parquet alt_sol_*.parquet restano su disco (precedente: i 51 HL conservati dopo il rifiuto dell'espansione XS01); non sono nel feed attivo e il cron non li rinfresca, quindi vanno rigenerati prima di ricrederci. ⚠️ Nota per il futuro-me: e' una decisione presa con l'informazione completa, non una svista. Se qualcuno propone SOL "perche' e' eseguibile su Deribit", la risposta e' che l'eseguibilita' non e' mai stata il problema — l'hold-out lo e', a 24 ancore su 24.

  • 🌊 ONDATA MULTI-AGENTE 2026-08-22 (20 filoni, branch research/wave-0822) — 0 candidati, 1 DIFETTO DI PRODUZIONE, 4 soglie pubblicate falsificate, 1 leva che nessun gate sa vedere. Diario docs/diary/2026-08-22-wave-multiagente.md; ledger per filone docs/research/RESULTS-0822.md; briefing docs/research/BRIEF-0822.md; 21 script scripts/research/r0822_*.py (15.295 righe, compilano tutti, ognuno gira da solo). Book, pesi, cron, config INVARIATI. 🚨 (1) I MONITOR FORWARD REGISTRANO UNA FRAZIONE DEL GIORNO — 4 su 6 rotti. fetch_hyperliquid e resample_tf scrivono la barra del giorno in corso; advance() la consuma e porta last_ts su di essa -> le ore restanti non entrano in nessun rendimento.

    monitor barre coincidenti min/giorno gate
    paper_statarb 0/46 4 STATARB 27/09
    paper_dvolspread 0/28 2 DVOLSPREAD 24/10
    paper_xsr 1/28 41 XSR01 23/10
    paper_portfolio 7/56 19
    paper_prevday 1259/1319 1.438
    paper_combo 7/37 1.402 — (sano per caso: aspetta una borsa)
    Il gate STATARB si ribalta su 2 criteri su 3: Sharpe registrato +1,96 contro 2,02
    ricostruito, maxDD 2,2% contro 15,3% (guardia <10%).
    La finestra NON va persa (misurato 2 volte: il feed non riscrive le barre chiuse —
    paper_prevday 1427/1488 identiche al bit dopo 62 notti; le 6 barre di statarb recuperate dopo il
    guasto EPERM 09-15/07 coincidono al bit) -> **"riparare advance() + RIGENERARE", non "riparare e
    azzerare": nessuna data di gate si sposta** (pessimista: STATARB +18g).
    Guardia raccomandata, NON cablata: ts_ultima_barra + cadenza <= mtime del file, grazia 5 min.
    O(1), segnala 5/6, tace sul sano, controllo positivo sintetico 6/6 nei due versi.
    ⚠️ monitor_health non poteva vederlo: **una serie fresca, completa e SBAGLIATA passa ogni
    controllo di freschezza**. E implausible_sharpe non e' mai stato puntato sulle serie forward.
    📌 (2) TRE SOGLIE PUBBLICATE, FALSIFICATE. (a) "XS01 serve ~$20k" (origine: "rumore di
    arrotondamento", stima a occhio del 19/06) -> nessuna soglia da min-order, haircut ~0 gia' a
    $200-600 allocati. Meccanismo: gli ordini sono due popolazioni — il ribilanciamento del
    segnale e' il 13% degli ordini ma il 75% del nozionale (ticket $13,65); la deriva del
    vol-target e' l'87% degli ordini ma il 25% (ticket $0,64) e il pavimento la taglia gratis.
    Contare gli ordini da' 16%, contare il nozionale da' 75%. ⚠️ **Il "$20k di XS01" e il "$20k
    della DECISIONE DI VENUE" sono due cose diverse conflate in questo file: il primo cade, il secondo
    REGGE** (e' sull'asse della rovina, non dell'eseguibilita'). (b) "slippage = rischio #1 di XSR01"
    -> refutato con margine 21x. (c) "BTC opzioni fuori a $3.000" -> misurato sulla famiglia
    inverse, che un conto USDC non puo' marginare; la famiglia USDC-lineare ha lotti **10x piu'
    piccoli** (ETH_USDC $242, BTC_USDC $772 contro $7.744). ~~Il muro resta **per il prezzo
    del lotto**.~~ 🚨 **CORRETTO 2026-08-23 (§46): quelle cifre sono il COLLATERALE PER VENDERE.
    COMPRARE un'opzione costa il PREMIO, non il nozionale** — min_trade_amount 0,01 su tutte le
    343 put BTC_USDC ( verificato al venue) e il premio del lotto minimo di una put deep-OTM va da
    $0,00 a pochi dollarisul lato LONG il muro di capitale non esiste (e la regola *niente
    short-vol da modello* non ha mai avuto bisogno di un muro di taglia per reggere).
    📌 Il muro vero sul lato long e' un altro, ed e' STRUTTURALE: il tick da 5,00 USDC (
    verificato, tick_size = 5.0 su tutte) — **piu' l'opzione e' deep-OTM, cioe' economica, piu' il
    tick domina**: una put marcata 0,82 USDC non e' quotabile sotto 5, cioe' un pavimento di prezzo
    del 6x sulle ali lontane, che nessun capitale aggira.
    Parametri veri Hyperliquid: min order $10 (non $5), taker 4,50 bps (non 5,0).
    📌 (3) LA LEVA E' L'UNICA VARIABILE CHE NESSUN GATE DEL PROGETTO SA VEDERE. Lo Sharpe e'
    invariante alla scala (1,31 a ogni cella del knob) -> deflated_sharpe e marginal_vs_tp01
    non falliscono, non la vedono. 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
    capitale-rendita (€500/m, netto fisco). **Lo scettico conferma il numero e toglie la sua condizione
    bloccante**: sotto la lente wick accoppiata il maxDD prende un **ricarico moltiplicativo costante
    ~3,5%**, non un'amplificazione (il maxDD e' multi-giorno, il wick e' di un giorno).
    Il gradino resta NON autorizzato: cade 1 riserva su 3; restano il drift stimato su 7,4 anni
    (k* e' lineare nel suo errore) e la coda assente dal dataset (un giorno 10%/anno -> k* 2x).
    ⚠️ Ma la lezione del 25/07 e' vera e NON si trasferisce: su una regola a UN giorno
    (daily-loss, stop di conto) close-only e' esattamente cieca — 0,00 breach/anno contro 0,40-1,21
    veri (rapporto INF). Sul canale prop/funded la lente accoppiata resta OBBLIGATORIA.
    ⚠️ target_vol e k NON sono la stessa leva: target_vol scala il 75% del libro e lascia
    fermo il 25% (a tv=30% il libro e' 82/18, a 60% 90/10) -> e' anche un tilt di pesi, e
    fallisce weights_tilt_null. La strada pulita per un cambio di SCALA e' il cap di config.
    📌 La vol realizzata di TP01 a target_vol=20% e' 12,14%, scomposto: 20% x 0,682 x 0,890,
    dove lo 0,682 sono due meta' quasi uguali (flat nel 44,3% delle barre e convinzione
    parziale) -> "TP01 e' long-flat" spiega meta'; e alzare target_vol **aumenta la size proprio
    nei giorni in cui il segnale e' piu' debole**. Il x0,890 e' diversificazione, non un difetto.
    ⚠️ XS01 dichiara lo stesso 20% e ne realizza 20,59%: vale per TP01, non per il libro. Nessun
    numero pubblicato cambia (sono tutti sulla serie realizzata); sbaglia chi legge l'etichetta
    (attribuirebbe a TP01 l'89% del rischio invece del 73%).
    📌 (4) PROP/FUNDED — l'ipotesi centrale e' falsificata, e per la ragione teorica giusta.
    Riallocare per la barriera invece che per lo Sharpe vale +0,016 di J (il 4%): il conto del
    gambler's ruin lo prevedeva (la vol sparisce, il contenuto sta nella LEVA). Cio' che vale e'
    mettere XS01 su un conto funded: +0,400 (J 0,335 -> 0,738; P(pass) 38,6% -> 82,2%). Leva ottima
    0,75x HYRO / 1,00x FTMO, e **la barriera piu' larga alza l'ottimo: il vincolo e' la regola di
    DD, non il libro**; la leva alta non compra probabilita', compra fretta. Il **75/25 del libro
    live non e' la ripartizione giusta per un conto a barriera** (sul 2019+ che contiene il 2022
    l'ottimo e' 38/62 @0,50x). Il null dei tilt dice che il PUNTO non conta: il massimo di 200
    pesi casuali (0,739) eguaglia l'argmax (0,738) — conta stare nella regione diversificata.
    🚨 **Il numero da citare e' LA BANDA: P(>=50/g) da €600 in 36 mesi = 42% al drift pieno · 7,7% allo
    stress moderato · 0,7% a quello severo** (e li' e' peggio del libro live), perche' **tutto il
    vantaggio poggia sul drift di XS01 misurato sulla sua finestra di scoperta**. Gate proposto: non
    aprire un funded su questa allocazione prima che XS01 abbia una finestra fuori dal 2024-2026.
    ⚠️ Distorsioni dichiarate e non rimosse: banda d'ancora non girata sotto quella lente (l'ottimo
    gira sull'ancora canonica e si appoggia a **SKH01, che ha la fortuna d'ancora piu' grande da
    restituire**); e la sotto-pesatura di **TP01, lo sleeve difensivo, e' misurata su un campione senza
    sinistro** — su una barriera assorbente quella scommessa si paga una volta sola.
    📌 (5) LO SLIPPAGE DEL LIBRO LIVE, misurato per la prima volta: non c'e' a questa taglia.
    I backtest a 10 bps RT restano conservativi di ~1,5 bps/lato (fee vera 7 bps RT); estremi
    avversi 1/18 contro 4,7 attesi. Prova diretta: un fill ha preso il **21,9% del volume della sua
    barra 5m** e quella barra ha avuto un range di 1,08 bps. **Fee sul NASTRO: 5,00 bps/lato
    prima del 2026-08-01 e 3,50 dopo, 16/16 esatti** = conferma indipendente di fee_watch.
    🚨 Ma la misura ha una DATA DI SCADENZA: la partecipazione scala lineare -> quel 22% diventa
    172% di una barra 5m a $5.000 e 687% a $20.000. Va rifatta a ogni salto di taglia.
    ⚠️ Due difetti del dato trovati prima di misurare: ts_utc in book_executions.jsonl **non e'
    l'ora del fill** (18/18 = 00:00:00; l'ora vera sta solo in logs/cron_book.log); e il feed
    certificato e' l'INVERSE mentre il libro trada il LINEARE USDC (4ª occorrenza dello
    schema fee_watch: misurare li' avrebbe misurato la base).
    📌 (6) IL f=0,73 DI VRP01 SCOMPOSTO — il 42% e' STRUTTURA A TERMINE, solo il 25% e' skew
    (30% spread, 2% fit). 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 7g -> sovrapprezza entrambe le gambe. Il
    "+0,8pp sulla gamba corta" del 30/07 — che faceva sembrare corretta la gamba venduta — e' la
    cancellazione di due errori da ~3pp. ⚠️ E la regola per prenderlo era gia' scritta il 03/07
    ("riprezzare term-structure-consistent prima di credere a un numero da struttura BS-flat") **e non
    e' stata applicata alla misura del 30/07**. Verso: f_term va da 0,83 (IV-rank basso) a
    0,93 (alto) e supera 1 in backwardation mentre f_skew resta piatto -> **la parte maggiore
    del difetto si annulla proprio dove il gate fa tradare il sleeve**, quindi f=0,73 e' plausibilmente
    conservativo li'. Non misurato (0/22 ingressi passano il gate) e in un crash i due pezzi vanno
    in direzioni contrarie. VRP_CFG["f"] NON cambiato. Replica indipendente del f: 0,714.
    📌 (7) CHIUSURE DI FAMIGLIA. Il filone funding si chiude sul QUARTO lato (affollamento):
    su 53.430 ore / 3 anni non predice ne' direzione ne' volatilita'. E i futures datati **non sono
    un quinto lato**: il loro basis E' il funding del perp (+7,33% implicito contro +6,48%
    realizzato; premio incassabile +0,85%/anno con IC95 che contiene lo zero). **La mean-reversion
    non risorge** sotto due conditioner mai provati (volume, shock 3σ): la selezione in-sample sceglie
    il ramo di continuazione in entrambi. Scartati anche: adaptive-horizon (il "vincitore adattivo"
    ha lookback costante, corr 1,000), dealer-gamma (BTC non separa, ETH separa al rovescio;
    ⚠️ e qui una REGOLA MIA, pubblicata la sera stessa e RITIRATA poche ore dopo: avevo scritto che
    dealer_net_gamma del dataset ereditato "e' il GEX col SEGNO INVERTITO" (corr 0,95). **FALSO, e
    la fonte gira su questa stessa VPS:** /opt/docker/cerbero-mcp/src/cerbero_mcp/common/options.py:11-14
    dichiara la convenzione"i dealer sono SHORT calls (le vendono al retail) e LONG puts" — e
    dealer_gamma_profile:138-140 la implementa (call_dealer_gamma -= contrib / `put_dealer_gamma
    += contrib`). Non e' un segno sbagliato: e' un'assunzione di posizionamento dichiarata, diversa
    da quella del GEX standard, e il default top_n_strikes=50 spiega anche il coefficiente 0,7 e
    l'offset che avevo attribuito a "non-portabilita'". Il verdetto SCARTATO regge; cade la regola
    che le prossime ondate avrebbero ereditato al contrario. **REGOLA VERA: prima di dichiarare che un
    campo di un dataset e' sbagliato, aprire il codice che lo produce** — qui erano due comandi, e la
    correlazione a 0,95 con la ricostruzione "standard" era esattamente cio' che una convenzione
    diversa deve produrre. liquidation_*_risk e' invece **una sola categoria in 17.229/17.229
    righe**, e quello e' confermato.
    Scartati anche: oi-pin (il max-pain non batte mai, 0/24, la media a 7 giorni dello spot),
    term-structure (termometro contemporaneo), skew direzionale (il prezzo muove lo skew,
    t 3,1-9,4 su 8/8, non il contrario), ortho-screen 7/7, alt-options, xs-lite, vrp-quote-vere.
    ⚠️ La catena ereditata da bite ha 74-75 giorni utili, non 3,7 mesi: prima del 2026-06-09
    raccoglieva una sola scadenza per giro (due agenti indipendenti, 74 e 75).
    📌 (8) REGOLE NUOVE. (a) L'open interest NON misura la negoziabilita' — su Deribit USDC sono
    quasi anti-correlati (rho di rango 0,77): SOL_USDC e' 1ª per OI e **ultima per quote a due
    lati (9%)**, BTC_USDC ha 5 strumenti con OI>=100 e il 93% dei put quotati (e sul short leg
    di SOL il miglior bid sta a UN tick: vendere li' significa pagare $27 per aprire un credit
    spread). (b) Il deflated-Sharpe va calcolato DI SCREEN, non solo di famiglia: su 168 trial il
    massimo atteso dal puro rumore e' Sharpe 1,572, sopra il soffitto direzionale (~1,3) ->
    uno screen largo su BTC/ETH direzionale non puo' passare il proprio gate, per aritmetica.
    🚨 QUESTO ARGOMENTO E' REFUTATO DUE VOLTE, per due strade indipendenti, e NON va ereditato:
    (i) la stessa griglia dichiarata come 7 famiglie da 24 da' 1,15, sotto il soffitto — il
    verdetto si ribalta sulla partizione (ondata 2, §24); (ii) il soffitto non e' ~1,3: la
    stessa ondata pubblica un lookback costante a 1,639 e la cella PREVDAY al buio a 1,621,
    stessa coppia e stessa lente netta-fee (§23, §54). «Soffitto» sta per tre cose diverse e il
    registro usava la piu' bassa citandola come la piu' alta.
    (c) Un placebo si controlla per BILANCIAMENTO DEL SEGNO prima di usarlo (un null che concorda
    col segnale nel 14% dei casi non e' un null, e' la strategia invertita: fabbrica celle
    "significative"). (d) **Il null del de-levering e' DEGENERE quando la variante e' una
    ri-scalatura** (sh(k*base) === sh(base)): serve iso-peso sullo Sharpe. (e) **Un gate che
    stampa None va verificato prima di dichiararlo "non girato"**. (f) **Su una finestra interamente
    post-hold-out marginal_vs_tp01 non puo' dare ADDS per costruzione** — un NEUTRAL li' non e' un
    giudizio. (g) Un confronto appaiato deve ereditare TUTTI i parametri della riga in cui compare.
    REGOLA RITIRATA, pubblicata poche ore prima nella stessa ondata: *"su equity a gradino un
    overlay giornaliero e' non-causale"* — falso su questo motore: backtest_signals contabilizza
    al giorno d'INGRESSO in 291/293 trade e la "riparazione" e' un no-op bit-exact; il
    "+0,04 fantasma" era la differenza fra due varianti entrambe causali, e quella scartata era la
    migliore sull'hold-out. *Il costo di una regola derivata da un difetto inesistente e' gia'
    stato pagato.*
    📌 **(9) Cosa NON e' piu' il vincolo: TRE volte in questa ondata l'eseguibilita' a $600 non ha
    bocciato niente** (haircut 0,00-0,01; lotti $7-242; margine ~$148). Dopo due mesi in cui il muro
    era sempre il capitale, adesso muoiono tutti sull'edge.
    ⚠️ (10) FATTO OPERATIVO: il cron gira dal WORKING TREE. Con un branch di ricerca attivo, il
    cron esegue quel branch. Durante l'ondata il diff vs main toccava solo scripts/research/ e
    docs/research/ (verificato) -> produzione identica; ed e' il motivo per cui **nessuna riparazione
    e' stata applicata**: sarebbe andata live alle 00:30 senza una decisione dell'operatore.
    🗂️ Dataset nuovo in eredita': 30/30 futures trimestrali scaduti Deribit ricostruiti
    (get_instruments?expired=true ne ritorna 1, ma i nomi sono deterministici e
    get_tradingview_chart_data serve la storia di un contratto scaduto): **BTC 240.150 barre orarie /
    ETH 233.334, dal 2018-09, col deleveraging 2022 dentro** — cioe' **la coda che a CC01 mancava per
    costruzione**. Cross-check col forward implicito nella catena opzioni: mediana 0,6 bps.
  • 🌊 SECONDA ONDATA 2026-08-22 sera (9 filoni, research/wave-0822) — 0 candidati, 1 gate pre-registrato SOSTITUITO, il numero funded ridimensionato di 5x, e un difetto strutturale del deflated-Sharpe misurato da TRE agenti indipendenti. Diario docs/diary/2026-08-22-wave2-xs01-funded.md; registro docs/research/RESULTS-0822.md §21-29. Libro, pesi, cron, config INVARIATI. (1) XS01 REGGE FUORI DALLA SUA FINESTRA DI SCOPERTA — ED E' PIU' FORTE LI'. La finestra c'era gia': stessi 19 ticker su Binance spot 2021-2023, che contiene LUNA e FTX, meccanismo congelato. Mediana di fase +1,12 fuori campione contro +0,37 dentro; differenza appaiata +0,668, positiva in 10/10 fasi; p=0,013 contro permutazione a fee zero; sopravvive a 30 bps/lato. L'obiezione "Binance non e' la verita'" e' stata MISURATA, non aggirata: quella regola riguarda l'ancoraggio di prezzo, non un ranking cross-sezionale, e lo scarto USDT e' un fattore comune che sparisce nello z-score — stesso sleeve sui due venue corr 0,9991. Null "universo dove non dovrebbe funzionare" (11 settoriali SPDR 1998+): 0,45, 0/10 fasi3ª conferma indipendente che il cross-sectional e' crypto-specifico. ⚠️ Ma tre correzioni vanno nel verso opposto: maxDD standalone 10,8% → 21%; deflated-Sharpe FAIL 0,342; 32% dell'universo non testabile (19 gambe 1,31 contro 13 gambe 0,54, stessa finestra e venue). Verdetto LEAD, non promozione. (2) Il falsificatore che l'autore aveva nominato CONTRO SE STESSO — eseguito, e non falsifica. La validazione di venue girava solo sul 2024+, cioe' senza il depeg USDT che il fuori campione contiene. Soglia dichiarata da lui (corr ≥ 0,99): corr mediana 0,9992, minima 0,9921, dSharpe appaiato 0,000, titolo da +1,12 a +1,11; sui 734 ribilanciamenti solo 10 cambiano una gamba su cinque e ZERO dentro il depeg. Il punto di metodo: la divergenza va SCOMPOSTA — la comune arriva a 39 bps ed e' quella che lo z-score annulla, la idiosincratica (l'unica che cambia il ranking) sale solo da 2,0 a 3,6 bps mediani; riportare solo la prima da' la risposta rassicurante e sbagliata. 🚨 E il caso peggiore del campione non e' il depeg: e' il 2025-10-10 (cascata di liquidazioni /USDT, INJ 1.981 bps mentre BTC/ETH stanno a 21) → il meccanismo temuto e' REALE, e' solo caduto nella finestra di scoperta. 🚨 (3) IL NUMERO FUNDED SI RIDIMENSIONA DI 5x, E IL COLPEVOLE NON E' LA FINESTRA. Decomposizione a un grado di liberta' per volta (riproduzione esatta cifra per cifra dei numeri del mattino + 3 controlli bit-exact a 0,0):

    passo J Δ
    il pubblicato (HL, 19 gambe, finestra di scoperta) 0,739
    → venue Binance, date allineate 0,732 0,006
    13 gambe 0,426 0,307
    → pannello lungo 0,459 +0,034
    fuori campione 2021-2023 0,520 +0,061
    Il 42% del numero pubblicato sta nelle 6 gambe che fuori campione non esistono (ARB OP SUI APT
    SEI TIA) — **e quelle 6 entrarono nell'universo nel 2026-06 guardando la liquidita' HL del 2024+,
    cioe' dentro la finestra di scoperta**. La finestra, da sola, migliora; allargare l'universo man
    mano che le gambe nascono non recupera i 0,307.
    ⚠️ Errore di metodo catturato prima di pubblicare: la prima stesura dava al passo venue 0,254
    ("Binance costa un quarto di J"). Era FASE, non venuexsec_engine ribilancia sulla parita'
    dell'indice di pannello, e **due pannelli che iniziano a date diverse ribilanciano in giorni di
    calendario diversi**. Allineati, il venue vale 0,006.
    NUMERO DA CITARE: P(≥50 €/g) da €600 in 36 mesi = 7,8% [7,29,1%], P(zero) 25,5% (non 42%);
    6,6% se la firm non lista gli alt; 4,3% per il libro live. **Il peso 0,50 non sopravvive; la
    REGIONE [25%, 38%] e' entro il 3% dell'ottimo su tutte e tre le finestre.** Stress ora ancorati al
    misurato: XS ×0,00 +0,041 → **XS01 come pura DECORRELAZIONE vale +0,04, tutto il resto e' il
    suo drift.**
    📌 GATE PROP-01 — SOSTITUISCE l'attesa di anni, che e' CHIUSA: **(a) LISTINO — verifica a €0,
    BLOCCANTE prima di ogni spesa:** ≥10 delle 13 gambe negoziabili con short (sotto 10 il
    meccanismo congelato non ribilancia affatto); FAIL → si decide sulla riga senza XS01. *Stessa
    classe dell'errore GTAA01/PRIIPs, per cui la regola e' gia' scritta.* (b) banda d'ancora di
    SKH01 sotto la lente prop, 2026-10-31, PASS se > +0,05 (atteso PASS, dichiarato prima).
    (c) un'eval HYRO $100k costa $579 su un conto di $635 = il 91%.
    ⚠️ (4) I DUE AFFINAMENTI DI XS01 DEL 2026-06-19 NON SI REPLICANO FUORI CAMPIONE (misurato da
    due agenti indipendenti): il blend [30,90] e' PEGGIO del solo L=30 (+1,12 vs +1,28) e il
    gate di dispersione p30 vale ZERO (+1,12 con e senza) — mentre dentro la finestra di scoperta
    il gate vale eccome (+0,37 contro 0,03). Il secondo agente lo ritrova per un'altra strada: l'unica
    correlazione sotto soglia del suo test e' causata dal gate (spento, 0,9674 → 0,9977), perche'
    e' binario e pochi bps lo fanno cadere ai due lati. **Cio' che sopravvive e' il meccanismo
    cross-sectional NUDO.** ⚠️ NON e' un argomento per cambiarli — cambiarli guardando questo
    risultato sarebbe la stessa selezione spostata di finestra — **e' un argomento per non attribuire
    loro il valore che questa memoria gli attribuisce.**
    (5) L'ALLARME SUL PESO DI TP01 E' FALSIFICATO NEL VERSO (l'agente aveva registrato nel
    docstring, prima di misurare, che si aspettava di confermarlo): **TP01 ~0,375 e' l'argmax sia
    sulla finestra che contiene il 2022 sia su quella che non lo contiene**, e nel sinistro il libro con
    meno TP01 fa meglio — TP01 va flat mentre SKH01 si gira short e guadagna; test dei segni
    12/12 (p=0,0005) e 8/8 sul solo pre-2024. **Null del de-levering, 7ª occorrenza, in veste
    nuova** ("protezione dal crash"): a leva comune TP01 protegge davvero, ma **a ISO-SOPRAVVIVENZA meno
    TP01 paga di piu'** ($4.490 → $2.119, monotono). Tre collaterali: (i) *"2024-2026 non contiene
    un crash"* e' falsa nella forma (buy&hold 60% di DD); manca la taglia (~2,3x sulla coda) →
    la domanda giusta e' "e se ne arriva uno due volte piu' grande"; (ii) alle leve funded **il
    2022 non era una minaccia** (min equity 1,4/2,4% contro barriera 6%): **cio' che uccide un conto
    a barriera e' la regola a UN GIORNO su una giornata qualunque**; (iii) il rischio vero
    dell'ottimo e' XS01, non TP01. Il 75/25 live e' fuori dalla regione di compromesso del funded
    — coerente col fatto gia' scritto il 25/07: *canale funded e libro proprietario vogliono libri
    diversi*.
    (6) ORIZZONTE ADATTIVO — CHIUSO DEFINITIVAMENTE. Il falsificatore e' stato eseguito coi
    rilevatori che nominava (BOCPD Adams & MacKay + optimal partitioning causale) e **questa
    volta ha avuto POTENZA**: 68/96 celle davvero adattive (contro 0 del primo tentativo, dove il
    "vincitore adattivo" aveva lookback costante). Con potenza: 0/68 su entrambe le condizioni
    dichiarate, corr→TP01 minimo 0,754 (soglia 0,60). 📌 **La decomposizione E' il risultato:
    l'adattivita' spiega il 7% del vantaggio su TP01** (miglior costante +0,326, adattivo +0,305) → il
    100% e' "un orizzonte piu' corto", non "adattarlo". E il miglior costante non si propone: il
    salto fra L adiacenti e' +0,190 = il 58% del vantaggio — max-of-24 su un crinale di rumore.
    📌 Prova di IDENTITA' invece di diagnostica (controllo riusabile in ogni famiglia con un
    parametro clippato): invece di "questa cella sta al bordo", la sua serie e quella del costante
    coincidono a **max Δ = 0 su n=2719**.
    (7) MAKER — il segno dipende da < contro <=. Differenziale maker/taker: tetto **$2,96/anno
    a $635** (replica indipendente della curva 26/07 al terzo decimale). Il costo del non-fill lo mangia
    interamente gia' alla condizione di riempimento piu' generosa fisicamente difendibile: se una
    barra che apre esattamente al nostro prezzo e da li' se ne va conta come fill, resta +0,31 bps; se
    non conta (e non conta: a quel prezzo non e' stato scambiato niente dopo l'arrivo dell'ordine, e
    un passivo sta dietro a tutta la coda), resta 0,47. **Non esiste un q positivo di
    pareggio**; IC95 contiene lo zero in 10 celle su 10. 📌 **La firma della troncatura, vista
    dall'altra parte: il passivo vince sul 92-98% degli ordini e perde sulla media** (5 ordini su 1535
    fanno il 42% del danno) — *una politica che vince quasi sempre e perde sulla media si giudica
    sulla media*. Placebo a ore casuali girato: la selezione avversa non e' "il libro trada nei
    momenti brutti", e' strutturale all'esecuzione passiva. ⚠️ Osservazione che riapriva la domanda:
    il netting su strumento unico (che uccise T1 il 26/07) **non si applica all'ordine NETTO di
    ribilanciamento**, che e' uno solo.
    (8) SUPERFICIE DI VOLATILITA' — il lato relative-value e' CHIUSO. Censimento (non selezione)
    su 1,24 M quote a due lati: 0 violazioni di monotonia su 1,11 M, **1 di convessita' su 1,03
    M** che vale $0,00 ed e' sparita l'ora dopo. residuo mediano 0,125-0,200 pt-vol contro
    mezzo spread 0,861-1,208, e sotto il tick nel 96% dei casi. 📌 **IL MECCANISMO: residuo
    cresce MONOTONAMENTE col largo del mercato** (0,080 pt a spread 2,6% → 0,255 a spread 50%) →
    l'incoerenza al mid E' la larghezza del mercato guardata attraverso il mid, non un errore di
    prezzo — e questo uccide il controfattuale USDC che l'agente stesso aveva costruito (restringendo
    alla superficie gia' quotata stretta: 0 su 158.718). Reversione misurata: mezza-vita 11-12 h,
    corr(t,t+1) +0,94 → il residuo e' la forma dello smile. Controlli positivi **3/3 in entrambi i
    versi** — un rilevatore che trova ~0 e non e' validato e' indistinguibile da uno rotto.
    ⚠️ **(9) BIN-FREQ (il binario di frequenza su SKH01) — LEAD: la direzione e' reale, la TAGLIA e'
    selezione.** Argmax +0,112 in 23/23 ancore, ma mediana di famiglia +0,007 con 39/72 celle
    positive = monetina: l'argmax vale 16× la mediana, punta e non plateau. Direzione
    solidissima (0/72 sul segno inverso; trasferisce a SKH01_V1). Criterio a 4 gambe: 3 FAIL, e
    la taglia e' €0,0113/giorno. Due implementazioni difendibili della stessa regola, d'accordo sul
    97,6% dei trade, danno +0,066 contro +0,080 → **il 21% dell'effetto sta in come si riempie il
    warm-up**. 📌 Riapertura pre-registrata: non una data ma una SOGLIA DI CAPITALE ($5.600 alla
    stima della cella, $53.000 a quella onesta di famiglia) — perche' cio' che fallisce e' il
    rapporto fra un costo fisso e un beneficio proporzionale, e nessun forward a 6 mesi puo'
    misurare 0,07 di Sharpe (SE≈1,4).
    🚨 **(10) IL FILO DELLA GIORNATA: deflated_sharpe NON HA UNA REGIONE UTILE IN MEZZO — misurato da
    TRE agenti indipendenti, e TRE gate pre-registrati ci poggiano sopra** (XSR01 23/10, DVOLSPREAD
    24/10, 22/12). altlib.deflated_sharpe calcola sr0 = sd(Sharpe dei trial) × mult(N): dipende
    dalla VARIANZA della griglia, non solo da N. (a) VOL-SIZE lo dichiara VACUO (1,000 anche
    per il baseline). (b) BOCPD lo misura dall'altro capo: 0,998 PASS dentro la famiglia omogenea
    0,555 FAIL con l'sr0 di screen, TP01 compreso — *"gonfiare N col padding alza N e non la
    varianza"*. (c) Il critico trova che l'1,572 di ORTHO-SCREEN implica sd≈0,58 e che **le
    stesse 168 celle dichiarate come 7 famiglie da 24 danno 1,15**, sotto il soffitto ~1,3: il verdetto
    "uno screen largo non puo' passare il proprio gate per aritmetica" **si ribalta senza toccare un
    dato**, e la cura che suggerisce (famiglie piu' piccole) e' la manovra proibita il 30/07.
    (d) BIN-FREQ chiude il cerchio dall'alto: su una famiglia binaria il DSR **riacquista
    potenza** (0,977 contro baseline 0,834) perche' le sue celle scartano insiemi di trade molto
    diversi — non e' il candidato a essere piu' solido, e' la famiglia a essere piu' larga.
    REGOLA: non basta contare i trial di screen, serve la VARIANZA di screen — e **la stessa griglia
    da' verdetti opposti a seconda di come la si partiziona**, il che rende la scelta della partizione
    un secondo posto dove barare e' indolore e invisibile.
    ⚠️ (11) REGOLA MIA PUBBLICATA E RITIRATA IN GIORNATA — vedi il ritiro nel bullet dell'ondata 1:
    dealer_net_gamma non e' il GEX col segno invertito, e' una convenzione dichiarata nel
    sorgente che gira su questa stessa VPS. **REGOLA: prima di dichiarare che un campo di un dataset e'
    sbagliato, aprire il codice che lo produce.**
    📌 (12) ALTRE REGOLE NUOVE. (a) **Una divergenza fra due fonti di prezzo si scompone in COMUNE e
    IDIOSINCRATICA prima di giudicarla**: le due rispondono a domande diverse e la prima da' sempre la
    risposta rassicurante. (b) **Due pannelli che iniziano a date diverse ribilanciano in giorni di
    calendario diversi**: un confronto di venue non allineato misura la fase, non il venue (qui
    0,254 contro 0,006, fattore 42). (c) **Un null di permutazione puo' avere mediana diversa da
    zero per ragioni strutturali** — scartare a caso il 40% dei trade danneggia perche' lo Sharpe va con
    √(scommesse/anno) (misurato 0,883 contro 0,861 previsti): il null resta valido e piu' severo, ma
    risponde a "batte una selezione casuale?", non a "batte il non filtrare?". (d) **Un
    contro-fattuale costruito sui mid di un mercato largo non descrive un mercato stretto**: prendere il
    mid a spread 50% e fingere di quotarlo al 2,6% fabbrica opportunita' che spariscono restringendo il
    campione a cio' che e' gia' quotato stretto. (e) **Un git add -A durante un'ondata cattura il
    lavoro IN CORSO degli agenti** (successo qui: un commit conteneva una versione intermedia e
    sbagliata di uno script poi corretto).
    📌 **(13) E LA RISPOSTA ONESTA AL MANDATO, che al critico era stato chiesto di dare se vera:
    NESSUNA misura di ricerca di questa giornata batte "versare".** L'effetto piu' grande misurato oggi
    vale €0,0113/giorno; versare €500/mese vale ~1456× quello. **La verifica che costa meno di
    tutte non e' ricerca: leggere il listino di due prop firm** — l'intero risultato di testa poggiava
    su un assunto scritto in un commento a riga 100. *La ricerca ha smesso di essere il vincolo
    binding il 26/07, e due ondate da 29 filoni lo hanno CONFERMATO invece che ribaltarlo.*
  • 🌊 TERZA ONDATA 2026-08-22 notte (4 filoni) — DUE GATE D'ATTESA ELIMINATI, 2 difetti strutturali trovati, 0 candidati. Diario docs/diary/2026-08-22-wave2-xs01-funded.md; registro docs/research/RESULTS-0822.md §30-33. Libro, pesi, cron, config INVARIATI. (1) GATE PROP-01 gamba (a) — LISTINO: PASS 13/13. La verifica a €0 che il hook e il critico avevano indicato come il vero vincolo. 📌 Metodo: non leggere il sito della firm, interrogare il VENUE su cui la firm esegue. HyroTrader esegue su Bybit; api.bybit.com/v5/market/instruments-info?category=linear (pubblico, tokenless, 833 strumenti) → 13/13 gambe U13 Trading, LinearPerpetual, min notional $5, leva 50-150x; 6/6 anche le gambe non testabili. Lo short e' STRUTTURALE su un perp, non un permesso. ⚠️ Non prova che la firm non abbia una propria lista ristretta: la sua pagina dichiara "700+ pairs" su un venue che ne ha 833 (coerente, ma e' la sua dichiarazione) → si chiude con una domanda al supporto, non con un dataset. VALIDAZIONE del modello: la firm dichiara daily DD 4% · max loss 6%, e r0725_hyro.py:48-49 usa gia' EV_TARGET,EV_DD,EV_DL = 0.10,0.06,0.04le regole modellate dal 25/07 sono quelle vere. 🚨 CORREZIONE ECONOMICA: la quota d'ingresso NON e' un costo affondato — e' un "Refundable Challenge Deposit, returned in full alongside your first funded payout". Il progetto l'ha sempre modellata come spesa persa. Resta vero che immobilizza il 91% del conto ($579 su $635), non che lo brucia: si perde solo nel ramo senza payout. E' una struttura a OPZIONE, non una fee → l'EV del biglietto va rifatto (gamba (c) del gate). Qualita' delle fonti dichiarata: listino primario e misurato; regole DD primarie dichiarative; rimborsabilita' dichiarativa + secondarie concordi, non misurata. (2) GATE PROP-01 gamba (b) — chiusa OGGI invece che il 2026-10-31: PASS 23/23. Delta appaiato mediano +0,1162 [p10-p90 +0,087/+0,152], 23/23 offset e 230/230 celle congiunte positive (soglia +0,05), su griglia congiunta PIENA 23 offset × 10 fasi — non un campionamento e non una somma di marginali. Riproduzione 7/7 esatta, bit-exact 3/3 a 0,0. 📌 La data non aspettava un dato: aspettava che qualcuno misurasse il COSTO (0,6 s per offset; i "~9 min" erano di una computazione che la misura non usa). Secondo gate d'attesa eliminato in una sera, per la stessa ragione del primo. 🚨 Ma il numero operativo scende ANCORA: P(≥50 €/g) da €600 in 36 mesi = 4,4% [2,58,2%], P(zero) 35,3% (l'offset canonico era al 91° pctl; all'ancora canonica la macchina ridice 7,7% → e' fortuna d'ancora, non disaccordo). Traiettoria del numero in una giornata: 42% → 7,8% → 4,4%. 📌 E la distorsione dichiarata DUE VOLTE e mai rimossa — "l'ottimo si appoggia a SKH01, lo sleeve con la fortuna d'ancora piu' grande" — e' MISURATA E REFUTATA nella forma forte: a 38/25/38 SKH01 sta allo stesso peso del LIVE, la sua ancora si cancella nella differenza appaiata, e li' il delta e' il piu' alto dei tre (+0,120) con la banda piu' stretta. L'ampiezza della banda scala col differenziale di peso su SKH01cio' che paga e' XS01, non un sovrappeso dello sleeve fragile. ⚠️ Due avvertenze: (i) il gate e' su una DIFFERENZA, il numero operativo e' un LIVELLO — nella prima l'ancora si cancella in parte, nel secondo per niente: passano insieme e si muovono diversamente (33% contro 44%). Un gate superato non e' un numero confermato. (ii) il surrogato del 22/08 era finito vicino al vero per la cancellazione di due asimmetrie opposte: il numero era giusto, il metodo no. Smentitore residuo fuori perimetro: l'ancora giornaliera di TP01 (24 ore, canonica 00:00 UTC = la piu' fortunata delle 24) non e' toccata da questa misura. 📌 (3) GATE-RECON — il difetto advance() ribalta UN gate su tre, e in quello due criteri su tre. Audit di sola lettura provata (md5+mtime di ogni data/paper_* invariati). STATARB 27/09 — riparata: RITIRO · attuale: CANDIDATO AL DEPLOY (Sharpe +1,96 → 2,02, maxDD 2,24% → 15,19%); XSR01 e DVOLSPREAD danno lo stesso verdetto in entrambe le lenti. La premessa "rigenerare non perde la finestra" e' ora CONFERMATA PER VIA DIRETTA: data/_feed_backup/*.prebuild.bak conserva il vintage pre-riscrittura → 0 barre chiuse cambiate su 1.761.259; l'unica riga che cambia per file e' l'ultima del vintage, che era aperta = il difetto stesso, in chiaro. ⚠️ Limite: hl_*_1d e dvol_* non hanno vintage su disco → per XSR01/DVOLSPREAD l'evidenza resta indiretta. 🚨 Il veto d'integrita' di DVOLSPREAD NON scatta: 28 attive/28 = 100%. Una serie che registra 2 minuti di mercato al giorno passa al 100% un veto progettato apposta per non far decidere su dati mancanti — non e' taratura: il veto conta se il DVOL c'era, non quanto dura la barra su cui c'era (assi ortogonali); la stessa soglia 0,80 sulla quota di barre chiuse leggerebbe 0%. Variante nuova: una barra presente non e' una giornata presente. 🚨 Il caso peggiore NON e' quello coi numeri piu' assurdi: XSR01 sbaglia di ×6,6 e DVOLSPREAD di ×3,0 senza cambiare verdetto; STATARB ha |Sharpe| quasi identico (1,96 contro 2,02) e cambia SEGNO — ed e' il gate piu' vicino. Un controllo che cercasse "numeri troppo belli" lo lascerebbe passare; implausible_sharpe, girato per la prima volta sulle serie forward, dice "ok" in entrambe le lenti (e chiede n≥30, quindi 2 serie su 3 non sono giudicabili). La firma da cercare e' la VOL forward molto sotto quella del backtest (7,88% contro 31,42%). 📌 QUANDO riparare, con un numero: con rigenerazione zero barre perse a qualunque data; senza, riparare oggi lascia 36/90 barre vere a STATARB (62/90 XSR01, 63/91 DVOLSPREAD), alla vigilia 1 — e la riparazione parziale non contamina la finestra, la ACCORCIA (una barra troncata porta ~1/370 della varianza e del rendimento di una vera, quindi non pesa). ⚠️ La diagnostica pre-registrata del 25/07 (statica sempre-short) non e' affetta perche' si ricalcola dal pannello → al gate si confronterebbe un benchmark giusto con un numero di strategia sbagliato, e il margine sembrerebbe +5,83 invece di +1,87. 🚨 (4) WORST-DAY — la riserva sulla leva e' mal tarata di 2-4 ORDINI DI GRANDEZZA, ma il knob di scala NON ESISTE. 🚨 AGGIORNATO 23/08: il 1,50x e' BOCCIATO (§53: peggior giorno strutturale 21,48% > 20%) e il k massimo difendibile e' 1,40 — di questa riga sopravvive solo la colonna 1,25x. Il gradino di leva vale 14,7a → 12,9a a 1,25x e → 11,6a a 1,50x al capitale-rendita (+€164/mese e +€282/mese di versamenti equivalenti 🚨 il primo e' +€144 misurato direttamente — vedi il ritocco del 23/08 sotto) ed era bloccato da un parametro scelto a mano ("un giorno a 10% ogni anno"). Il peggior giorno ha due risposte: 3,94% in chiusura (2020-03-13) e 7,33% al minimo intra-giorno (rapporto mediano 1,89×). Coda GPD: 4,55% a 1/10.000 giorni [6,34/3,08] ⚠️ ma Hill dice 7,34% (ξ 0,34 contro 0,09): i due stimatori NON concordano → si cita la banda. Conto aritmetico (cap + vol-target + gap-through di SKH01): peggior giorno possibile a k=1,00x 14,32%. 📌 Il 10% sta al 70% del massimo strutturale: la TAGLIA e' plausibile, la FREQUENZA no (1 ogni 67-6.075 anni contro "ogni anno"). 📌 E la forma della coda non e' la leva: muove k di 1-2 unita', il DRIFT di 6,7.* Anche prendendo lo stress alla lettera, k* 2,95x → mezzo-Kelly 1,48x: lo stress bocciava il gradino DOPPIO, non quello singolo. C1-C5 passano tutti. ⚠️ Il libro NON e' immune ai crash, e' immune ai crash GROSSI: sui 160 giorni di crash perde in media 0,505%, e l'esposizione di TP01 scende monotona col crollo (0,096 → 0,042 sotto il 20%) perche' li' il trend si e' gia' girato. Il suo peggior giorno non e' un crash: e' uno SHORT SQUEEZE (SKH01 short con stop 2% che gappa a 15,77% di sleeve mentre TP01 e' flat; il secondo peggiore fa 6,67% → la coda di SKH01 e' un giorno solo). 🚨 IL RISULTATO CHE DECIDE, e nessuno lo cercava: il cap di config/live.json e' un CLAMP, non un MOLTIPLICATORE. Morde su 3 osservazioni-asset su 5.650 (0,053%); alzarlo da 0,50 a 0,625 lascerebbe il libro a k=1,00x in 5.647 giorni-asset su 5.650. Verificato: le chiavi sono max_notional_per_asset_usd/_frac, min_order_usd, disaster_sl_pct, max_data_age_days, skh_feed_max_age_minnon esiste una chiave di scala; servirebbe toccare WEIGHT/W_TP01/ W_SKH in src/live/book.py, cioe' codice su un percorso con soldi veri. ⇒ La regola "ogni cambio di SCALA passa dal cap di config, non da target_vol" NON E' IMPLEMENTABILE COME SCRITTA. Due mesi di discussione su un knob inesistente. Il gradino a 1,25x e' AUTORIZZABILE A CONDIZIONE DI costruire prima una chiave di scala esplicita in config e rifare r0726_fee_sensitivity, la cui conclusione "liquidation fee irrilevante" vale solo a nozionale lordo ≤1x (ed era gia' legata a un test di guardia sul cap). ⚠️ Nota dovuta: credendo entrambe le riserve insieme (drift 2SE e 10% annuo) il drift atteso e' 0,61%/annonon e' il gradino a essere sbagliato, e' il libro; chi usa quella combinazione sta chiedendo di spegnere anche il conto di oggi. 🚨 (5) IL FUNDING DEI PERPETUAL NON E' MODELLATO IN NESSUN BACKTEST — e tocca ogni numero del progetto. Verificato: zero occorrenze di funding in src/backtest/harness.py, src/strategies/trend_portfolio.py, src/portfolio/{sleeves,portfolio}.py e in tutto src/live/. Il progetto ha prezzato fee, slippage, min-order, pavimento IB, haircut, fortuna d'ancora, degrado d'esecuzione, look-ahead, split, rischio di venue e fisco — e mai il costo di TENERE APERTA una posizione su un perpetual. MISURATO la notte stessa (r0822d_funding.py, 1.212 righe, replica bit-exact 5/5, §35 del registro): il libro paga 2,16%/anno di DRIFT (2019-2026) · 1,39% sulla sola finestra dello strumento vero (≥2022-03) · 0,55% sul 2025+. Il costo si cita con la finestra, e il 2022 e il 2026 costano ~0 perche' il libro era FLAT, non perche' il funding fosse sparito. 🚨 Il meccanismo, ed e' trasferibile a ogni futuro candidato su perpetual: esposizione e funding sono POSITIVAMENTE CORRELATI — il tasso pagato davvero e' 1,86-2,55× l'incondizionato per TP01 e 2,41-3,44× per SKH01, quindi il prodotto ingenuo "esposizione media × tasso medio" sottostima di ~2×. Ipotesi da cui il filone era partito, FALSIFICATA: "SKH01 paga meno perche' sta a mercato il 12% del tempo" → paga 2,24%/anno contro 2,02% di TP01, perche' quando e' a mercato sta a nozionale 1,0× (TP01 vol-targeted sta a 0,14×) ed entra sui breakout, cioe' quando il funding e' caro. Il peso 75/25 NON si muove (delta negativo a 23/23 offset per ogni w). ⚠️ Il proxy Hyperliquid era 2,1-2,2× il venue vero (14,8% contro 6,8-7,1% sulle stesse ore): due errori opposti — tasso troppo alto, esposizione condizionale troppo bassa — che quasi si compensavano. Compensarsi non e' misurare. 🚨 NUMERI PUBBLICATI CHE CAMBIANO: rendita perpetua 10,73% → 9,14%; muro $276,6k → $325,0k (+17,5%); traiettoria da $600 a €250/mese 16,4a P(20a) 90% → 18,7a P(20a) 64%; soffitto direzionale ~1,31 → ~1,15. NON cambiano: peso 75/25, gradino di leva (k* 13,7→12,3), maxDD (+0,3pp), ordine delle leve del piano. 📌 E' una tassa sul DRIFT, non sulla coda — per questo colpisce i muri molto piu' dello Sharpe, ed e' lo stesso ordine di grandezza della correzione d'ancora ×0,89. ⚠️ QUESTA CORREZIONE E QUELLA DEL FISCO SI SOMMANO, E NESSUNA TABELLA PUBBLICATA LE CONTIENE ENTRAMBE. La riga "€250/mese" vale P(20a) 92% al lordo · 52% col fisco (07/08) · 64% col funding (22/08): le due lenti sono state applicate separatamente allo stesso numero lordo, e il risultato congiunto sara' peggiore del 52%. La tabella con entrambe non esiste ancora. Validato contro il conto vero per ELIMINAZIONE, non per grandezza: modello vs realized_pnl di sessione ETH 0,2% / BTC 7,7% (le finestre sbagliate sbagliano di 2-4×), e l'identificazione regge perche' nella sessione ci sono stati 0 ordini → il P&L di trading e' esattamente zero, quindi quel campo non puo' essere P&L di trading. Convenzione interest_8h verificata sui dati (mediana |dif| 2,2e-08 contro 1,1e-06). Funding realmente pagato dall'arming: $0,22. ⚠️ BUG in famiglia gia' nota, catturato da un controllo positivo e non a occhio: DatetimeIndex.astype("int64") su tre serie con risoluzioni diverse ([ms]/[us]/[s]) dava 0,000%/anno su SKH01 e +1,229%/GIORNO su TP01nessuna eccezione, nessun NaN, due numeri plausibili in due punti diversi. Stessa famiglia del DatetimeIndex.view("int64") codificato il 01/07. Su un perpetuale lineare, inoltre, diff(nozionale) < 0 NON e' una vendita: il nozionale scende da solo quando scende il mark. SEGUITO 2026-08-22 notte — LA CHIAVE E' SPECIFICATA (docs/research/SPEC-scale-key.md + prototipo isolato r0822e_scale_proto.py, zero scritture, isolamento verificato a runtime), con un NODO IRRISOLTO. Registro §38. Replica a k=1,00 6/6 contro WORST-DAY. ⚠️ CORREZIONE A UN NUMERO CHE AVEVO SCRITTO IO: "1,25-1,50x vale 14,7 → 11,6 anni, ~€300/mese" fondeva due gradini — a 1,25x l'equivalente e' +€164/mese, il €282 e' del 1,50x 🚨 che il 23/08 e' stato BOCCIATO: la meta' cara della frase non esiste piu'. 🚨 RITOCCATO 2026-08-23 (§53), e il ritocco riguarda la CONVENZIONE piu' che il numero: il "+1,8 anni / +€164" e' la lettura a muro CONGELATO (si de-leva al traguardo) e §33 non dichiarava quale delle due letture stesse usando. A muro MOBILE lo stesso gradino vale +2,98 anni; con il funding dentro, +2,10a (congelato) / +3,49a (mobile). La differenza fra le due letture e' 1,2 anni — piu' grande di quasi tutti gli effetti che questo progetto misura ⇒ da qui in avanti un guadagno in anni si cita con la sua convenzione. Il versamento equivalente misurato direttamente e' +€144/mese, non €164: la differenza e' l'ipotesi di linearita' dell'interpolazione. 📌 E il funding va nel verso opposto all'atteso: non riduce il gradino, lo AUMENTA (peggiora il caso base) — ma il livello peggiora su tutta la colonna: k=1,25 col funding (13,78a) resta peggio di k=1,00 senza (14,81a). Il gradino non ripaga il funding, lo attenua. 🚨 Tre risultati che il mandato non prevedeva: (i) test_leva_massima_da_config_resta_sotto_o_uguale_a_1x NON si rompe, ed e' PEGGIO che rompersi: misura frac · n_asset mentre la grandezza vera diventerebbe frac · n_asset · scalacontinua a passare e smette di controllare. 4ª occorrenza della forma "un controllo puntato su una configurazione diversa da quella che gira". Va cancellato con nota, non aggiustato. (ii) La guardia che morde per prima e' il DISASTER-SL, non il peggior giorno: bound strutturale k ≤ 3,49x, disaster-SL k ≤ 1,67x = 2,1× piu' stringenteC1 di WORST-DAY guardava la grandezza sbagliata. Il tetto giusto e' l'invariante n_asset · frac · scala · disaster_sl_pct ≤ 0,50, che lega tre chiavi. (iii) Il tetto va sul PRODOTTO, non sulla chiave: frac=0,625 + scala=1,25 = leva 1,562x e passerebbe un tetto "scala ≤ 1,25" — e WORST-DAY aveva appena pubblicato che alzare frac da solo "non produce k=1,25": combinato con la scala lo produce eccome. 📌 Gate proposto GATE SCALA-01 (9 condizioni, fra cui tetto sul prodotto e A6 anti-recency: k_ammesso calcolato togliendo gli ultimi 90 giorni dev'essere ≥ k richiesto), perche' la scala e' invisibile a ogni gate esistente — Sharpe 1,5051 identico a tutte le celle di k: deflated_sharpe e marginal_vs_tp01 non falliscono, non vedono la variabile. weights_tilt_null invece passa con potenza: peso implicito TP01 0,750000 a ogni k, max|target(k) k·target(1)| = 0, e il controllo positivo (scala sulla sola gamba TP01 = cio' che farebbe target_vol) lo porta a 0,789 e viene smascherato. IL NODO E' SCIOLTO (2026-08-23, r0823_sl_anchor.py, §40) — E LA DICHIARAZIONE DI NON-MISURABILITA' ERA FALSA: IL LOG BASTAVA. (3ª conferma della regola del 26/07: un blocco dichiarato e' un'IPOTESI, non un fatto.) 📌 L'attesa e' stata scritta PRIMA di guardare, derivata dal codice, e ha predetto le soglie esatte: rotolante e simmetrico, innesco +5,263% / 4,762% (il fattore 0,70 si semplifica e la condizione diventa una condizione sul mark, non sullo stop). Il fatto e' confermato: su 1443 giri i 15 placed sono 5 aperture + 7 ribilanci + 3 A POSIZIONE FERMA (21/08, HOLD (a target), 0 ordini, trigger spostato di +5,74/+5,81/+5,38% = appena sopra la soglia predetta); e sul venue l'ordine di stop e' 2,5 giorni piu' giovane della posizione che protegge. 🚨 MA IL TIMORE E' REFUTATO, e va nel verso OPPOSTO: uno stop che segue il prezzo si allontana dal mercato, quindi scatta MENO. Alla cadenza che gira (1h) gli episodi su storia reale sono 0-1 contro 1 del pavimento, mai piu' di 1 in 30 giorni; e nell'outage — l'unico scenario per cui il bracket esiste — il ri-ancoraggio e' SPENTO per costruzione (nessun giro, nessun ri-piazzamento) ⇒ un episodio solo. Il 37,5% resta il costo di un episodio singolo, il margine 1,33× e' quello vero, la gamba di WORST-DAY REGGE. 🚨 Due cose indipendenti da k, da sapere comunque: (i) il nome inganna"disaster-SL 30%" suggerisce un massimo di perdita per trade che non esiste: su cicli a ingresso proprio il rotolante lascia passare perdite oltre 30% senza scattare nel 0,03%/0,96-2,84%/7,22-13,33% dei cicli (24h/7g/30g) e il peggior DD dall'ingresso e' 60,6% BTC / 61,5% ETH; (ii) 🚨 TRAPPOLA VIVA: l'accumulo e' funzione della CADENZA DEL CRON, e il docstring di book_execute.py prescrive "ogni ~230 minuti" mentre il cron gira OGNI ORA — chi "correggesse" la cadenza verso il docstring sposterebbe il libro sulla riga 4h, dove BTC RADDOPPIA gli scatti (2 contro 1; a 24h ETH arriva a 5). Il docstring e' sbagliato e la configurazione che gira e' quella giusta. ⚠️ Limite dichiarato: 0 ri-ancoraggi verso il BASSO osservati su 3 — 2 mesi di vita del libro in un solo regime (BTC ~$66,5k → ~$78,6k), mai un calo del mark >4,76% con posizione aperta. La simmetria e' un fatto di CODICE (un solo abs(), esercitato in entrambi i versi), non un fatto OSSERVATO: la prima osservazione utile arriva al primo ribasso >5% con posizione aperta. Seconda soglia dichiarata: il fallback dell'equity oggi scatta 0 volte su 1.442 giri; sopra il 2% dei giri in 90 giorni il libro girerebbe a leva mista e g(k) smetterebbe di descriverlo. REGOLE NUOVE: (a) una data in un gate va giustificata col COSTO della misura, non con la sua difficolta' percepita — due gate d'attesa eliminati in una sera perche' nessuno aveva contato i secondi; (b) una verifica esterna a €0 va fatta PRIMA di qualunque misura che ne dipenda, e si fa sul venue, non sul sito di chi la dichiara; (c) un gate superato non e' un numero confermato: differenze e livelli ereditano la fortuna d'ancora in modo diverso; (d) un veto d'integrita' sorveglia l'asse su cui e' stato scritto — contare se il dato c'era non dice quanto del giorno copriva; (e) una regola operativa va provata contro il codice che dovrebbe eseguirla, o si discute per mesi di un knob che non esiste; (f) quando due stimatori di coda non concordano si cita la banda, non quello che conviene.

  • 🌊 QUINTA ONDATA 2026-08-23 (12 filoni + critico di chiusura, research/wave-0822) — 0 candidati su 57 filoni cumulativi, 1 candidato scoperto GIA' IN PRODUZIONE SENZA GATE, il gradino di leva delimitato, e un critico che ha falsificato due sue attese e tre miei numeri. Diario docs/diary/2026-08-23-wave-chiusura-critico.md; registro docs/research/RESULTS-0822.md §46-57; 17 script scripts/research/r0823_*.py (15.443 righe, compilano tutti, ognuno gira da solo). Libro, pesi, cron, config INVARIATI. 🚨 (1) IL RISULTATO PIU' IMPORTANTE NON E' UNA STRATEGIA NUOVA: E' CHE LA PIU' FORTE GIA' MISURATA GIRAVA SENZA GATE. §50 cercava il miglior TERZO sleeve eseguibile a $635: sette candidati, sette muri diversi, e nessuno dei sette e' una soglia di capitale. Il piu' forte — PREVDAY — sta in monitor da giugno senza gate pre-registrato e senza deflated-Sharpe. §54 gliene ha scritto uno (GATE PREVDAY-01, 8/10 condizioni oggi) e le due che mancano sono la stessa cosa: 🚨 la cella che GIRA non e' quella che la selezione onesta sceglie (e la cella viva fallisce il DSR, 0,905), e la selezione onesta compra il libro LONG-FLAT — cioe' butta via proprio la gamba per cui PREVDAY fu promosso. La serie e' intatta, 1512 barre su 1512 (e' il monitor sano, quello che il difetto advance() non tocca) ⚠️ ma la finestra e' 0,172 anni → MDE 4,72 di Sharpe: il +2,11 forward non e' distinguibile da zero su 26 ENTRY. Qualunque cosa il gate decida, non puo' appoggiarsi al numero forward. 🚨 (2) IL GRADINO DI LEVA E' DELIMITATO: 1,25x REGGE, 1,50x E' BOCCIATO, k max difendibile 1,40. §53 lo attacca 6 volte col funding dentro: 5/6 falliscono; il 1,50x cade sul peggior giorno strutturale (21,48% > 20%). L'incrinatura e' il ramo eq_fallback, dove la scala non apre il buco: lo MOLTIPLICA. Aritmetica dei tetti verificata sul config che GIRA, 3/3 al centesimo: disaster-SL ⇒ k ≤ 1,67 · peggior giorno ⇒ k ≤ 3,49 · scettico ⇒ k ≤ 1,40. (3) TRE MECCANISMI DI PROTEZIONE REFUTATI, E DUE PER LA PREMESSA. TAIL-HEDGE (§46): la premessa cade prima del prezzo — il maxDD SALE in 162/162 celle, a ogni lente di f (f=1,00 regalato compreso), perche' il beta del libro al sottostante e' +0,076: non si assicura un libro che nei crash e' gia' quasi piatto. TP01-TWIN (§49): un ensemble di definizioni di trend protegge PEGGIO — 0/24 ancore nei 4 anni recenti, 3,2x peggio nel 2022, 0,127 di Sharpe hold-out; e i meccanismi non erano ridondanti (corr di posizione 0,61): la ridondanza non era il problema. ANCHOR-ENSEMBLE (§47): eseguibile, ma su TP01 il drift non puo' cambiare per algebra (lordo_ens == media(lordi), residuo 1,4e-17); il segnale c'e' su SKH01 (+0,312 di Sharpe mediano, maxDD 23,3%→16,6%) ma dentro il libro non si distingue da zero. 📌 (4) IL LEAD DELLO SPOT MUORE DOVE SERVIREBBE. §52 lo attacca sei volte: 5/6 falliscono, e cio' che morde non e' nei numeri — e' nella taglia a cui vengono spesi. Regge a $600, si annulla a $272k: sparisce esattamente al muro che pretende di spostare. (5) IL COSTO D'ESECUZIONE ENDOGENO NON MORDE (§55): muro +0,6% (dentro la risoluzione MC), saturazione a $9,5-10M = 30x sopra, e il fatto trovato per strada — alla taglia di oggi il costo mancante ha SEGNO NEGATIVO: il drift a $635 e' 13 bps/anno piu' basso che a $5.000 per il pavimento min_order $5, ~2x quello che lo slippage costa da $313k a $1M, in direzione opposta. Il conto piu' preciso non muove il muro: sposta il segno dell'errore, e a questa taglia lo sposta a favore. (6) DUE CHIUSURE DI FAMIGLIA. VOLVOL (§48): la volatilita' del DVOL e' davvero una variabile NUOVA (ortogonalita' PASS, max |corr| 0,396) ma guarda INDIETRO — picco a lag 5/10, parziale con la vol futura NEGATIVA: un secondo momento non e' automaticamente informazione anticipata. ⚠️ Ma il filone lo chiude su una branca dove dichiara esso stesso un fattore 44 sotto l'MDE: e' un'etichetta piu' forte della misura. XS-AMPIEZZA (§56): su 11 gambe la caduta NON era ampiezza — solo il 14%: e' selettivita' (recuperabile, ma sotto l'MDE) piu' un IC che su quelle gambe vale ZERO. 🚨 E k=5 non e' invariante di scala: il numero di gambe per lato di XS01 e' tarato su 19 gambe, non e' una proprieta' del meccanismo. 📌 (7) SOLO 2 FONTI SU 10 MERITANO DI ESSERE RACCOLTE (§51): la catena USDC (+18% di chiamate, non +90%) e una campagna a termine di book depth. Il criterio di ricostruibilita' ne uccide 4 da solo — se lo puoi ricostruire domani, non raccoglierlo oggi. ⚠️ (8) ERRORI MIEI, corretti dentro l'ondata (tutti numeri gia' pubblicati, due in questo file): (a) "la convinzione di TP01 sta spesso a 1/3 o 2/3"falso, tsmom_blend media tre np.sign() → direzione in {0, 1/3, 1} dopo il clip: il bucket 2/3 NON ESISTE, la famiglia ha UN grado di liberta'; trovato indipendentemente da due agenti. (b) catena USDC "+90% di chiamate"+18% (i 587 erano il conteggio grezzo, senza il filtro OI≥100 del collettore; al venue: 113 USDC contro 649 inverse). (c) "le opzioni BTC sono fuori a $3.000 per il lotto" → quello e' il collaterale per VENDERE; comprare costa il premio (min_trade_amount 0,01) e il muro vero e' il TICK da 5,00 USDC (una put che vale 0,82 non e' quotabile sotto 5 = pavimento di prezzo 6x). (d) "il gradino vale +1,8a / +€164" — era la lettura a muro FERMO, convenzione mai dichiarata; a muro mobile fa +2,98a, e le due distano 1,2 anni. (e) "la coda muove k* di 1-2 unita'"4,6. 🚨 (9) IL CRITICO DI CHIUSURA (§57) — repliche 6/6, ma tre numeri di testa vanno riscritti. Ha riprodotto con macchineria propria i quattro muri al dollaro, il funding (2,1597%/anno, e da implementazione indipendente TP01 2,138% con rapporto condizionale 1,93x/2,58x), il dShFULL di §42 (0,4502) e che il muro E' esattamente prelievo/perpetua su 4 lenti su 4 — il nucleo quantitativo dell'ondata regge. Le tre cose che cambiano — la banda del muro, «N/N ancore» = ~2 osservazioni e il 1,50x bocciato — sono gia' scritte nei bullet a cui appartengono, sopra. In piu': tre baseline diverse sotto lo stesso nome «libro 75/25» (hourly 1,683/11,22% = la lente di ogni muro e traiettoria · canonical 1,800/9,56% · mediana d'ancora 1,626/10,4%) — spread 0,12 di Sharpe e 1,7pp di maxDD, piu' grande di quasi tutti gli effetti che l'ondata misura, quindi un Δ accostato al baseline sbagliato cambia piu' del Δ: ogni numero va scritto con la sua lente attaccata. ⚠️ E il pilastro del canale funded (§21, XS01 fuori campione) ha effetto +1,12 contro un MDE di 1,13: sta esattamente al proprio limite di rilevabilita', e viene propagato fino a P(≥50 €/g) come se fosse noto a due cifre. (Equita': §21 gira anche un null di permutazione a fee zero, p=0,013, che ha piu' potenza del t-stat — il problema non e' «nessuna evidenza», e' la precisione attribuita al livello.) A credito dell'ondata: quattro auto-correzioni in 24 ore (§45 falsificato da §52; §39 falsificato lo stesso giorno; la regola «overlay non causale» ritirata; «dealer_net_gamma e' il GEX invertito» ritirata leggendo il sorgente). E' il dato piu' sano dell'ondata. 🚨 (10) LA RISPOSTA AL MANDATO, in una sola unita' (€/giorno a $635): gradino di leva 1,25x +0,046 · lead SPOT +0,017 · PREVDAY al 15% de-luckato +0,014 · BIN-FREQ +0,011 · MAKER +0,005 · funding (costo scoperto) 0,023. Somma di TUTTI i lead positivi, se fossero autorizzati e additivi (non lo sono, e nessuno e' eseguibile oggi): +0,036 €/giorno. Sullo stesso motore e sugli stessi percorsi: €250 → €500 al mese porta P(20a) dal 14% all'85% e la mediana da 23,4 a 17,3 anni. VERDETTO DELL'ONDATA: NIENTE CHE AVVICINI I 50 €/GIORNO. Ha prodotto (i) un costo gia' in essere che porta P(20a) a €250/mese dal 49% al 14% (il funding), (ii) quattro monitor rotti che avrebbero fatto decidere un gate al contrario, (iii) un punto singolo di guasto nella rete di sicurezza (il trasporto degli allarmi), (iv) tre lead reali tutti bloccati da qualcosa che non e' la ricerca. Il suo valore e' DIFENSIVO ed e' reale: ha impedito decisioni sbagliate. E nulla di sepolto sotto uno «SCARTATO» merita di essere riesumato: il candidato piu' forte non promosso vale +0,014 €/g de-luckato e gira la cella sbagliata. 📌 La riga che chiude cinque ondate e 57 filoni: la ricerca ha smesso di essere il vincolo binding il 26/07, e ora cinque ondate lo hanno CONFERMATO invece che ribaltarlo. I vincoli binding restano due: il capitale che entra e il conto che non sparisce.

  • 🌊 SESTA ONDATA 2026-08-23 (12 filoni, §58-69, research/wave-0822) — 0 candidati su 69 cumulativi, 1 finding che riguarda l'OBIETTIVO stesso, 2 appoggi tolti a decisioni gia' prese. Registro docs/research/RESULTS-0822.md §58-69 + sezione di sintesi in fondo; 12 script scripts/research/r0823b_*.py. Libro, pesi, cron, config INVARIATI. ⚠️ PROVENIENZA DIVERSA DA OGNI ALTRA ONDATA, e va detto per primo: la sessione si e' chiusa dopo che gli agenti avevano scritto gli script e prima che i verdetti fossero consolidati — le 12 righe restarono _in corso_ e i messaggi finali degli agenti sono persi. I verdetti pubblicati non vengono da quei messaggi: vengono da una RIESECUZIONE dei 12 script (07:38-08:06 UTC, sequenziale; log in logs/r0823b/, che e' gitignored ⇒ il registro e' l'unica copia versionata). 📌 La regola del 26/07 — un numero pubblicato deve avere uno script committato che lo riproduce — e' cio' che ha impedito la perdita dell'ondata. Estensione: un'ondata interrotta si recupera solo se ogni script calcola il proprio verdetto a RUNTIME, non se il verdetto vive nel messaggio dell'agente. 🚨 (1) §58 — L'OBIETTIVO DEL PROGETTO HA DUE DEFINIZIONI OPERATIVE IN USO, E DANNO 33,9% CONTRO 0,33% SULLA STESSA DOMANDA. A FLUSSO (quanto esce al mese: la lente del canale funded) il massimo a 36 mesi e' 33,9%; a RICCHEZZA SOSTENIBILE (la lente dei muri e del piano) e' 0,33%. Per cinque ondate i due corpi di lavoro sono stati confrontati come se parlassero della stessa cosa. E l'ottimo di P(>=50/g) non e' l'ottimo di J: 37,3% contro 13,9% alla leva argmax-J. Il libro di oggi a 36 mesi: mediana 0 EUR/g di flusso (non preleva), capitale mediano $22.467 = 3,59 EUR/g di rendita. REGOLA: un obiettivo si dichiara nella sua definizione operativa PRIMA di ottimizzarlo — qui due definizioni entrambe difendibili differiscono di cento volte. 📌 (2) §61 — la politica di ri-acquisto dei biglietti era CABLATA e mai dichiarata come scelta (compra subito, il piu' grande, in tutti e 6 gli slot, con qualunque soldo): e' la piu' aggressiva della famiglia, e da li' escono TUTTI i numeri del canale funded. Mappata la famiglia (7 tempi x 2 taglie): il massimo di famiglia E' il cablato (4,0%), spread 4,05pp, prezzo della prudenza 4,05pp di bersaglio per 2,05pp di rovina; «solo dai payout» non vincola nulla a $654 (dopo il primo biglietto restano $75, sotto il piu' economico). La riga che il filone stampa da solo: ottimizzare la politica vale +0,00 EUR/g, versare EUR 500/mese ne vale +15,75. 🚨 (3) §67 — IL MURO DI TAGLIA NON NASCONDEVA NIENTE, e il perche' e' metodologico: a $100.000 nessun archiviato passa, non perche' sia stato ricontrollato ma perche' i gate pubblicati erano GIA' calcolati sulla serie MODELLATA, che e' il limite a capitale infinito. Censimento 14 voci, 12 con un rifiuto ANCHE sull'edge; delle 2 in cui la taglia era l'unico motivo nessuna e' una strategia (XS01, GTAA01). Muri di taglia caduti 5 su 14, tutti nell'ondata 22-23/08. ⚠️ Cio' che TOGLIE: il gate pre-registrato XSR01 del 23/10 legge un monitor tarato sul pavimento del venue SBAGLIATO — C* vero $15.000-20.000 contro i ~$3.000 riportati da HL-EXEC con un criterio piu' permissivo. Decisione dell'operatore: riscrivere la soglia adesso, dichiarando che la si riscrive prima di vedere l'esito, oppure lasciarla e citare il difetto alla decisione — non c'e' una terza via pulita, e toccarla guardando l'esito sarebbe selection-on-holdout. 🚨 (4) §64 — LE DUE SUPERFICI OPZIONI SONO LA STESSA SUPERFICIE a strike appaiati, su entrambi gli assi (prezzo equo identico per costruzione; mezzo-spread Δ 0,21/0,38 pp; f_venue Δ +0,005/0,011) ⇒ la raccomandazione di §51 (raccogliere la catena USDC, +18% di chiamate/giro) NON e' giustificata dalla ragione che porta: il f di VRP01 misurato sull'inverse non e' «il numero della famiglia sbagliata», e' lo stesso numero. ⚠️ (5) §60 — la politica multi-conto MISTO, scelta il 25/07, NON e' piu' l'ottimo: oggi vince MISTO-A (P(>=50/g) 9,27% contro 6,60%) su 288 celle; mediana 0,00 EUR/g in tutte e sei. 🚨 (6) §63 — IL FORFAIT 33% E' LA CASELLA SBAGLIATA per i payout di una prop firm: il trader non possiede il conto ne' le posizioni ⇒ nessun realizzo di cripto-attivita', e c-sexies (33%) e c-quater (26%) sono ENTRAMBE fuori categoria; le fonti convergono su LAVORO AUTONOMO e nessuna prassi ufficiale esiste. La conclusione di §37 regge su tutta la banda; il costo della questione vale 8,21 EUR/g fra i due estremi. 📌 Domanda NUOVA al commercialista, DIVERSA da quella aperta il 07/08 sui derivati. ⚠️ (7) §69 SCETTICO — replica (3,4% contro il 2,6% pubblicato) e poi toglie precisione: SE del drift di XS01 9,6%/anno ⇒ a 1 SE P(>=50/g) 1,6%; morte-firm da evidenza pubblica 12-19%/anno contro il 10% assunto (EV regge, break-even >55%); max-J dal puro rumore su 360 celle 0,069 contro 0,303 osservato. Raccomanda di non cambiare nulla. 🚨 E il pattern conta piu' del singolo numero: 42% → 7,8% → 4,4% → 2,6% → 1,6% a 1 SE. Ogni volta che il numero del canale funded e' stato misurato meglio e' SCESO, e non ha ancora smesso. E' la firma di un numero che vive di ottimismo non ancora misurato, non di una stima che converge. (8) GLI ALTRI CINQUE, tutti negativi. §59 a regime servono 4 conti da $100k (i cap di 2 firm) e P(>=50/g) SATURA all'87%non e' una rendita, e' una scommessa ingrandibile ma non rendibile affidabile; da EUR 635 1,78 EUR/g mediani. §62 la frazione del versamento verso i biglietti e' segnale sul FLUSSO (+16,3 pp, risoluzione MC 1,0) ma 0,0 pp sulla RENDITA e +12,4 pp di P(sotto il versato). §65 la forma della curva dei datati e' un grado di liberta' nuovo (scorrelato dal funding, A2 confermata piu' forte dell'atteso) e non predice nulla: 0 candidati su 4 rami, DSR 0,108, roll 0,49%/anno = l'ordine del premio. §66 cross-venue: 2 celle su 8 sopra la propria MDE, manca un fattore 6,5x (16,2x per l'arbitraggio), e per entrare si attraversano gli stessi due book che generano lo scarto. §68 il paniere dei quasi-passati fa FULL 1,822 / HOLD 1,323 ed e' al 100° pctl contro gli scartati netti, ma DSR 0,828-1,000 secondo la PARTIZIONE (lo stesso difetto del 22/08, applicato al paniere che dovrebbe superarlo) e dipende da UNA gamba (PREVDAY). ⚠️ (9) UN FILONE E' MORTO SU UN BUG E LA CORREZIONE E' DEL COORDINATORE, non dell'autore. r0823b_quasi_passati.py terminava con IndexError: Boolean index has wrong length: 958 instead of 2720Griglia.combo() indicizzava con self.idx (l'unione) un sottoinsieme di righe. Corretto col parametro idx esplicito piu' un controllo di lunghezza; la rinormalizzazione e' riga per riga, quindi i valori sono quelli dell'intento dell'autore. Il verdetto di §68 va letto sapendo su quale codice gira. 📌 (10) LA RIGA DELL'ONDATA. Dodici filoni, zero candidati, nessun EUR/giorno prodotto: il valore e' interamente DIFENSIVO (§67 e §64 tolgono due appoggi, §69 toglie precisione, §60 toglie un ottimo). Con questa sono 69 filoni e 0 candidati promossi. La ricerca ha smesso di essere il vincolo binding il 26/07 e sei ondate lo hanno CONFERMATO invece che ribaltarlo; previsione verificabile registrata: la 70ª dara' la stessa risposta. I vincoli binding restano il capitale che entra e il conto che non sparisce.

  • 💡 EVITARE IL FUNDING — datati SCARTATI, ma lo SPOT e' un LEAD e la domanda fiscale vale piu' del risparmio (2026-08-23, r0822e_funding_avoid.py). Registro §39. Libro/pesi/cron/config INVARIATI. Primo filone della sessione che poteva restituire drift invece di toglierlo. Il segnale resta CONGELATO (TSMOM 30/90/180, vol-target 20%): cambia solo lo strumento.

    variante ShFULL ShHOLD drift Δdrift muro
    A) perp (oggi) 1,513 1,154 17,08% $325,0k
    D) TP01 datato + SKH01 perp 1,507 1,118 17,53% +0,47% $319,5k
    E) TP01 SPOT + SKH01 perp 1,649 1,203 18,63% +1,55% $289,6k (10,9%)
    F) nessun carry (irreale) 1,692 1,214 19,24% +2,16% $276,6k
    DATATI: NON CONVIENE. La tesi condizionale regge (funding condizionale 1,94×/2,59×
    l'incondizionato — replica indipendente del 1,86-2,55× — contro basis 1,47×/1,66×: in
    livello i carry sono identici, il datato vince solo perche' si riprezza meno), ma il
    vantaggio e' tutto 2019-2023, ~0 o avverso dal 2024 → ShHOLD 0,034 negativo a 0/23 offset e
    gate iso-volatilita' FALLITO. SKH01 sui datati peggiora (turnover 48-57×/anno contro
    6,6-8,4× di TP01 → lo stesso mezzo spread gli costa 7 volte tanto).
    💡 LEAD: lo strumento a carry ZERO esiste ed e' lo SPOT (BTC_USDC/ETH_USDC, taker 0,0
    oggi, min 0,0001). TP01 e' long-flat e supera 1,0× nello 0,102% dei giorni → il tetto non morde;
    +1,55%/anno di drift a volatilita' IDENTICA (supera il gate iso-vol), muro 10,9%.
    ⚠️ NON e' un candidato, tre ragioni dichiarate: (a) SKH01 non e' esprimibile sullo spot
    (long/short); (b) la fee 0 e' dichiarata temporanea e fee_watch non sorveglia lo spot
    se sparisse, 13% del vantaggio (misurato); (c) 🚨 **la domanda fiscale aperta vale PIU' del
    risparmio**: se i derivati sono c-quater (26%) e lo spot c-sexies (33%), **7 punti su un CAGR
    del 17,9% = ~1,25%/anno**, cioe' piu' di quello che lo spot porta → **la domanda al
    commercialista viene PRIMA di qualunque prova**, ed e' la stessa gia' aperta dal 07/08.
    🚨 MURO EREDITATO FALSIFICATO (correzione a §34, scritto poche ore prima): *"tutti i futures
    datati Deribit sono INVERSE, non esiste una linea USDC datata"* e' FALSO — esistono **16 datati
    USDC su BTC/ETH** (il piu' vecchio BTC_USDC-25SEP26, creato 2026-05-07), taker **identico al
    perpetual**, min 0,0001 BTC / 0,001 ETH. Verificato con GET pubblica. **La svista e' di
    NAMESPACE:** get_instruments?currency=BTC non li ritorna, stanno sotto currency=USDC
    e il coordinatore ha commesso la stessa svista al primo controllo, ottenendo 0. **Il muro vero e'
    un altro: 3,5 mesi di vita e ZERO roll trimestrali mai eseguiti.** *(6ª volta nell'ondata che
    l'eseguibilita' non e' il vincolo.)*
    📌 **REGOLA: il carry si misura sul LOG del rapporto dei prezzi, mai sulla media aritmetica delle
    differenze** — quella contiene (var A var B)/2, che qui vale **1,48%/2,60% l'anno = 2-4×
    l'effetto cercato**. Controllo che lo rende visibile: col metodo aritmetico il perpetual
    "sovra-rende" il proprio indice di +0,4/+0,5%/anno, col log ~0. **Stessa forma della regola UCITS
    del 26/07**, in veste nuova.
    ⚠️ BUG in famiglia gia' nota, e NON visto dal numero: fund_*.parquet etichetta l'indice
    all'istante T, al.get(a,'1h') la barra all'inizio → appaiarle sfasa di un'ora
    (corr 0,996 al lag +1, ~0 al lag 0), gonfia la sd della base da 8 a 68-86 bps e produceva un
    finto +0,32%/anno nel verso atteso. 📌 **Si e' visto dalla VOLATILITA' (+1,07pp su una strategia
    identica), non dal numero.** Il pezzo vero vale +0,07%/anno. **REGOLA: due serie temporali dello
    stesso progetto possono avere convenzioni di etichettatura diverse — verificare col LAG, non
    fidarsi dell'indice.**
  • Sweep "strategie alternative" (2026-06-20) — 104 ipotesi / 153 agenti / NIENTE di nuovo regge. Ricerca onesta a largo spettro su BTC/ETH+DVOL (harness condiviso vettoriale leak-free scripts/research/alt/altlib.py, 104 script in scripts/research/alt/runs/): 11 famiglie (breakout, trend non-TSMOM, mean-rev gated, DVOL/vol, cross-asset pairs, stagionalità, overlay rischio, opzioni modellate, microstruttura, ML walk-forward, combo). 16 promettenti, 1 sola sopravvissuta alla verifica avversariale (3 scettici) e comunque NON deployabile. Conferma forte del soffitto ~1.3: ogni PASS era hold-out-fitting o TP01/TSMOM travestito (trend-beta del toro). Unico LEAD: STA05 (EWMA-cross ensemble, long-short) — leak-free, plateau, corr hold-out 0.53 a TP01, il blend 0.75·TP01+0.25·STA05 alza l'hold-out 0.31→0.59 (full 1.30→1.24, DD 14→16%); MA hold-out corto (536g) → forward-monitor, non sleeve. Lezione harness: valutare lo Sharpe MARGINALE vs baseline TP01 (non assoluto) + esigere plateau e jackknife drop-one-month sull'hold-out prima di PASS (hanno ucciso 13/14 falsi positivi). Diario 2026-06-20-alt-strategies-100agent-sweep.md.