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.