# 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.
