18 agenti su book market-neutral a 2 gambe BTC/ETH (eseguibili a $600, a differenza di XS01), giudicati sul MARGINALE vs TP01 (altlib.marginal_vs_tp01), non sullo Sharpe assoluto. Lab: ortholib.py (eval_book leak-free a 2 gambe + causalità + eseguibilità@600), ortho_score.py (giudice), meta_ortho.py (corr mutua + persistenza multi-cut), sleeve_rv.py (curated, SELECTION- BIASED, non deployare). Esito: 17/18 "ADDS" -> gonfiato dall'hold-out corto fisso-2025 (finestra ETH-bleed dove TP01 è debole). Diagnosi orchestratore: collassano a 8 bet (corr 0.43); persistenza multi-cut e selezione walk-forward smascherano i 2025-only (kalman/xs2). Scettico indipendente: basket selection-free ha uplift pre-2025 +0.027 = 49° percentile di asset-rumore corr-zero (matematica di diversificazione, non segnale); corr(Sharpe-TP01, uplift) -0.87 (è un HEDGE dei drawdown di TP01); muore a 0.30% RT. Verdetto: NIENTE in live. Resta solo TP01. Lezione: lo scorer marginale va indurito (multi-cut + null-asset-rumore + distinguere hedge da alpha). Diario 2026-06-21-ortho-tp01-relative-value.md. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
5.6 KiB
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
- Una scommessa o tante? corr mutua media 0.43 → collassano a 8 rappresentanti de-correlati. Non 17, non 1.
- Persistente o solo finestra 2025?
marginal_vs_tp01fissa 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) exs2_zscoresono 2025-only. - 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.