Files
PythagorasGoal/docs/diary/2026-06-20-xsec-strategies-sweep.md
T
Adriano Dal Pastro 9612560479 research(xsec): sweep cross-sectional su Hyperliquid (43 script/257 config) + verifica avversariale
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>
2026-06-20 21:36:57 +00:00

8.6 KiB
Raw Blame History

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:

  1. corr a TP01 fortemente negativa (−0.2…−0.4) — è per questo che "aggiungono";
  2. 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)

  1. 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.

  2. 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.

  3. 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.py committati come riferimento riusabile.