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>
52 lines
2.7 KiB
Markdown
52 lines
2.7 KiB
Markdown
# 2026-06-10 — XS01 dispersion-gate: PROMOSSO e LIVE (entry solo con dispersione da fare rientrare)
|
||
|
||
## Domanda
|
||
|
||
L'edge di XS01 (reversione cross-sectional 8 asset) era concentrato (2025 domina,
|
||
2023 quasi piatto) e cost-sensitive. La reversione cross-sezionale va accesa solo
|
||
quando c'e' dispersione da far rientrare?
|
||
|
||
## Metodo (anti multiple-testing): `scripts/analysis/xs01_dispersion_gate.py`
|
||
|
||
3 feature di regime CAUSALI calcolate dallo stesso panel closes (nessun feed
|
||
esterno): `g_disp` = std cross-section del momentum lb (la grandezza che si fada),
|
||
`g_corr` = correlazione media pairwise 72h (identita' della varianza dell'indice),
|
||
`g_vol` = vol BTC 168h. Diagnostica per quintili (quintili dal TRAIN, 70/30) sul
|
||
net per-trade dell'engine canonico NON gateato, TRAIN e OOS separati: si procede
|
||
solo con relazione monotona e concorde nelle due finestre.
|
||
|
||
## Esito diagnostica
|
||
|
||
- **g_disp: monotona e concorde** — Q1 NEGATIVO (−10 bps TRAIN / −8 OOS) →
|
||
Q5 +26/+280. Senza dispersione i trade sono solo fee. PROMOSSA.
|
||
- g_corr e g_vol: non monotone / segno incoerente → BOCCIATE (niente fishing).
|
||
|
||
## Gate (sweep soglie = percentili TRAIN, side dal TRAIN)
|
||
|
||
Plateau pieno p30-p70, niente picco: TRAIN Sh 1.51 → 2.0-2.3, OOS Sh 5.73 →
|
||
6.2-7.5. Scelta **p50 (disp_min = 0.0313)**, ~47% delle ore aperte:
|
||
|
||
- Standalone: trade 1427→859 (−40% turnover → meta' fee), win 50→53%,
|
||
**Sharpe 2.50→3.46**, DD 16.2→15.8%. **Ogni anno migliora**: 2022 +34→+40,
|
||
2023 +6→+28, 2024 +21→+44, 2025 +225→+237, 2026 +85→+108 — risolve la
|
||
concentrazione, il punto debole della validazione originale.
|
||
- Fee stress 2x (0.20% RT/book): OOS Sh 6.76 — la cost-sensitivity e' mitigata
|
||
(il gate taglia proprio i trade che pagavano fee senza edge).
|
||
- **Gate PORT06** (swap equity sleeve): FULL Sh 7.34→7.41 DD pari,
|
||
**OOS Sh 10.07→10.37 DD 1.48→1.47** → PROMOSSO (criterio standard).
|
||
|
||
## Implementazione (solo path LIVE, come trend/hurst sulle fade)
|
||
|
||
- `src/live/xsec_worker.py`: param opzionale `disp_min` (None = off), check in
|
||
`_open_book` su `nanstd(logC[i] − logC[i−lb])`. Default off → la validazione
|
||
`validate_xsec_worker` (replay == backtest) resta esatta.
|
||
- `src/portfolio/runner.py`: pass-through di `disp_min` (il runner costruiva il
|
||
dict params esplicitamente e l'avrebbe perso).
|
||
- `scripts/portfolios/_defs.py`: `disp_min: 0.0313` nella spec XS01.
|
||
- Il backtest canonico (`build_everything`) resta NON filtrato → il live fara'
|
||
meglio del backtest, coerente con le altre guardie.
|
||
|
||
Unit check: gate blocca panel piatto / apre panel disperso / default off invariato.
|
||
99/99 test. Nota macro della giornata: FC01 funding-carry SCARTATA
|
||
(diario separato) — il protocollo promuove ~1 idea su molte, come deve.
|