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>
2.2 KiB
2026-06-08 — Portafoglio live REALE-only: i €2000 ai soli sleeve eseguiti
Decisione utente: il portafoglio live deve mostrare il risultato reale puro. I €2000 si dividono SOLO tra i 14 sleeve che eseguono davvero (6 fade + DIP01 + 5 pairs + SH01); i 3 multi-asset (TR01/ROT02/TSM01), non eseguibili in reale (bloccati dal capitale), escono dal pool e girano solo per statistica.
Implementazione (runner-level, non rompe le definizioni)
portfolios.yml:paper_sleeves: [TR01, ROT02, TSM01].runner: separalive_specs(pool/pesi/ledger) dapaper_specs. I paper:- capitale NOZIONALE fisso =
total_capital / N_sleeve_totali(la fetta equal che avrebbero avuto), NON dal pool; - girano in
data/portfolio_paper_stats/(binario separato); - ticcati per statistica ma MAI in
ledger.update_equity→ non toccano l'equity reale.
- capitale NOZIONALE fisso =
hourly_report: la sezione multi-asset ora leggeportfolio_paper_stats/ed è etichettata "PAPER — solo statistica, FUORI dal conto reale".
Pesi del portafoglio reale-only (14 sleeve, cap)
sum=1.0; non-cappati 0.0873 (erano 0.0647 su 17), PAIRS 0.33 (cap), SHAPE 0.0588 (cap, SH ciascuno 0.0294). Il cap SHAPE resta valido e protettivo anche su 14.
Il costo, misurato e accettato
| FULL Sh | FULL DD | OOS Sh | OOS DD | |
|---|---|---|---|---|
| PORT06 completo (17, validato) | 6.43 | 3.96% | 8.58 | 1.36% |
| REALE-only (14, live ora) | 6.49 | 5.34% | 8.54 | 1.70% |
Perdendo i 3 diversificatori PAPER (corr 0.07), il DD del portafoglio reale sale ~3.96→5.34% FULL e 1.36→1.70% OOS, Sharpe sostanzialmente invariato. È il prezzo di vedere il risultato reale puro invece di una curva mista reale+paper: scelta consapevole dell'utente. I PAPER restano misurati per ri-integrarli quando saranno eseguibili (SH01 è già stato integrato oggi; i multi-asset attendono capitale ~€20k).
Note di transizione
- Il ledger
PORT06(code invariato) ora rappresenta i 14 reali: la curva equity ha una discontinuità di composizione da questo deploy (atteso). - I 3 paper ripartono puliti in
portfolio_paper_stats/con capitale nozionale uniforme (statistica comparabile); i vecchi status inportfolio_paper/restano come storico.