14522262e6
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>
110 lines
6.5 KiB
Markdown
110 lines
6.5 KiB
Markdown
# 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.
|