Files
PythagorasGoal/docs/diary/2026-07-26-loo-deluck.md
Adriano Dal Pastro b9b2ef1b26 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>
2026-07-26 13:23:36 +00:00

12 KiB
Raw Permalink Blame History

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.pytest: 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.