Files
PythagorasGoal/docs/diary/2026-06-19-deribit-history.md
T
Adriano Dal Pastro 14522262e6 chore(reset): v2.0.0 — storico certificato Deribit mainnet, ripartenza pulita
Reset del progetto su fondamenta verificate dopo la scoperta che l'intera
libreria "validata OOS" era artefatto di feed contaminato (print fantasma del
feed Cerbero TESTNET + storico Binance/USDT).

- Storico ricostruito da Deribit MAINNET (ccxt pubblico, tokenless) e
  CERTIFICATO (certify_feed.py): BTC/ETH puliti su TUTTA la storia
  (mediana 2-6 bps vs Coinbase USD), integrita' OHLC + coerenza resample
  (maxΔ 0.00) + cross-venue OK. Alt esclusi (illiquidi/divergenti: LTC/DOGE
  50-82% barre flat; XRP/BNB non certificabili).
- Verdetto sul feed pulito: FADE / PAIRS / XS01 / TSM01 morti (ogni
  portafoglio Sharpe -2.3..-3.0, DD ~40%); solo SH01 e frammenti HONEST
  con segnale residuo, da ri-validare in isolamento.
- Cleanup "restart pulito": strategie, stack live (src/live, src/portfolio,
  runner/executor, yml, docker), ~100 script ricerca/gate, waste/games/
  portfolios, dati non certificati + cache e 60+ diari -> archiviati in Old/
  (preservati, non cancellati). Diario consolidato in un unico documento.
- Skeleton ricerca tenuto: Strategy ABC + indicatori + src/fractal +
  src/backtest/engine + load_data; tool dati certificati (rebuild_history,
  certify_feed, audit_feed, multi_source_check).
- Universo dati ATTIVO: solo BTC/ETH (5m/15m/1h); guardrail fisico
  (load_data su alt -> FileNotFoundError). Esecuzione DISABILITATA, conto flat.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-19 15:20:59 +00:00

6.5 KiB
Raw Blame History

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.06.4 0.00.2% 🟢 certificato pulito, 2018→oggi
ETH 2.06.0 0.00.2% 🟢 certificato pulito, 2019→oggi
SOL 48 01.3% 🟡 pulito da ~2024; 2022-23 rumoroso
ADA 913 0.33.5% 🟡 basis largo persistente
XRP ⚠️ non certificabile (Coinbase delistò XRP 2021-23, causa SEC)
LTC / DOGE 2436 (2022) 121% 🔴 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.