Nuova harness condivisa xslib.py (panel HL certificato, score per-asset causale, book long-k/short-k vol-targeted leak-free) + 43 script in runs/ su 11 famiglie (MOM/REV/VOL/ DIST/LIQ/VAL/STRUCT/UNIV). Scoring = earns_slot (full>0 AND hold-out>0 AND marginal ADDS al portafoglio live AND corr XS01<0.6, con jackknife drop-one-month). Find: 42/257 config earns_slot=True, ma TUTTE con corr TP01 -0.2..-0.4 e PnL ~solo 2025. Verify (verify_survivors.py, 3 scettici deterministici): - S1 redundancy: cluster low-vol = UNA scommessa (XV01=XU02=1.00, XV02/XV03 r 0.44-0.67); XM09/XL02/XS06b/XR02 distinti (corr media off-diag +0.20). - S2 short-beta: cluster low-vol carica 0.44-0.70 su short-market -> NON market-neutral, e' un tilt short-alt-beta di regime. XM09(0.08)/XR02(-0.21) NON short-beta. - S3 per-anno: cluster low-vol decade (XV01/XU02 2026 -0.09); XL02 morto (2025 -0.14, 2026 -0.43); XM09 (0.82/0.50/0.74) e XR02 (0.84/0.40/2.68) positivi in tutti e 3 gli anni. Esito: nessuna sleeve nuova. Cluster low-vol RIGETTATO (regime-bet), XL02 RIGETTATO (overfit). 2 LEAD genuini (XM09 trend-gated x-sec momentum, XR02 reversal vol-gated) -> forward-monitor, non deployabili (panel 2.5y regime unico + STAT-MODE esecuzione). Portafoglio live invariato. Incluso anche options_vrp_managed.py (A/B VRP01 hold-to-expiry vs gestione attiva del doc credit-spread): la gestione attiva DISTRUGGE l'edge (combo FULL managed Sh -1.29 vs HtE +0.96, il delta-exit taglia i vincenti) -> scartata, VRP01 resta hold-to-expiry. Diari: 2026-06-20-xsec-strategies-sweep.md, 2026-06-20-vrp-active-management.md. gitignore: data/paper_portfolio/ (stato runtime paper) + scripts/research/xsec/runs/out/ (output rigenerabile). Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
8.6 KiB
Sweep strategie cross-sectional su Hyperliquid (xsec) — 43 script / 257 config
Data: 2026-06-20
Harness: scripts/research/xsec/xslib.py (nuovo) + 43 script in scripts/research/xsec/runs/
Verifica: scripts/research/xsec/verify_survivors.py (3 scettici, deterministico)
Esito in una riga: niente di deployabile; il cluster vincente appariscente è una sola
scommessa di regime (short alt-beta), ma 2 lead genuini (XM09 trend-gated x-sec momentum,
XR02 reversal vol-gated) sopravvivono a tutti gli scettici → forward-monitor, non sleeve.
Contesto e motivazione
Dopo che il sweep BTC/ETH a 104 ipotesi (2026-06-20-alt-strategies-100agent-sweep.md) ha
esaurito lo spazio direzionale single-asset confermando il soffitto ~1.3, la frontiera indicata era
cross-sectional / multi-asset sul panel Hyperliquid certificato, dove quel soffitto non vincola
e dove c'è spazio DISTINTO da XS01 (x-sec momentum semplice sui 19 major).
Nuova harness condivisa xslib.py: il panel è N asset × ~810 giorni (universo all = 49 alt
con ≥700g dopo il fix backfill; majors = 19 di XS01). Una strategia = uno score per-asset
causale (dati ≤ close[i]); l'harness lo classifica cross-section ad ogni ribilanciamento, va long
i top-k / short i bottom-k (market-neutral) o long-only, vol-targeta al 20%, addebita fee sul
turnover, e — strutturalmente leak-free — il peso deciso a i incassa il return di i+1 (stessa
convenzione di src.portfolio xs_book / sleeves._xsec_returns).
Scoring onesto (study_xs): un candidato guadagna earns_slot=True SOLO se
full Sharpe>0 AND hold-out 2025+ Sharpe>0 AND marginal_vs(active)=="ADDS" AND corr(XS01)<0.6.
ADDS a sua volta richiede holdUplift_w20 ≥ 0.05 AND robust_oos (uplift hold-out >0.02 e
jackknife drop-one-month tutti positivi). È il marginal scorer del sweep precedente, portato sul
cross-sectional: si giudica l'apporto al portafoglio live (TP01+XS01+VRP01), non lo Sharpe
assoluto.
Caveat cotto dentro l'harness: il panel è ~2.5 anni (2024-26). Ogni risultato è SUGGESTIVO, non robusto come i 6 anni di BTC/ETH. E l'hold-out (2025-26) è un singolo regime (alt-bear/chop relativo a BTC).
Find phase — 43 script, 257 sotto-config
11 famiglie cross-sectional: MOM (varianti momentum), REV (reversal), VOL/RISK (low-vol, low-beta,
BAB, semivarianza, vol-of-vol), DIST (skew/coskew lottery), LIQ (Amihud/turnover/volume),
VAL (distanza da MA, RSI), STRUCT (double-sort, ensemble z-vote, risk-parity, low-corr, trend-R²,
lead-lag BTC), UNIV (sweep di universo). Esito: 42/257 config earns_slot=True.
Sembra molto. Ma due tell accomunano quasi tutti gli slot-earner:
- corr a TP01 fortemente negativa (−0.2…−0.4) — è per questo che "aggiungono";
- PnL concentrato nel 2025 (ritorni +22%…+84% nel 2025).
Top per Sharpe/uplift (rappresentante per famiglia):
| id | meccanismo | univ | FULL Sh | HOLD Sh | upliftHold | jackknife | corr TP01 | corr XS01 |
|---|---|---|---|---|---|---|---|---|
| XR02-L3-p70-maj | reversal gated alta-vol | maj | 1.40 | 2.27 | 1.078 | 0.744 | 0.02 | 0.08 |
| XV02_majors_H10k5 | low idio-vol | maj | 1.32 | 1.95 | 1.196 | 0.792 | −0.20 | −0.06 |
| XL02-vz60r20-maj | vol-trend momentum | maj | 1.83 | 1.84 | 0.568 | 0.125 | 0.13 | 0.08 |
| XM09_all | trend-gated x-sec mom | all | 1.29 | 1.59 | 0.556 | 0.355 | −0.07 | 0.25 |
| XS01b-MAJ | double-sort mom×low-vol | maj | 1.36 | 1.23 | 0.427 | 0.16 | −0.29 | 0.38 |
| XU02/XV01 lowvol | low realized-vol | maj | 1.05 | 0.98 | 0.425 | 0.186 | −0.34 | 0.16 |
| XV03 lowbeta (BAB) | −beta | all | 0.36 | 0.71 | 0.22 | 0.051 | −0.38 | 0.19 |
| XS06b lowcorr | −corr(asset,market) | all | 0.74 | 1.00 | 0.286 | 0.092 | −0.19 | 0.18 |
Verify phase — 3 scettici (verify_survivors.py)
Ipotesi sotto test: "non sono N edge indipendenti, ma UNA scommessa di regime — short la spazzatura high-beta nell'alt-bear 2024-26 — travestita da 30 maschere; il jackknife è robusto solo DENTRO quel regime." Ricostruito il book più forte per famiglia e:
S1 — matrice di correlazione mutua (>0.6 = stessa scommessa). Esito SFUMATO:
- Il cluster low-vol È una sola scommessa: XV01 = XU02 = 1.00 (identici), XV01↔XV02 0.65, XV01↔XV03 0.67, XV02↔XV03 0.44.
- MA XM09, XL02, XS06b, XR02 sono distinti dal cluster e tra loro (corr media off-diagonale solo +0.20, solo 18% delle coppie |r|>0.6). L'ipotesi "tutto una scommessa" è parzialmente falsa.
S2 — carico su short-beta / short-market (factor di riferimento sullo stesso panel: SHORTBETA = book su −beta; SHORTMKT = −market alt equal-weight):
- Cluster low-vol = short-alt-beta confermato: XV03 1.00/0.70, XV01/XU02 0.67/0.64, XV02 0.44/0.37. Non market-neutral: è un tilt short del mercato alt.
- NON short-beta: XM09 0.08/0.15, XR02 −0.21/−0.18, XL02 0.19/0.26, XS06b 0.36/0.39.
S3 — Sharpe per anno solare (l'edge è ~solo 2025?):
| survivor | 2024 | 2025 | 2026 |
|---|---|---|---|
| XV02_lowidiovol | 0.07 | 1.87 | 2.12 |
| XV01/XU02 lowvol | 1.17 | 1.52 | −0.09 |
| XV03_lowbeta | −0.25 | 0.98 | 0.12 |
| XS06b_lowcorr | 0.26 | 1.34 | 0.32 |
| XM09_trendgmom | 0.82 | 0.50 | 0.74 |
| XL02_voltrendmom | 0.30 | −0.14 | −0.43 |
| XR02_revgated | 0.84 | 0.40 | 2.68 |
Conclusioni (oneste)
-
Cluster low-vol / low-beta (XV01, XU02, XV02 in parte, XV03) = tilt short-alt-beta di regime. S2 lo inchioda (carico 0.44-0.70 su short-market): non è un fattore market-neutral, è "short la spazzatura" mentre gli alt sanguinano vs BTC. XV01/XU02 già in decadimento (2026 −0.09). Non può dimostrare di sopravvivere a un flip alt-bull. → RIGETTATO come sleeve. Conferma l'osservazione 4874 (XS04b = regime-dependent short-beta tilt) generalizzata all'intera famiglia.
-
XL02 (vol-trend momentum) = overfit al panel iniziale. FULL Sharpe più alto (1.83) ma S3 lo uccide: 2025 −0.14, 2026 −0.43. Il numero full è guidato dal 2024, ora è morto. → RIGETTATO.
-
2 LEAD genuini — distinti (S1), NON short-beta (S2), positivi in tutti e 3 gli anni (S3):
- XM09 — cross-sectional momentum gated dal trend di mercato. Long top-k/short bottom-k alt, attivo solo quando la somma trailing del mercato equal-weight è >0. Sharpe 0.82/0.50/0.74, short-beta-load 0.08, corr TP01 −0.07, uplift hold 0.556 / jackknife 0.355. È il candidato più regime-robusto. Caveat: stessa FAMIGLIA di XS01 (x-sec momentum) su universo più largo (49) con gate diverso (trend di mercato vs dispersione) → più un possibile affinamento di XS01 che una sleeve nuova; corr XS01 0.25, ma marginal scorer dice che ADDS oltre XS01.
- XR02 — short-term reversal gated da alta-vol. Reversal a 3g attivo solo quando la vol realizzata di mercato è nel regime alto (>p70 espandente). Sharpe 0.84/0.40/2.68, short-beta-load −0.21, corr a tutto il resto ~0/negativa, hold-out Sharpe 2.27. Microstruttura reale (overreaction in panico). Caveat: H=3 → turnover alto; il reversal vive proprio sull'illiquidità che lo rende costoso da eseguire (l'harness addebita fee sul turnover e regge, ma il fill reale su alt minori è ottimistico).
Perché NON deployabili adesso (caveat trasversali)
- Panel ~2.5 anni a regime unico. Anche i 2 lead hanno hold-out = 2025-26 = stesso macro-regime. Suggestivi, non robusti come i 6 anni BTC/ETH.
- STAT-MODE di esecuzione. Un book cross-sectional a 10-19 gambe (long-k+short-k) su alt non è eseguibile col capitale attuale (conto reale ~$600; servono ~$20k per gambe sensate, come già notato per XS01). Sono segnali da monitorare, non ordini.
- Lezione confermata (di nuovo): su un panel corto a regime unico il jackknife drop-one-month certifica la robustezza DENTRO il regime, non ATTRAVERSO i regimi. Il discriminante decisivo è stato S2 (carico su short-beta) + S3 (consistenza per-anno), non lo Sharpe né l'uplift hold-out (che il cluster regime-bet aveva altissimi: upliftHold fino a 1.20).
Azioni
- Nessuna modifica al portafoglio live (TP01 55% + XS01 25% + VRP01 20% invariato).
- Forward-monitor i 2 lead (XM09, XR02) quando il panel HL accumula un secondo regime.
- XM09 come affinamento candidato di XS01 (gate trend di mercato + universo 49) da valutare a parità di sleeve, NON come sleeve aggiuntiva, in una prossima iterazione.
- Harness
xslib.py+ 43 script +verify_survivors.pycommittati come riferimento riusabile.