# 2026-06-19 — Reset: storico certificato da Deribit mainnet, ripartenza pulita Documento di fondazione per la nuova ricerca. Riassume perché la libreria "validata" è crollata, come abbiamo ricostruito e **certificato** lo storico, e quali sono le regole e l'universo dati su cui costruire da qui in poi. Lo storico delle 60+ voci di diario precedenti e tutto il codice/strategie vecchio sono archiviati in `Old/` (non cancellati). --- ## 1. Cosa è successo — la contaminazione L'intera libreria ("+201% / +1238% / +16492% validato OOS") era basata su uno **storico contaminato**. Radice nel codice (`src/data/downloader.py`, ora in `Old/`): la fase "Deribit" veniva pescata da Cerbero col **token TESTNET** (print fantasma) e la fase storica da **Binance/USDT**. Gli edge nascevano da wick fantasma e da entry su estremi di candela mai scambiati. **Binance NON è la verità** (cross-check multi-venue): è denominato USDT, sistematicamente ~10 bps fuori dal consenso, e sotto depeg USDT (mag-2022) fino al **3.16%** lontano dal prezzo USD reale. "Ripulire verso Binance" avrebbe iniettato errore. Il venue più vicino al consenso (0-1 bps) è **Deribit mainnet** — che è anche **dove eseguiamo**: ancora migliore e ancora rilevante coincidono. ## 2. La via scelta — rebuild da Deribit mainnet `scripts/analysis/rebuild_history.py` (TENUTO): ricostruzione da **`ccxt.deribit` mainnet** (pubblico, tokenless). Principi: - **Strumento prezzo**: BTC/ETH → inverse (storia lunga 2018/2019, ~3 bps dal lineare USDC che eseguiamo); alt → lineare USDC (unica opzione, solo dal 2022). - **Base unica + resample**: si scarica un solo TF base (5m) e si derivano 15m/1h → coerenza interna garantita (si valida una serie, non venti). - **Copertura onesta**: major 2018/2019→oggi; alt SOLO dal 2022 (prima non eseguibili su Deribit → backtestarli pre-2022 = validare un mercato che non potevamo tradare). Eseguito su 8 asset → 24 feed (5m/15m/1h) il 2026-06-19. ## 3. Il verdetto — la libreria era artefatto Ri-eseguiti tutti i backtest sul feed pulito con gli engine canonici (ora in `Old/`). **FADE** (6 sleeve, 1h E 15m): tutte NEGATIVE, ogni anno. Es. MR01_BTC −41% (claim +201%), MR01_ETH −25% (claim +1238%), MR02_ETH −83% a 15m. I numeri 15m coincidono col check mainnet indipendente del 18-06 → due path-dati separati, stessa conclusione. **Intera libreria** (`report_families.py`, ora in `Old/`): ogni portafoglio profondamente negativo (MASTER Sharpe −2.3…−3.0, DD ~40%; il claim "Sharpe ~5, ogni anno positivo" è falso). - ☠️ **FADE / PAIRS / XS01 / TSM01**: morti o inerti. Il flagship PR_ETHBTC e il blend 15m deployato live sono negativi ogni anno. - 🟡 **HONEST** (TR01 volatile, DIP01 marginale) e **SH01** (specie ETH, 5/6 anni +) mostrano segnale residuo — ma NON bastano a rendere positivo alcun portafoglio, e vanno distinti da fortuna di regime. Sono gli UNICI candidati a sopravvivere a una ri-validazione seria. ## 4. La certificazione dello storico `scripts/analysis/certify_feed.py` (TENUTO) — suite read-only, 4 blocchi: 1. **Integrità**: 24/24 feed OK (zero violazioni OHLC, NaN, prezzi≤0, dup; **zero gap**). 2. **Coerenza resample**: 5m→15m/1h ricalcolato == salvato, **maxΔ 0.00 bps**. 3. **Spike**: i pochi sospetti sono crash REALI (COVID 2020, mag-2021, FTX 2022), non contaminazione. 4. **Cross-venue vs Coinbase USD** (venue indipendente, USD non USDT), storia intera per anno: | Asset | median bps | barre >1% | Verdetto | |---|---|---|---| | **BTC** | 2.0–6.4 | 0.0–0.2% | 🟢 certificato pulito, 2018→oggi | | **ETH** | 2.0–6.0 | 0.0–0.2% | 🟢 certificato pulito, 2019→oggi | | SOL | 4–8 | 0–1.3% | 🟡 pulito da ~2024; 2022-23 rumoroso | | ADA | 9–13 | 0.3–3.5% | 🟡 basis largo persistente | | XRP | — | — | ⚠️ non certificabile (Coinbase delistò XRP 2021-23, causa SEC) | | LTC / DOGE | 24–36 (2022) | 1–21% | 🔴 divergenti + 50-82% barre flat | | BNB | — | — | ⚠️ non listato su Coinbase + storia da 2024-10 | I max bps su BTC/ETH (889/594) sono singole barre di crash; mediana annua 2-6 bps → **la storia vecchia, dove viveva la contaminazione, è ora pulita contro un venue USD indipendente.** **Illiquidità alt** (barre flat O=H=L=C): BTC/ETH ~0% a 1h; alt pesanti (LTC 5m 82%, run fino a ~3 giorni; DOGE/BNB ~78%). I 5m/15m alt "tradano" un book fermo — spiega a posteriori la fragilità di pairs-su-LTC e XS01. ## 5. REGOLE per la nuova ricerca - **Universo certificato = BTC / ETH**, ogni timeframe (5m/15m/1h). È l'unico dato attivo in `data/raw` (gli alt sono archiviati in `Old/data/raw`). Il guardrail è fisico: `load_data` su un alt solleva `FileNotFoundError`. - **Fonte di verità = Deribit mainnet** (dove eseguiamo). Binance/USDT solo come check, mai come ancora. Aggiornare il dato con `rebuild_history.py`, MAI col vecchio `download_all` (token testnet). - **Metodologia** (CLAUDE.md, invariata): ingresso eseguibile (direzione/prezzo decisi entro `close[i]`, mai entry su estremi di candela), backtest netto fee 0.10% RT, OOS held-out + griglia + sweep fee. **In più, lezione di oggi**: il gate PORT06 full+OOS NON basta — un edge va incrociato con la **liquidità reale** del book e con la **plausibilità del prezzo** (cross-venue), o si finisce per "validare" un book fermo / wick fantasma. ## 6. Stato della ripartenza (cleanup eseguito) - **Archiviato in `Old/`** (git preserva tutto): tutte le strategie, lo stack live (`src/live`, `src/portfolio`, runner/executor, yml, docker), i ~100 script di ricerca/gate, waste/games/portfolios, i dati non certificati + cache, le 60+ voci di diario, le spec vecchie. - **Skeleton tenuto**: `src/strategies/{base,indicators}` (Strategy ABC), `src/fractal`, `src/backtest/engine`, `src/data/downloader` (`load_data`); i 4 tool dati certificati (`rebuild_history`, `certify_feed`, `audit_feed`, `multi_source_check`); dati BTC/ETH; config base; i due summary sui frattali (tesi di ricerca). - **Esecuzione DISABILITATA**, conto mainnet flat. La riorganizzazione è in staging (non committata). ### Code minori rimasti - 3 dir di stato live root-owned (`data/portfolio_paper{,_stats}`, `data/portfolios`) non archiviabili senza `sudo` → spostare a mano in `Old/data/` quando comodo. - `clean_feed.py` (arbitrava verso Binance) è già archiviato — approccio superato. - XRP ri-certificabile solo su venue USD con storia profonda (marginale, non core). - `CLAUDE.md` è in gran parte stale (descrive strategie morte) → va riscritto per il reset.