03267b8fc3
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>
46 lines
2.9 KiB
Markdown
46 lines
2.9 KiB
Markdown
# 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.py` → `data/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.
|