Ondata onesta su angoli non coperti: funding-TS (chiude il filone funding su 3 lati), breadth alt (non-ridondante ma DSR 0.43, rivisitabile con storia), XS-residmom (REDUNDANT), pesi+guardia-DD (EW-STR refutato dallo scettico come selezione-sull'hold-out di 2° ordine, firma best-of-15), VRP-refine (filone esaurito), stagionalità-XS (morta allo step statistico). Lezione codificata: weights_tilt_null + combine_outer in src/portfolio (ogni cambio-pesi vs null di tilt casuali cap-respecting + delta in-sample>=0); 5 test nuovi, suite 165/165. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
4.7 KiB
2026-07-01 — Residual (idiosyncratic) momentum cross-sectional sui 19 major HL — SCARTATO/REDUNDANT
Tesi. STATARB-RESID (thread 4, 2026-06-29) ha mostrato che il momentum del residuo ETH−β·BTC
(β OLS rolling, sgn=+1: le dislocazioni continuano a 1d) passa quasi tutti i gate su 2 gambe,
fallendo solo il deflated-Sharpe (0.929<0.95). Ipotesi qui: portare lo stesso meccanismo
cross-sectional sui 19 major di XS01 — per ogni alt, residuo vs β·BTC (β OLS rolling B), momentum
del residuo (blend z-score [30,90] come XS01 o singolo L), long top-k / short bottom-k, vol-target
20% — sperando che la breadth (18 stream invece di 1) alzasse il DSR dove il 2-gambe falliva.
Script scripts/research/r0701_xs_residmom.py (riusa l'harness collaudato xsec_v2_nonmom:
load_matrix, xs_engine — uguaglianza verificata maxdiff 0 —, deflated_sharpe, StrategyPortfolio).
Distinzione dal già-testato: IREV (idio-reversal, sgn=−1) era FALLITO nel filone C; IMOM di xsec_v2 usava il mercato equal-weight come fattore, B=60 fisso, senza blend ed era solo riferimento. Qui fattore = BTC (come STATARB-RESID, BTC escluso dal cross-section), B in griglia, blend z-score, probe con gate di dispersione p30 (parità strutturale con XS01), selezione in-sample-only.
Setup
- Universo: 19 major HL certificati (
data/raw/hl_*_1d.parquet), 913 giorni [2024-01-01 → 2026-07-01], barre vol=0 escluse. Fee 0.10% RT/gamba + sweep fino a 0.30%. - Griglia (57 trial): β-window {60,90,120} × lookback {blend[30,90], 30, 90} × k {3,5} × H {5,10,20}
- 3 probe gated (blend, k5, H10, gate dispersione p30). Cella scelta col solo Sharpe pre-2025; hold-out 2025-01-01 bloccato. Causalità: prefix-check ok (max_tail_diff 0).
- Baseline (stessa finestra, sleeve attivi): XS01 FULL Sh 1.38 / HOLD 1.51 / DD 11%; book 4-sleeve FULL 2.12 / HOLD 2.21.
Esito — collasso OOS della cella in-sample e nessuna cella competitiva
Cella scelta in-sample: B60 L30 k3 H20 (IS Sh 2.00):
FULL +0.67 | HOLD −0.24 | DD 35% | per-anno 2024 +54% / 2025 −15% / 2026 +5%
corr→XS01 +0.54 | corr→TP01 −0.09 | DSR 0.510 (57 trial) | fee-sweep ok (F+0.59 a 0.30%)
small-cap $600/min$5: haircut ≈ 0 (ma book multi-gamba → STAT-MODE comunque, come XS01)
Portafoglio (il bar del mandato):
BASE 4-sleeve FULL 2.12 DD 7.8% | HOLD 2.21 DD 3.5%
SOSTITUZIONE XS01 → cand FULL 2.01 (−0.10) | HOLD 1.18 (−1.03) ← distrugge l'hold-out
AGGIUNTA 5° sleeve @10/15% HOLD −0.31 / −0.53 ← diluisce
MARGINAL vs BOOK: corr +0.23, uplift@10% full −0.04 / hold −0.31, multi-cut 2025 −0.31 / 2026 −0.14
Il verdetto non dipende dalla selezione — aggregato delle 57 celle:
- FULL max +0.94, HOLD max +0.82 (mediane +0.52/+0.33): nessuna cella si avvicina a XS01 (1.38/1.51), nemmeno cherry-pickando sull'hold-out.
- corr→XS01 in [+0.47, +0.71], mediana +0.62: è momentum XS01 travestito (la residualizzazione vs β·BTC sposta poco: lo z-scoring cross-sectional di XS01 già rimuove implicitamente il mercato).
- Solo 4/57 celle passerebbero un gate "diversificatore" (|corrXS|<0.6, FULL>0.5, HOLD>0), tutte con FULL ≤0.68 e IS incoerente.
- corr(Sharpe in-sample, Sharpe hold-out) attraverso le celle = −0.37: l'in-sample è anti-predittivo dell'OOS su questa griglia — la firma del rumore, non di un edge con plateau.
Perché la tesi è falsa (3 righe)
- La breadth non ha alzato il DSR (0.51 ≪ 0.95) perché non c'è edge da deflazionare: il residuo vs β·BTC sul cross-section degli alt NON eredita l'edge del 2-gambe ETH−β·BTC — quel lead vive nella coppia specifica ETH/BTC (i due asset profondi/cointegrati), non nel long-tail degli alt.
- Cross-sectional, la residualizzazione è quasi un no-op: demeaning z-score (XS01) ≈ togliere il mercato → il candidato è una variante rumorosa di XS01 (corrXS mediana 0.62) con meno segnale.
- In-sample = solo 2024 (~1 anno utile dopo il warmup): la selezione onesta atterra su una cella 2024-lucky che perde nel 2025-26 — l'ennesima conferma del gate selection-on-holdout.
Verdetto: SCARTATO/REDUNDANT. Nessuno sleeve, nessun forward-monitor.
Coerente con il filone momentum-structure (2026-06-29): l'edge di XS01 sta nella sua struttura
specifica (blend + gate dispersione), e le sue varianti — incluso l'idio-momentum vs BTC — sono
REDUNDANT o peggio. Chiude anche il cerchio su STATARB-RESID: il meccanismo residuo-momentum resta
valido SOLO come coppia ETH/BTC (forward-monitor paper_statarb), non generalizza al cross-section.
Nessun impatto sul book live; config canonica invariata.
Script: scripts/research/r0701_xs_residmom.py (non committato, prefisso r0701_xs).