- trackA trend, trackB ML, trackC mean-rev, trackD trend-portfolio, trackE xsec/ensemble - VERDICT: Track D vol-targeted BTC+ETH trend portfolio is the one robust deployable earner (Sharpe 1.0-1.32, DD 13-19%, positive every year 2019-2026) - mean-reversion confirmed dead on clean data; weak-but-real ML/trend residuals - honest: EUR50/day on 2000 in 1-2y is not reachable (needs ~137k capital or ruinous DD)
8.1 KiB
2026-06-19 — Track E: Cross-sectional BTC↔ETH relative-value + ENSEMBLE synthesis
Due parti, entrambe oneste e su dati Deribit-mainnet certificati (solo BTC/ETH). Tool:
scripts/research/trackE_xsec_ensemble.py (runnable, self-contained, riusa il walk-forward
ML di Track B e il Donchian di Track A). Harness onesto: direzione/posizione decise con dati
≤ close[i], realizzo sul bar successivo (shift di 1 barra, niente look-ahead). Fee
turnover-based: |Δpos|·fee_rt/2 per gamba (un flip +1↔−1 = un round-trip = 0.10% RT).
Run: uv run python scripts/research/trackE_xsec_ensemble.py (--quick salta lo sleeve ML;
--no-cache ricalcola la proba ML). Il proba ML viene cacheato (.cache_trackE_*.npy).
PART 1 — Relative value (spread BTC↔ETH, 1h, market-neutral)
Premessa strutturale. BTC/ETH log-ret 1h sono correlati 0.84. Con due soli asset l'unica struttura tradabile è lo spread. E con due asset, "long il più forte / short il più debole" (XS-momentum) è algebraicamente identico a "trada il trend del ratio ETH/BTC" — infatti nel codice (A) e (B) producono numeri identici. Sono lo stesso edge.
Lead-lag: nullo. corr(rB[i], rE[i+1]) = −0.018, corr(rE[i], rB[i+1]) = −0.007,
autocorrelazioni −0.01..−0.02. Nessun potere predittivo cross-asset → lead-lag non
perseguito come sleeve (sarebbe rumore moltiplicato per le fee).
(A/B) XS momentum / ratio trend (griglia N∈{24,72,168,336}, hold∈{6,24,72}):
- Solo 4/12 celle OOS net-positive, e sparse (N24/h24, N24/h72, N72/h72, N168/h24).
- Le celle FULL forti (N168/h24: +150% full, Sharpe 0.68, DD 27%) hanno OOS debole (+11%, Sh 0.30). La migliore per OOS-Sharpe è N24/h24 (OOS Sh 0.31, OOS net +11%).
- Fee sweep (N24/h24): gross (0bp) FULL +356%/OOS +74% Sh 1.20 → a 1.0bp/gamba FULL +27%/ OOS +11% Sh 0.31 → muore già a 1.5bp/gamba (OOS −11%). Margine fee sottilissimo.
- Per-anno concentrato sui grandi movimenti del ratio 2020-2021 (e 2024), piatto/negativo altrove (2022 −9%, 2023 −19%, 2025 −6%, 2026 −16%). Non è un altopiano: è un edge debole, fee-sensibile, regime-dipendente.
(C) Ratio mean-reversion (z-fade di log(ETH/BTC)): negativa ovunque (es. lb168/zin2.0: FULL −85%, OOS −44%, Sh −1.56). Coerente con Track C: anche sullo spread la MR a breve non è un edge sul dato pulito.
Verdetto PART 1: esiste un debole edge di relative-value (XS-momentum ≡ ratio-trend), net-positivo OOS solo in alcune celle, Sharpe OOS ~0.3, che muore a ~1.5bp/gamba ed è concentrato in pochi anni. È reale ma marginale — degno di entrare in un ensemble come sleeve diversificante, non come strategia standalone. La sua virtù: è quasi scorrelato dagli edge direzionali (vedi sotto).
PART 2 — Ensemble (3 sleeve residui in UN portafoglio)
Sleeve combinati (gross 1 ciascuno, equal-weight 1/N → gross totale ~1):
- S1 = BTC-ML (Track B, cella onesta a basso turnover W16000 H24 thr0.10, 1h).
- S2 = BTC-Trend (Track A, l'unica cella trend robusta cross-asset: Donchian N=200 H=12).
- S3 = Relative-value (PART 1, miglior cella OOS: XS-momentum N=24 hold=24).
Finestra comune attiva (dove tutti e 3 sono live, dopo il warmup ML): 2020-06 → 2026-06, 52.636 barre.
Matrice di correlazione degli sleeve (ret per-barra, finestra comune)
| S2_trend | S3_relval | S1_ml | |
|---|---|---|---|
| S2_trend | +1.000 | +0.010 | −0.063 |
| S3_relval | +0.010 | +1.000 | −0.010 |
| S1_ml | −0.063 | −0.010 | +1.000 |
→ Sleeve quasi perfettamente scorrelati (|ρ| ≤ 0.06). In teoria, terreno ideale per la diversificazione.
Per-sleeve (finestra comune, scala $ uguale)
| sleeve | net | Sharpe | maxDD | €/g(2k) |
|---|---|---|---|---|
| S2_trend | +5% | +0.15 | 34% | +0.04 |
| S3_relval | +8% | +0.16 | 41% | +0.07 |
| S1_ml | +382% | +0.87 | 56% | +3.51 |
Ensemble
| portafoglio | net | Sharpe | maxDD | CAGR | €/g(2k) |
|---|---|---|---|---|---|
| best single (S1_ml) | +382% | +0.87 | 56% | +30% | +3.51 |
| EQUAL-WEIGHT 1/N | +109% | +0.83 | 30% | +13% | +1.00 |
| inverse-vol (IS wts) | +76% | +0.70 | 29% | +10% | +0.69 |
| EQ-WEIGHT OOS(65/35) | +32% | +1.02 | 12% | +14% | +0.83 |
Per-anno equal-weight: 2020 +16%, 2021 +50%, 2022 +2%, 2023 −13% (vs −38% dell'ML da solo!), 2024 +18%, 2025 +19%, 2026 −3%. Molto più liscio, niente anno-catastrofe.
La diversificazione aiuta? Sì sul rischio, NO sul rendimento risk-adjusted
- Sharpe: ensemble 0.83 vs best-single 0.87 → non batte il miglior sleeve singolo.
- maxDD: ensemble 30% vs best-single 56% → dimezzato. E OOS 12% vs ML-solo molto più profondo. Per-anno senza il −38% del 2023.
- Risk-matched (levare l'ensemble 1.84x per pareggiare il 56% DD dell'ML): €/g +2.23 contro €/g +3.51 dell'ML da solo → a pari drawdown l'ensemble rende MENO (ratio 0.64).
Perché? Gli sleeve sono scorrelati ma enormemente diseguali (Sharpe 0.87 vs 0.15 vs 0.16). L'equal-weight 1/N "annacqua" l'unico sleeve forte con due deboli: la matematica della diversificazione alza lo Sharpe solo se gli sleeve sono di qualità comparabile. Qui non lo sono, quindi 1/N non può superare il singolo migliore. Pesare verso l'ML (quality- weighting) converge banalmente a "esegui solo l'ML" — e sarebbe in-sample.
Il guadagno vero dell'ensemble è la ROBUSTEZZA, non il rendimento: stesso Sharpe del miglior sleeve a metà del drawdown, per-anno molto più stabile, niente dipendenza da un singolo modello/regime (l'ML da solo concentra tutto in 2021/2025 con un −38% nel 2023). Per chi deve sopravvivere, l'ensemble è preferibile; per chi massimizza il rendimento a pari rischio, l'ML puro vince di un soffio.
Verdetto onesto — è un motore da €50/giorno? NO.
- Relative-value: edge debole, reale ma marginale (Sharpe OOS ~0.3), fee-sensibile (muore a 1.5bp/gamba), concentrato 2020-2021/2024. Utile solo come sleeve scorrelato. Lead-lag e ratio-MR: nulli/negativi.
- Ensemble: gli sleeve sono quasi scorrelati (|ρ|≤0.06) — risultato genuino e bello. L'ensemble equal-weight ottiene Sharpe ~0.83 a metà del drawdown del miglior sleeve e un per-anno molto più liscio. Ma NON alza il tetto risk-adjusted (a pari DD rende meno dell'ML puro) perché un solo sleeve domina.
- Distanza dal target: ensemble €1.00/giorno su €2000 (best single €3.51 ma a DD 56% e concentrato). Il target è €50/giorno → ~50x sotto (l'ML puro ~14x sotto ma con rischio/concentrazione inaccettabili). Levare per colmare il gap moltiplica il drawdown ben oltre il tollerabile (1.84x già porta al 51% DD per ~€2.2/g).
Conclusione: la sintesi di Track E conferma la fotografia dei track A/B/C — esistono edge residui deboli ma reali e scorrelati su BTC/ETH. Combinarli in un ensemble migliora la robustezza (DD dimezzato, per-anno stabile, niente single-point-of-failure) ma non crea rendimento dal nulla: il sistema combinato rende ~€1/giorno su €2000, ~50x sotto l'obiettivo, e non è un motore dispiegabile. Il miglior uso pratico dei risultati: se un giorno si tradasse, l'ensemble equal-weight (ML + trend + relative-value) è la forma più onesta e meno fragile del poco edge disponibile — ma serve un edge di un'altra magnitudine per avvicinare i €50/g.
Prossimi passi possibili (non eseguiti)
- Cercare uno sleeve di qualità comparabile all'ML (Sharpe ≥0.5 indipendente) — solo allora 1/N alzerebbe lo Sharpe oltre il singolo. Senza, l'ensemble resta solo "risk smoother".
- Relative-value su timeframe diversi del ratio (giornaliero?) o con position sizing proporzionale alla forza del segnale, restando scettici sul fee-margin sottile.
- Non aumentare la leva per inseguire €50/g: il DD esplode prima del rendimento.
Artefatti
scripts/research/trackE_xsec_ensemble.py— riproducibile (uv run ..., ~8s con cache ML).