research: leave-one-out del book DE-LUCKATO sulle ancore — la classifica si ribalta
Domanda: "quale sleeve terrei?". Il leave-one-out ovvio e' misurato all'ancora canonica di tutti e cinque gli sleeve, quindi NON e' credibile: un LOO e' un Delta, ed eredita la fortuna d'ancora come ogni Delta (lezione 26/07, altlib.anchor_luck_delta). Metodo: 2000 estrazioni uniformi indipendenti sullo spazio congiunto 24x10x7x23x5 = 193.200 configurazioni; book completo + 5 LOO alla STESSA configurazione; statistica = mediana delle differenze appaiate. Sanity bit-exact 5/5 (max|dif| = 0.0) contro gli sleeve di produzione. Quattro repliche ancorate riusate dagli audit 02/07-03/07, solo la fase di GTAA01 e' nuova (ed e' l'unica coperta da test dedicato). RISULTATI - Livello del book: la stima a occhio del 02/07 era ottimista su 3/3 metriche. FULL 2.222 (97.0 pctl) -> 1.95 | HOLD 2.364 (99.6 pctl) -> 1.54 [1.11, 1.91] | maxDD 6.07% (12.0 pctl) -> 6.85%. Solo 9 estrazioni su 2000 battono l'hold-out canonico. La somma delle fortune marginali NON e' la mediana congiunta: sbagliava di +0.82 di Sharpe. - SKH01 non e' il motore del book: l'ancora regala 2/3 del FULL, 70% dell'hold-out, 80% della protezione DD -> de-luckato e' il meno affidabile dei cinque. - GTAA01 e' l'unico positivo nel 100% delle estrazioni su tutte e tre le metriche e il miglior protettore di DD. Ma attribuzione != eseguibilita': sotto $3k resta non deployabile. - TP01 e' il maggior contributore (+0.390 FULL, 2000/2000) e il canonico lo SOTTOSTIMAVA. Il suo hold-out negativo non e' artefatto d'ancora (negativo nel 99.1%): e' la firma dell'assicurazione. Uno sleeve difensivo si giudica sul sinistro, non sul premio. - XS01: protezione DD esattamente zero (positiva nel 43% = moneta) -> diversificatore di rendimento, non di rischio. VRP01: 2a conferma di zero fortuna (canonico all'1.8 pctl). Corretto in sessione: un "pctl 100%" era arrotondamento di 99.55% con %.0f — un percentile a 0 decimali mente esattamente agli estremi, che sono l'unico posto dove lo si legge. Book, pesi, cron, config INVARIATI. Non e' un gate sui pesi (resta weights_tilt_null) e non e' evidenza out-of-sample: e' attribuzione, de-luckata. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,225 @@
|
||||
# 2026-07-26 — "Quale strategia terrei?" — leave-one-out del book DE-LUCKATO sulle ancore
|
||||
|
||||
**Richiesta:** *"dimmi qual strategia pensi di tenere"*.
|
||||
|
||||
**Script:** `scripts/research/r0726_loo_deluck.py` — **test:** `tests/test_loo_deluck.py` (9).
|
||||
**Book, pesi, cron, config: INVARIATI.** Nessuna decisione di allocazione cambia.
|
||||
Cambia invece un **numero documentato in CLAUDE.md** (§4) e cambiano **due giudizi che avevo
|
||||
dato un'ora prima nella stessa sessione** (§3).
|
||||
|
||||
---
|
||||
|
||||
## 0. Perche' la risposta ovvia non vale
|
||||
|
||||
La domanda "quanto vale ogni sleeve al suo posto nel book" ha una misura ovvia: togli lo sleeve,
|
||||
guarda quanto cala il book. L'ho fatta, e alla prima lettura diceva questo:
|
||||
|
||||
```
|
||||
BOOK COMPLETO FULL +2.222 HOLD +2.364 maxDD 6.07%
|
||||
tolto dFULL dHOLD dDD
|
||||
TP01 (33%) +0.280 -0.219 +0.24pp
|
||||
XS01 (15%) +0.142 +0.640 +0.25pp
|
||||
VRP01 (12%) +0.087 +0.064 +1.08pp
|
||||
SKH01 (20%) +0.432 +0.652 +1.64pp
|
||||
GTAA01 (20%) +0.120 +0.244 +1.70pp
|
||||
```
|
||||
|
||||
Letta cosi', SKH01 e' il motore del book e TP01 e' un peso morto sull'hold-out.
|
||||
**Entrambe le letture sono sbagliate**, e il motivo era gia' scritto nel progetto il giorno prima:
|
||||
|
||||
> *se si de-lucka una strategia va de-luckato anche il suo DEGRADO* — ogni Δ fra due varianti
|
||||
> misurato a un'ancora sola eredita la fortuna di quell'ancora.
|
||||
> (lezione 26/07, codificata in `altlib.anchor_luck_delta`)
|
||||
|
||||
Un leave-one-out **e' esattamente un Δ fra due varianti**. E qui il problema e' al quadrato: 4
|
||||
sleeve su 5 sono ancorati, e per 3 di loro l'ancora canonica era gia' stata misurata come
|
||||
fortunata (TP01 92° pctl su 24 ancore, SKH01 93-98° su 23 offset, XS01 fase 0 al 15° pctl di DD).
|
||||
VRP01 e' l'unico senza firma — la sua fase canonica e' la **peggiore** delle 7.
|
||||
|
||||
---
|
||||
|
||||
## 1. Il metodo: estrazioni CONGIUNTE, non una griglia per sleeve
|
||||
|
||||
Gli audit del 02/07 e del 03/07 hanno de-luckato **uno sleeve alla volta**, tenendo gli altri alla
|
||||
loro ancora canonica. Va bene per giudicare quello sleeve; non basta per giudicare il **book**,
|
||||
perche' i numeri del book sono calcolati con tutti e cinque alla canonica insieme.
|
||||
|
||||
Spazio di luck congiunto: **24 (TP01, ancore orarie) x 10 (XS01, fasi H=10) x 7 (VRP01, fasi
|
||||
settimanali) x 23 (SKH01, offset di griglia 230m/690m) x 5 (GTAA01, fasi della cadenza
|
||||
settimanale) = 193.200 configurazioni.** Non enumerabile: si campiona.
|
||||
|
||||
**2000 estrazioni uniformi e indipendenti** (seed 20260726). Uniformi-indipendenti e' il null
|
||||
onesto: non avevamo nessuna ragione a priori di preferire un'ancora a un'altra — se ce l'avessimo
|
||||
avuta, sarebbe stata parte della strategia.
|
||||
|
||||
Per ogni estrazione: book completo + i 5 leave-one-out, **tutti alla stessa configurazione
|
||||
d'ancora**. La statistica e' la **mediana delle differenze appaiate**, mai la differenza delle
|
||||
mediane (l'errore che il 26/07 aveva ribaltato il verdetto sul recupero on-book di SKH01: le due
|
||||
mediane cadono su ancore diverse).
|
||||
|
||||
**Repliche riusate, non riscritte.** I quattro generatori ancorati vengono dagli audit che li
|
||||
hanno gia' verificati bit-exact (`r0702_tp01_offset.daily_off`, `r0702_anchor_xs01.xs_phase`,
|
||||
`r0703_vrpimp_anchor.combo_weekly`, `r0702_anchor_skh01.skh_port`). Riscriverli avrebbe voluto
|
||||
dire rifare gli stessi errori di convenzione. L'unico pezzo nuovo e' la fase di GTAA01
|
||||
(`i % REBAL_EVERY == ph` invece di `== 0`), ed e' l'unico coperto da test dedicato.
|
||||
|
||||
**Sanity obbligatorio prima di tutto** — ogni replica ancorata deve riprodurre lo sleeve di
|
||||
**produzione** alla sua ancora canonica, altrimenti sto misurando un'altra strategia:
|
||||
|
||||
```
|
||||
TP01 ancora 0 max|dif| = 0.0e+00 (n=2692) OK
|
||||
XS01 ancora 0 max|dif| = 0.0e+00 (n=938) OK
|
||||
VRP01 ancora 0 max|dif| = 0.0e+00 (n=1884) OK
|
||||
SKH01 ancora 0 max|dif| = 0.0e+00 (n=2690) OK
|
||||
GTAA01 ancora 0 max|dif| = 0.0e+00 (n=2690) OK
|
||||
```
|
||||
|
||||
Costo totale: 69 serie, ~8s di precalcolo, 34s per le 2000 estrazioni.
|
||||
|
||||
---
|
||||
|
||||
## 2. Il livello del book: i numeri pubblicati stanno in cima alla banda
|
||||
|
||||
```
|
||||
canonico pctl MEDIANA p10 p90 fortuna
|
||||
Sharpe FULL +2.222 97.0% +1.946 +1.807 +2.116 +0.276
|
||||
Sharpe HOLD-OUT +2.364 99.6% +1.542 +1.109 +1.910 +0.822
|
||||
maxDD FULL 6.07% 12.0% 6.85% 5.99% 7.94% -0.78%
|
||||
```
|
||||
|
||||
**L'hold-out canonico sta al 99.6° percentile dello spazio d'ancora: solo 9 estrazioni su 2000
|
||||
fanno meglio.** La stima onesta e' **1.54**, con banda [1.11, 1.91].
|
||||
|
||||
⚠️ **Un "100%" che ho dovuto correggere.** La prima stampa dava `pctl 100%` — arrotondamento di
|
||||
99.55% con un `%.0f`. In un artefatto di ricerca un 100% stampato significa "e' il massimo, punto"
|
||||
e avrebbe fatto concludere a una sessione futura qualcosa di piu' forte del vero. Verificato a
|
||||
mano (max fra le 2000 = +2.577, a `TP01=0 / XS01=7 / VRP01=1 / SKH01=0 / GTAA01=3`), formato
|
||||
portato a 1 decimale. *Regola pratica: un percentile stampato senza decimali mente esattamente
|
||||
agli estremi, che sono l'unico posto dove lo si legge.*
|
||||
|
||||
---
|
||||
|
||||
## 3. Il leave-one-out de-luckato — e due giudizi miei ribaltati
|
||||
|
||||
```
|
||||
dSharpe FULL canonico pctl MEDIANA >0 in
|
||||
TP01 33% +0.280 5.8% +0.390 100.0%
|
||||
SKH01 20% +0.432 99.0% +0.142 90.8%
|
||||
XS01 15% +0.142 76.8% +0.125 99.9%
|
||||
VRP01 12% +0.087 1.8% +0.122 100.0%
|
||||
GTAA01 20% +0.120 63.5% +0.115 100.0%
|
||||
|
||||
dSharpe HOLD-OUT canonico pctl MEDIANA >0 in
|
||||
XS01 15% +0.640 63.4% +0.497 96.2%
|
||||
GTAA01 20% +0.244 17.3% +0.267 100.0%
|
||||
SKH01 20% +0.652 96.0% +0.190 85.5%
|
||||
VRP01 12% +0.064 47.4% +0.065 84.2%
|
||||
TP01 33% -0.219 39.5% -0.200 0.9%
|
||||
|
||||
dMaxDD (pp, >0 = protegge) pctl MEDIANA >0 in
|
||||
GTAA01 20% +1.695pp 23.8% +1.999pp 100.0%
|
||||
VRP01 12% +1.075pp 55.6% +1.056pp 88.3%
|
||||
SKH01 20% +1.636pp 89.3% +0.322pp 64.0%
|
||||
TP01 33% +0.236pp 48.4% +0.274pp 62.1%
|
||||
XS01 15% +0.251pp 65.0% +0.000pp 43.0%
|
||||
```
|
||||
|
||||
**SKH01 non e' il motore del book.** Del suo contributo apparente, l'ancora canonica regala **2/3
|
||||
sul FULL** (+0.43 → +0.14), **70% sull'hold-out** (+0.65 → +0.19), **80% sulla protezione DD**
|
||||
(+1.64pp → +0.32pp). De-luckato e' indistinguibile dagli altri sul FULL ed e' **il meno affidabile
|
||||
dei cinque**: l'unico sotto il 91% di estrazioni positive su tutte e tre le metriche (91/86/64%).
|
||||
|
||||
**GTAA01 non e' il primo da tagliare** (lo avevo detto un'ora prima, sulla lente canonica). E'
|
||||
**l'unico sleeve positivo nel 100% delle estrazioni su tutte e tre le metriche** e il miglior
|
||||
protettore di DD del book, al doppio del secondo. Non ha fortuna da restituire: il suo canonico
|
||||
sta *sotto* la mediana su FULL e DD. ⚠️ L'altra gamba di quel giudizio resta pero' intatta e
|
||||
indipendente: a $10k comprare ~€0.50/giorno sopra il risk-free con un maxDD del 10% e' caro, e
|
||||
sotto `GTAA_MIN_CAPITAL` = $3k lo sleeve non e' deployabile. **Attribuzione ≠ eseguibilita'.**
|
||||
|
||||
**TP01 e' il maggior contributore, e il canonico lo SOTTOSTIMAVA** (+0.280 al 5.8° pctl → +0.390
|
||||
de-luckato, positivo in 2000/2000, quasi 3x il secondo). Il suo hold-out negativo **non e'
|
||||
artefatto d'ancora**: e' negativo nel **99.1%** delle configurazioni. Le due cose insieme sono la
|
||||
storia dell'assicurazione, finalmente misurata invece che asserita — sul campione pieno (che
|
||||
contiene il 2022) e' il contributore piu' grande; nella finestra 2025-26 e' stato fermo mentre gli
|
||||
altri guadagnavano, e questo costa −0.20. **Giudicarlo sulla finestra in cui non e' servito
|
||||
significa venderlo esattamente prima che serva.**
|
||||
|
||||
**VRP01** conferma per la seconda volta di essere l'unico senza firma di fortuna: canonico al
|
||||
**1.8° pctl** sul FULL, cioe' i numeri di ammissione erano *conservativi*. Secondo protettore di DD.
|
||||
|
||||
**XS01** tiene il primo posto sull'hold-out anche de-luckato (+0.497), ma la sua protezione di DD
|
||||
e' **esattamente zero** (mediana 0.000, positiva nel 43% = moneta). E' un diversificatore di
|
||||
**rendimento, non di rischio** — e conta, perche' sul canale funded il vincolo binding e' il DD,
|
||||
non il CAGR (25/07 §4).
|
||||
|
||||
**Correlazioni:** stabili sotto de-luck, tutte quasi-nulle. La sola sopra 0.1 e' TP01-GTAA01
|
||||
(mediana +0.189, canonica +0.242).
|
||||
|
||||
### Il contrappeso che SKH01 ha diritto ad avere
|
||||
|
||||
Questo de-luck penalizza SKH01 sul path **backtest** (chiusura di bin). Ma le due misure del 26/07
|
||||
dicono che il **path live e' migliore del backtest su entrambi i lati**: ingressi +0.38 di Sharpe
|
||||
mediano, uscite +0.081 di Sharpe FULL di book. Applicare il de-luck senza quel contrappeso lo
|
||||
penalizzerebbe due volte. Verdetto onesto: **SKH01 vale meno dei suoi numeri di ammissione e piu'
|
||||
di questa tabella.** Quanto esattamente resta il follow-up gia' dichiarato e bloccato (serve la
|
||||
versione vol-targeted del path live di SKH01).
|
||||
|
||||
---
|
||||
|
||||
## 4. Correzione a CLAUDE.md
|
||||
|
||||
La stima del 02/07 era **a occhio** — sommava le fortune misurate sleeve-per-sleeve. Oggi e'
|
||||
**misurata congiuntamente**, ed era ottimista su tutte e tre le metriche:
|
||||
|
||||
| | stimato 02/07 | misurato 26/07 |
|
||||
|---|---|---|
|
||||
| HOLD-OUT | ~1.9-2.1 | **1.54** [1.11, 1.91] |
|
||||
| FULL | ~2.0-2.2 | **1.95** [1.81, 2.12] |
|
||||
| maxDD | "~6% invariato" | **6.85%** [5.99, 7.94] |
|
||||
|
||||
L'errore non e' stato usare una stima: e' stato che una stima per somma di effetti marginali
|
||||
**non e' la mediana congiunta**, e la differenza (+0.82 di hold-out) e' piu' grande di quasi
|
||||
tutti gli uplift per cui in questo progetto si e' discusso se ammettere uno sleeve.
|
||||
|
||||
---
|
||||
|
||||
## 5. Cosa NON e' questa misura
|
||||
|
||||
- **Non e' evidenza out-of-sample.** Il book e' valutato sugli stessi anni in cui XS01 e SKH01
|
||||
sono stati scelti e affinati. E' attribuzione, de-luckata.
|
||||
- **Non e' un gate sui pesi.** Ogni proposta di cambio pesi passa da `weights_tilt_null`. Qui non
|
||||
si propone nulla: i pesi restano 33/15/12/20/20.
|
||||
- **Non e' una lente di eseguibilita'.** Dice quanto uno sleeve contribuisce al book modellato,
|
||||
non se lo si puo' comprare a $600 (GTAA01 sotto $3k e XS01 sotto ~$20k non si possono).
|
||||
|
||||
---
|
||||
|
||||
## 6. Risposta alla domanda
|
||||
|
||||
**TP01**, se ne va tenuta una. Maggior contributore de-luckato (+0.390, 2000/2000), l'unico
|
||||
eseguibile davvero oggi a $600 senza haircut, e l'unico il cui valore dichiarato — il taglio del
|
||||
DD ~6x contro il buy&hold — **non e' ancorato** e regge a tutte le ancore testate. Tutto il resto
|
||||
dei suoi numeri e' gia' stato declassato (hold-out 0.31 → ~0.05); quello no.
|
||||
|
||||
Le altre: **SKH01** si tiene al 25% e non un euro di piu'; **GTAA01** si tiene nel book modello
|
||||
(miglior protettore di DD) ma non nel live finche' non ci sono $3k su IB; **VRP01** si tiene come
|
||||
*metro* — e' l'unico i cui numeri sono onesti per costruzione; **XS01** non e' da tenere oggi, e'
|
||||
da accendere quando arriva il capitale (~$20k, o un conto funded, dove vale piu' di tutte).
|
||||
|
||||
Il book live che gira — **TP01 75 / SKH01 25** — e' gia' questa risposta.
|
||||
|
||||
---
|
||||
|
||||
## 7. Regole trasferibili
|
||||
|
||||
1. **Un leave-one-out e' un Δ, quindi va de-luckato come ogni Δ.** L'attribuzione all'ancora
|
||||
canonica ha invertito la classifica su 2 metriche su 3.
|
||||
2. **De-luckare uno sleeve alla volta non de-lucka il book.** La fortuna del book e' un fenomeno
|
||||
*congiunto*: la somma delle fortune marginali ha sbagliato di +0.82 di Sharpe hold-out. Quando
|
||||
serve la banda di un aggregato, si campiona lo spazio congiunto.
|
||||
3. **Un percentile stampato a 0 decimali mente agli estremi**, che sono l'unico posto dove serve.
|
||||
4. **La frazione di estrazioni positive dice piu' della mediana.** Fra +0.142 (SKH01, positivo nel
|
||||
91%) e +0.115 (GTAA01, positivo nel 100%) la mediana preferisce il primo e l'affidabilita' il
|
||||
secondo — ed e' la seconda a decidere se ci si mette del capitale.
|
||||
5. **Uno sleeve difensivo si giudica sul sinistro, non sul premio.** L'hold-out negativo di TP01 e'
|
||||
robusto (99.1% delle ancore) e *non* e' un argomento per ridurlo.
|
||||
Reference in New Issue
Block a user