registro §41: TP01-SIZE SCARTATO — Spearman IS/HOLD −0,527, e la premessa del coordinatore sui bucket di convinzione era falsa

This commit is contained in:
Adriano Dal Pastro
2026-08-23 01:04:43 +00:00
parent 96d37c7013
commit 6f74dcb843
+98 -1
View File
@@ -706,7 +706,7 @@ stessi hanno nominato senza poterli eseguire**. Stesso contratto di consegna, st
| 38 | SCALE-SPEC | specificare il knob di leva che non esiste | **LEAD** — specificata, **1 nodo irrisolto** sul disaster-SL | | 38 | SCALE-SPEC | specificare il knob di leva che non esiste | **LEAD** — specificata, **1 nodo irrisolto** sul disaster-SL |
| 39 | FUNDING-AVOID | evitare il funding esprimendo il libro sui datati | **SCARTATO** sui datati · **LEAD** sullo **spot** | | 39 | FUNDING-AVOID | evitare il funding esprimendo il libro sui datati | **SCARTATO** sui datati · **LEAD** sullo **spot** |
| 40 | SL-ANCHOR | il nodo che bloccava il gradino di leva | **SCIOLTO** — rotolante, ma il timore e' refutato | | 40 | SL-ANCHOR | il nodo che bloccava il gradino di leva | **SCIOLTO** — rotolante, ma il timore e' refutato |
| 41 | TP01-SIZE | una size che risponde alla CONVINZIONE batte il vol-target uniforme, a pari vol realizzata? | _in corso_ | | 41 | TP01-SIZE | una size che risponde alla CONVINZIONE batte il vol-target uniforme, a pari vol realizzata? | **SCARTATO** — il meglio di 60 celle vale **+0,30pp** di CAGR iso-vol, e l'ottimo sta ai **due estremi opposti** nelle due meta' del campione (**Spearman ShIS/ShHOLD 0,527**: scegliere in-sample e' peggio di una moneta) |
| 42 | TP01-LS | la gamba short del trend a 1d paga il proprio costo, o e' il 2022? | **SCARTATO** — toglie **1,91%/anno di drift in 0/24 ancore**, fallisce l'iso-vol, +8,80pp di maxDD in 24/24, e **senza il 2022 il divario RADDOPPIA** | | 42 | TP01-LS | la gamba short del trend a 1d paga il proprio costo, o e' il 2022? | **SCARTATO** — toglie **1,91%/anno di drift in 0/24 ancore**, fallisce l'iso-vol, +8,80pp di maxDD in 24/24, e **senza il 2022 il divario RADDOPPIA** |
| 43 | DATA-UNUSED | quali dati il progetto possiede e nessuna strategia legge — e uno di essi sostiene un'ipotesi? | _in corso_ | | 43 | DATA-UNUSED | quali dati il progetto possiede e nessuna strategia legge — e uno di essi sostiene un'ipotesi? | _in corso_ |
| 44 | DEPOSIT-TIMING | un calendario di versamento CONDIZIONALE batte il piatto, a pari soldi? | _in corso_ | | 44 | DEPOSIT-TIMING | un calendario di versamento CONDIZIONALE batte il piatto, a pari soldi? | _in corso_ |
@@ -2212,3 +2212,100 @@ sola ancora canonica, tutto **close-only**.
**VERDETTO: `LA SHORT DEL TREND A 1d NON PAGA IL PROPRIO COSTO SU NESSUN ASSE CHE DECIDE`** **VERDETTO: `LA SHORT DEL TREND A 1d NON PAGA IL PROPRIO COSTO SU NESSUN ASSE CHE DECIDE`**
SCARTATO. **Libro, pesi, cron, config INVARIATI.** SCARTATO. **Libro, pesi, cron, config INVARIATI.**
---
## 41 — TP01-SIZE (una size che risponde alla convinzione)
`scripts/research/r0823_tp01_size.py` (**8,4 s**, nessuna rete). **60 celle dichiarate prima di
guardare** (`rho` = g(1/3)/g(1), 10 valori × `q` = esponente del vol-targeting, 6 valori) × 24
ancore = 1.440 valutazioni di sleeve + 3 controlli positivi. **Segnale CONGELATO** (TSMOM 30/90/180,
long-flat): cambia solo la mappa `convinzione → size`.
**Replica bit-exact**: `target_series` vs `TrendPortfolio.target_series` **max|diff| = 0**;
rendimenti vs `sleeves._tp01_returns()` **max|diff| = 0** (n=2720).
⚠️ **Sottoprodotto sull'harness:** `altlib.tp01_baseline_daily()` **NON e' bit-exact col sleeve**
1 ulp (1,11e-16) su **1863/2720 giorni (68,5%)**, perche' `_to_daily` fa
`(1+r).resample("1D").prod()-1`, che e' un no-op **algebrico** ma non in virgola mobile su una serie
gia' giornaliera. Innocuo, ma *"bit-exact vs altlib" non e' un controllo ottenibile*: chi lo pretende
insegue un fantasma.
🚨 **CORREZIONE ALLA PREMESSA DEL MANDATO (mia), verificata al sorgente.** Il briefing diceva che
la convinzione e' *"spesso 1/3 o 2/3"*. **Il bucket 2/3 e' aritmeticamente impossibile:**
`tsmom_blend` media **tre `np.sign(...)`** → la direzione vive in **{1, 1/3, +1/3, +1}**, e dopo il
clip long-flat in **{0, 1/3, 1}** (misurato BTC: 44,2% / 24,7% / 31,1%). ✅ Confermato da **due
agenti indipendenti** e ri-verificato dal coordinatore leggendo `src/strategies/trend_portfolio.py`.
**Conseguenza:** potenza `c^p`, floor affine e soglia sono **la stessa cella riparametrizzata** — la
famiglia della convinzione ha **UN** grado di liberta', non tre.
**Attesa a priori dell'agente, scritta nel docstring prima di misurare:** *"il canonico e' gia'
dentro il suo plateau; qualunque rimodellamento dara' un delta indistinguibile da zero a iso-vol…
VERDETTO ATTESO: SCARTATO"*, col corollario che il null del de-levering sarebbe apparso in **forma
speculare (re-levering)**. **Entrambi confermati.**
| | ShFULL | ShIS | ShHOLD | vol | CAGR grezzo | CAGR **iso-vol** |
|---|---|---|---|---|---|---|
| **canonico** rho=1/3 q=1 | 1,305 | 1,488 | 0,441 | 12,14% | 16,32% | **16,32%** |
| binario rho=1 q=1 | 1,265 | 1,398 | **0,674** | 15,30% | 19,95% | 15,87% (0,45pp) |
| soglia rho=0 q=1 | 1,229 | 1,429 | 0,236 | 11,46% | 14,38% | 15,16% (1,16pp) |
| **niente vol-target** q=0 | 1,166 | 1,298 | 0,479 | **39,65%** | **46,75%** | 13,92% (2,40pp) |
| miglior cella iso-vol | 1,312 | 1,498 | 0,480 | 9,82% | 13,20% | 16,61% (**+0,30pp**) |
| cella scelta **al buio** | 1,306 | 1,508 | 0,382 | 9,26% | 12,38% | 16,48% (+0,16pp) |
Rango del canonico: **5/60 in-sample, 6/60 full, 41/60 hold-out**.
📌 **NULL DEL RE-LEVERING nella forma piu' pura mai misurata nel progetto (6ª occorrenza, prima
col segno rovesciato):** togliere il vol-targeting porta il CAGR **16,32% → 46,75% (+186%)** e a
iso-vol fa **2,40pp**. **Era tutta leva.** Il gate e' esatto per costruzione (`net` omogeneo di
grado 1 → lo Sharpe e' invariante, verificato a 4,4e-16) quindi **morde sul drift, non sullo
Sharpe**; `k` calibrato **in-sample** per non introdurre look-ahead nella normalizzazione.
**Banda d'ancora (24, mediana delle differenze APPAIATE):**
| cella | dShFULL | >0 | dShHOLD | >0 | dCAGRiso | >0 |
|---|---|---|---|---|---|---|
| scelta al buio 0,25/1,25 | +0,0074 | 17/24 | **0,0580** | **0/24** | +0,242pp | 22/24 |
| de-luckata 0,15/1,25 | +0,0002 | 12/24 | 0,1108 | 0/24 | +0,090pp | 16/24 |
| binario 1,00/1,00 | 0,0932 | 2/24 | **+0,2429** | **24/24** | 1,029pp | 3/24 |
⚠️ Le due selezioni oneste **non coincidono** (ancora 0 → rho=0,25; mediana su 24 ancore → rho=0,15):
**la superficie e' piatta**.
**Replica indipendente, su dati odierni, del finding d'ancora del 02/07:** hold-out canonico
**+0,441 = 96° pctl** delle 24, **mediana onesta +0,219**, banda [+0,014, +0,441]; FULL canonico al
29° pctl.
**Per anno** (mediana appaiata su 24 ancore): 2019 +0,006 · **2020 +0,085 (24/24)** · 2021 0,077
(0/24) · 2022 0,080 (0/24) · 2023 +0,020 · **2024 +0,057 (23/24)** · 2025 0,051 · 2026 0,003 →
**4/8 positivi = moneta**: non "un anno solo", ma nemmeno persistenza.
**Impatto sul LIBRO** (canonico ShFULL 1,814 · ShHOLD 1,437 · CAGR 21,22% · maxDD 9,42%): la cella
scelta fa **dShFULL +0,0006 (12/24 = moneta)**, **dShHOLD 0,0878 (0/24)**, dCAGR +0,188pp (22/24) e
📌 **dmaxDD +0,493pp PEGGIORE a 24 ancore su 24** — e il valore dichiarato di TP01 **e' il taglio
del DD**.
🚨 **IL RISULTATO CHE DECIDE, e nessuno lo cercava: `Spearman(ShIS, ShHOLD) = 0,527` (p<0,001)
sulle 60 celle — in questa famiglia scegliere in-sample e' PEGGIO DI UNA MONETA.** Ed e' un
meccanismo misurato, non rumore: **`Spearman(rho, ShHOLD) = +1,000` a tutti e sei i q** (in hold-out
l'ottimo e' al bordo rho≥1) mentre in-sample la curva e' **a gobba** con ottimo interno ~0,45-0,60.
**La convinzione e' informativa in-sample e ANTI-informativa in hold-out** — visibile anche nei
bucket (BTC hold-out: convinzione debole Sharpe **+2,20** contro piena **0,06**). Quindi l'unica
cella con guadagno hold-out robusto (binario rho=1, 24/24) e' **esattamente quella che si potrebbe
scegliere solo guardando l'hold-out** = il gate del 29/06. **Non esiste una cella proponibile,
nemmeno diversa da quella scelta.**
**Gate e controlli.** `causality_ok` **True** (max_tail_diff 0,0); `select_cell_insample` importato
sceglie **la stessa cella** (identita' verificata); **`deflated_sharpe` 0,9990 PASS ma quasi vacuo**
(famiglia omogenea, sd(Sharpe) 0,084 → sr0 0,197; **FAIL a sr0 ≥0,9**, 0,229 all'sr0 di screen
1,572) = **terza conferma indipendente del §10**; `marginal_vs_tp01` **REDUNDANT per costruzione**
(giudica un'aggiunta, non la SOSTITUZIONE della size di uno sleeve gia' nel libro) → riportato, non
usato come gate. **Controlli positivi 3/3**: de-levering ×0,5 → dSharpe **esattamente 0** e dCAGR
iso **esattamente 0**; oracolo look-ahead → Sharpe **10,97** con `causality_ok=False`; anti (rho=3)
3,55pp. **Eseguibilita' a $635: haircut 0,001** (**8ª volta nell'ondata**).
**Cosa NON e' misurato:** altri TF (il deploy e' a 1d, e sotto le 12h e' vietato dal 19/06); ancora
di SKH01 (si cancella nella differenza appaiata); una convinzione da un **segnale** diverso
(magnitudine invece di segno) — sarebbe un'altra **famiglia**, da dichiarare e deflazionare a parte;
`weights_tilt_null` non applicabile (il 75/25 non si muove).
**VERDETTO: `NON ESISTE UNA CELLA PROPONIBILE — E IL MOTIVO E' CHE IN QUESTA FAMIGLIA LA SELEZIONE
IN-SAMPLE E' ANTI-CORRELATA COL FUTURO`** — SCARTATO. **Libro, pesi, cron, config INVARIATI.**