# 2026-06-21 — Caccia all'ORTOGONALE a TP01: relative-value BTC/ETH (eseguibile a $600) ## Perché (richiesta utente: "cerca ortogonale a TP01") La flotta cieca (stesso giorno) ha confermato: niente di NUOVO in direzionale BTC/ETH — tutto è trend-beta di TP01 (soffitto ~1.3). L'unica via a un nuovo slot LIVE è un meccanismo **ortogonale** (bassa correlazione, alpha residua). Il più promettente **eseguibile al capitale reale ~$600** è un **book RELATIVE-VALUE a 2 gambe BTC/ETH** (long una / short l'altra), grosso modo market-neutral → correlazione naturale bassa col trend, e a 2 gambe è eseguibile (a differenza del book a 19 gambe di XS01 che serve ~$20k). ## Setup — ortho-lab + giudice MARGINALE (non Sharpe assoluto) `scripts/research/ortho/ortholib.py`: BTC/ETH 1d allineati su date comuni; `eval_book(book_fn)` con `book(btc,eth)->(w_btc,w_eth)`, **shift di entrambe le gambe** (no leak), fee su entrambe, serie netta **giornaliera**; guardia di causalità online; check **eseguibilità a $600** (max gamba ≤ 0.5 = cap $300/asset). Il giudice è `altlib.marginal_vs_tp01`: **corr a TP01, uplift OOS del blend, alpha residua, robust_oos** (clean-year + jackknife drop-month). Verdetto = ADDS, **non** Sharpe assoluto. `ortho_score.py` (giudice), `meta_ortho.py` (corr mutua + persistenza multi-cut), `sleeve_rv.py`. Sanity: ratio-momentum → ADDS (corr 0.05); ratio-mean-reversion → DILUTES. L'harness discrimina. ## Flotta — 18 agenti relative-value (~40 min) 18 ipotesi distinte: ratio-momentum multi-orizzonte, XS a 2 asset, beta-neutral residuo, Donchian sul ratio, EMA-cross, accel, carry lento, Kalman-spread, gate-correlazione, gate-vol, inverse-vol, rebalance-harvest, lead-lag, **DVOL-spread**, **VRP relativo**, dispersione, ensemble. **Esito grezzo: 18 riportati, 17 "ADDS / earns_slot".** → **bandiera rossa**: non esistono 17 alpha. Gli agenti stessi l'hanno annotato ("hold-out corto ~537g", "uplift dipende dal regime ETH-bleed 2025", "forward-monitor non full-weight"). ## Diagnosi dell'orchestratore — il "17 slot" è gonfiato 1. **Una scommessa o tante?** corr mutua media **0.43** → collassano a **8 rappresentanti** de-correlati. Non 17, non 1. 2. **Persistente o solo finestra 2025?** `marginal_vs_tp01` fissa l'hold-out al 2025-01-01 = proprio la finestra dove ETH ha perso vs BTC e TP01 è debole. Ri-misurando l'uplift a **più cut** (2022/23/24/25): il basket selection-free era +0.06/+0.06/+0.11/+0.38 (positivo ovunque ma crescente verso il 2025). Smaschera anche i **falsi** che il robust_oos fisso-2025 non vede: `kalman_spread` (−0.14/−0.16/−0.10 poi +0.37) e `xs2_zscore` sono **2025-only**. 3. **Selezione walk-forward (senza hindsight):** scegliere i top-4 per uplift sul **solo passato** e testare in avanti → uplift **−0.07** (sel <2023) / +0.05 (<2024) / +0.43 (<2025). **Scegliere la variante vincente in anticipo è inaffidabile**; il mio "curated 4" è in parte hindsight. ## Verifica avversariale (scettico indipendente) — REFUTED Sul **basket selection-free** (equal-weight di tutti i book market-neutral, NESSUN cherry-picking): - standalone Sharpe **0.61**, maxDD 15%, **corr a TP01 0.05** (genuinamente ortogonale). - **uplift full +0.078 = pre-2025 +0.027 / solo-2025+ +0.401.** Il pre-2025 **+0.027 sta al 49° percentile di 500 asset-rumore a corr-zero** (+0.029 per costruzione) → è **matematica di diversificazione, non segnale**. - **corr(Sharpe annuo TP01, uplift annuo basket) = −0.87**; condizionato: TP01 su → +0.014, TP01 giù → +0.369. **È un hedge dei drawdown di TP01, non un premio autonomo.** Paga nel 2022 (orso) e 2025-26 (ETH-bleed) — i due anni peggiori di TP01 — rumore altrove (2023 −0.06, 2024 −0.12). - Block-bootstrap P(uplift>0): full 90%, **pre-2025 66% (testa o croce)**, 2025+ 99%. - Fee: a **0.30% RT il pre-2025 va NEGATIVO** (−0.021); sopravvive solo il numero del regime 2025. - Eseguibilità OK ($264/gamba, turnover 12/yr) — non è quello il problema. ## Verdetto **Niente di questa flotta merita uno slot LIVE.** Il meccanismo relative-value BTC/ETH è REALE e genuinamente ortogonale (corr ~0.05), ma è un **hedge della debolezza di TP01 travestito da alpha**: il suo contributo pre-2025 è indistinguibile da un asset-rumore a corr-zero (49° percentile del null) e muore a fee realistiche; l'unico payoff vero è una singola finestra di 537 giorni (2025-26). Deployarlo = deployare un backtest mono-regime. **Resta live solo TP01** (l'unica cosa che supera tutto questo scrutinio). Coerente con XS01 (stessa famiglia cross-sectional): diversificatore da monitorare, non alpha da eseguire — e la versione a 2 asset è ancora più sottile della 19-gambe. ### Valore metodologico (cosa resta, ed è importante) - **Il marginal scorer fisso-2025 è ingannabile** (17/18 "ADDS"). Ciò che ha ucciso i falsi positivi: **persistenza multi-cut** + **selezione walk-forward** + **bootstrap vs null a corr-zero**. Lezione da cablare nello scorer: testare PIÙ cut e confrontare l'uplift col **null di un asset-rumore ortogonale** (un'asset scorrelato con drift positivo "aggiunge" +0.03 per pura matematica — non è un edge). Un basso-corr che paga solo quando il core è debole è un **hedge**, va prezzato come tale. - Lab riusabile: `ortholib`/`ortho_score`/`meta_ortho` (giudice marginale + persistenza). I 18 book + `sleeve_rv.py` (curated, **selection-biased — non deployare**) restano come riferimento. File: `scripts/research/ortho/{ortholib,ortho_score,meta_ortho,sleeve_rv}.py`, `agents/agent_00..17_*.py`, `ortho_leaderboard.json`, skeptic `skeptic_{basket,regime,null}.py`. ## AGGIORNAMENTO — lezione codificata in `altlib.marginal_vs_tp01` (stesso giorno) I tre gate sono ora **codice**, non solo prosa (test `tests/test_marginal_scorer.py`, +5 test): 1. **persistenza multi-cut** (`multicut_uplift`/`multicut_persistent`): uplift a ogni inizio anno, non solo all'HOLDOUT fisso → uccide i 2025-only (es. `kalman_spread`, negativo a ogni cut pre-2025). 2. **edge in-sample** (`has_insample_edge`): lo Sharpe standalone PRE-holdout dev'essere ≥0.5. È il discriminante onesto (la basket faceva 0.29). I `null_pctl_*` (vs asset-rumore a corr-zero) restano come CONTESTO — mostrano che un low-corr "aggiunge" ~+0.03 per matematica, vero per sleeve buoni e cattivi, quindi non possono essere IL gate; l'edge in-sample sì. 3. **hedge vs alpha** (`is_hedge`): `corr(Sharpe-TP01, uplift annuo)` molto negativa + paga solo quando TP01 è giù → HEDGE, non alpha. Verdetti nuovi **HEDGE** e **NOISE**; `earns_slot` ora pretende ADDS + robust_oos + has_insample_edge + not is_hedge. **Sull'onda ortho lo scorer indurito ribalta 17/18 "ADDS" → 1** (`dvol_spread`, unico con edge in-sample reale 0.57; gli altri 16 → NOISE/HEDGE). Controllo: un sleeve sintetico Sharpe~1.3 scorrelato resta **ADDS** (non rigetta i diversificatori veri — XS01-like). La verifica avversariale di 3 giorni è ora una chiamata di funzione.