Ricerca onesta su BTC/ETH + universo HL, branch separato (nessun impatto live).
Harness condiviso altlib (causale, fee 0.10% RT, marginal vs TP01, day-boundary,
haircut $600). Test 19/19 verdi.
- A DVOL direzionale -> LEAD hedge/DD-dampener, NON sleeve (buy-the-fear; is_hedge).
- B Intraday ERM 8h -> LEAD forte / forward-monitor: earns_slot=True, ADDS oltre
SKH01 (TP01+SKH+ERM 60/25/15 FULL 1.88/HOLD 1.46/DD 8.9%).
Caveat: plateau hold-out single-row, multiple-testing non
deflazionato, exec 8h. Controllo TOD = FAIL atteso.
- C Cross-sectional non-mom (low-vol HL) -> DEBOLE/forward-monitor (deflated-Sh 0.13,
storia 2.5a, non eseguibile $600) STAT-MODE.
- D Macro regime-gate -> RIDONDANTE col trend (corr->TP01 0.989), SCARTATO.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
4.3 KiB
2026-06-29 — Filone D: MACRO regime-gate sul book crypto — RIDONDANTE col trend, SCARTATO
Tesi. Usare segnali macro/cross-market — equity (SPY/QQQ/IWM), credito (HYG/LQD), oro (GLD/SLV),
tassi (TLT/IEF) — come gate risk-on/risk-off sul book BTC/ETH, per migliorare il timing del
drawdown di TP01: regime risk-off (credito che cede, equity sotto trend, fuga sui bond) → riduci/azzera
l'esposizione crypto; risk-on → lascia agire TP01. È eseguibile (gata solo BTC/ETH perp, non aggiunge
gambe). Script scripts/research/macro_regime_gate.py, test tests/test_macro_regime_gate.py. Branch
research/equity-meanrev-ib (separato, nessun impatto live). Dati: data/raw/eq_*_1d.parquet (ETF daily,
allineati causale merge_asof backward sul calendario SPY).
NON è un lead-lag direzionale (già morto: diari 2026-06-22/-23). L'angolo nuovo = un overlay binario/continuo di de-risk sul book esistente.
Il rischio noto in partenza (CLAUDE.md)
La lezione DVOL-spike (2026-06-26): un gate di de-risk rischia di essere ridondante col trend — TP01 è già long-flat e va a 0 nei crash (Δ 0.00). Questo script DOVEVA dimostrare che il gate aggiunge oltre quel che TP01 fa da solo. Non ci riesce.
Gate provati (tutti causali: SMA/ratio/z-score rolling, merge_asof backward)
SPY>MA{50,100,150,200,250}, HYG>MA, ratio di credito HYG/LQD, HYG/IEF, combo a maggioranza
(SPY+HYG+HYG/LQD, binario e continuo), flight-to-quality (TLTup&SPYdn, GLDup&SPYdn), regime di vol
equity SPYvol_z1 (proxy "VIX-spike" senza VIX). g_off ∈ {0.0, 0.5}.
Esiti
I gate di trend equity alzano lo Sharpe FULL della combo (SPY>MA150/200/250 → FULL ~1.22-1.25 vs TP01-solo
1.30) ma non l'hold-out (HOLD ~0.17-0.19) → è de-levering, non timing: tagliano DD spegnendo il
book in mercati equity laterali, non anticipando i crash crypto. Il miglior profilo DD è SPYvol_z1.
Deep-dive SPYvol_z1 — il controllo decisivo (ridondanza col trend)
| exposure TP01 risk-off | exposure risk-on | giorni risk-off | giorni in cui il gate LAVORA | corr(1-gate, 1-expo) | |
|---|---|---|---|---|---|
| BTC | 0.023 | 0.093 | 18% | 3% | 0.278 |
| ETH | 0.013 | 0.068 | 16% | 2% | 0.296 |
"Il gate lavora" = giorno risk-off E posizione TP01 non già flat. Accade nel 2-3% dei giorni: nel resto, quando il gate vorrebbe de-riskare, TP01 è già flat da solo. Il gate spegne un motore già spento.
Marginal scorer vs TP01 (gate come candidato-sleeve)
abs=FAIL marginal=REDUNDANT EARNS_SLOT=False
corr->TP01 full 0.989 hold 0.984 beta 0.978 resid Sharpe 0.739
multi-cut persistent=True has_insample_edge=True (standalone 1.634) is_hedge=False
blend w25: full 1.323 (+0.026) hold 0.257 (-0.046) blend w50: full 1.348 (+0.051) hold 0.21 (-0.093)
corr→TP01 0.989, beta 0.98: lo stream gated È TP01. L'uplift hold-out è negativo (de-levering
che toglie ritorno fuori dai crash). overlay-delta (gated−solo) come stream a sé: verdict=NEUTRAL.
Causalità / eseguibilità (gli unici aspetti promossi)
- Leak-free:
causality_ok=True(max_tail_diff 0.0); STRICT align (1 barra equity extra di lag) → FULL invariato;day_boundary_robust=INVARIANT(spread 0.0). Allineamento macro→crypto backward-only. - Eseguibile a $600: haircut
eval_weights_smallcap≈ 0.00 su BTC ed ETH. Fee-survivente (0.00→0.30% RT: 1.42→1.33). Tecnicamente impeccabile — semplicemente non aggiunge alpha.
Verdetto: SCARTATO (ridondante col trend). earns_slot=False.
Conferma esatta della lezione in CLAUDE.md: un overlay di de-risk su un book che è già long-flat e
già a 0 nei crash non ha quasi nulla da fare (lavora il 2-3% dei giorni, corr→TP01 0.99). Il taglio di DD
che mostra è de-levering, replicabile meglio con un target_vol più basso (stessa lezione del
TP01×DVOL overlay del 2026-06-26). Il macro-regime non anticipa i drawdown crypto meglio del prezzo
crypto stesso. Nessuno sleeve registrato; nessun impatto sul book live.
Sottoprodotto utile: il gate redundancy_diag (exposure risk-off vs risk-on + "quota giorni in cui il
gate lavora") è il test pulito da riusare ogni volta che si propone un overlay di de-risk — se "il gate
lavora" è basso e corr→TP01 ~1, è ridondante, a prescindere dallo Sharpe FULL che mostra.