a2f1b960ec
Decorrela bene (corr 0.06 col MASTER, smentisce il timore ridondanza) ma beneficio OOS nullo (Sharpe 8.58->8.56, DD 1.36->1.40); migliora solo FULL DD 3.96->3.73. Non deployato (wiring + simulato per guadagno OOS nel rumore). Gate riusabile committato. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
77 lines
4.7 KiB
Markdown
77 lines
4.7 KiB
Markdown
# 2026-06-08 — Ricerca multi-agente: dispersion / correlation index (165 agenti)
|
||
|
||
Workflow `dispersion-correlation-research` (run wf_72edef49-6d9): 60 celle esplorate
|
||
(15 famiglie × 4 finestre di correlazione W=24/72/168/336), 165 agenti totali, ~10M
|
||
token, verifica avversariale a 2 skeptic su ogni candidato robusto + sintesi.
|
||
|
||
Infrastruttura riusabile: `scripts/analysis/dispersion_lab.py` — feature REALIZED
|
||
causali (avg pairwise correlation, dispersione cross-sectional, beta vs indice EW,
|
||
componente idiosincratica `rel_A = ret_A − ret_idx`), universo 8-asset, finestra
|
||
comune dal 2022-07-22, cache su disco, no-look-ahead verificato. NB: **niente
|
||
implied** (opzioni non backtestabili — stesso muro ARGO/GEX).
|
||
|
||
## Esito: 2 edge confermati su 60, 13 famiglie su 15 sono RUMORE
|
||
|
||
Nessun look-ahead "hard" stile-squeeze (le feature hanno retto la perturbazione del
|
||
futuro ovunque). Il fallimento dominante è **overfit/concentrazione di regime**, non
|
||
leakage. Tre pattern ricorrenti di falso positivo:
|
||
1. **OOS circolare**: le feature esistono solo dal 2022-07 → lo split OOS (ultimo 30%)
|
||
cade nel bull/calm 2024-25 (il regime che il progetto documenta come ottimistico
|
||
~50%); FULL≈OOS non era robustezza ma "quasi tutti i trade in OOS".
|
||
2. **Il gate corr/disp non è quasi mai load-bearing**: in ablazione, togliere il gate
|
||
spesso MIGLIORA i numeri → è un throttle di esposizione, non alpha (e Hurst-guard +
|
||
EXIT-16 fanno già quel lavoro).
|
||
3. **Riconferma del prior**: l'edge è sempre mean-reversion del residuo, mai
|
||
momentum/continuation/breakout cross-sectional.
|
||
|
||
## I 2 edge reali (entrambi fade del residuo idiosincratico)
|
||
|
||
- **`index_comp_disp` W=168 (BTC)** — il vero "dispersion-trading realizzato": fade
|
||
della componente idiosincratica estrema verso l'indice, **gated da alta dispersione**
|
||
(`disp_168 ≥ quantile 0.7`). rel_len=12, z_thr=1.5, TP=1.0·ATR, SL=1.5·ATR, mb=24.
|
||
FULL +63% / OOS +36% (fee0.2% +23%), win 66%, Sharpe 2.7-3.0, DD 7-9%, 5/5 anni.
|
||
È l'UNICA famiglia dove il gate dispersione fa davvero qualcosa.
|
||
- **`rel_idio_fade` W=24** — fade dello z-score di `rel_A` su 24h, exit a tempo (no
|
||
TP/SL). Cella più pulita BTC z3.0 mb12: win 58.5%, Sharpe 4.40, DD 7%, OOS +98%.
|
||
Più forte ma è quasi MR07 ri-etichettata in chiave cross-sectional.
|
||
|
||
Script preservati: `scripts/analysis/dispersion_edges/{index_comp_disp,rel_idio_fade}.py`.
|
||
|
||
## Raccomandazione: bassa priorità
|
||
|
||
**Entrambi sono fade-BTC mean-reversion → sovrapposti alle fade MR già deployate.**
|
||
P(migliora PORT06): ~20-25% per index_comp_disp, ~15-20% per rel_idio_fade. Vale la
|
||
**lezione FR01** (robusto-individualmente ≠ migliora-il-portafoglio: FR01 era robusto
|
||
e causale ma diluiva PORT06 OOS Sharpe 8.89→8.72). index_comp_disp ha il profilo trade
|
||
più distinto (win 66%, hold corto, TP vicino) → è l'unico che merita eventualmente un
|
||
gate `combine_v2`/PORT06 formale, misurando corr col MASTER e ΔSharpe/ΔDD. Se non
|
||
decorrela, scartare.
|
||
|
||
**13 famiglie rumore** (record in `_disp_scratch/`, gitignored): corr_gate_fade/pairs,
|
||
disp_xs_reversal/momentum, corr_spike_btc, corr_meanrev, beta_disp, disp_regime_rot,
|
||
corr_vol_interact, leadlag_corr, corr_trend, disp_compression_breakout, corr_disp_combo
|
||
— tutte MR/fade ri-etichettate, concentrazione 2024-25, o artefatti di feed morto
|
||
(ADA/LTC 97% candele flat). disp_compression_breakout riconferma la lezione squeeze
|
||
(i breakout rientrano).
|
||
|
||
**Conclusione onesta: nessun nuovo motore di ritorno.** Il dispersion-trading realizzato
|
||
funziona solo come l'ennesima faccia della mean-reversion già sfruttata.
|
||
|
||
## Gate PORT06 del candidato n.1 (2026-06-08) — PROMOSSO MARGINALE, NON deployato
|
||
|
||
`scripts/analysis/dispersion_edges/gate_index_comp_disp.py` (config W=168: rel_len=12,
|
||
z_win=336, z_thr=1.5, disp_q=0.7, TP=1.0ATR, SL=1.5ATR, mb=24; equity daily innestata
|
||
come 18° sleeve, pesi cap):
|
||
|
||
- **Sorpresa positiva**: decorrela DAVVERO. corr daily col candidato: MR01_BTC +0.01,
|
||
MR02_BTC +0.05, MR07_BTC +0.06, DIP01_BTC +0.02, MASTER(EW) +0.06. Il timore di
|
||
ridondanza con le fade BTC era infondato (gate dispersione + TP vicino = profilo trade
|
||
distinto). Standalone 311 trade, FULL +67% / OOS +30%.
|
||
- **Ma beneficio nel rumore**: PORT06 BASE→+DISP: FULL Sharpe 6.43→6.47, FULL DD
|
||
3.96→3.73 (migliora), **OOS Sharpe 8.58→8.56 (−0.01), OOS DD 1.36→1.40 (+0.04)** —
|
||
l'OOS è PIATTO. Passa il gate tecnico ma il guadagno è solo nel FULL (regime storico).
|
||
- **Decisione (utente): documenta e rimanda.** NON deployato — wiring (nuova Strategy+worker,
|
||
famiglia DISP, peso cap) + resterebbe simulato (no executor), per un beneficio OOS nullo.
|
||
Gate script committato e pronto: riprendere SOLO se si costruisce una famiglia DISP più
|
||
ampia (più asset/sleeve) che insieme sposti l'OOS. Esito ~20% previsto, confermato.
|