Files
PythagorasGoal/docs/diary/2026-06-22-equities-sector-momentum.md
Adriano Dal Pastro 03267b8fc3 research(equities): EQ-MOM01 momentum settoriale -> NON batte SPY
Primo backtest del fronte equity. Momentum cross-sectional settoriale (9 SPDR, 1998-2026),
causale, netto fee, OOS 2015+, giudicato marginale vs SPY buy&hold (il baseline equity).

VERDETTO: nessun edge. Long-short Sharpe -0.08 (alpha cross-sectional MORTO su 27y,
decadimento post-2000 noto). Long-only ~= SPY (corr 0.85, uplift marginale ~0.00) = SPY a
beta piu' basso. Plateau stabile ~0.50 vs SPY 0.51; sugli 11 settori (2018+) peggio (0.69
vs 0.82). L'unico beneficio (maxDD 55->39%) e' del vol-target, non del momentum.

Coerente col progetto: il relative-value momentum e' morto anche in equity (come ortho wave
nel crypto). Prossimo angolo: TS-trend difensivo su SPY (analogo equity di TP01) per tagliare
il drawdown, non per battere il CAGR.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-22 21:33:38 +00:00

2.9 KiB
Raw Permalink Blame History

2026-06-22 — Fronte EQUITY aperto + EQ-MOM01 (momentum settoriale): NON batte SPY

Apertura fronte (branch research/equities-ib)

Le 4 ondate crypto hanno esaurito gli angoli su BTC/ETH (soffitto ~1.3). L'unico modo di superarlo è un mercato diverso. Aperto il fronte azioni/ETF via IB (paper, gnzsnz/ib-gateway, read-only).

Dati certificati + cache su disco (fetch_ib_equities.pydata/raw/eq_*.parquet, ADJUSTED_LAST div+split, gitignored = cache locale; loader eqlib.py con lru_cache → ricerca legge da disco, MAI da IB). Universo: 9 SPDR settoriali classici dal 1998 (27.5y) + XLRE(2015)/XLC(2018) + SPY(1996, 30y)/QQQ/IWM/GLD/HYG/TLT. Tutti integri (monotoni, no dup, no spike>50%, 0 gap lunghi). NB bug timestamp risolto: pd.Timestamp a risoluzione µs → salvati in secondi, corretti a ms.

EQ-MOM01 — momentum cross-sectional settoriale

Costruzione causale (eq_sector_momentum.py): ogni 21g, momentum = blend lookback [63,126,252]g con skip-21 (12-1 classico), z-score cross-sectional. long-only top-k (full-invested, confronto like-for-like con SPY) e long-short (dollar-neutral, test alpha puro). Netto fee, hold-out OOS 2015+.

Risultati (9 settori, 1998-2026)

strategia CAGR Sharpe (pre15/OOS15+) maxDD corr SPY
SPY buy&hold 8.2% 0.51 (0.31/0.82) 55%
EW 9 settori 8.9% 0.56 (0.44/0.76) 53% 0.96
MOM long top-3 7.7% 0.50 (0.32/0.76) 47% 0.85
MOM long vol-target 15% 7.3% 0.52 39% 0.75
MOM long-short top-3 0.9% 0.08 (0.19/0.08) 32% 0.20

Verdetto: NESSUN edge vs SPY

  • Long-short Sharpe 0.08 → l'alpha cross-sectional di momentum settoriale è morto su 27 anni (decadimento post-2000 noto in letteratura). Niente alpha market-neutral.
  • Long-only ≈ SPY: corr 0.85, uplift marginale ~0.00 (blend 75/25 +0.012 FULL / +0.001 OOS; 50/50 +0.015 / 0.010). È un SPY a beta più basso, non un edge. Plateau stabile ma sempre ~0.50 (vs SPY 0.51); sugli 11 settori (2018+) fa peggio (0.69 vs 0.82). Fee-robusto (ma niente da salvare).
  • L'unico beneficio (maxDD 55%→39%) è del vol-target, non del momentum (lo daresti a SPY stesso).

Lezione (coerente col progetto)

Il momentum relative-value è morto anche in equity, come nel crypto (ortho wave). Il baseline equity da battere è SPY buy&hold (Sharpe ~0.51 full / 0.82 OOS), ostico come il toro crypto.

Prossimo angolo plausibile (NON ancora testato)

L'analogo equity di TP01 (l'unica cosa che ha retto nel crypto = trend DIFENSIVO): time-series trend su SPY long-flat/long-bonds — non per battere il CAGR ma per tagliare il 55% di drawdown restando vicino al ritorno. È il punto dove vive il valore robusto in equity (e dove il cross-section NON guarda). Da provare con lo stesso gauntlet: marginale vs SPY, OOS lungo, plateau.