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>
6.5 KiB
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:
- Integrità: 24/24 feed OK (zero violazioni OHLC, NaN, prezzi≤0, dup; zero gap).
- Coerenza resample: 5m→15m/1h ricalcolato == salvato, maxΔ 0.00 bps.
- Spike: i pochi sospetti sono crash REALI (COVID 2020, mag-2021, FTX 2022), non contaminazione.
- 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 inOld/data/raw). Il guardrail è fisico:load_datasu un alt sollevaFileNotFoundError. - Fonte di verità = Deribit mainnet (dove eseguiamo). Binance/USDT solo come check, mai
come ancora. Aggiornare il dato con
rebuild_history.py, MAI col vecchiodownload_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 senzasudo→ spostare a mano inOld/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.